2009-10-29 3 views
1

Visual Studio에서 Crystal 보고서 (v12.0 포함)를 만들고 CrystalReportViewer을 사용하여 웹 양식에 첨부하기 위해 Microsoft 자습서 here을 따라했습니다. CrystalReportSourceSqlDataSource으로 SQL Server 인스턴스에서 데이터를 읽을 수 있기를 바랍니다. 이 보고서는 잘 이 웹 양식 마크 업 (이것은이 .rpt 파일에 포함되어 저장 불구하고 스냅 샷 데이터를 것으로 보인다)로드 :Crystal Report에서 SqlDataSource를 사용하여 '요청한 보고서에 추가 정보가 필요합니다.'오류가 발생했습니다.

<CR:CrystalReportViewer ID="crystalReportViewer" runat="server" 
      AutoDataBind="true" 
      GroupTreeImagesFolderUrl="" HasRefreshButton="True" Height="895px" 
      ReportSourceID="crystalReportSource" ToolbarImagesFolderUrl="" 
      ToolPanelWidth="200px" Width="1365px" /> 
     <CR:CrystalReportSource ID="crystalReportSource" runat="server" 
      EnableCaching="False"> 
      <Report FileName="ClientLoginHistory.rpt"> 
       <DataSources> 
        <CR:DataSourceRef DataSourceID="sqlDataSource" /> 
       </DataSources> 
      </Report> 
     </CR:CrystalReportSource> 
     <asp:SqlDataSource ID="sqlDataSource" runat="server" 
      ConnectionString="<%$ ConnectionStrings:dbReportsConnectionString %>" 
      SelectCommand="{{ select query is here }}"> 
     </asp:SqlDataSource> 

(당신이 어떤 구성을 볼 수 있다면 말씀 해주십시오 오류) 즉시 나는 다음과 같은 오류가 나타납니다 크리스탈 리포트 뷰어 도구 모음에서 "새로 고침"을 누를

그러나 :

"The report you requested requires further information." 
,369을

필드에 DB 로그인 정보를 입력하십시오.

이유는 제가 '의도적으로'SQL 보고서를 SQL 데이터 소스에 첨부하는 지침서를 따라했기 때문입니다. 기존 연결 문자열을 다음과 같이 지정할 수 있습니다. 내 Web.config에는 사용자 이름과 암호가 미리 설정되어 있습니다. 나는의 SqlDataSource에 대한 참조를 제거 것처럼의 Web.config에서 연결 문자열을 사용하지 않는 경우에도 그것은 실제로 나타납니다

그런 다음 '새로 고침'를 묻는 메시지, 여전히 스냅 샷 데이터를로드 (코드 아래 참조) 사용자/통과 한 번 미세 보고서 부하를 입력 :

<CR:CrystalReportViewer ID="crystalReportViewer" runat="server" 
      AutoDataBind="true" 
      GroupTreeImagesFolderUrl="" HasRefreshButton="True" Height="895px" 
      ReportSourceID="crystalReportSource" ToolbarImagesFolderUrl="" 
      ToolPanelWidth="200px" Width="1365px" /> 
     <CR:CrystalReportSource ID="crystalReportSource" runat="server" 
      EnableCaching="False"> 
      </Report> 
     </CR:CrystalReportSource> 

나는이 대신의 SqlDataSource의 보고서에 포함 된 내부 DB 연결에 연결되어 있어야합니다 상상? 이것은 보고서를 만들 때 ODBC 테이블을 통해 데이터베이스 테이블과 필드를 선택하고 내가 생각하는 보고서에 연결 정보를 저장하기 때문에 가능할 것입니다. S

그래서 인터넷에서 많이 수색 한 후 이 오류를 피할 수있는 방법을 찾았지만, Web.config connectionString을 읽는 것이 아니라 .rpt 파일의 포함 된 연결을 읽는다고 생각합니다.

protected void Page_Load(object sender, EventArgs e) 
     { 
      crystalReportSource.ReportDocument.SetDatabaseLogon("user", "real_pass"); 
     } 

이것은 지속적인 프롬프트를 피하기 위해 작동합니다. 하지만 슈퍼 불쾌한이며 그것을 사용하고 싶지 않아요.

도움말!

답변

0

위의 코드와 튜토리얼을 수행 한 후에 비슷한 문제가 발생했습니다. TableName 속성을 지정하면 로그온 매개 변수를 전혀 설정하지 않고도 예상대로 보고서를 실행할 수 있습니다.

<CR:DataSourceRef DataSourceID="sqlDataSource" TableName="Chips" /> 
+0

흥미롭게도 시도해야 할 것입니다. – GONeale

관련 문제