【提示】您请求的报表需要更多信息 的解决方案?
我是以PUSH模式做水晶报表的,不知道为什么,我浏览报表网页时,总是以PULL模式提示要数据库登录信息!(您请求的报表需要更多信息)
后来我发现一个问题,在仅有一个报表的时候,只不会出现这样的问题的。只有在有一个或多个子报表的时候,才会出现这样的问题...
根据MSDN说明,无论是子报表还是父报表,一个报表对应一个数据集,就不会在PUSH模式下出现PULL模式的问题...
因有子报表,所以我在给子报表加上数据源后就不会出现这种问题了
子报表可以增加和主报表的链接加以筛选数据!
如何进行绑定,请参照以下范例:
Web.config Access数据文件连接格式如下:
1 <connectionStrings> 2 <add name="AccessConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\案例\CrystalReportsWebSite\App_Data\test.mdb;Persist Security Info=True" providerName="System.Data.OleDb"/> 3 </connectionStrings>
Default.aspx前置文件报表内容如下:
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 2 <%@ Register TagPrefix="CR" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" %> 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 <head runat="server"> 5 <title>报表示例</title> 6 </head> 7 <body> 8 <form id="form1" runat="server"> 9 <div> 10 <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="True" Height="1039px" 11 ReportSourceID="CrystalReportSource1" Width="901px" /> 12 <CR:CrystalReportSource ID="CrystalReportSource1" runat="server"> 13 </CR:CrystalReportSource> 14 </div> 15 </form> 16 </body> 17 </html>
Default.aspx.cs后置文件报表内容如下:
1 using System; 2 using System.Configuration; 3 using System.Data.OleDb; 4 5 6 public partial class _Default : System.Web.UI.Page 7 { 8 protected void Page_Load(object sender, EventArgs e) 9 { 10 if (!IsPostBack) 11 { 12 Loading(); 13 } 14 } 15 16 /// <summary> 17 /// 加载水晶报表 18 /// </summary> 19 private void Loading() 20 { 21 //设置数据源信息 22 string connectionString = ConfigurationManager.ConnectionStrings["AccessConnectionString"].ConnectionString; 23 OleDbConnection con = new OleDbConnection(connectionString); 24 OleDbCommand cmd = con.CreateCommand(); 25 cmd.Connection = con; 26 27 //填充数据 28 OleDbDataAdapter da = new OleDbDataAdapter(cmd); 29 DataSet1 ds = new DataSet1(); 30 DataSet1 ds1 = new DataSet1(); 31 32 cmd.CommandText = "SELECT EmployeeId1 as EmployeeId,EmployeeName1 as EmployeeName From Employee1"; 33 da.Fill(ds, "Employee"); 34 35 cmd.CommandText = "SELECT ProductId1 as ProductId,ProductName1 as ProductName,Price1 as Price From Product1"; 36 da.Fill(ds, "Product"); 37 38 cmd.CommandText = "SELECT EmployeeId1 as EmployeeId,ProductId1 as ProductId,SalesDate1 as SalesDate,Num1 as Num From Sales1"; 39 da.Fill(ds, "Sales"); 40 41 cmd.CommandText = "SELECT EmployeeId1 as EmployeeId,HisDogName1 as HisDog From forSubReport1"; 42 da.Fill(ds1, "forSubReport"); 43 44 //加载水晶报表 45 CrystalReportSource1.Report.FileName = Server.MapPath("~/app_data/CrystalReport.rpt");//报表路径 46 CrystalReportSource1.ReportDocument.Load(CrystalReportSource1.Report.FileName);//加载报表 47 //绑定数据集,注意,一个报表只能绑定一个数据集 48 CrystalReportSource1.ReportDocument.SetDataSource(ds);//主报表数据源 49 CrystalReportSource1.ReportDocument.Subreports["我们的子报表"].SetDataSource(ds1);//子报表数据源 50 CrystalReportSource1.DataBind();//绑定 51 CrystalReportViewer1.ReportSource = CrystalReportSource1;//指定数据源 52 CrystalReportViewer1.DataBind();//工具条数据绑定!! 53 } 54 }
更多详情请参考以下:
Crystal Report 制作使用http://www.cnblogs.com/illele/archive/2007/09/22/902500.html
关于PUSH和PULL解释:http://www.cnblogs.com/host-2008/archive/2012/04/01/2428243.html
转载的朋友,请不要删除以下行,对此,表示感谢!!!
原文链接:http://www.cnblogs.com/VAllen/archive/2012/08/23/CrystalReportLoading.html