原創|其它|編輯:郝浩|2012-10-12 17:24:39.000|閱讀 1828 次
概述:這個章節內容詳細說明《DevExpress開發教程之報表打印設計實現篇》中的關鍵代碼部分、簡單的設計和打印應用。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
這個章節內容詳細說明《DevExpress開發教程之報表打印設計實現篇》中的關鍵代碼部分、簡單的設計和打印應用。
1、DevExpress中可以通過report.RunDesignerDialog或者report.RunDesigner來設計報表,這里沒有使用這兩個方法來實現報表設計功能,而是使用第一章中的自定義的DesignReportForm來實現(實際上相同,但自定義可以控制其他如根據權限顯示等內容)。
2、DesignReportForm非常簡單,就是把DesignReportControl,DesignToolBar和DesignFormattingToolBar拼湊在一起,它們共同關聯designReportControl1.DesignPanel。
3、現在設計一個簡單的DataSet,內容如下:
DataSet ds = new DataSet("DeliveryDataSet");
DataTable dtDelivery= new DataTable("Delivery");
{
dtDelivery.Columns.Add("BillId", typeof(string));
dtDelivery.Columns.Add("ManualId", typeof(string));
dtDelivery.Columns.Add("BillDate", typeof(DateTime));
dtDelivery.Columns.Add("CustomerId", typeof(string));
dtDelivery.Columns.Add("WarehouseId", typeof(string));
dtDelivery.Columns.Add("Maker", typeof(string));
dtDelivery.Columns.Add("Remark", typeof(string));
{
DataRow row = dtDelivery.NewRow();
row["BillId"] = "IGZ0000002";
row["ManualId"] = "Kingmond.Demo";
row["BillDate"] = DateTime.Today;
row["CustomerId"] = "Regent";
row["WarehouseId"] = "MyStore";
row["Maker"] = "kevin";
row["Remark"] = "Demo a report.";
dtDelivery.Rows.Add(row);
}
}
DataTable dtDeliveryGoods = new DataTable("DeliveryGoods");
{
dtDeliveryGoods.Columns.Add("BillId", typeof(string));
dtDeliveryGoods.Columns.Add("BillGoodsId", typeof(string));
dtDeliveryGoods.Columns.Add("GoodsId", typeof(string));
dtDeliveryGoods.Columns.Add("Quantity", typeof(int));
{
DataRow row = dtDeliveryGoods.NewRow();
row["BillId"] = "IGZ0000002";
row["BillGoodsId"] = "IGZ0000002001";
row["GoodsId"] = "R001";
row["Quantity"] = 23;
dtDeliveryGoods.Rows.Add(row);
}
{
DataRow row = dtDeliveryGoods.NewRow();
row["BillId"] = "IGZ0000002";
row["BillGoodsId"] = "IGZ0000002002";
row["GoodsId"] = "R002";
row["Quantity"] = 36;
dtDeliveryGoods.Rows.Add(row);
}
}
DataTable dtDeliveryDetail = new DataTable("DeliveryDetail");
{
dtDeliveryDetail.Columns.Add("AutoId", typeof(int));
dtDeliveryDetail.Columns.Add("BillGoodsId", typeof(string));
dtDeliveryDetail.Columns.Add("ColorId", typeof(string));
dtDeliveryDetail.Columns.Add("GoodsLong", typeof(string));
dtDeliveryDetail.Columns.Add("S1", typeof(int));
dtDeliveryDetail.Columns.Add("S2", typeof(int));
dtDeliveryDetail.Columns.Add("S3", typeof(int));
{
DataRow row = dtDeliveryDetail.NewRow();
row["AutoId"] = 1;
row["BillGoodsId"] = "IGZ0000002001";
row["ColorId"] = "RED";
row["GoodsLong"] = "0";
row["S1"] = 7;
row["S3"] = 11;
dtDeliveryDetail.Rows.Add(row);
}
{
DataRow row = dtDeliveryDetail.NewRow();
row["AutoId"] = 2;
row["BillGoodsId"] = "IGZ0000002001";
row["ColorId"] = "WHT";
row["GoodsLong"] = "0";
row["S1"] = 2;
row["S2"] = 3;
dtDeliveryDetail.Rows.Add(row);
}
{
DataRow row = dtDeliveryDetail.NewRow();
row["AutoId"] = 3;
row["BillGoodsId"] = "IGZ0000002002";
row["ColorId"] = "RED";
row["GoodsLong"] = "0";
row["S1"] = 1;
row["S2"] = 7;
dtDeliveryDetail.Rows.Add(row);
}
{
DataRow row = dtDeliveryDetail.NewRow();
row["AutoId"] = 4;
row["BillGoodsId"] = "IGZ0000002002";
row["ColorId"] = "BLK";
row["GoodsLong"] = "0";
row["S1"] = 20;
row["S2"] = 8;
dtDeliveryDetail.Rows.Add(row);
}
}
ds.Tables.Add(dtDelivery);
ds.Tables.Add(dtDeliveryGoods);
ds.Tables.Add(dtDeliveryDetail);
//設置表之間的關系
ds.Relations.Add("Delivery_DeliveryGoods", dtDelivery.Columns["BillId"], dtDeliveryGoods.Columns["BillId"]);
ds.Relations.Add("DeliveryGoods_DeliveryDetail", dtDeliveryGoods.Columns["BillGoodsId"], dtDeliveryDetail.Columns["BillGoodsId"]);
4、DataSet通過方法WriteXmlSchema(@"c:\temp\delivery.xml");可以很容易得到DataSet的Schema文件。
5、 設計delivery 報表格式,通過
ReportUtil.DesignReport (@"c:\temp\delivery.repx",@"c:\temp\delivery.xml")可以設計已經存在的格式文件.
6、設計結果參考圖片:
7、預覽結果參考圖片:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:博客園