Q&A

  • 퀵리포트 너무 어려워요......
저는 퀵리포트를 처음 접해보는 퀵 초보 입니다.

델파이에서 쿼리 콤포넌트의 사용은 어느정도 한다고 생각하는데...

퀵리포트에 쿼리의 결과를 넣기가 상당히 힘이 듭니다.

아래에 나와 있는 질문과 답변들을 봐서

물론 모든 답변을 이해한것은 아니지만

대부분은 제 프로그램에 적용시킬수 있었습니다.

하지만 아무리 고민을 하고 만들어 봐도 도무지....

퀴리부터 어떻게 해야하고 퀵리포트를 만들어야 하는지.

모르겠습니다.

도사님들의 조언이 절실히 필요합니다.

아무리 어려운 구문을 사용하더라도 가능하기만 하면

좀 가르쳐 주세요

몇일 을 밤세워 서라도 이해하도록 하겠습니다.

이제 어떤 건지 설명 하겠습니다.



납품처 => 갑,을,병 의 세개가 있고,

품목 => A,B,C 의 세개가 있습니다.

데이터를 입력 할때는

품목 납품처 수량

A 갑 10

A 을 20

A 병 30

B 갑 11

B 을 21

B 병 31

C 갑 12

C 을 22

C 병 32

실제 테이블에 이렇게 저장이 됩니다.



퀵리포트에는

품목 갑 을 병 합계

A 10 20 30 60

B 11 21 31 63

C 12 22 32 66

합계 33 63 93

이렇게 출력되게 하려고 합니다.

여기다가 더 추가되는 기능이

납품처 리스트가 추가, 삭제, 변경이 될수 있습니다.

그래서 납품처가 10곳이 넘으면 다음 페이지에

예)

품목 갑 을 병 합계

A 10 20 30 60

B 11 21 31 63

C 12 22 32 66

합계 33 63 93



품목 정 무 기 합계

A 10 20 30 60

B 11 21 31 63

C 12 22 32 66

합계 33 63 93

이렇게 품목은 중복이 되지만 납품처는 한페이지에 표현할수 있는

항목만 나타나고 다음 페이지는 같은 품목에 나머지 납품처가

나타 나게 하려고 합니다.

물론 두번째 페이지에도 모자르면 세번째 페이지....

그이상도 가능하여야 합니다.



SQL 문을 이용해서 생각해고 답이 안나오고....]

퀵 리포트에서 생각해고 답이 나오지 않습니다.

도와 주세요....

이것 때문에 일주일째 잠을 못자고 있습니다....흑흑

가엾은 어린양을 보살피시어

부디 도와 주시기 바랍니다.....





2  COMMENTS
  • Profile
    신호성 1999.07.04 21:14
    강경중 께서 말씀하시기를...

    > 저는 퀵리포트를 처음 접해보는 퀵 초보 입니다.

    > 델파이에서 쿼리 콤포넌트의 사용은 어느정도 한다고 생각하는데...

    > 퀵리포트에 쿼리의 결과를 넣기가 상당히 힘이 듭니다.

    > 아래에 나와 있는 질문과 답변들을 봐서

    > 물론 모든 답변을 이해한것은 아니지만

    > 대부분은 제 프로그램에 적용시킬수 있었습니다.

    > 하지만 아무리 고민을 하고 만들어 봐도 도무지....

    > 퀴리부터 어떻게 해야하고 퀵리포트를 만들어야 하는지.

    > 모르겠습니다.

    > 도사님들의 조언이 절실히 필요합니다.

    > 아무리 어려운 구문을 사용하더라도 가능하기만 하면

    > 좀 가르쳐 주세요

    > 몇일 을 밤세워 서라도 이해하도록 하겠습니다.

    > 이제 어떤 건지 설명 하겠습니다.

    >

    > 납품처 => 갑,을,병 의 세개가 있고,

    > 품목 => A,B,C 의 세개가 있습니다.

    > 데이터를 입력 할때는

    > 품목 납품처 수량

    > A 갑 10

    > A 을 20

    > A 병 30

    > B 갑 11

    > B 을 21

    > B 병 31

    > C 갑 12

    > C 을 22

    > C 병 32

    > 실제 테이블에 이렇게 저장이 됩니다.

    >

    > 퀵리포트에는

    > 품목 갑 을 병 합계

    > A 10 20 30 60

    > B 11 21 31 63

    > C 12 22 32 66

    > 합계 33 63 93

    > 이렇게 출력되게 하려고 합니다.

    > 여기다가 더 추가되는 기능이

    > 납품처 리스트가 추가, 삭제, 변경이 될수 있습니다.

    > 그래서 납품처가 10곳이 넘으면 다음 페이지에

    > 예)

    > 품목 갑 을 병 합계

    > A 10 20 30 60

    > B 11 21 31 63

    > C 12 22 32 66

    > 합계 33 63 93

    >

    > 품목 정 무 기 합계

    > A 10 20 30 60

    > B 11 21 31 63

    > C 12 22 32 66

    > 합계 33 63 93

    > 이렇게 품목은 중복이 되지만 납품처는 한페이지에 표현할수 있는

    > 항목만 나타나고 다음 페이지는 같은 품목에 나머지 납품처가

    > 나타 나게 하려고 합니다.

    > 물론 두번째 페이지에도 모자르면 세번째 페이지....

    > 그이상도 가능하여야 합니다.

    >

    > SQL 문을 이용해서 생각해고 답이 안나오고....]

    > 퀵 리포트에서 생각해고 답이 나오지 않습니다.

    > 도와 주세요....

    > 이것 때문에 일주일째 잠을 못자고 있습니다....흑흑

    > 가엾은 어린양을 보살피시어

    > 부디 도와 주시기 바랍니다.....

    >

    >



    안녕하세요 강경중씨? 어려운 문제로 고생 많으십니다.



    먼저 어떤 데이터베이스를 사용하는가에 따라 방법이 틀려질 것 같군요.

    일반적인RDB라면 Stored Procedure를 이용하는 것이 가장 쉬운 방법일것 같구요.

    (어떤 RDB의 경우는 위와같은 매트릭스테이블을 지원하는걸로 알고 있습니다)





    그렇지 않다면 어렵더라도 먼길을 돌아가셔야 하겠네요.

    아마도 파라독스를 사용하실것 같은데...

    위와같은 형태의 자료를 쉽게 산출할 수 있는 방법으로 Decision Cube를 이용하면

    결과값은 쉽게 구할 수 있지만 이를 Report로 출력하려면 조금은 수고를 하셔야 합니다.





    또다른 중요한 포인트는 가변항목의 문제입니다.

    질문에서는 납품처가 가변적이라 하셨는데 품목은 변하지 않는지가 중요하구요.

    가변적인 항목을 강경중씨의 생각처럼 가로로 나열하여 10개항목이 넘으면 다음페이지에

    출력하려는 생각은 퀵레포트의 특성상 쉽지 않은 방법입니다.

    즉 거래처가 가변적이고 품목이 고정된다면 위 출력방법과 반대로 거래처와 품목을 바꾸어

    출력하는것이 훨씬 쉬운방법입니다.



    (품목이 고정적이라는 가정하에)

    Query를 이용하여 출력하는 경우에도 몇가지 방법이 있을것 같은데요.

    먼저 가장 생각하기 쉬운 방법은 두개의 쿼리를 이용하여 거래처 목록과 결과값을

    각각 산출하여 조합하는 방법입니다

    먼저 하나의 쿼리는 거래처만 Select하여 (SELECT DISTINCT 거래처명 FROM TABLE명) DetailBand

    에 출력하면 아래와 같겠죠.



    거래처 품목A 품목B 품목C 합계



















    다른 하나의 Query는 품목의 값을 구하되 거래처 Query를

    마스터로 설정(품목Query의 DataSource를 거래처Query의 DataSource로 설정)합니다.

    SQL의 내용을 아래와 같은 형태로 처리하여 품목란에 출력하면 되겠죠.

    SELECT A, B, C, A+B+C FROM Table명

    WHERE 거래처명 = :거래처명

    GROUP BY 거래처명



    또다른 방법은 아예 완전한 결과목록을 Query로 만들어 내는 방법인데요.

    이 방법은 좀더 복잡하지만 시도할 가치가 있는 방법입니다.

    동적으로 SQL을 생성하고 값을 산출하여 대입하는 방법인데 설명하기에는 너무 내용이 길어져

    생략합니다.(조금 응용하면 Decision Cube와 같은 기능을 할 수 있죠.)



    만일 품목마져도 가변적이라면 상황은 좀더 복잡해져서 레포트 출력 콤포넌트를 동적으로 생성하고

    처리해야 합니다. 이런 방법으로 프로그램을 한번 해보시면 아마도 퀵레포트쯤은 손안에 넣을 수 있을겁니다.



    또다른 많은 방법들이 있을겁니다.

    이것 저것 시도해 보시구 해결하지 못하면 Mail주세요.

    그땐 실제 내용을 가지고 같이 고민해보죠.









  • Profile
    손인호 1999.07.05 17:19
    신호성 께서 말씀하시기를...

    > 강경중 께서 말씀하시기를...

    > > 저는 퀵리포트를 처음 접해보는 퀵 초보 입니다.

    > > 델파이에서 쿼리 콤포넌트의 사용은 어느정도 한다고 생각하는데...

    > > 퀵리포트에 쿼리의 결과를 넣기가 상당히 힘이 듭니다.

    > > 아래에 나와 있는 질문과 답변들을 봐서

    > > 물론 모든 답변을 이해한것은 아니지만

    > > 대부분은 제 프로그램에 적용시킬수 있었습니다.

    > > 하지만 아무리 고민을 하고 만들어 봐도 도무지....

    > > 퀴리부터 어떻게 해야하고 퀵리포트를 만들어야 하는지.

    > > 모르겠습니다.

    > > 도사님들의 조언이 절실히 필요합니다.

    > > 아무리 어려운 구문을 사용하더라도 가능하기만 하면

    > > 좀 가르쳐 주세요

    > > 몇일 을 밤세워 서라도 이해하도록 하겠습니다.

    > > 이제 어떤 건지 설명 하겠습니다.

    > >

    > > 납품처 => 갑,을,병 의 세개가 있고,

    > > 품목 => A,B,C 의 세개가 있습니다.

    > > 데이터를 입력 할때는

    > > 품목 납품처 수량

    > > A 갑 10

    > > A 을 20

    > > A 병 30

    > > B 갑 11

    > > B 을 21

    > > B 병 31

    > > C 갑 12

    > > C 을 22

    > > C 병 32

    > > 실제 테이블에 이렇게 저장이 됩니다.

    > >

    > > 퀵리포트에는

    > > 품목 갑 을 병 합계

    > > A 10 20 30 60

    > > B 11 21 31 63

    > > C 12 22 32 66

    > > 합계 33 63 93

    > > 이렇게 출력되게 하려고 합니다.

    > > 여기다가 더 추가되는 기능이

    > > 납품처 리스트가 추가, 삭제, 변경이 될수 있습니다.

    > > 그래서 납품처가 10곳이 넘으면 다음 페이지에

    > > 예)

    > > 품목 갑 을 병 합계

    > > A 10 20 30 60

    > > B 11 21 31 63

    > > C 12 22 32 66

    > > 합계 33 63 93

    > >

    > > 품목 정 무 기 합계

    > > A 10 20 30 60

    > > B 11 21 31 63

    > > C 12 22 32 66

    > > 합계 33 63 93

    > > 이렇게 품목은 중복이 되지만 납품처는 한페이지에 표현할수 있는

    > > 항목만 나타나고 다음 페이지는 같은 품목에 나머지 납품처가

    > > 나타 나게 하려고 합니다.

    > > 물론 두번째 페이지에도 모자르면 세번째 페이지....

    > > 그이상도 가능하여야 합니다.

    > >

    > > SQL 문을 이용해서 생각해고 답이 안나오고....]

    > > 퀵 리포트에서 생각해고 답이 나오지 않습니다.

    > > 도와 주세요....

    > > 이것 때문에 일주일째 잠을 못자고 있습니다....흑흑

    > > 가엾은 어린양을 보살피시어

    > > 부디 도와 주시기 바랍니다.....

    > >

    > >

    >

    > 안녕하세요 강경중씨? 어려운 문제로 고생 많으십니다.

    >

    > 먼저 어떤 데이터베이스를 사용하는가에 따라 방법이 틀려질 것 같군요.

    > 일반적인RDB라면 Stored Procedure를 이용하는 것이 가장 쉬운 방법일것 같구요.

    > (어떤 RDB의 경우는 위와같은 매트릭스테이블을 지원하는걸로 알고 있습니다)

    >

    >

    > 그렇지 않다면 어렵더라도 먼길을 돌아가셔야 하겠네요.

    > 아마도 파라독스를 사용하실것 같은데...

    > 위와같은 형태의 자료를 쉽게 산출할 수 있는 방법으로 Decision Cube를 이용하면

    > 결과값은 쉽게 구할 수 있지만 이를 Report로 출력하려면 조금은 수고를 하셔야 합니다.

    >

    >

    > 또다른 중요한 포인트는 가변항목의 문제입니다.

    > 질문에서는 납품처가 가변적이라 하셨는데 품목은 변하지 않는지가 중요하구요.

    > 가변적인 항목을 강경중씨의 생각처럼 가로로 나열하여 10개항목이 넘으면 다음페이지에

    > 출력하려는 생각은 퀵레포트의 특성상 쉽지 않은 방법입니다.

    > 즉 거래처가 가변적이고 품목이 고정된다면 위 출력방법과 반대로 거래처와 품목을 바꾸어

    > 출력하는것이 훨씬 쉬운방법입니다.

    >

    > (품목이 고정적이라는 가정하에)

    > Query를 이용하여 출력하는 경우에도 몇가지 방법이 있을것 같은데요.

    > 먼저 가장 생각하기 쉬운 방법은 두개의 쿼리를 이용하여 거래처 목록과 결과값을

    > 각각 산출하여 조합하는 방법입니다

    > 먼저 하나의 쿼리는 거래처만 Select하여 (SELECT DISTINCT 거래처명 FROM TABLE명) DetailBand

    > 에 출력하면 아래와 같겠죠.

    >

    > 거래처 품목A 품목B 품목C 합계

    > 갑

    > 을

    > 병

    > 정

    > 진

    > 사

    > 오

    > 미

    >

    > 다른 하나의 Query는 품목의 값을 구하되 거래처 Query를

    > 마스터로 설정(품목Query의 DataSource를 거래처Query의 DataSource로 설정)합니다.

    > SQL의 내용을 아래와 같은 형태로 처리하여 품목란에 출력하면 되겠죠.

    > SELECT A, B, C, A+B+C FROM Table명

    > WHERE 거래처명 = :거래처명

    > GROUP BY 거래처명

    >

    > 또다른 방법은 아예 완전한 결과목록을 Query로 만들어 내는 방법인데요.

    > 이 방법은 좀더 복잡하지만 시도할 가치가 있는 방법입니다.

    > 동적으로 SQL을 생성하고 값을 산출하여 대입하는 방법인데 설명하기에는 너무 내용이 길어져

    > 생략합니다.(조금 응용하면 Decision Cube와 같은 기능을 할 수 있죠.)

    >

    > 만일 품목마져도 가변적이라면 상황은 좀더 복잡해져서 레포트 출력 콤포넌트를 동적으로 생성하고

    > 처리해야 합니다. 이런 방법으로 프로그램을 한번 해보시면 아마도 퀵레포트쯤은 손안에 넣을 수 있을겁니다.

    >

    > 또다른 많은 방법들이 있을겁니다.

    > 이것 저것 시도해 보시구 해결하지 못하면 Mail주세요.

    > 그땐 실제 내용을 가지고 같이 고민해보죠.

    >

    >

    굳이 퀵리포트나 쿼리를 하용하지 않아도 된다면, 그리드나 배열을 이용하여

    미리 결과를 만든후에 그 결과를 리포트오 보내는 방법이 훨신 쉬울것 같군요.









    • 강경중
    • 1999.07.04 00:00
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 신호성
      1999.07.04 21:14
      강경중 께서 말씀하시기를... > 저는 퀵리포트를 처음 접해보는 퀵 초보 입니다. > 델파이에서 쿼리 콤포...
    • 손인호
      1999.07.05 17:19
      신호성 께서 말씀하시기를... > 강경중 께서 말씀하시기를... > > 저는 퀵리포트를 처음 접해보는 퀵 초...
    • 정남용
    • 1999.04.16 01:29
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김정선
      1999.04.23 00:51
      저두 같은 문제로 올렸는데 고맙게도 web@ns.nilex.co.kr라는 분이 메일을 보내왔더라구요.. Autoexec.bat...
    • 이정욱
      1999.04.17 02:26
      저도 역시 이런 문제 때문에 고생을 한적이 있었습니다. 전 엑세스 DB를 사용했을때 문제였죠. 그래서 결...
    • 김정선
      1999.04.16 22:56
      저두 같은 문제가 있었어요.. 아시는 분 꼭좀 가르쳐 주세요 전 델파이4.0 오라클 8.0.5버젼을 가지고 ...
    • 왕초
    • 1999.07.03 21:28
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 강지영
      1999.04.23 00:51
      구창민님의 홈페이지 팁/강좌란에서 읽은 팁입니다. 실행을 하니까 그리드의 타이틀을 클릭하는 대로 쿼리...
    • 배리스
      1999.04.23 17:51
      안녕하세요. 강지영씨.. 오늘은 날씨가 별로 좋지 않네요. 하지만 이런 날씨가 더 좋은것 같습니다. 왜냐...
    • 김길중
    • 1999.07.03 20:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.07.03 21:09
      코드에디터 밑의 에러와 워닝을 보여주는 창을 유심히 살펴보세요.. 혹시 그곳에 Can not output 어쩌구 ...
    • 권용만
    • 1999.04.22 19:12
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.04.22 19:50
      권용만 wrote: > 항상 도움을 주셔서 감사합니다. > RunTime시에 Table 또는 Query에 필드를 넣으려 합니...
    • 권용만
      1999.04.22 22:56
      신인재 wrote: > 권용만 wrote: > > 항상 도움을 주셔서 감사합니다. > > RunTime시에 Table 또는 Query...
    • 신인재
      1999.04.23 00:43
      권용만 wrote: > 신인재 wrote: > > 권용만 wrote: > > > 항상 도움을 주셔서 감사합니다. > > > RunTi...
    • 황인수
    • 1999.04.22 23:55
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이호선
      1999.07.03 19:24
      안녕하세요 LightLib가격에 대해 궁금합니다. Nilex싸이트에 가보았지만 그에대한 사항은 없더군요. 답...
    • 이정욱
      1999.07.03 21:06
      LightLib는 현재 단종된 품목입니다. 미국 Luxent사에서 더이상 업그레이드와 기술지원을 안한다고 하네요...
    • 송동일
      1999.04.22 19:02
      스트링 중간에 콤마가 있는 것을 float로 바꾸려면 어떻게 해야 되는지 궁금합니다. 예를 들면 스트링 ...
    • 안치봉
      1999.04.22 19:20
      송동일 wrote: > 스트링 중간에 콤마가 있는 것을 float로 바꾸려면 어떻게 해야 되는지 > 궁금합니다. ...
    • 송동일
      1999.04.22 19:36
      안치봉 wrote: > 송동일 wrote: > > 스트링 중간에 콤마가 있는 것을 float로 바꾸려면 어떻게 해야 되는...
    • 글쎄요.
      1999.04.22 23:29
      송동일 wrote: > 안치봉 wrote: > > 송동일 wrote: > > > 스트링 중간에 콤마가 있는 것을 float로 바꾸...
    • 안치봉
      1999.04.22 19:51
      송동일 wrote: > 안치봉 wrote: > > 송동일 wrote: > > > 스트링 중간에 콤마가 있는 것을 float로 바꾸...
    • 권용만
    • 1999.04.22 19:12
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 한승협
      1999.07.03 14:28
      안냐세여~ 거두절미하고.. 도서관프로그램을 짜보고 있는데요. 간단히 요약하믄.. 대출테이블(lend)의 ...
    • 신인재
      1999.04.22 19:50
      권용만 wrote: > 항상 도움을 주셔서 감사합니다. > RunTime시에 Table 또는 Query에 필드를 넣으려 합니...
    • 신호성
      1999.07.03 18:24
      한승협 께서 말씀하시기를... > 안냐세여~ 거두절미하고.. > > 도서관프로그램을 짜보고 있는데요. 간...
    • 권용만
      1999.04.22 22:56
      신인재 wrote: > 권용만 wrote: > > 항상 도움을 주셔서 감사합니다. > > RunTime시에 Table 또는 Query...
    • 시밀레
      1999.07.03 15:37
      이렇게 해보세요. 아래 예는 오라클에서입니다. select count(*) from lend le,usr us where le.user...
    • 신인재
      1999.04.23 00:43
      권용만 wrote: > 신인재 wrote: > > 권용만 wrote: > > > 항상 도움을 주셔서 감사합니다. > > > RunTi...
    • 김성희
      1999.04.21 09:07
      제가 현재 메인폼을 만들고 있는데요... 2개의 폼을 썼거든요..!! 1개의 폼은 메뉴바부분으로 쓰고, 또...
    • 김경수
      1999.07.04 07:25
      안녕하세요 김경수라고 합니다. 저같은경우는요 일단 사용하는 디비의 알리아스를설정부분이 레지스트리 ...
    • 이채원
      1999.04.21 09:54
      김성희 wrote: > 제가 현재 메인폼을 만들고 있는데요... > 2개의 폼을 썼거든요..!! > 1개의 폼은 메뉴...
    • 김성희
      1999.04.22 21:11
      빠른 답변 고맙습니다. 급한거였느데... 그럼, 행복하세요.
    • 강지영
    • 1999.04.21 05:31
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 디제이
      1999.07.03 07:59
      프로그램 시작시 화면을 숨긴상태로 구동시켜 일정시간이 지나면 나타나게 할려고 합니다. Form1.For...
    • 박홍석
      1999.04.21 09:20
      강지영 wrote: > 라디오그룹에 세개의 아이템(Cust_No,Name,Phone)을 넣구요 > Edit1.Text를 넘겨받아서 ...
    • 그냥
      1999.07.08 00:14
      숨길때는 Form1.hide; 보일때는 Form1.show; 해보세요. 디제이 께서 말씀하시기를... > > 프로그램...
    • 강지영
      1999.04.22 20:47
      박홍석 wrote: > 강지영 wrote: > > 라디오그룹에 세개의 아이템(Cust_No,Name,Phone)을 넣구요 > > Edi...
    • 김형하
    • 1999.04.22 20:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.23 07:10
      네.. 저희도 통신 프로그램의 터미널을 만들때 부딪혔던 문제입니다. 프린터같은 경우면 간단하게 LineTo...
    • 신호철
    • 1999.04.22 19:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.04.22 20:18
      신호철 wrote: > 매일생성되는 화일에서 정리에서 리포트로 뽑으려 하는데 > 잘 정리가 않되서요 그리고...
    • 박성훈
    • 1999.07.03 05:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정재홍
      1999.07.03 07:12
      박성훈 께서 말씀하시기를... Q> 첫째, TTabControl에서 탭이 변경될 때 서로 다른 내용을 보여주려면 어...