2012-01-03 3 views
0

특정 제품의 특정 기간 동안 트랜잭션을 표시하는 보고서를 만들었습니다.페이지 나누기 후 그룹이 두 번 인쇄됩니다.

간략히하기 위해; Transaction, Product 및 Customer 테이블을 기반으로합니다. 트랜잭션은 ProductID 및 CustomerID 키를 사용하여 Product 및 Customer에 각각 조인합니다. 하지만 제품을 여러 고객이 사용할 수 있으므로 고객과 제품간에 조인이 없습니다.

보고는 다음과 같이 구성된다 :

Report Header: 
-Group Header 1 - CustomerID (prints name, id etc) 
--Group Header 2a - Product Code (prints name, description..) 
--Group Header 2b - sub report GetOpeningBalance 
---Group Header 3 - Transaction Date 
----Details (nothing printed) 
---Group Footer 3 - Prints transaction date, details, new balance 
--Group Footer 2 - Prints Product closing balance (opening - transactions). 
-Group Footer 1 - Prints nothing. 
Report Footer - prints nothing. 

서브 리포트 GetOpeningBalance는 저장 prodedure를 호출하고 잔액에 대응하는 공유 변수의 수를 반환한다. 이 값은 각 거래별로 증가/감소되며 종결 잔액이 끝에 표시됩니다.

이제 선택 수식은 고객, 제품 및 기간 (to/from)을 기준으로합니다. 고객 및 제품은 이산, 범위 또는 이산 + 범위 값일 수 있습니다.

이렇게하면 정상적으로 작동합니다. 주어진 범위 내에서 발생한 제품 거래를 보여 주며 숫자를 표시합니다. 그러나 고객은 모든 제품을 보여주기를 원했습니다. 해당 기간에 거래가 발생하지 않은 경우에도 마찬가지입니다. 예를 들면 그들은 주식을 가지고있었습니다. 그러나 입구/출구가 없으므로 개폐 균형이 동일합니다.

그래서 이것을 해결하려면; 선택 기준에서 날짜 범위 매개 변수를 제거하여 (제품의 모든 트랜잭션을 반환 함) 원하는 날짜 범위를 벗어난 세부적인 내용을 제거했습니다. 따라서 "표시된"트랜잭션 만 포함하도록 누적 합계 수식을 수정했습니다.

이제 이상한 동작이 발생합니다. 완성 된 그룹은 다음 페이지에서 복제 될 수 있습니다. 제품 1-9가 페이지 1에 인쇄되고 페이지 2가 제품 10으로 시작하는 식으로 진행된다고 가정 해보십시오. 그러나 제품 1-9가 인쇄됩니다. 제품 2와 9의 처음에 제품 8과 9가 다시 인쇄됩니다. 정확한 합계를 포함한 전체 섹션을 인쇄합니다.

이 동작은 일관성이 없습니다. 그것은 모든 페이지 또는 모든 날짜 범위/제품 선택에 대해 그렇게하지 않을 것입니다.

나는 섹션 전문가와 그룹 전문가로 함께 똑딱 거리거나 시도를 시도했다. 나는 또한 쓸데없는 것을 좁히려 고 시도하기 위해 몇 가지 추가적인 그룹과 세부 사항들을 제거하려고 노력했다.

이 그룹을 다시 인쇄 할 수있는 옵션이나 설정이 있습니까?

일반적으로 이런 종류의 문제에 대한 세부 정보 섹션에는 하위 보고서가 사용됩니다. 그러나 제품과 고객간에 직접 결합이 없기 때문에 불가능합니다.

+0

본인이 이해하는 바에 따르면, 보고서에는 고객이 주문한 모든 제품이 표시되며 (존재하는 모든 제품이 아닌) 훨씬 더 많은 수의 제품이 표시됩니다. –

+0

예; 너는 맞다.제품은 트랜잭션없이 존재할 수 있으며 현재 보고서에 표시되지 않습니다. 아이디어는 여는 균형으로 사용 된 적이있는 제품을 보여주는 것입니다. 주어진 기간에 거래가 없더라도 문제는 이것이 동일한 패키지의 Stock 및 Transactions 보고서가되기를 원한다는 것입니다. – vice

+0

그냥 이해할 수있게 예제를 만듭니다. 2 명의 고객 A & B 및 10 개의 제품을 가정하십시오 1.10. 고객 A가 제품 1을 사용하고 고객 B가 제품 2를 사용했다면, 보고서에는 1 * 및 * 제품 2.10을 사용하여 A가 나열되어야합니다. 또한 보고서에는 2 * 및 * 제품 1 및 3.10을 사용하는 B가 나열되어 있어야합니다. – craig

답변

0

저는 오늘이 시간을 갖고 놀았습니다.

그 결과 은 2b 머리글 2a를 2b으로 바꿉니다. 해당 하위 보고서가 제품 세부 정보 머리글 앞에 있으면이 동작이 중지됩니다.

이제 테스트, 테스트, 테스트!