aku penah posting ttg code terbilang di crystal report
http://layonglim.wordpress.com/2007/08/13/fungsi-terbilang/

semoga berguna

http://layonglim.blogspot.com


On 4/17/08, Rizky Prihanto <[EMAIL PROTECTED]> wrote:
>
>    masa error om? hehehe, script aku baek-baek aja koq. nie SQL hasil
> dumpingan xf_terbilang() ku :
>
>
> -- Function "xf_terbilang" DDL
>
> CREATE [EMAIL PROTECTED] FUNCTION `xf_terbilang`(angka bigint)
> RETURNS varchar(5000) CHARSET utf8
> BEGIN
>
>  DECLARE sString varchar(30);
>
>  DECLARE Bil1 varchar(255);
>
>  DECLARE Bil2 varchar(255);
>
>  DECLARE STot varchar(255);
>
>  DECLARE X int;
>
>  DECLARE Y int;
>
>  DECLARE Z int;
>
>  DECLARE Urai varchar(5000);
>
>  SET sString = CAST(angka as char);
>
>  SET Urai = '';
>
>  SET X = 0;
>
>  SET Y = 0;
>
>  WHILE X < LENGTH(sString) DO
>
>   SET X = X + 1;
>
>   SET sTot = MID(sString, X, 1);
>
>   SET Y = Y + CAST(sTot as UNSIGNED);
>
>   SET Z = LENGTH(sString) - X + 1;
>
>   CASE CAST(sTot as UNSIGNED)
>
>    WHEN 1 THEN
>
>     BEGIN
>
>      IF (Z = 1 OR Z = 7 OR Z = 10 OR Z = 13) THEN
>
>       SET Bil1 = 'SATU ';
>
>      ELSEIF (z = 4) THEN
>
>       IF (x = 1) THEN
>
>        SET Bil1 = 'SE';
>
>       ELSE
>
>        SET Bil1 = 'SATU';
>
>       END IF;
>
>      ELSEIF (Z = 2 OR Z = 5 OR Z = 8 OR Z = 11 OR Z = 14) THEN
>
>       SET X = X + 1;
>
>       SET sTot = MID(sString, X, 1);
>
>       SET Z = LENGTH(sString) - X + 1;
>
>       SET Bil2 = '';
>
>       CASE CAST(sTot AS UNSIGNED)
>
>        WHEN 0 THEN SET Bil1 = 'SEPULUH ';
>
>        WHEN 1 THEN SET Bil1 = 'SEBELAS ';
>
>        WHEN 2 THEN SET Bil1 = 'DUA BELAS ';
>
>        WHEN 3 THEN SET Bil1 = 'TIGA BELAS ';
>
>        WHEN 4 THEN SET Bil1 = 'EMPAT BELAS ';
>
>        WHEN 5 THEN SET Bil1 = 'LIMA BELAS ';
>
>        WHEN 6 THEN SET Bil1 = 'ENAM BELAS ';
>
>        WHEN 7 THEN SET Bil1 = 'TUJUH BELAS ';
>
>        WHEN 8 THEN SET Bil1 = 'DELAPAN BELAS ';
>
>        WHEN 9 THEN SET Bil1 = 'SEMBILAN BELAS ';
>
>       ELSE BEGIN END;
>
>       END CASE;
>
>      ELSE
>
>       SET Bil1 = 'SE';
>
>      END IF;
>
>     END;
>
>    WHEN 2 THEN SET Bil1 = 'DUA ';
>
>    WHEN 3 THEN SET Bil1 = 'TIGA ';
>
>    WHEN 4 THEN SET Bil1 = 'EMPAT ';
>
>    WHEN 5 THEN SET Bil1 = 'LIMA ';
>
>    WHEN 6 THEN SET Bil1 = 'ENAM ';
>
>    WHEN 7 THEN SET Bil1 = 'TUJUH ';
>
>    WHEN 8 THEN SET Bil1 = 'DELAPAN ';
>
>    WHEN 9 THEN SET Bil1 = 'SEMBILAN ';
>
>    ELSE SET Bil1 = '';
>
>   END CASE;
>
>   IF CAST(sTot as UNSIGNED) > 0 THEN
>
>    IF (Z = 2 OR Z = 5 OR Z = 8 OR Z = 11 OR Z = 14) THEN
>
>     SET Bil2 = 'PULUH ';
>
>    ELSEIF (Z = 3 OR Z = 6 OR Z = 9 OR Z = 12 OR Z = 15) THEN
>
>     SET Bil2 = 'RATUS ';
>
>    ELSE
>
>     SET Bil2 = '';
>
>    END IF;
>
>   ELSE
>
>    SET Bil2 = '';
>
>   END IF;
>
>   IF Y > 0 THEN
>
>    CASE Z
>
>     WHEN 4 THEN BEGIN SET Bil2 = CONCAT(Bil2, 'RIBU '); SET Y = 0; END;
>
>     WHEN 7 THEN BEGIN SET Bil2 = CONCAT(Bil2, 'JUTA '); SET Y = 0; END;
>
>     WHEN 10 THEN BEGIN SET Bil2 = CONCAT(Bil2, 'MILYAR '); SET Y = 0; END;
>
>     WHEN 13 THEN BEGIN SET Bil2 = CONCAT(Bil2, 'TRILYUN '); SET Y = 0;
> END;
>
>     ELSE BEGIN END;
>
>    END CASE;
>
>   END IF;
>
>   SET Urai = CONCAT(Urai, Bil1, Bil2);
>
>  END WHILE;
>
>  RETURN Urai;
>
> END;
>
>
> contoh cara manggilnya :
> mysql> select xf_terbilang(12345);
> +---------------------------------------------+
> | xf_terbilang(12345)                         |
> +---------------------------------------------+
> | DUA BELAS RIBU TIGA RATUS EMPAT PULUH LIMA  |
> +---------------------------------------------+
> 1 row in set
>
> baek2 aja koq.. hehehe. coba lagi deh om..
>
>
> --
> wassalam,
>
> Rizky Prihanto
> http://www.software-arsitek.web.id
>
>
> 
>

Kirim email ke