2009-04-07 1 views
0

을 나는 보고서를 관리하는 많은 경험이 없지만, 나는 다음과 같이 작동하는 응용 프로그램에서 작동 :크리스탈 리포트 모범 사례

사용자들이 목록에서 보려는 보고서를 선택하기위한 인터페이스가있다

보고서의 이 목록은 보고서 이름, 파일 이름 및 보고서 매개 변수와 같은 정보가 들어있는 데이터베이스의 보고서 표로 채워집니다.

이러한 보고서에는 몇 가지 공통 매개 변수가 있습니다 (범위 또는 정렬). 따라서 사용자는 Foo로 그룹화 된 200에서 4000까지의 모든 위젯에 대한 보고서를 가져올 수 있습니다.

현재 사람은 저장 프로 시저와 보고서 파일을 동시에 개발합니다. 그들은 저에게 그것을 전달하고, 프로덕션 환경에서 sproc 스크립트를 실행하고 .rpt 파일을 올바른 디렉토리로 이동시켜 배포해야합니다. 그런 다음 이름, 파일 이름 및 매개 변수가있는 레코드를 보고서 테이블에 삽입해야합니다.

어떤 시스템에 어떤 보고서가 배포되었는지 추적 할 수있는 좋은 방법이 없기 때문에 병참 문제가 있습니다. (단지 존재한다는 의미로 업데이트 된 것이 아니라 이상적으로 일치해야하는 총 시스템이 4 개 있습니다.)이고 몇 가지 오류 지점이 있습니다.

1) sproc의 매개 변수가 .rpt 파일의 매개 변수와 일치하지 않습니다. 2) 보고서 테이블의 매개 변수가 .rpt 또는 sproc 3) sproc 파일이 업데이트되는 동안 어떤 이유로 든 가 sproc을 업데이트합니다. 4) 새 보고서에 params 페이지에 코딩되지 않은 매개 변수가 필요한 경우 어떻게됩니까?

모두 시스템에서 동적으로 충분하지 않습니다. 내가 말했듯이, 나는보고에 관해 모른다. 그러나 나는 보고서를하는 사람이 어느 쪽도하지 않는다고 느낀다. sproc과 .rpt 파일을 동기화 상태로 유지하고 Reflection과 같은 것을 통해 필요한 매개 변수를 동적으로 요청하는 더 좋은 방법이있는 것 같습니다.

일반적으로 어떻게 처리됩니까?

답변

0

"정상적으로"알지 못하지만 응용 프로그램은 저장 프로 시저 SQL 및 구성 가능한 매개 변수와 함께 보고서를 단일 파일에 바인딩합니다. 그런 다음 보고서 생성기 응용 프로그램은 단일 패키지에서 보고서를 실행하는 데 필요한 모든 요소를 ​​deserialize 할 수 있습니다. 필요한 색인 생성은 사용자에게 표시 할 유효한 파일 이름 및 관련 친숙한 보고서 제목의 목록을 아는 것으로 제한됩니다.

이것은 MFC 직렬화를 사용하는 C++/MFC에서 수행됩니다. 여러분이 말씀 드렸듯이, 리플렉션과 XML 직렬화를 사용하면 C#/.NET 환경에서 훨씬 더 매끄러운 솔루션을 얻을 수 있습니다.

1

간단히 기본 크리스탈 매개 변수 프롬프트 엔진을 사용합니다. 그렇지 않으면, 우리의보고 솔루션은 기본적으로 귀하가 설명한 것과 동일합니다.

매개 변수를 테이블에 넣는 것은 의미가 없습니다. 이것들은 ReportDocument를로드하고 매개 변수 컬렉션을 읽음으로써 검색 될 수 있습니다. 귀하의 프롬프트 엔진은 여기를보고 프롬프트를 생성해야합니다. 그렇지 않으면 동기화가 너무 어렵습니다.