DB를 테스트하여 크리스탈 보고서를 만들었습니다. .NET ReportDocument 클래스를 사용하여 보고서를 실행합니다. 모든 것이 테스트 DB에 연결될 때까지 제대로 작동합니다.크리스탈 보고서 - .NET을 통해 실행
동일한 보고서가 UAT DB를 가리킬 때 (모든 필수 DB 개체를 UAT에서도 사용할 수 있음) 오류가 발생합니다. 이 문제를 해결하려면 RPT 파일에서 수동으로 UAT DB로 서버 이름을 변경해야합니다.
해결 방법?
DB를 테스트하여 크리스탈 보고서를 만들었습니다. .NET ReportDocument 클래스를 사용하여 보고서를 실행합니다. 모든 것이 테스트 DB에 연결될 때까지 제대로 작동합니다.크리스탈 보고서 - .NET을 통해 실행
동일한 보고서가 UAT DB를 가리킬 때 (모든 필수 DB 개체를 UAT에서도 사용할 수 있음) 오류가 발생합니다. 이 문제를 해결하려면 RPT 파일에서 수동으로 UAT DB로 서버 이름을 변경해야합니다.
해결 방법?
솔루션은 대상 데이터베이스에 연결하기위한 시스템 DSN (ODBC)을 만드는 것입니다. 그런 다음 원하는 데이터베이스 (로컬, 테스트, 스테이지 등)로 ODBC를 전환 할 수 있습니다. 또한 모든 서버에서 동일한 이름의 ODBC 연결을 사용할 수 있도록하려면 dev-> test-> stage-> production에서 보고서를 쉽게 이동해야합니다.
push reports을 사용하면 문제를 해결할 수 있습니다. 강력한 형식의 ADO.NET 데이터 집합을 허용하도록 보고서를 설정하고 런타임에 해당 데이터 집합을 제공 할 수 있습니다.
작동 방법이 아닌가요? 그것은 어떤 DB에 연결 하는지를 알아야합니다.
어쩌면 내가 누락되었지만 연결 권한을 얻는 데 필요한 것처럼 들릴 수 있습니다.
Crystal 보고서는 밀어 넣기 또는 당기기의 두 가지 기본 모드로 작동 할 수 있습니다. 필자가 보았던 대부분의 보고서는 보고서 클래스 내에 연결 데이터를 저장하는 pull을 사용합니다. 보고서가 독자적으로 살아야 할 때 좋지만 큰 응용 프로그램의 범위 내에서는 코드가 다른 서버 (예 : dev-> test)로 이동할 때마다 보고서 데이터 소스를 수동으로 변경해야하기 때문에 PITA입니다. -> 생산). 푸시 보고서를 사용하면 외부 소스에서 데이터를 받아 들일 수 있으며 ADO.NET 데이터 집합을 포함 할 수 있습니다.이 데이터 집합은 연결 세부 정보를 중앙 집중화합니다. –
아니요, ADO.NET 데이터 집합을 사용하고 있지 않습니다. 보고서는 대담하게 DB 객체와 대화합니다. 내가해야 할 일은 런타임 중에 연결 세부 사항을 보내는 것뿐입니다. – Kaz
AFAIK, 그럴 수 없습니다. 보고서는 디자인 타임에 설정되는 자체 데이터베이스 설정을 유지 관리하며 런타임에 변경할 수 없습니다. –