Q&A

  • 1000000--->1,000,000 게 표시 하려면...
회계 관련 프로그램을 제작 중입니다..



그런데 돈의 액수를 그냥 1000000 표시하면 상당히 불편 하리라 생각



됩니다. 데이타 베이스는 파라독스를 쓰고 있습니다..



데이타 베이스에 저장시 ,(컴마)를 찍어지게 하려면 어떻게 해야 하는지요...



퀵레포드로 출력 하려 합니다.



나중에 인쇄 할때도 ,(컴마)가 찍혀 나오는지요...



글구.,.. 저장된 데이타베이스를 액셀로 옮길수 있는지요..



혹은 처음부터 데이터를 액셀로 저장 시킬수 있는지요...



고수님들 급히 부탁 드립니다..





3  COMMENTS
  • Profile
    2001.02.17 22:57
    답변:

    1. 제 생각엔 값을 그냥 숫자로 보관하시구요.

    만약 어떤 필드나 그리드에 표시를 하려면

    Edit1.text := FormatFloat('#,##0',Query1.FieldByName('Amt').AsFloat);

    위와 같이하면 표시할때는 콤마를 찍어주거든요.



    2. 퀵에서는요

    DBText1의 Onprint Event에서

    if Vale <> '' then

    Value := FormatFloat('#,###', strTofloat(Value));

    이 한줄넣으시면 되여.

    나머지 숫자도 이 이벤트를 가리키게 하면 되죠.



    3. Excel로 저장 하시게요.

    1) Excel을 띄운채로 하는 프로시져가 이렇구요.

    Interface밑에 uses구에 Comobj를 추가하시고, 아래 예제는 StringGrid에

    있는걸 Excel로 옮기는 건데, 나머지는 응용하실수 있으리라 생각됩니다.





    procedure TForm1.Grid2xls(sg:TStringGrid);

    var

    gv:variant;

    i,j : integer ;

    begin

    screen.cursor := crHourglass ;

    gv := createoleobject('Excel.Application');

    gv.workbooks.add;

    gv.visible := true;



    with Sg do

    begin

    for i := 1 to Rowcount do

    begin

    for j := 1 to colcount do

    gv.cells[i,j].formula := cells[j-1, i-1];

    end;

    end ;

    screen.cursor := crDefault ;

    end;





    조덕현 wrote:

    > 회계 관련 프로그램을 제작 중입니다..

    > 그런데 돈의 액수를 그냥 1000000 표시하면 상당히 불편 하리라 생각

    > 됩니다. 데이타 베이스는 파라독스를 쓰고 있습니다..

    >

    > 데이타 베이스에 저장시 ,(컴마)를 찍어지게 하려면 어떻게 해야 하는지요...

    > 퀵레포드로 출력 하려 합니다.

    > 나중에 인쇄 할때도 ,(컴마)가 찍혀 나오는지요...

    > 글구.,.. 저장된 데이타베이스를 액셀로 옮길수 있는지요..

    > 혹은 처음부터 데이터를 액셀로 저장 시킬수 있는지요...

    > 고수님들 급히 부탁 드립니다..



  • Profile
    마법의가을 2001.02.01 23:01
    조덕현 wrote:

    > 회계 관련 프로그램을 제작 중입니다..

    >

    > 그런데 돈의 액수를 그냥 1000000 표시하면 상당히 불편 하리라 생각

    >

    > 됩니다. 데이타 베이스는 파라독스를 쓰고 있습니다..

    >

    > 데이타 베이스에 저장시 ,(컴마)를 찍어지게 하려면 어떻게 해야 하는지요...

    >

    > 퀵레포드로 출력 하려 합니다.

    >

    > 나중에 인쇄 할때도 ,(컴마)가 찍혀 나오는지요...

    >

    > 글구.,.. 저장된 데이타베이스를 액셀로 옮길수 있는지요..

    >

    > 혹은 처음부터 데이터를 액셀로 저장 시킬수 있는지요...

    >

    > 고수님들 급히 부탁 드립니다..

    >

    >



    콤마을 넣는 것은 여러가지 방식이 있읍니다.

    var

    St: string;

    F: double;

    begin

    F := 1000000;

    st := FloatToStrF(F, ffNumber, 16, 0);

    end

    이런 식으로 하면 값이 콤마유형으로 문자화되어 보관 되고요 또는

    컴퍼넌트중에 콤마형식을 지원하는 TCurrencyEdit라는 것이 있는데 이것은 입력

    받으면서 바로 콤마형식으로 변환 하여 주기도 합니다.



    엑셀파일로 변환을 원하시면 Servers컴퍼넌트를 보시면 ExcelApplication, ExcelWorkbook, ExcelWorksheet등의 엑셀관련 컴퍼넌트르 이용하시면 엑셀로

    주고 받기가 가능합니다..

  • Profile
    SerVing 2001.02.01 18:48
    컴마가 찍힌채로 저장되는건 모르겠습니다.



    다만, string형태로 처리해서 ,를 삽입하는건 쉬운 일이고...



    QuickRep의 경우는 QRLabel의 OnPrint시의 Value가 string 타입입니다.

    OnPrint에서 value를 변경하면, 변경된게 적용됩니다.



    DB를 엑셀로 하는건 아느바 없고,



    처음부터 엑셀로 저장하는건 가능합니다.

    저도 방법은 모르고 좀 찾아 보셔야 할듯...





    조덕현 wrote:

    > 회계 관련 프로그램을 제작 중입니다..

    >

    > 그런데 돈의 액수를 그냥 1000000 표시하면 상당히 불편 하리라 생각

    >

    > 됩니다. 데이타 베이스는 파라독스를 쓰고 있습니다..

    >

    > 데이타 베이스에 저장시 ,(컴마)를 찍어지게 하려면 어떻게 해야 하는지요...

    >

    > 퀵레포드로 출력 하려 합니다.

    >

    > 나중에 인쇄 할때도 ,(컴마)가 찍혀 나오는지요...

    >

    > 글구.,.. 저장된 데이타베이스를 액셀로 옮길수 있는지요..

    >

    > 혹은 처음부터 데이터를 액셀로 저장 시킬수 있는지요...

    >

    > 고수님들 급히 부탁 드립니다..

    >

    >