Q&A

  • DBGrid의 내용을 퀵레포트로 출력하는 방법을 알고 싶습니다.
제가 Query컴포넌트를 이용해 가져온 결과를 DBGrid에 저장했습니다...

DBGrid의 값을 퀵레포트로 출력하는 방법을 알고 싶습니다..

옛날에 제가 성공한적이 있었는데 그때 소스는 지금 날려버려서 없습니다...

델파이로 DB프로그램을 짠지가 오래되어서 기억이 안나는 군요..

누구 아시는 분 좀 가르쳐주세요...

그럼 수고하세요...

1  COMMENTS
  • Profile
    구창민 2000.09.07 14:12
    김태룡 wrote:

    > 제가 Query컴포넌트를 이용해 가져온 결과를 DBGrid에 저장했습니다...

    > DBGrid의 값을 퀵레포트로 출력하는 방법을 알고 싶습니다..

    > 옛날에 제가 성공한적이 있었는데 그때 소스는 지금 날려버려서 없습니다...

    > 델파이로 DB프로그램을 짠지가 오래되어서 기억이 안나는 군요..

    > 누구 아시는 분 좀 가르쳐주세요...

    > 그럼 수고하세요...





    아래 코드는 예전에 다른 분이 답변했던 DBGrid의 선택된



    Row를 퀵리포트로 출력하는 내용입니다.



    그런데 보시면 알겠지만, 북마크 부분을 바꾸어, 전부 출력하시면 되게 프로그래밍 되어 있습니다.



    참고 하시고, 즐거운 프로그래밍 하세요~



    DBGrid의 Option의 RowSelect와 MultiSelect를 True로 해놓으시고, DBGrid의 Selected

    Rows, Table의 GotoBookmark, Filter를 사용하시면 됩니다.



    아래 코드를 참조하세요. 'Name'은 unique한 값이 있는 필드명입니다.



    procedure TForm1.btnPrintClick(Sender: TObject);

    var i: integer;

    bmList: TBookmarkList;

    tmpStr: string;

    begin

    if DBGrid1.SelectedRows.Count > 0 then begin

    bmList := DBGrid1.SelectedRows;

    for i := 0 to bmList.Count -1 do

    begin

    table1.GotoBookmark(PChar(bmlist[i]));

    tmpStr := table1.fieldbyname('Name').AsString;

    if i = 0 then

    table1.Filter := 'name = '+#39+tmpStr+#39

    else

    table1.Filter := table1.Filter + 'or name = '+ #39+tmpStr+#39;

    end;

    end;

    Table1.Filtered := True; frmPrint.QuickRep1.Preview;

    Table1.Filtered := False;

    end;