Q&A

  • 크리스탈리포트에서 금액을 숫자에서 한글로 표현 ^.^
금액 숫자 ex)50,000 ~> 한글로 오만원 <~~~ 요렇게 구현하고 싶어요..

한번 경험해보신 분들이나 아시는분 계심 감사히 가르쳐 주세요 ^^;

루틴을 직접 코딩 해주셔두 괜찬구 아님 이멜로 보내주셔두 되염 ..

그럼 항상 즐코들 하시구요 20000...

e-mail : toralingo@hanmail.net

2  COMMENTS
  • Profile
    666 2000.08.29 03:17
    테이블 자체에 한글이 들어갈 수 있는 필드를 추가하시던지

    아니면 크리스탈의 포뮬러를 이용하시어 if문을 사용하시면 될 듯

    합니다.

    전자가 더 편할거 같네요...

    행복하세요..



    토라 wrote:

    > 금액 숫자 ex)50,000 ~> 한글로 오만원 <~~~ 요렇게 구현하고 싶어요..

    > 한번 경험해보신 분들이나 아시는분 계심 감사히 가르쳐 주세요 ^^;

    > 루틴을 직접 코딩 해주셔두 괜찬구 아님 이멜로 보내주셔두 되염 ..

    > 그럼 항상 즐코들 하시구요 20000...

    > e-mail : toralingo@hanmail.net

  • Profile
    최석기 2000.08.26 01:35
    토라 wrote:

    > 금액 숫자 ex)50,000 ~> 한글로 오만원 <~~~ 요렇게 구현하고 싶어요..

    > 한번 경험해보신 분들이나 아시는분 계심 감사히 가르쳐 주세요 ^^;

    > 루틴을 직접 코딩 해주셔두 괜찬구 아님 이멜로 보내주셔두 되염 ..

    > 그럼 항상 즐코들 하시구요 20000...

    > e-mail : toralingo@hanmail.net



    크리스탈 레포트는 사용 않해봐서 모르겠네요..



    숫자를 한글 금액으로 바꾸는 소스입니다..



    참고하세요..



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TForm1 = class(TForm)

    Button1: TButton;

    Edit1: TEdit;

    Label1: TLabel;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}



    function Amount(N: Longint): String;

    const

    Units: array[0..9] of String = ('', '일', '이', '삼', '사', '오',

    '육', '칠', '팔', '구');

    Lower: array[0..3] of String = ('', '십','백','천');

    Higher: array[0..4] of String = ('', '만','억','조','경');

    HighLevel: Integer = 0;

    begin

    case N of

    0..9: Result := Result + Units[N];

    10..99:

    Result := Result +

    Amount(N div 10) + Lower[1] + Amount(N mod 10);

    100..999:

    Result := Result +

    Amount(N div 100) + Lower[2] + Amount(N mod 100);

    1000..9999:

    Result := Result +

    Amount(N div 1000) + Lower[3] + Amount(N mod 1000);

    else

    begin

    inc(HighLevel);

    Result := Result +

    Amount(N div 10000) + Higher[HighLevel] + Amount(N mod 10000);

    dec(HighLevel);

    end;

    end;

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    try

    Label1.caption := Amount(Trunc(StrToFloat(Edit1.Text)));

    except

    on EConvertError do

    Label1.caption := '정확한 숫자를 입력하세요';

    end;

    end;



    end.