您的位置:首页 > 其它

Visual Studio 2010 Crystal Report 子报表 提示 您请求的报表需要更多信息 解决方案

2012-08-23 20:33 1061 查看
[b]【提示】您请求的报表需要更多信息 的解决方案?[/b]



我是以PUSH模式做水晶报表的,不知道为什么,我浏览报表网页时,总是以PULL模式提示要数据库登录信息!(您请求的报表需要更多信息

后来我发现一个问题,在仅有一个报表的时候,只不会出现这样的问题的。只有在有一个或多个子报表的时候,才会出现这样的问题...

根据MSDN说明,无论是子报表还是父报表,一个报表对应一个数据集,就不会在PUSH模式下出现PULL模式的问题...


因有子报表,所以我在给子报表加上数据源后就不会出现这种问题了

子报表可以增加和主报表的链接加以筛选数据!

如何进行绑定,请参照以下范例:

Web.config Access数据文件连接格式如下:

<connectionStrings>
<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"/>
</connectionStrings>


Default.aspx前置文件报表内容如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register TagPrefix="CR" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>报表示例</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="True" Height="1039px"
ReportSourceID="CrystalReportSource1" Width="901px" />
<CR:CrystalReportSource ID="CrystalReportSource1" runat="server">
</CR:CrystalReportSource>
</div>
</form>
</body>
</html>


Default.aspx.cs后置文件报表内容如下:

using System;
using System.Configuration;
using System.Data.OleDb;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Loading();
}
}

/// <summary>
/// 加载水晶报表
/// </summary>
private void Loading()
{
//设置数据源信息
string connectionString = ConfigurationManager.ConnectionStrings["AccessConnectionString"].ConnectionString;
OleDbConnection con = new OleDbConnection(connectionString);
OleDbCommand cmd = con.CreateCommand();
cmd.Connection = con;

//填充数据
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet1 ds = new DataSet1();
         DataSet1 ds1 = new DataSet1();

cmd.CommandText = "SELECT EmployeeId1 as EmployeeId,EmployeeName1 as EmployeeName From Employee1";
da.Fill(ds, "Employee");

cmd.CommandText = "SELECT ProductId1 as ProductId,ProductName1 as ProductName,Price1 as Price From Product1";
da.Fill(ds, "Product");

cmd.CommandText = "SELECT EmployeeId1 as EmployeeId,ProductId1 as ProductId,SalesDate1 as SalesDate,Num1 as Num From Sales1";
da.Fill(ds, "Sales");

cmd.CommandText = "SELECT EmployeeId1 as EmployeeId,HisDogName1 as HisDog From forSubReport1";
da.Fill(ds1, "forSubReport");

//加载水晶报表
CrystalReportSource1.Report.FileName = Server.MapPath("~/app_data/CrystalReport.rpt");//报表路径
CrystalReportSource1.ReportDocument.Load(CrystalReportSource1.Report.FileName);//加载报表
//绑定数据集,注意,一个报表只能绑定一个数据集
        CrystalReportSource1.ReportDocument.SetDataSource(ds);//主报表数据源
         CrystalReportSource1.ReportDocument.Subreports["我们的子报表"].SetDataSource(ds1);//子报表数据源
         CrystalReportSource1.DataBind();//绑定
         CrystalReportViewer1.ReportSource = CrystalReportSource1;//指定数据源
         CrystalReportViewer1.DataBind();//工具条数据绑定!!
     }
}


更多详情请参考以下:

Crystal Report 制作使用/article/6248660.html

关于PUSH和PULL解释:/article/5964210.html

转载的朋友,请不要删除以下行,对此,表示感谢!!!

原文链接:/article/5173481.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐