Q&A

  • dll생성 후 리포트출력이 안돼요... ㅜ.ㅜ
안녕하세요...
이번에 저희 시스템을 dll로 전환중입니다..
메인폼과 퀵리포트 폼이 use되어있구요..
현재 잘 돌아가고 있습니다..
dll로 전환할때도 특별히 고친부분은 없구요...
그런데 출력만 하면
Econvert error with message ''' is not a integer value
라고 나옵니다..

소스중에 inttostr 부분이 하나 있습니다만
에러처리를 해주었구요.. 문제가 거기가 아닌거 같네요...

리포트 폼의 소스입니다..
이거 오늘까지 해결못하면 집에 못갑니다... --;;
고수님들의 도움을 부탁드리겠습니다....


interface

uses
  Windows, SysUtils, Classes, Graphics, Controls, Forms,
  StdCtrls, Mask, Buttons, ExtCtrls, TXClient, Db, DBTables, Qrctrls,
  quickrpt;

type
  TACS301RF = class(TForm)procedure SetForm(vp_SlipFlag,vp_Flag,vp_DeptCode,vp_DeptNm,vp_Ymd,
                      vp_SlipNo1, vp_SlipNo2, vp_acct_unit : string);
    procedure FormCreate(Sender: TObject);
    procedure QRLabel6Print(sender: TObject; var Value: String);
    procedure qrl_DeptCodePrint(sender: TObject; var Value: String);
    procedure qrl_DeptNmPrint(sender: TObject; var Value: String);
    procedure QRLabel7Print(sender: TObject; var Value: String);
    procedure QR_PrintNeedData(Sender: TObject; var MoreData: Boolean);
    procedure lb5Print(sender: TObject; var Value: String);
    procedure lb7Print(sender: TObject; var Value: String);
    procedure lb8Print(sender: TObject; var Value: String);
    procedure QRBand_SummaryBeforePrint(Sender: TQRCustomBand;
      var PrintBand: Boolean);
    procedure lb13Print(sender: TObject; var Value: String);
    procedure lb14Print(sender: TObject; var Value: String);
    procedure lb12Print(sender: TObject; var Value: String);
    procedure QR_PrintBeforePrint(Sender: TCustomQuickRep;
      var PrintReport: Boolean);
    procedure QR_PrintStartPage(Sender: TCustomQuickRep);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
    ACS301RF: TACS301RF;
    g_rowcnt   : integer; //fetch된 건수
implementation
uses  ACS300R;
{$R *.DFM}
var
    g_SlipFlag       : string;  //전표구분
    g_Flag           : string;  //1:전체,2:전표번호
    g_DeptCode       : string;  //부서코드
    g_DeptNm         : string;  //부서명
    g_Ymd            : string; //발생일자
    g_SlipNo1        : string; //전표번호 from
    g_SlipNo2        : string; //전표번호 to
    g_acct_unit      : string;  //회계단위

    CurrentCount : integer;
    g_tot_dr_amt : double; //차변합계
    g_tot_cr_amt : double; //대변합계
    g_tot_cnt : double; //총건수

procedure TACS301RF.SetForm(vp_SlipFlag,vp_Flag,vp_DeptCode,vp_DeptNm,vp_Ymd,
                            vp_SlipNo1, vp_SlipNo2, vp_acct_unit : string);
begin
  g_SlipFlag      :=    vp_SlipFlag;
  g_Flag          :=    vp_Flag;
  g_DeptCode      :=    vp_DeptCode;
  g_DeptNm        :=    vp_DeptNm;
  g_Ymd           :=    vp_Ymd;
  g_SlipNo1       :=    vp_SlipNo1;
  g_SlipNo2       :=    vp_SlipNo2;
  g_acct_unit     :=    vp_acct_unit; //회계단위
  QR_Print.ReportTitle := '[ACS301R]';
end;

{DB 생성}

procedure TACS301RF.FormCreate(Sender: TObject);
begin
  if Not TXClient_Print.Open Then
  begin
    DispErrMessage(TXClient_Print);
    exit;
  end;

end;

procedure TACS301RF.QRLabel6Print(sender: TObject; var Value: String);
begin
  value := '전표번호:';
end;

procedure TACS301RF.qrl_DeptCodePrint(sender: TObject; var Value: String);
begin
  value := g_DeptCode; //부서코드
end;

procedure TACS301RF.qrl_DeptNmPrint(sender: TObject; var Value: String);
begin
  value := g_DeptNm; //부서코드명
end;

procedure TACS301RF.QRLabel7Print(sender: TObject; var Value: String);
begin
  if g_slipflag = 'N' then value := '미승인전표'
  else value := '승인전표';
end;

procedure TACS301RF.QR_PrintNeedData(Sender: TObject;
  var MoreData: Boolean);
var
  dAmt         : double;
  iFlag        : integer;
//  i,j,k        : integer;
begin
//    ACS301.Fields[0].AsInteger  := k;
  lb5.Caption := '0';
  lb7.Caption := '0';
  lb8.Caption := '0';

  IF CurrentCount < g_rowcnt THEN
  begin
    lb1.Caption := TXClient_Print.StrVal('FML_STR7',   CurrentCount); //계정코드
    lb2.Caption := TXClient_Print.StrVal('FML_STR17',  CurrentCount); //과목명
    lb3.Caption := TXClient_Print.StrVal('FML_STR27',  CurrentCount); //항목명
    lb4.Caption := TXClient_Print.StrVal('FML_STR37',  CurrentCount); //세목명
//  ACS301.Fields[6].AsFloat    := TXClient_Print.DblVal('FML_DBL10',  j); //건수
    lb5.Caption := FloatToStr(TXClient_Print.DblVal('FML_DBL10',  CurrentCount)); //건수
    g_tot_cnt   := g_tot_cnt + TXClient_Print.DblVal('FML_DBL10',  CurrentCount); //총건수

    dAmt    := TXClient_Print.DblVal('FML_DBL11',           CurrentCount);
    iFlag   := strtointdef(TXClient_Print.StrVal('FML_STR10',  CurrentCount),1);
    case iFlag of
    1:
      begin
          lb6.Caption   := '현금';
          lb8.Caption   := FloatToStr(dAmt);
          g_tot_dr_amt := g_tot_dr_amt + dAmt; //차변합계
      end;
    2:
      begin
          lb6.Caption   := '현금';
          lb7.Caption   := FloatToStr(dAmt);
          g_tot_cr_amt := g_tot_cr_amt + dAmt; //대변합계
      end;
    3:
      begin
          lb6.Caption   := '대체';
          lb8.Caption   := FloatToStr(dAmt);
          g_tot_dr_amt := g_tot_dr_amt + dAmt; //차변합계
      end;
    4:
      begin
          lb6.Caption   := '대체';
          lb7.Caption   := FloatToStr(dAmt);
          g_tot_cr_amt := g_tot_cr_amt + dAmt; //대변합계
      end;
    end;
  end;

  inc(CurrentCount);
  MoreData := CurrentCount <= g_rowcnt;
end;

procedure TACS301RF.lb5Print(sender: TObject; var Value: String);
begin
  value := FormatCurr('#,0',StrToCurr(lb5.Caption));
end;

procedure TACS301RF.lb7Print(sender: TObject; var Value: String);
begin
  value := FormatCurr('#,0',StrToCurr(lb7.Caption));
end;

procedure TACS301RF.lb8Print(sender: TObject; var Value: String);
begin
  value := FormatCurr('#,0',StrToCurr(lb8.Caption));
end;

procedure TACS301RF.QRBand_SummaryBeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
  lb12.Caption := FloatToStr(g_tot_cnt);
  lb14.Caption := FloatToStr(g_tot_dr_amt);
  lb13.Caption := FloatToStr(g_tot_cr_amt);
end;

procedure TACS301RF.lb13Print(sender: TObject; var Value: String);
begin
  value := FormatCurr('#,0',StrToCurr(lb13.Caption));
end;

procedure TACS301RF.lb14Print(sender: TObject; var Value: String);
begin
  value := FormatCurr('#,0',StrToCurr(lb14.Caption));
end;

procedure TACS301RF.lb12Print(sender: TObject; var Value: String);
begin
  value := FormatCurr('#,0',StrToCurr(lb12.Caption));
end;

procedure TACS301RF.QR_PrintBeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  CurrentCount := 0;
  PrintReport  := True;

  g_tot_dr_amt := 0; //차변합계
  g_tot_cr_amt := 0; //대변합계
  g_tot_cnt := 0;
end;




=================이 아래부분이 의심스러운 부분입니다...================
procedure TACS301RF.QR_PrintStartPage(Sender: TCustomQuickRep);
begin
  if g_Flag = '1' then                      //전체(계정별)
  begin
//      qrl_SlipNo.Caption    :=  copy(g_SlipNo,1,2);
  qrl_Ymd.Caption       :=  FormatMaskText('0000/00/00;0',g_Ymd);
  lb11.Caption  := TXClient_Print.StrVal('FML_STR8',   0); //JS코드명
  lb9.Caption   := TXClient_Print.StrVal('FML_STR4',   0); //전표번호 from
  lb10.Caption  := TXClient_Print.StrVal('FML_STR4',   1); //전표번호 to
  end
  else if g_Flag = '2' then   //전표번호별 g_Flag => 2
  begin
//      qrl_SlipNo.Caption    :=  '';
  qrl_Ymd.Caption       :=  FormatMaskText('0000/00/00;0',g_Ymd);
  lb11.Caption  := TXClient_Print.StrVal('FML_STR8',   0); //JS코드명
  lb9.Caption   := TXClient_Print.StrVal('FML_STR4',   0); //전표번호 from
  lb10.Caption  := TXClient_Print.StrVal('FML_STR4',   1); //전표번호 to
  end;

//  qrl_Header.Caption    :=  vv_Header;   //타이틀명
(*  qrl_Ymd.Caption       :=  FormatMaskText('0000/00/00;0',g_Ymd);
  lb11.Caption  := TXClient_Print.StrVal('FML_STR8',   0); //JS코드명
  lb9.Caption   := TXClient_Print.StrVal('FML_STR4',   0); //전표번호 from
  lb10.Caption  := TXClient_Print.StrVal('FML_STR4',   1); //전표번호 to *)
end;

end.
0  COMMENTS
    • 전승곤
    • 2002.01.18 20:44
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 채승호
      2002.01.18 22:23
      이렇게 합쳐서 쿼리를 해보세여... report_query.sql.add('where (date_value||time_value  &...
    • 전승곤
      2002.01.19 00:23
      답변감사합니다. 가르켜 주신데로 하였는데요. type mismatch error가 발생합니다. 다시 자세히 좀 부탁...
    • 채승호
      2002.01.19 01:46
        죄송합니다... 저는 당연히 오라클 DB 라고 생각하고 문자형 필드이고   || ...
    • 전승곤
      2002.01.19 18:43
      그러면 paradox db면 사용할 수 있는 방법은 없습니까????? 죄송하지만 한번만 더.......
    • 홍미자
    • 2002.01.18 20:36
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김영범
      2002.01.19 03:15
      답변이 될런지는 모르겠으나 전 현재 델파이 5.0을 쓰고 있습니다. 보통 Resource는 델파이의 특정 콤...
    • 한만교
      2002.01.19 01:50
      프로젝트가 크다면 여러개로 나누세요  Application간 통신을해서 서로 자료를 주고받으면서...
    • 공성환
      2002.01.18 23:02
      정확한 답변은 아니지만... 지금 저도 같은현상으로 리소스를 줄이는 방법을 찾고있죠... 우선 전 델3인...
    • 홍미자
    • 2002.01.18 20:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한만교
      2002.01.19 01:56
      제가 볼때는 Form3이 최초 ShowModal을 잡고있어서 그런거 같은데요.. 그러니까 Form1을 ShowModal...
    • 까비
    • 2002.01.18 20:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 채승호
      2002.01.18 23:12
         TBlobField(FieldByName('이미지필드명')).BlobType := ftBlob;    TBlobField(Fi...
    • 이영주
    • 2002.01.18 20:17
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김동욱
    • 2002.01.18 20:17
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 채승호
      2002.01.18 22:33
        양쪽다 DBGird인것으로 보니까...   모두 DB와 연결이 되어 있는 것으로 보니까....
    • 장영철
      2002.01.19 02:36
      답변에 감사합니다. 조건을 정해 넣어 한큐에 밀어 넣어 주면 좋을것 같은데 초심자라 아직 감이 안오...
    • 머슴
      2002.01.19 04:00
        --     
    • 장영철
      2002.01.21 20:09
      Query1에 있는 모든 것을 Query2로 옮기는 문제가 아니라 DBGrid1에서 선택된 레코드만 DBGrid2(즉 Query2...
    • ccang111
      2002.01.19 04:59
      어제 오늘 고심하다가...답변도 해주시지도 않고...쩝... 제 컴말고 다른 컴에서 F9눌러서 실행하고 실행...
    • 김태훈
    • 2002.01.18 19:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 버섯
      2002.01.18 20:22
      (1) Stored Procedure 로 여러개의 레코드를 한꺼번에 실행하는방법 (2) 클라이언트쪽에 데몬프로그램을...
    • 성더기
      2002.01.18 20:59
      일단 굳이 재실행을 하실 필요는 없을듯합니다 쿼리나 테이블을 닫았다 열면 적용되어 있을겁니다 단 ...
    • KARA
      2002.01.18 21:37
    • 성더기
      2002.01.18 21:03
      일단 쿼리컴포넌트로 불러온 자료는 ReadOnly입니다 편집이 불가능 하다는 말입져... 꼭 편집을 하고 ...
    • 김영일
      2002.01.19 04:18
    • 하기현
    • 2002.01.18 09:48
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 채승호
      2002.01.18 19:13
      통상 insert가 select에 비해 무척 느린 이유 중 하나로 인덱스의 존재를 들 수 있는 데, 상황에 따라 다...
    • 권희수
      2002.01.18 18:59
      한건 인서트 할때마다 커밋을 하면 당근 시간이 많이 걸림니다. 앞의 분이 지적하신부분도 속도저하를 ...
    • 이중철
      2002.01.18 12:25
      첫째로 기존의 데이타건수가 10만건 이상일때의 대량 데이타 입력은 해당 테이블의 인덱스키를 없애고 ...
    • 전기봉
    • 2002.01.18 07:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2002.01.18 07:18
      엑셀시트의 해당영역을 문자로 바꾸면 될거에요 VBSCRIPT는 다음과 같네요.     R...
    • 최영근
      2002.01.18 19:31
      혹시 MS internet explorer 안에 다른 프로그램을 실행하시는 것입니까 ? 아니면 새로운 웹 브라우저를 ...
    • 권동훈
      2002.01.18 20:43
      안녕하세요? 새로운 웹브라우저를 만들기에는 시간이 너무 부족해서 익스플로러안에 윈어플리케이션을 실...
    • 꿈의대화
      2002.01.18 08:46
      .
    • 권동훈
      2002.01.18 20:47
      안녕하세요? 꿈의대화님.. 닷넷... 저도 생각은 해봤었는데 그 분야에 워낙 아는게 없어서..^^ 여기는 ...
    • 최경습
    • 2002.01.18 06:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 채승호
      2002.01.18 06:44
      Dbedit는 dataSet만 연결되면 자동으로 DB와 연결이 됩니다... 따라서 DataSet의 절대적인 영향을 받...
    • 강성호
    • 2002.01.18 06:06
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2002.01.18 06:44
      아래와 같은경우는 저도 여러번 있었어요.. 디버깅도 안되고 답답하실겁니다. 또한 이런버그는 잡기...
    • 이중철
      2002.01.18 06:47
      form1 := TForm1.Create(self); form1.showmodal; if modalresult = mrOK then    &nbs...
    • 채승호
      2002.01.18 06:35
      이렇게 고치시고요...한번 해보시고요... try     form1 := TForm1.Create(self...
    • 이영주
    • 2002.01.18 05:12
    • 0 COMMENTS
    • /
    • 0 LIKES