OnNeedData를 사용하여 조회된 내용을 detail 밴드에 넣고자 합니다.
그런데 맨 마지막으로 레코드만 계속 찍히네요.....
어떻게 해야 할지......
detailbeforeprint에 적은 코딩입니다.
FrmMatq06.Qmat06.First;
For i := 1 To FrmMatq06.Qmat06.Recordcount do
With FrmMatq06.Qmat06 do
begin
showmessage(FieldByName('matcd').AsString);
no.Caption := IntToStr(i) ;
matcd.Caption := FieldByName('matcd').AsString;
matnm.Caption := FieldByName('matnm').AsString;
matspec.Caption := FieldByName('matspec').AsString;
mattypenm.Caption:= FieldByName('mattypenm').AsString;
qty.Caption := IntToStr(FieldByName('qty').AsInteger);
next;
end;
무엇이 문제인가요?
델초보인 스타입니다...
제가 쓰는 방법이 정석인지는 모르겠지만..
저는 이렇게 합니다..(저도 배운 것이라..^^;;)
출력에 필요한 것들을 Record로 정의해서 Array로 밀어넣습니다...
먼저 쿼리를 하고 그 결과 값을 While Not Eof 를 이용해서
Array에 밀어 넣는 거죠..
그 후에 ONNeedData 프로시져에
아래와 같이 코딩합니다...
qlm.Caption := FormatFloat('#,#0', arynacf[Idx].Ycomm );
qlf.Caption := FormatFloat('#,#0', arynacf[Idx].Yprof - arynacf[Idx].Ycomm );
If Idx <= RecCnt Then
MoreData := TRUE
Else
MoreData := FALSE;
INC(Idx);
여기서 RecCnt는 출력해야 할 Row의 값이죠..
detailBeforeband는 사용하지 않았습니다..
이-메일 주신다면 예제소스 보내드리죠..
그럼 이만..^^;;
즐코되세요..^^