我看了看,发现这个对象ReportDataSource(String Object) name 数据源的名称。dataSourceValue 数据源的值。 但是我这没有数据源(不太确定,这个数据源值是指DataSet2.xsd吗?) 我是通过对象直接获得了一个Dataset,那这个地方应该怎么写?
给你一个实例,如下: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using CrystalDecisions.CrystalReports.Engine; using System.Windows.Forms;
public partial class Template_Print : System.Web.UI.Page { ReportDocument RptDoc; protected void Page_Load(object sender, EventArgs e) { string Courier_ID = "", oid = "", print_w = "", print = ""; if (Request.QueryString["OrderID"] != null && Request.QueryString["OrderID"].ToString().Trim().Length != 0) { oid = Request["OrderID"].ToString().Trim(); } if (Request.QueryString["Courier_ID"] != null && Request.QueryString["Courier_ID"].ToString().Trim().Length != 0) { Courier_ID = Request.QueryString["Courier_ID"].ToString().Trim(); } if (Request.QueryString["ptype"] != null && Request.QueryString["ptype"].ToString().Trim().Length != 0) { print_w = Request.QueryString["ptype"].Trim().ToString(); } if (Request.QueryString["print"]!=null && Request.QueryString["print"].ToString().Trim().Length!=0) { print = Request.QueryString["print"].Trim().ToString(); } if (oid.Length != 0 && Courier_ID.Length != 0) { GetData(oid, Courier_ID, print_w,print); } else { Response.Write("订单号或者物流商错误!"); } } protected void Page_Unload(object sender, EventArgs e) { if (RptDoc != null) { RptDoc.Close(); RptDoc.Dispose(); } } private void GetData(string oid, string c_id, string ptype,string print) { string sqlfile = "select HTMLFileName from dict_Courier where Courier_ID='" + c_id + "'"; string FileName = SqlHelper.ExecuteScalar(SqlHelper.EC_FlagConn, CommandType.Text, sqlfile).ToString(); if (print=="2") { FileName = "EMS2.rpt"; } if (FileName.Length == 0) { Response.Write("未找到指定快递商的打印模板!"); Response.End(); return; } string FilePath = Server.MapPath(@"../Report/" + FileName); if (oid.Substring(oid.Length - 1, 1) == ",") { oid = oid.Substring(0, oid.Length - 1); } DataSet ds = new DataSet(); //string sql = "select * from orders where order_id=" + oid; string sql = "SELECT Orders.Order_ID, Orders.EC_Order_ID, Orders.Order_Status_ID, " + " Orders.Order_Source_ID, Orders.Order_date, Orders.Import_date, Orders.Client_ID, " + " Orders.Name, Orders.Province, Orders.City, Orders.Address, Orders.Zipcode, " + " Orders.Phone1, Orders.Phone2, Orders.Company, Orders.Client_Shipby_date, " + " Orders.Client_Courier_ID, Orders.Client_Courier_Desc, Orders.Client_Cancel_date, " + " Orders.Client_Notes, Orders.Need_Feedback, Orders.Export_date, " + " Orders.Warehouse_Notes, Orders.HasWithDrawal, Orders.Operator," + " Orders.OrderType, Box.weight" + " FROM (SELECT Shipment_ID, SUM(Weight) AS weight " + " FROM Box AS Box_1 " + " GROUP BY Shipment_ID) AS Box RIGHT OUTER JOIN " + " Shipment_Order ON " + " Box.Shipment_ID = Shipment_Order.Shipment_ID RIGHT OUTER JOIN " + " Orders ON Shipment_Order.Order_ID = Orders.Order_ID " + " where Orders.Order_ID in (" + oid + ")"; sql = "select * from VIEW_Print where Order_id in (" + oid + ") order by order_id"; DataTable d1 = SqlHelper.ExecuteDataset(SqlHelper.EC_FlagConn, CommandType.Text, sql).Tables[0]; sql = "select * from customers where innerid=1"; DataTable d2 = SqlHelper.ExecuteDataset(SqlHelper.EC_FlagConn, CommandType.Text, sql).Tables[0]; ds.Tables.Add(d1.Copy()); if (c_id == "003") { ds.Tables[0].TableName = "Orders"; } else { ds.Tables[0].TableName = "VIEW_Print"; } ds.Tables.Add(d2.Copy()); ds.Tables[1].TableName = "Customers"; RptDoc = new ReportDocument(); if (!RptDoc.IsLoaded) { RptDoc.Load(FilePath); RptDoc.SetDataSource(ds); CrystalReportViewer1.ReportSource = RptDoc; CrystalReportViewer1.DataBind(); TextObject weight = RptDoc.ReportDefinition.ReportObjects["Text13"] as TextObject; if (ptype == "0") { weight.Width = 0; } } }}
private void ZZZPJ_Load(object sender, EventArgs e) { DataTable dataTable = GetTable(); ReportDataSource rds = new ReportDataSource("DataSet1", dataTable);//此处DATASET1与报表中的数据集同名 reportViewer1.LocalReport.DataSources.Clear();//清除上一次数据源 reportViewer1.LocalReport.DataSources.Add(rds);//增加新数据源 this.reportViewer1.RefreshReport(); } private DataTable GetTable() { using (SqlConnection con = new SqlConnection("Data Source=10.100.100.5;Initial Catalog=cldz;User ID=proc4;Password=77cc88")) { SqlDataAdapter sda = new SqlDataAdapter("select distinct A.*,B.ME002 from (select TOP 10 * from ZZZPJ where PJ018>'20101113') A, CMSME B where A.PJ001=B.ME001", con); DataSet DS = new System.Data.DataSet(); sda.Fill(DS); DataTable DT = DS.Tables[0]; return DT; } }
我看了看,发现这个对象ReportDataSource(String Object)
name
数据源的名称。dataSourceValue
数据源的值。
但是我这没有数据源(不太确定,这个数据源值是指DataSet2.xsd吗?)
我是通过对象直接获得了一个Dataset,那这个地方应该怎么写?
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using CrystalDecisions.CrystalReports.Engine;
using System.Windows.Forms;
public partial class Template_Print : System.Web.UI.Page
{
ReportDocument RptDoc;
protected void Page_Load(object sender, EventArgs e)
{
string Courier_ID = "", oid = "", print_w = "", print = "";
if (Request.QueryString["OrderID"] != null && Request.QueryString["OrderID"].ToString().Trim().Length != 0)
{
oid = Request["OrderID"].ToString().Trim(); }
if (Request.QueryString["Courier_ID"] != null && Request.QueryString["Courier_ID"].ToString().Trim().Length != 0)
{
Courier_ID = Request.QueryString["Courier_ID"].ToString().Trim();
}
if (Request.QueryString["ptype"] != null && Request.QueryString["ptype"].ToString().Trim().Length != 0)
{
print_w = Request.QueryString["ptype"].Trim().ToString();
}
if (Request.QueryString["print"]!=null && Request.QueryString["print"].ToString().Trim().Length!=0)
{
print = Request.QueryString["print"].Trim().ToString();
}
if (oid.Length != 0 && Courier_ID.Length != 0)
{
GetData(oid, Courier_ID, print_w,print);
}
else
{
Response.Write("订单号或者物流商错误!");
} }
protected void Page_Unload(object sender, EventArgs e)
{
if (RptDoc != null)
{
RptDoc.Close();
RptDoc.Dispose();
} }
private void GetData(string oid, string c_id, string ptype,string print)
{
string sqlfile = "select HTMLFileName from dict_Courier where Courier_ID='" + c_id + "'";
string FileName = SqlHelper.ExecuteScalar(SqlHelper.EC_FlagConn, CommandType.Text, sqlfile).ToString();
if (print=="2")
{
FileName = "EMS2.rpt";
}
if (FileName.Length == 0)
{
Response.Write("未找到指定快递商的打印模板!");
Response.End();
return;
}
string FilePath = Server.MapPath(@"../Report/" + FileName);
if (oid.Substring(oid.Length - 1, 1) == ",")
{
oid = oid.Substring(0, oid.Length - 1);
}
DataSet ds = new DataSet();
//string sql = "select * from orders where order_id=" + oid;
string sql = "SELECT Orders.Order_ID, Orders.EC_Order_ID, Orders.Order_Status_ID, "
+ " Orders.Order_Source_ID, Orders.Order_date, Orders.Import_date, Orders.Client_ID, "
+ " Orders.Name, Orders.Province, Orders.City, Orders.Address, Orders.Zipcode, "
+ " Orders.Phone1, Orders.Phone2, Orders.Company, Orders.Client_Shipby_date, "
+ " Orders.Client_Courier_ID, Orders.Client_Courier_Desc, Orders.Client_Cancel_date, "
+ " Orders.Client_Notes, Orders.Need_Feedback, Orders.Export_date, "
+ " Orders.Warehouse_Notes, Orders.HasWithDrawal, Orders.Operator,"
+ " Orders.OrderType, Box.weight"
+ " FROM (SELECT Shipment_ID, SUM(Weight) AS weight "
+ " FROM Box AS Box_1 "
+ " GROUP BY Shipment_ID) AS Box RIGHT OUTER JOIN "
+ " Shipment_Order ON "
+ " Box.Shipment_ID = Shipment_Order.Shipment_ID RIGHT OUTER JOIN "
+ " Orders ON Shipment_Order.Order_ID = Orders.Order_ID "
+ " where Orders.Order_ID in (" + oid + ")";
sql = "select * from VIEW_Print where Order_id in (" + oid + ") order by order_id";
DataTable d1 = SqlHelper.ExecuteDataset(SqlHelper.EC_FlagConn, CommandType.Text, sql).Tables[0];
sql = "select * from customers where innerid=1";
DataTable d2 = SqlHelper.ExecuteDataset(SqlHelper.EC_FlagConn, CommandType.Text, sql).Tables[0];
ds.Tables.Add(d1.Copy());
if (c_id == "003")
{
ds.Tables[0].TableName = "Orders";
}
else
{
ds.Tables[0].TableName = "VIEW_Print";
} ds.Tables.Add(d2.Copy());
ds.Tables[1].TableName = "Customers"; RptDoc = new ReportDocument();
if (!RptDoc.IsLoaded)
{
RptDoc.Load(FilePath);
RptDoc.SetDataSource(ds);
CrystalReportViewer1.ReportSource = RptDoc;
CrystalReportViewer1.DataBind();
TextObject weight = RptDoc.ReportDefinition.ReportObjects["Text13"] as TextObject;
if (ptype == "0")
{
weight.Width = 0;
}
} }}
{
DataTable dataTable = GetTable();
ReportDataSource rds = new ReportDataSource("DataSet1", dataTable);//此处DATASET1与报表中的数据集同名 reportViewer1.LocalReport.DataSources.Clear();//清除上一次数据源
reportViewer1.LocalReport.DataSources.Add(rds);//增加新数据源
this.reportViewer1.RefreshReport();
} private DataTable GetTable()
{
using (SqlConnection con = new SqlConnection("Data Source=10.100.100.5;Initial Catalog=cldz;User ID=proc4;Password=77cc88"))
{
SqlDataAdapter sda = new SqlDataAdapter("select distinct A.*,B.ME002 from (select TOP 10 * from ZZZPJ where PJ018>'20101113') A, CMSME B where A.PJ001=B.ME001", con);
DataSet DS = new System.Data.DataSet();
sda.Fill(DS);
DataTable DT = DS.Tables[0];
return DT;
}
}