Q&A

  • [슈퍼핵..급!질문]QuickReport(퀵리포트)질문..제발...너무 절실해여..ㅠㅠ
안녕하세요 (__)



퀵리포트하나에 두개의 쿼리(Query1,Query2)를 조건다르게 왼쪽 오른쪽으로 나오게 하려합니다.



입고(조건0일때) | 출고(조건1일때)

----------------------------------------------------

번호 | 금액 || 번호 | 금액

----------------------------------------------------

01 | 1,000 || 01 | 2,000

-----------------------------------------------------

이거거든여..ㅡㅡ;..대충 그려보았습니다..

입고일때 쿼리 콤포넌트하나, 출고일때 쿼리 콤포넌트 하나..총 두개 달았습니다.



ex>제가 시도한것은..쿼리2를 설정한 DEText대신 라벨을 넣어 했었지만..

무엇이 잘못인지. 무조건 쿼리1의 개수만큼만 돌더군요.





질문은...위의 경우..

쿼리1과 쿼리2를 설정하였을때..쿼리2까지 확실히 레코드카운트만큼 밴드를 돌게하는 방법입니다.



서브쿼리? 여러번 해봤지만..잘 모르는 이유인지..잘 안되더군요...

(__)부탁드립니다..

여러분의 답변...부탁드릴께요..

오늘도 즐프하세요.



4  COMMENTS
  • Profile
    신호성 2001.05.09 20:14
    퀵리포트의 Dataset프로퍼티를 지정하지 말고 직접 데이타 건수를 지정하는 방법으로 출력하여야 합니다.



    두개의 쿼리는 적절한 시점에 Open되어 있어야 하고,



    BeforePrint Event에서

    procedure TFrom1.QuickRep1BeforePrint( ....)

    begin

    Query1.First;

    Query2.First;

    end





    NeedData Event에서

    procedure TForm1.QuickRep1NeedData(Sender:Tobject; var MoreData:Boolean);

    begin

    MoreData := (not Query1.Eof) or (not Query2.Eof);

    end;



    DetailBand의 BeforePrint Event에서

    procedure TForm1.DetailBand1BeforePrint(...)

    begin

    // Query1의 값

    if (not Query1.Eof) then

    begin

    QRLabel1.Caption := Query1.FieldByName('번호필드명').AsString;

    QRLabel2.Caption := FormamtFloat('#,##0',Query1.FieldByName('금액필드명').AsFloat);

    end

    else begin

    QRLabel1.Caption := '';

    QRLabel2.Caption := '';

    end



    // Query2의 값

    if (not Query2.Eof) then

    begin

    QRLabel3.Caption := Query2.FieldByName('번호필드명').AsString;

    QRLabel4.Caption := FormamtFloat('#,##0',Query2.FieldByName('금액필드명').AsFloat);

    end

    else begin

    QRLabel3.Caption := '';

    QRLabel4.Caption := '';

    end



    // 다음자료로...

    Query1.Next;

    Query2.Next;

    end













    이정석 wrote:

    > 안녕하세요 (__)

    >

    > 퀵리포트하나에 두개의 쿼리(Query1,Query2)를 조건다르게 왼쪽 오른쪽으로 나오게 하려합니다.

    >

    > 입고(조건0일때) | 출고(조건1일때)

    > ----------------------------------------------------

    > 번호 | 금액 || 번호 | 금액

    > ----------------------------------------------------

    > 01 | 1,000 || 01 | 2,000

    > -----------------------------------------------------

    > 이거거든여..ㅡㅡ;..대충 그려보았습니다..

    > 입고일때 쿼리 콤포넌트하나, 출고일때 쿼리 콤포넌트 하나..총 두개 달았습니다.

    >

    > ex>제가 시도한것은..쿼리2를 설정한 DEText대신 라벨을 넣어 했었지만..

    > 무엇이 잘못인지. 무조건 쿼리1의 개수만큼만 돌더군요.

    >

    >

    > 질문은...위의 경우..

    > 쿼리1과 쿼리2를 설정하였을때..쿼리2까지 확실히 레코드카운트만큼 밴드를 돌게하는 방법입니다.

    >

    > 서브쿼리? 여러번 해봤지만..잘 모르는 이유인지..잘 안되더군요...

    > (__)부탁드립니다..

    > 여러분의 답변...부탁드릴께요..

    > 오늘도 즐프하세요.

    >

  • Profile
    이정석 2001.05.09 22:59
    님의 말씀대로 해보았어요..좀전에는 데이타셋을 잡았더라구요..없애고 하니까..

    갯수대로 나오는데..헉..

    오른쪽은 다 나오구요. 정확히.

    왼쪽은 나오긴 나오는데.

    오른쪽과 갯수가 다를경우 마지막레코드가 계속 중복되어 나오게 되네요. 예를들면..

    EX> QUERY1 | QUERY2

    ----------------------------------------

    홍길동 | 철수

    만수 | 영희

    | 영자

    | 맹구

    ----------------------------------------

    위의 데이타처럼 QUERY2의 레코드가 더 많은경우에요.

    이렇게 출력이 되네요..

    > QUERY1 | QUERY2

    ----------------------------------------

    홍길동 | 철수

    만수 | 영희

    만수 | 영자

    만수 | 맹구

    ----------------------------------------

    이렇게..오른쪽 레코드수의 갯수에 마추어 중복된 데이타(만수)가 나오네요.

    ㅠㅠ...전에는 오른쪽이 그러더만..이젠..

    이렇게 부탁만 드려 넘 죄송합니다..

    그래두..이렇게 간절히 부탁드립니다. 아시는고수분들계시다면..도움주시길..







  • Profile
    신호성 2001.05.10 02:42




    // Query1의 값을 출력하는 부분입니다.

    // Query1의 마지막 값 이후에는 값이 출력되지 않는 else문을 수행 하도록 되어

    // 있습니다.

    // 혹시 if 문장에서 [not Query1.Eof] 를 [not Query2.Eof]로 하시지는 않았는지...

    // if 조건문만 정확하다면 그런 경우는 발생하지 않을 겁니다.





    if (not Query1.Eof) then

    begin

    QRLabel1.Caption := Query1.FieldByName('번호필드명').AsString;

    QRLabel2.Caption := FormamtFloat('#,##0',Query1.FieldByName('금액').AsFloat);

    end

    else begin

    QRLabel1.Caption := '';

    QRLabel2.Caption := '';

    end





    이정석 wrote:

    > 님의 말씀대로 해보았어요..좀전에는 데이타셋을 잡았더라구요..없애고 하니까..

    > 갯수대로 나오는데..헉..

    > 오른쪽은 다 나오구요. 정확히.

    > 왼쪽은 나오긴 나오는데.

    > 오른쪽과 갯수가 다를경우 마지막레코드가 계속 중복되어 나오게 되네요. 예를들면..

    > EX> QUERY1 | QUERY2

    > ----------------------------------------

    > 홍길동 | 철수

    > 만수 | 영희

    > | 영자

    > | 맹구

    > ----------------------------------------

    > 위의 데이타처럼 QUERY2의 레코드가 더 많은경우에요.

    > 이렇게 출력이 되네요..

    > > QUERY1 | QUERY2

    > ----------------------------------------

    > 홍길동 | 철수

    > 만수 | 영희

    > 만수 | 영자

    > 만수 | 맹구

    > ----------------------------------------

    > 이렇게..오른쪽 레코드수의 갯수에 마추어 중복된 데이타(만수)가 나오네요.

    > ㅠㅠ...전에는 오른쪽이 그러더만..이젠..

    > 이렇게 부탁만 드려 넘 죄송합니다..

    > 그래두..이렇게 간절히 부탁드립니다. 아시는고수분들계시다면..도움주시길..

    >

    >

    >

  • Profile
    이정석 2001.05.10 19:44
    감사합니다..^^

    언제나 즐프하시구요. 많은 도움되었습니다.

    건강하시구...행복하세요.^^