2009-07-17 6 views
0

DB를 테스트하여 크리스탈 보고서를 만들었습니다. .NET ReportDocument 클래스를 사용하여 보고서를 실행합니다. 모든 것이 테스트 DB에 연결될 때까지 제대로 작동합니다.크리스탈 보고서 - .NET을 통해 실행

동일한 보고서가 UAT DB를 가리킬 때 (모든 필수 DB 개체를 UAT에서도 사용할 수 있음) 오류가 발생합니다. 이 문제를 해결하려면 RPT 파일에서 수동으로 UAT DB로 서버 이름을 변경해야합니다.

해결 방법?

답변

1

솔루션은 대상 데이터베이스에 연결하기위한 시스템 DSN (ODBC)을 만드는 것입니다. 그런 다음 원하는 데이터베이스 (로컬, 테스트, 스테이지 등)로 ODBC를 전환 할 수 있습니다. 또한 모든 서버에서 동일한 이름의 ODBC 연결을 사용할 수 있도록하려면 dev-> test-> stage-> production에서 보고서를 쉽게 이동해야합니다.

0

push reports을 사용하면 문제를 해결할 수 있습니다. 강력한 형식의 ADO.NET 데이터 집합을 허용하도록 보고서를 설정하고 런타임에 해당 데이터 집합을 제공 할 수 있습니다.

+0

아니요, ADO.NET 데이터 집합을 사용하고 있지 않습니다. 보고서는 대담하게 DB 객체와 대화합니다. 내가해야 할 일은 런타임 중에 연결 세부 사항을 보내는 것뿐입니다. – Kaz

+0

AFAIK, 그럴 수 없습니다. 보고서는 디자인 타임에 설정되는 자체 데이터베이스 설정을 유지 관리하며 런타임에 변경할 수 없습니다. –

0

작동 방법이 아닌가요? 그것은 어떤 DB에 연결 하는지를 알아야합니다.

어쩌면 내가 누락되었지만 연결 권한을 얻는 데 필요한 것처럼 들릴 수 있습니다.

+1

Crystal 보고서는 밀어 넣기 또는 당기기의 두 가지 기본 모드로 작동 할 수 있습니다. 필자가 보았던 대부분의 보고서는 보고서 클래스 내에 연결 데이터를 저장하는 pull을 사용합니다. 보고서가 독자적으로 살아야 할 때 좋지만 큰 응용 프로그램의 범위 내에서는 코드가 다른 서버 (예 : dev-> test)로 이동할 때마다 보고서 데이터 소스를 수동으로 변경해야하기 때문에 PITA입니다. -> 생산). 푸시 보고서를 사용하면 외부 소스에서 데이터를 받아 들일 수 있으며 ADO.NET 데이터 집합을 포함 할 수 있습니다.이 데이터 집합은 연결 세부 정보를 중앙 집중화합니다. –

관련 문제