crystalReportViewer(报表查看器)+ReceiveCrystalReport.rpt(报表文件)+DataSet.xsd(数据集)

crystalReportViewer+ReceiveCrystalReport.rpt+DataSet.xsd做报表

crystalReportViewer(报表查看器)+ReceiveCrystalReport.rpt(报表文件)+DataSet.xsd(数据集)

1.crystalReportViewer 的ReportSource属性指定一个ReceiveCrystalReport.rpt文件
2.添加一个dataset.xsd文件,添加报表要显示的字段信息(一定要与数据库中一致)
3.打开ReceiveCrystalReport.rpt文件,在右边窗口DatabaseFields右键(Database EXpert)
在左边窗口打开ProjectData>https://www.360docs.net/doc/8218028293.html, Datasets 选择一个DataSet,添加到右边,点确定,
再将其字段拖入打开的报表文件中即可

private void PrintReceiveOrder_Load(object sender, EventArgs e)
{
try
{
ReceiveCrystalReport rpt = new ReceiveCrystalReport();
DataSet ds = new DataSet();
string strConn = "Data Source=ITE-03;Initial Catalog=dm;User ID=sa;Password=123456";
SqlConnection conn = new SqlConnection(strConn);
SqlDataAdapter da = new SqlDataAdapter("Select id,pay_time,type,remark from d_payment_record", conn);
da.Fill(ds, "d_payment_record");
rpt.SetDataSource(ds.Tables["d_payment_record"]);
this.crystalReportViewer1.ReportSource = rpt;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}



1.固定条数,调整节高或是写公式:
在detail节按右键,Format section...
选择 New Page after,然后点击右边的公式按钮,输入:
RecordNumber mod 5= 0
则会每五条记录翻页。

2.换行显示
选中有一个字段 右键 Fromat Object 勾选 Can Grow 即可



3设置主副表报关联显示

选择子报表
点右键 选择 change subreport links
选择关联字段即可

---------------------------------------------------------------------------用对象做做报表数据-----------------------------------------

public PrintReceiveOrder(receiveShipmentOrder orderInfo,List orderItem)
{
InitializeComponent();
BindReport(orderInfo, orderItem);
}
//绑定报表
private void BindReport(receiveShipmentOrder orderInfo, List orderItem)
{

ParameterFields parameterFields = LoadOrderInfo(orderInfo);
try
{
this.crystalReportViewer1.ParameterFieldInfo = parameterFields;
ReceiveCrystalReport rpt = new ReceiveCrystalReport();
rpt.SetDataSource(LoadDetailInfo(orderItem).Tables["orderItem"]);
this.crystalReportViewer1.ReportSource = rpt;
}
catch (Exception ex)
{

}

}

//数据源

private DataSet LoadDetailInfo(List orderItem)
{
DataSet ds = CreateReportDataSet();
if (orderItem != null)
{
DataTable deliveryorderTable = ds.Tables["orderItem"];
foreach (receiveShipmentOrderItem item in orderItem)
{
DataRow dr = deliveryorderTable.NewRow();
dr["id"] = item.purchaseProduct.id;
dr["SKU"] = item.purchaseProduct.SKU;
dr["orderCode"] = item.purchaseProduct.orderCode;
dr["receiveShipmentQty"] = item.receiveShipmentQty.ToString();
dr["reimburseMark"] = (item.purchaseProduct.reimburseMark ? "是" : "否");
dr["customerServiceRemark"] = item.purchaseProduct.customerServiceRemark;
dr["purchaseRemark"] = item.purchaseProduct.purchaseRemark ;
dr["remark"] = item.purchaseProduct.remark;
dr["imageColor"] = item.purchaseProduct.imageColor;
dr["size"] = item.purchaseProduct.size;
dr["image"] = item.purchaseProduct.image;
deliveryorderTable.Rows.Add(dr);
}
}
return ds;
}

private DataSet CreateReportDataSet()
{
DataSet ds = new DataSet();
DataTable deliveryorderTable = new DataTable("orderItem");
deliveryorderTable.Columns.Add(new DataColumn("Image"));
deliveryorderTable.Columns.Add(new DataColumn("SKU"));
deliveryorderTable.Columns.Add(new DataColumn("orderCode"));
deliveryorderTable.Columns.Add(new DataColumn("receiveShipmentQty"));
deliveryorderTable.Columns.Add(new DataColumn("reimburseMark"));
deliveryorderTable.Columns.Add(new DataColumn("customerServiceRemark"));
deliveryorderTable.Columns.Add(new DataColumn("purchaseRemark"));
deliveryorderTable.Columns.Add(new DataColumn("remark"));
deliveryorderTable.Columns.Add(new DataColumn("imageColor"));
deliveryorderTable.Columns.Add(new DataColumn("size"));
deliveryorderTable.Columns.Add(new DataColumn("image"));
ds.Tables.Add(deliveryorderTable);
return ds;
}

private ParameterFields LoadOrderInfo(receiveShipmentOrder orderview)
{
ParameterFields orderInfo = new ParameterFields();
if (orderview != null)
{
orderInfo.Add(GetParameterField("supplierName", https://www.360docs.net/doc/8218028293.html,));
orderInfo.Add(GetParameterField("name", https://www.360docs.net/doc/8218028293.html,));
string state="";
if (orderview.status == https://www.360docs.net/doc/8218028293.html,PLETE)
state = "已接货";
if (orderview.status

== receiveShipmentOrderStatus.NOT_COMPLETE)
state = "未接货";
if (orderview.status == receiveShipmentOrderStatus.IN_REIMBURSING)
state = "报销中";
if (orderview.status == receiveShipmentOrderStatus.NOT_REIMBURSE)
state = "未报销";
if (orderview.status == receiveShipmentOrderStatus.REIMBURSE)
state = "已报销";
orderInfo.Add(GetParameterField("state", state));
orderInfo.Add(GetParameterField("receiveCode", orderview.code));
}
return orderInfo;
}

//设置参数字段
private ParameterField GetParameterField(string name, string value)
{
ParameterField field = new ParameterField();
ParameterDiscreteValue fieldValue = new ParameterDiscreteValue();
field.ParameterFieldName = name;
fieldValue.Value = value;
field.CurrentValues.Add(fieldValue);
return field;
}







///主副报表关联显示

private void bindList(List deliveryList)
{
OrderCrystalReport rpt = new OrderCrystalReport();
rpt.SetDataSource(LoadDetailInfo(deliveryList).Tables["packageItem"]);
rpt.Subreports["OrderDetailReport.rpt"].SetDataSource(LoadDetailInfo(deliveryList).Tables["ProductItem"]);
this.crystalReportViewer1.ReportSource = rpt;
}

//数据源
private DataSet LoadDetailInfo(List deliveryList)
{
DataSet ds = CreateReportDataSet();
if (deliveryList != null)
{
DataTable packageTable = ds.Tables["packageItem"];

DataTable ProductTable = ds.Tables["ProductItem"];

int total = 0;
int i = 0;
foreach (WaitDeliveryView item in deliveryList)
{
DataRow dr = packageTable.NewRow();
dr["Id"] = item.Package.id;
dr["OrderCode"] = item.Package.code;
dr["CustomName"] = item.Package.order.buyer.fullName;
dr["DeliveryWay"] = https://www.360docs.net/doc/8218028293.html,;
dr["Total"] = total;
packageTable.Rows.Add(dr);

foreach (orderProduct items in item.Package.orderProducts)
{
DataRow drs = ProductTable.NewRow();
drs["Id"] =item.Package.id;
drs["No"] = i + 1;
//显示商品编号 + (SKU)
drs["Item"] = items.code + " " + items.SKU;
drs["Qty"] = items.productQty;
total += items.productQty;
ProductTable.Rows.Add(drs

);
}
}
}
return ds;
}

private DataSet CreateReportDataSet()
{
DataSet ds = new DataSet();
DataTable packageTable = new DataTable("packageItem");
packageTable.Columns.Add(new DataColumn("Id"));
packageTable.Columns.Add(new DataColumn("OrderCode"));
packageTable.Columns.Add(new DataColumn("CustomName"));
packageTable.Columns.Add(new DataColumn("DeliveryWay"));
packageTable.Columns.Add(new DataColumn("Total"));
ds.Tables.Add(packageTable);

DataTable ProductTable = new DataTable("ProductItem");
ProductTable.Columns.Add(new DataColumn("Id"));
ProductTable.Columns.Add(new DataColumn("No"));
ProductTable.Columns.Add(new DataColumn("Item"));
ProductTable.Columns.Add(new DataColumn("Qty"));
ds.Tables.Add(ProductTable);
return ds;
}


相关文档
最新文档