변경하는 응용 프로그램을 작성하고 있습니다. Crystal Reports 데이터베이스 액세스 매개 변수가 보고서 파일에 있습니다. 나는 와 함께 보고서를 엽니 다. .NET 창 양식 앱 및 드라이버 유형 (ODBC/OLEDB), 서버 이름, 데이터베이스 이름, 사용자, 암호, 인증 유형 등을 변경하는 SDK 기능을 적용합니다. 에 문제가 있습니다. 데이터베이스 이름. 내 코드가 테이블 ConnectionInfo (하위 보고서에도 있음)의 특정 속성을 변경하지만 은 보고서 내의 일반 SQL 쿼리을 업데이트하지 못합니다. 이로 인해 보고서는 여전히 이전 데이터베이스에 액세스합니다.Crystal Reports의 SQL 쿼리가 업데이트되지 않습니다.
원본 보고서가 database_1에 액세스하도록 구성되어 있고이를 database_2로 변경하면 모든 테이블 속성이 database_2 (디자이너에서 확인할 수 있음)로 올바르게 변경됩니다. 그래도 쿼리에는 database_1이 남아 있습니다. 데이터베이스 이름은 SDK RowsetController.GetSQLStatement() 결과와 Crystal Reports Developer 쿼리 뷰 (데이터베이스 -> SQL 쿼리 표시 ...)에서 변경되지 않습니다. 또한
나는 그렇지 않으면 나도 GetSQLStatement에 예외를 얻을, 변환이 이루어지는 동안 온라인을 모두 데이터베이스 (참고 Database_1 및 database_2)를 가지고있다 (참고 Database_1가 오프라인 상태 일 때, 그것은 여전히를 의미 becuase) 또는 SetTableLocation (시 database_2 하지만 이것은 예상과 수용 가능한 행동입니다.). 두 데이터베이스가 모두 온라인 상태이면 오류가 없습니다.이
1) CrystalDecisions.CrystalReports.Engine.ReportDocument.Load (적인 filePath, OpenReportMethod.OpenReportByTempCopy) (...)
2) 확인 : 여기
내가 사용하고 정확히 CrystalDecisions.ReportAppServer.DataDefModel.PropertyBag를 채우십시오.
3) CrystalDecisions.ReportAppServer.DataDefModel.Tables를 통해 반복하고 각각에 대해 SetTableLocaiton()으로 모든 속성을 적용하십시오.
4) 보고서의 SQL 쿼리를보기 위해 각 하위 보고서
5) RowsetController.GetSQLStatement()를 반복합니다.
새 테이블 ConnectionInfos (올바르게 설정된 것 같습니다)를 기반으로 쿼리를 업데이트하는 방법이 있습니까? 나는 쿼리 (GET, 검색 & 대체, SET)를 수동으로 업데이트 할 수있는 가능성조차 보이지 않는다.
내가 사용하고 있습니다 :
.NET 4.5, CR은 VS 13.0.5, 결과 검증을위한 크리스탈 리포트 개발자 9.2.2.693에 대한
(소스 보고서도 함께 생성된다) 비주얼 스튜디오 2012
쿼리를 말할 때 Crystal 보고서에서 생성 한 SQL을 의미합니까 아니면 명령을 사용하고 있습니까? 질문을 업데이트하는 방법은 무엇입니까? 이 제품을 확인할 수 있습니다 : http : //www.r-tag.com/Pages/CRDataSource.aspx 연결을 변경할 수 있으면이 작업도 가능해야합니다. 그렇지 않으면 쿼리와 관련된 특정 것이 있습니다. – Lan
CR이 작성한 기본 보고서에 대한 전반적인 SQL 쿼리를 의미합니다. 명령은 모든 테이블을 반복하면서 속성 가방을 적용하고 SetTableLocation을 사용하여 쉽게 업데이트됩니다. 이미 답변을 찾았지만 제품에 대한 링크를 제공해 주셔서 감사합니다! –