quick report로 아래와 같이 master/detail 형식에 레포트를 구현했습니다...
--- report호출부분 ---
jesmain.m_dataset1 := pumF.ZQuery1;
jesmain.m_dataset2 := pumF.ZQuery2;
pum_rpt1F := Tpum_rpt1F.Create( Self );
pum_rpt1F.QuickRep1.Preview;
pum_rpt1F.Free;
--- report부분 각 설정처리 부분 ---
procedure Tpum_rpt1F.DetailBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
if jesmain.m_dataset2.RecordCount > 0 then
begin
jesmain.m_dataset2.First;
PrintBand := jesmain.m_dataset2.Eof;
QRSubDetail1.Enabled := True
end
else
QRSubDetail1.Enabled := False;
end;
procedure Tpum_rpt1F.QRGroup1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
if Sender.ControlCount = 0 then
with DetailBand1 do
While ControlCount > 0 do
Controls[0].Parent := Sender;
end;
procedure Tpum_rpt1F.FormCreate(Sender: TObject);
begin
QuickRep1.DataSet := jesmain.m_dataset1;
QRDBText1.DataSet := jesmain.m_dataset1;
QRDBText2.DataSet := jesmain.m_dataset1;
:
:
QRSubDetail1.DataSet := jesmain.m_dataset2;
QRDBText14.DataSet := jesmain.m_dataset2;
:
:
QRDBText18.DataSet := jesmain.m_dataset2;
end;
여기서 jesmain.m_dataset1,2번은 레포트를 호출하는 모듈의 쿼리를 지칭하는 변수입니다...
해당 레포트들을 다른 폼에서도 사용할 수 있도록 변수로 처리했습니다...^^;;
문제점] 직접 프린터로 출력했을때는 잘 출력이 되는데 화면으로 일단 보이고 출력하면 원하는 대로 나오질 않습니다...
뭔소리냐면 마스터/디테일구조라도 디테일사항이 없을수도 있는데 전에는 아래와 같이 사용했더니..
procedure Tpum_rpt1F.DetailBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
jesmain.m_dataset2.First;
PrintBand := jesmain.m_dataset2.Eof;
end;
이렇게 기술하고 사용했드만 디테일이 없으니깐 공백으로 한줄을 만들고 다른 레코드들을 출력하더군요...
타이틀/해드부분
master record-1
공백(detail 내용이 없음)
master record-2
detail record-2-1
detail record-2-2
:
master record-3
detail record-3-1
:
이렇게 나오더군요... 그래서 저 공백을 안나타나게 하려고 아래와 같이 설정했습니다...
procedure Tpum_rpt1F.DetailBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
if jesmain.m_dataset2.RecordCount > 0 then
begin
jesmain.m_dataset2.First;
PrintBand := jesmain.m_dataset2.Eof;
QRSubDetail1.Enabled := True
end
else
QRSubDetail1.Enabled := False;
end;
그러니깐 처음 출력을 할때는 그것이 화면이던 직접적으로 프린터로 인쇄하던 아래와 같이 잘 나오더군요...
타이틀/해드부분
master record-1
master record-2
detail record-2-1
detail record-2-2
:
master record-3
detail record-3-1
:
그런데 이것을 preview해서 프린터 인쇄를 하니깐 master record-1이 아예 나오질 않고 그 자리가 공백으로
나온다는.. 물론 preview했을때는 화면상에는 정상적으로 출력이 됩니다...
타이틀/해드부분
공백( <- master record-1내용이 나와야 하는데 안나옴 )
master record-2
detail record-2-1
detail record-2-2
:
master record-3
detail record-3-1
:
preview를 안하면 되지 않냐고 물으실텐데 그럴수는 없습니다... 일단 화면상으로 먼저 확인을 해야 해서리...
무엇을 더 고쳐야 할런지요??