Fast Report 에서 스트링그리드 내용을 그대로 출력하려고 합니다.
for 문으로 스트링그리드의 RowCount - 1만큼 루프돌면서 한줄씩 찍어야 합니다.
그러나 결과는 앞의 레코드는 덮어씌워져서 없어지고, 마지막 레코드 1줄만 찍힙니다.
Data Band에 한 레코드를 찍고, 밴드를 추가하여 다음 레코드를 찍어야 되는데
배열로 밴드를 만들어야하는지, 아니면 Child Band말고 다른 밴드를 사용해야하는지
이것이 문제입니다.
아래는 리포트 포맷입니다.
번호 날짜 부서 A1 A2 X1 <===== Report Title Band
xxxxx xxxxxx xxxxx xxxxxxxx xxxxxxxxxx xxxxxxxx <===== Child Band
xxxxx xxxxxx xxxxx xxxxxxxx xxxxxxxxxx xxxxxxxx
xxxxx xxxxxx xxxxx xxxxxxxx xxxxxxxxxx xxxxxxxx
xxxxx xxxxxx xxxxx xxxxxxxx xxxxxxxxxx xxxxxxxx
xxxxx xxxxxx xxxxx xxxxxxxx xxxxxxxxxx xxxxxxxx
올려 놓으시고 사용하시면 됩니다
procedure Tform1.frxReportBeforePrint(Sender: TfrxReportComponent);
var
Cross: TfrxCrossView;
begin
if TfrxMemoView(Sender).Name = 'Cross1' then
begin
Cross := TfrxCrossView(Sender);
for i := 0 to 그리드로우카운트 - 1 do
begin
Cross.AddValue([IntToStr(i+1)], ['No'], [IntToStr(i+1)]);
Cross.AddValue([IntToStr(i+1)], ['번호'], [Chile band내용]);
Cross.AddValue([IntToStr(i+1)], [날짜], [Chile band내용]);
Cross.AddValue([IntToStr(i+1)], ['부서'], [Chile band내용]);
Cross.AddValue([IntToStr(i+1)], ['A1''], [Chile band내용]);
Cross.AddValue([IntToStr(i+1)], ['A2'], [Chile band내용]);
Cross.AddValue([IntToStr(i+1)], ['A3'], [Chile band내용]);
end;
end;