Visual Studio에서 Crystal 보고서 (v12.0 포함)를 만들고 CrystalReportViewer
을 사용하여 웹 양식에 첨부하기 위해 Microsoft 자습서 here을 따라했습니다. CrystalReportSource
및 SqlDataSource
으로 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");
}
이것은 지속적인 프롬프트를 피하기 위해 작동합니다. 하지만 슈퍼 불쾌한이며 그것을 사용하고 싶지 않아요.
도움말!
흥미롭게도 시도해야 할 것입니다. – GONeale