전에 질문했는데 답변이 없어어염....
지금 퀵레포트의 디테일 벤드에
QRLabel1 QRLabel2 QRLabel3 QRLabel4 QRLabel5 QRLabel6 QRLabel7 QRLabel8 QRLabel9 이케 되있는데염.....
지금 프로그램 짠건 스트링그리드에서 퀵레포트로 출력해주는건데염....
예를 들어 스트링그리드에
월 화 수 목 금 토 일 합계
여자 1 1 1 1 2 1 1 8
남자 0 4 2 1 2 2 1 12
합계 1 5 3 2 4 3 2 20
이케 되있는걸염...
퀵레포트에.... 다음과 같이 나타낼려구하거든여....
월 화 수 목
여자 1 1 1 1
남자 0 4 2 1
합계 1 5 3 2
금 토 일 합계
여자 2 1 1 8
남자 2 2 1 12
합계 4 3 2 20
아래는 그냥....스트링그리드에 있는 고대로로 출력하게하는데염...
스트링 그리드의 colcount가 5개까지만....
먼저찍어주구...다음부터는 5개항목을 다 찍어주구난다음에 찍어주게 위같이 할려구하거든여....
근데 아래 소스를 어케 해야할지 모르겠어염....
부탁합니다...제발....답변주세염....
위에 디테일 벤드는 어케 수정해야하나여?
디테일벤드를 밑에 하나 더 만들어서.... 돌려봤더니....
밑에꺼만 찍히더라구염...왜그러져????
방법이 없나여????
procedure TForm2.reportBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
rowno:=0;
end;
procedure TForm2.reportNeedData(Sender: TObject; var MoreData: Boolean);
begin
with frmsanalysis.sg do
begin
if rowno >= RowCount then
begin
MoreData := False;
end
else
begin
qrlabel1.Caption := Cells[ 0,rowNo];
qrlabel2.Caption := Cells[ 1,RowNo];
qrlabel3.Caption := Cells[ 2,RowNo];
qrlabel4.Caption := Cells[ 3,RowNo];
qrlabel5.Caption := Cells[ 4,RowNo];
qrlabel6.Caption := Cells[ 5,RowNo];
qrlabel7.Caption := Cells[ 6,RowNo];
qrlabel8.Caption := Cells[ 7,RowNo];
qrlabel9.Caption := Cells[ 8,rowNo];
end;
if RowNo < RowCount then
MoreData := True
else
begin
MoreData := False;
end;
Inc(RowNo);
end;
end;
end.
더 좋은 방법이 있는진 모르겠구여...
아래 참조해보세여...^^
=================================================================================
procedure TForm2.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
rowno := 0;
dataEnd := False; //변수 선언해 주시구여...
end;
procedure TForm2.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
begin
with form1.StringGrid1 do
begin
if (rowno >= RowCount) and dataEnd then //여기서 체크해서 끝내세여....
begin
MoreData := False;
end
else
begin
if not dataEnd then //스트링그리드 처음 참조할때
begin
qrlabel1.Caption := Cells[ 0,rowNo];
qrlabel2.Caption := Cells[ 1,RowNo];
qrlabel3.Caption := Cells[ 2,RowNo];
qrlabel4.Caption := Cells[ 3,RowNo];
qrlabel5.Caption := Cells[ 4,RowNo];
end
else //스트링그리드 두번째 참조할때
begin
qrlabel1.Caption := Cells[ 0,rowNo];
qrlabel2.Caption := Cells[ 5,RowNo];
qrlabel3.Caption := Cells[ 6,RowNo];
qrlabel4.Caption := Cells[ 7,RowNo];
qrlabel5.Caption := Cells[ 8,rowNo];
end;
end;
if RowNo < RowCount then
begin
MoreData := True;
Inc(RowNo);
end
else if not dataEnd then //스트링그리드를 한번다 참조했으면 dataEnd 변수바꾸고
begin //rowno를 초기화시키세여...
MoreData := True;
dataEnd := True;
RowNo := 0;
end;
end;
end;
==================================================================================
노력중인 초보 wrote:
> 전에 질문했는데 답변이 없어어염....
>
> 지금 퀵레포트의 디테일 벤드에
> QRLabel1 QRLabel2 QRLabel3 QRLabel4 QRLabel5 QRLabel6 QRLabel7 QRLabel8 QRLabel9 이케 되있는데염.....
> 지금 프로그램 짠건 스트링그리드에서 퀵레포트로 출력해주는건데염....
> 예를 들어 스트링그리드에
>
> 월 화 수 목 금 토 일 합계
> 여자 1 1 1 1 2 1 1 8
> 남자 0 4 2 1 2 2 1 12
> 합계 1 5 3 2 4 3 2 20
> 이케 되있는걸염...
> 퀵레포트에.... 다음과 같이 나타낼려구하거든여....
>
> 월 화 수 목
> 여자 1 1 1 1
> 남자 0 4 2 1
> 합계 1 5 3 2
> 금 토 일 합계
> 여자 2 1 1 8
> 남자 2 2 1 12
> 합계 4 3 2 20
>
> 아래는 그냥....스트링그리드에 있는 고대로로 출력하게하는데염...
> 스트링 그리드의 colcount가 5개까지만....
> 먼저찍어주구...다음부터는 5개항목을 다 찍어주구난다음에 찍어주게 위같이 할려구하거든여....
> 근데 아래 소스를 어케 해야할지 모르겠어염....
> 부탁합니다...제발....답변주세염....
> 위에 디테일 벤드는 어케 수정해야하나여?
> 디테일벤드를 밑에 하나 더 만들어서.... 돌려봤더니....
> 밑에꺼만 찍히더라구염...왜그러져????
>
> 방법이 없나여????
>
>
> procedure TForm2.reportBeforePrint(Sender: TCustomQuickRep;
> var PrintReport: Boolean);
> begin
> rowno:=0;
> end;
>
> procedure TForm2.reportNeedData(Sender: TObject; var MoreData: Boolean);
> begin
> with frmsanalysis.sg do
> begin
> if rowno >= RowCount then
> begin
> MoreData := False;
> end
> else
> begin
> qrlabel1.Caption := Cells[ 0,rowNo];
> qrlabel2.Caption := Cells[ 1,RowNo];
> qrlabel3.Caption := Cells[ 2,RowNo];
> qrlabel4.Caption := Cells[ 3,RowNo];
> qrlabel5.Caption := Cells[ 4,RowNo];
> qrlabel6.Caption := Cells[ 5,RowNo];
> qrlabel7.Caption := Cells[ 6,RowNo];
> qrlabel8.Caption := Cells[ 7,RowNo];
> qrlabel9.Caption := Cells[ 8,rowNo];
> end;
> if RowNo < RowCount then
> MoreData := True
> else
> begin
> MoreData := False;
> end;
> Inc(RowNo);
>
> end;
> end;
>
> end.