2016-11-17 10 views
1

예제가 약간 애매한 경우 사과드립니다. 불행히도 필자는 회사 이름과 데이터의 목적을 모두 밝히지 않고 동일한 필드 이름을 사용할 수 없습니다.Crystal Reports 헤더 하위 보고서 DataTable에 새 필드가 추가되면 데이터가 사라집니다.

을 감안할 때 다음

XSD 스키마 파일에 데이터 세트와 바인딩에 의해 채워

크리스탈 리포트;

데이터 집합을 채우고 보고서에 바인딩하는 .Net 1.1 프로그램.

데이터 테이블 Foo 및 Bar;

XSD 스키마 :

----Foo---- 
Stuff (pk) 
Things 
Gunk 

----Bar---- 
Stuff (fk) 
Details 
Widget 

관계 : 한 푸 1 개 이상의 막대를 가질 수 있습니다, 내부는 물건에 가입.

이 보고서는 이미 작동합니다. 보고서에 새로운 '코드'입력란을 추가하여 계약과 관련된 특정 가치를 나타내는 요청이있었습니다. 코드 목록과 특정 코드가있는 부분 목록이 있습니다. 즉, 데이터베이스 측에서 "위젯"과 "CodeID"가있는 테이블을 연결 테이블로 추가하여 어떤 코드가 어떤 위젯과 연결되는지를 나타내는 테이블과 "CodeID"및 "CodeDescr"이있는 테이블을 추가하여 코드와 그 정의를 보관합니다. . Bar에 "CodeDescr"을 추가하고 "위젯"에 해당 행의 값을 기반으로 간단한 쿼리를 채우도록 스키마 파일을 수정하여 필드를 추가 할 수있었습니다. 이것은 또한 작동합니다.

문제는 머리글을 구성하는 하위 보고서입니다. 동일한 XSD 파일을 사용하지만 CodeDescr 필드가 보고서의 본문을 구성하는 하위 보고서에 추가되면 머리글의 모든 값이 사라집니다. 이러한 값 중 일부는 리터럴 (항목을 식별하는 'Stuff'의 값)이고 다른 것은 (Gunk의 값을 사용하여 문자열 또는 숫자 식별자를 표시할지 여부를 결정하는 등의) 수식입니다. 나는 3 일 동안 책상 위에 내 머리를 두드리는 소리로 멈추어 서 왜 이것이 멈춰서서 고칠 수 있는지 알아 내려고했습니다. 도움!

답변

0

좋아, 난 어쩌면 :)

은 우리가 올바른 방향으로 목표로하고 있는지 확인하기 위해 Excel에서 목표를 그릴 수 있도록 시작하는만큼 당신의 변수 이름의 퍼즐을 해결했다고 생각? 돕기위한

어떤 임의의 생각을 : 확인

,이 색상에 합류, 데이터베이스입니다

  • 반드시 문제가되지해야하지만 구축하는 당신의 머리글에 하위 보고서가 있습니까? 아니면 세부 사항에서? 나는 전형적으로 그 (것)들과 일치하는 것을 시도한다, 당신의 억압이 정확할 한 그것이 중요하면 안된다.

  • 디자인 탭에서 하위 보고서를 마우스 오른쪽 단추로 클릭하고 "하위 보고서 링크 변경"을 선택하십시오. 예상되는 링크가 있습니까?

  • 링크를 확인한 후 하위 보고서로 이동하여 해당 레코드 선택을 확인하십시오. 링크를 변경하면 여기에있는 각 링크에 새로운 행이 추가됩니다. 논리가 맞습니까? 그 메모에서 부모 보고서와 하위 보고서의 레코드 선택을 예제에서 사용 된 변수로 바꿔서 여기에서 볼 수 있습니까?

시간이 허용하는대로 다시 돌아올 예정입니다. 업데이트가있을 때 알려주십시오.

+1

당신은 협회를 완벽하게 소유하고 있습니다. 모든 하위 보고서는 세부 정보 섹션을 사용하므로 일치합니다. 그러나 내가 처단 할 수있는 유일한 편집기는 Visual Studio 2003에 내장 된 사악한 편집기라는 점을 잊어 버렸습니다. 링크를 확인한 결과 예상대로였습니다. 나는이 문제들이 잘려나고 내부 결합보다 성공을 거두지 못한 채로 Left Outer 조인을 시도했다. 이것은 또한 기존의 "레코드 선택"이 없으며 전체 데이터 집합이 VB.Net에서 조합된다는 것을 의미합니다. 테이블을 호출하는 SQL 문의 결과를 얻는 단일 메소드가 변경되었습니다. – CDove

+0

알기. 공평하게 말하면 내 지식이 떨어지는 곳일 것입니다. 우리가 종종 팔꿈치를 문지르는 동안, VB.NET과 나는 가까운 용어에 있지 않습니다. 내 의견은 지나치게 복잡한 보고서처럼 들리지 않으므로 Crystal Reports의 GUI에서 그 보고서를 작성하고 여전히 문제가 있는지 확인할 수 있습니다. 즉, VB.NET 노하우를 가진 사람이보다 합리적이고 바람직한 솔루션을 얻을 수 있도록 도와 줄 수 있습니다. 행운을 빈다. 내 지역으로 돌아갈 경우를 대비하여 질문을 계속 지켜봐야한다. – Jackson

0

XSD 파일에서 새 테이블을 만드는 대신 XSD 파일에서 호출 한 쿼리를 조정하여 기존 테이블의 일부로 새 값을 가져 와서 해결할 수 있습니다.