Q&A

  • stringgrid의 내용을 바로 quickreport로 보내는방법
stringgrid의 내용을 바로 quickreport로 보내는방법을 아시면 말씀해 주세요..

detail bander의 beforeprint에 stringgrid의 셀을 매치 시키면 되는데 문제는 dataset의 자료수 만큼만 detail부분이 루핑이 돌아 찍힙니다. dataset을 지정하지 않고 detail부분이 출력되도록 하는 방법을 아시는분은 답변주세요..

2  COMMENTS
  • Profile
    이상준 1999.09.18 00:39
    skylee wrote:

    > stringgrid의 내용을 바로 quickreport로 보내는방법을 아시면 말씀해 주세요..

    > detail bander의 beforeprint에 stringgrid의 셀을 매치 시키면 되는데 문제는 dataset의 자료수 만큼만 detail부분이 루핑이 돌아 찍힙니다. dataset을 지정하지 않고 detail부분이 출력되도록 하는 방법을 아시는분은 답변주세요..

    -------------------------------------------------------------

    일단 글로벌 변수로 iCurrentItem을 선언하시고

    QuickReport의 이벤트에 다음과 같은 식으로 코딩하세요.



    procedure TForm1.QuickRep1BeforePrint(Sender: TQuickRep;

    var PrintReport: Boolean);

    begin

    iCurrentItem := 1;

    PrintReport := StringGrid1.RowCount > 1;

    end;



    procedure TForm1.QuickRep1NeedData(Sender: TObject;

    var MoreData: Boolean);

    begin

    // 각자 환경에 맞게 라벨에 stringgrid의 값을 옮겨줌.

    QRLabel1.Caption := StringGrid1.Cells[1, iCurrentItem];

    QRLabel2.Caption := StringGrid1.Cells[2, iCurrentItem];

    QRLabel3.Caption := StringGrid1.Cells[3, iCurrentItem];

    QRLabel4.Caption := StringGrid1.Cells[4, iCurrentItem];

    Inc( iCurrentItem );

    MoreData := iCurrentItem < StringGrid1.RowCount ;

    end;



  • Profile
    skylee 1999.09.22 18:03
    보내주신 메일 덕분으로 저의 문제가 해결되어 앞으로 많은 코딩 시간이 단축될 것 같습니다. 많은 도움을 주셔서 정말 감사드립니다.

    또 질문 드릴게 있는데요, Quick report의 TQRGroup 의 expression에 StringGrid의 특정 칼럼을 지정하여 grouping 되게 하여 출력 하는 방법을 아시는지요?



    TQRGroup 밴더에 month라는 TQRlabel을 두고 TQRGroup 밴더의 expression에 month.caption 으로 지정하고 TQTBan를 놓고 groupfooter로 지정한 후 '합계' TQRlabel과 sum TQRExpr을 두고 sum TQRExpr의 expresstion에 SUM(strtofloat(amt.caption))으로 지정한 다음,

    TQRGroup 의 BeforePrint 이벤트에 month.caption := StringGrid1.Cells[1, iCurrentItem]; (month로 grouping 함)

    라고 코딩을 했는데 group header와 footer가 전혀 출력 되지 않습니다.

    어디가 문제 인지 아니면, 다른 컴포넌트를 사용 해야 하는지 조언 부탁드립니다.

    수고 하세요..