Q&A

  • OnNeedData를 사용하여 조회된 내용을 detail 밴드에....
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;

무엇이 문제인가요?

1  COMMENTS
  • Profile
    스타시커 2001.10.15 22:29
    안녕하세요..



    델초보인 스타입니다...



    제가 쓰는 방법이 정석인지는 모르겠지만..



    저는 이렇게 합니다..(저도 배운 것이라..^^;;)



    출력에 필요한 것들을 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는 사용하지 않았습니다..



    이-메일 주신다면 예제소스 보내드리죠..



    그럼 이만..^^;;



    즐코되세요..^^