2008-09-02 8 views

답변

-1

Reporting Services의 .rdl 파일에 대해 이야기하고 계신 것 같습니까? (그렇지 않다면 내 대답이 틀릴 수도있다.)

그들은 기본적으로 XML이기 때문에 각각을로드하고 XPath 쿼리를 사용하여 데이터 소스가 포함 된 노드를 가져 와서 업데이트 할 수있다.

1

링크 된 하위 보고서 (CR XI 이상)는 기본 보고서의 데이터 소스를 공유합니다. 보고서가 이미 구성되어 있으므로 옵션이 설정되지 않았습니까?

1

@Unsliced ​​내가보기에 그가 겪고있는 문제는 다른 데이터베이스에 대해 개발 된 누군가의 Crystal Report를 가져 와서 Crystal Reports XI에서 가져 오는 것입니다. 변경 한 데이터 소스는 각 필드에 대해 변경해야합니다. 하위 보고서에 있습니다. 보고서의 최상위 수준에서 소스 만 변경하면 종종 오류가 발생합니다. (나는 Crystal Reports에서 알려진 이슈라고 생각합니다).

6

다음은 런타임에 연결을 설정하는 방법입니다. 내가 config 위치에서 연결 정보를 얻을.

 #'SET REPORT CONNECTION INFO 
     For i = 0 To rsource.ReportDocument.DataSourceConnections.Count - 1 
      rsource.ReportDocument.DataSourceConnections(i).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword) 
     Next 

     For i = 0 To rsource.ReportDocument.Subreports.Count - 1 
      For x = 0 To rsource.ReportDocument.Subreports(i).DataSourceConnections.Count - 1 
       rsource.ReportDocument.OpenSubreport(rsource.ReportDocument.Subreports(i).Name).DataSourceConnections(x).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword) 
      Next 
     Next 
+0

런타임시 연결 설정에 가장 도움이되는 것으로 나타났습니다. –

2

단발 거래로 이것을 수행하는 경우 제 제안이 도움이되지 않을 수 있습니다. 그러나 데이터 소스를 자주 변경하면 유용 할 수 있습니다.

면책 조항 : 버전 9.0부터 Crystal을 사용하지 않았으므로이 기능이 향상되었는지는 잘 모릅니다. 나는 항상 UDL files을 사용했다. 기본적으로 데이터 소스에 대한 포인터입니다. UDL을 가리 키도록 보고서를 설정하고 UDL은 데이터 소스를 가리 킵니다. 소스가 변경되면 UDL 만 업데이트하면됩니다.

보고서가 여러 개인 경우 매우 유용합니다. 서버가 변경되면 하나의 파일 만 업데이트하면됩니다.