저는 퀵리포트를 처음 접해보는 퀵 초보 입니다.
델파이에서 쿼리 콤포넌트의 사용은 어느정도 한다고 생각하는데...
퀵리포트에 쿼리의 결과를 넣기가 상당히 힘이 듭니다.
아래에 나와 있는 질문과 답변들을 봐서
물론 모든 답변을 이해한것은 아니지만
대부분은 제 프로그램에 적용시킬수 있었습니다.
하지만 아무리 고민을 하고 만들어 봐도 도무지....
퀴리부터 어떻게 해야하고 퀵리포트를 만들어야 하는지.
모르겠습니다.
도사님들의 조언이 절실히 필요합니다.
아무리 어려운 구문을 사용하더라도 가능하기만 하면
좀 가르쳐 주세요
몇일 을 밤세워 서라도 이해하도록 하겠습니다.
이제 어떤 건지 설명 하겠습니다.
납품처 => 갑,을,병 의 세개가 있고,
품목 => 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 문을 이용해서 생각해고 답이 안나오고....]
퀵 리포트에서 생각해고 답이 나오지 않습니다.
도와 주세요....
이것 때문에 일주일째 잠을 못자고 있습니다....흑흑
가엾은 어린양을 보살피시어
부디 도와 주시기 바랍니다.....
> 저는 퀵리포트를 처음 접해보는 퀵 초보 입니다.
> 델파이에서 쿼리 콤포넌트의 사용은 어느정도 한다고 생각하는데...
> 퀵리포트에 쿼리의 결과를 넣기가 상당히 힘이 듭니다.
> 아래에 나와 있는 질문과 답변들을 봐서
> 물론 모든 답변을 이해한것은 아니지만
> 대부분은 제 프로그램에 적용시킬수 있었습니다.
> 하지만 아무리 고민을 하고 만들어 봐도 도무지....
> 퀴리부터 어떻게 해야하고 퀵리포트를 만들어야 하는지.
> 모르겠습니다.
> 도사님들의 조언이 절실히 필요합니다.
> 아무리 어려운 구문을 사용하더라도 가능하기만 하면
> 좀 가르쳐 주세요
> 몇일 을 밤세워 서라도 이해하도록 하겠습니다.
> 이제 어떤 건지 설명 하겠습니다.
>
> 납품처 => 갑,을,병 의 세개가 있고,
> 품목 => 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주세요.
그땐 실제 내용을 가지고 같이 고민해보죠.