您的位置:首页 > 编程语言

葡萄城报表-核心代码展示

2015-12-24 21:42 387 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Text;
using GrapeCity.ActiveReports;
using RMMIS.StorageManagerMod.GetMaterialMod.BLL;
using RMMIS.StorageManagerMod.SendMaterialMod.BLL;
using Frame.DataMiddleware.Common;
using Frame.Common;
public partial class Report_BillPrint : System.Web.UI.Page
{
public string billtype = string.Empty;
public string billcode = string.Empty;

public DataTable mainDt;
public DataTable detailDt;

private BLLRmstorGiveMatlDt _BllRmstorGiveMatlDt;
private BLLRmstorGiveMatlMt _BllRmstorGiveMatlMt;
private BLLRmstorReceiveMatlDt _BllRmstorReceiveMatlDt;
private BLLRmstorReceiveMatlMt _BllRmstorReceiveMatlMt;

GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport();
GrapeCity.ActiveReports.SectionReport rpt1 = new GrapeCity.ActiveReports.SectionReport();

protected void Page_Load(object sender, EventArgs e)
{
ConnectionUtil.SetConnectionString(System.Configuration.ConfigurationManager.AppSettings["OracleSys"]);
//初始化BLL
_BllRmstorGiveMatlDt = SpringUtil.get("BLLRmstorGiveMatlDt") as BLLRmstorGiveMatlDt;
_BllRmstorGiveMatlMt = SpringUtil.get("BLLRmstorGiveMatlMt") as BLLRmstorGiveMatlMt;
_BllRmstorReceiveMatlDt = SpringUtil.get("BLLRmstorReceiveMatlDt") as BLLRmstorReceiveMatlDt;
_BllRmstorReceiveMatlMt = SpringUtil.get("BLLRmstorReceiveMatlMt") as BLLRmstorReceiveMatlMt;

billtype = Request.QueryString["BillType"];
billcode = Request.QueryString["BillCode"];

string[] codelength = billcode.Split(',');

// 创建用于合并全部报表的主报表
report = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("rdlx//Temp1.rdlx")));

#region 页面报表

// 在主报表中循环加载全部子报表
for (int i = 1; i <= codelength.Length; i++)
{
// 创建 Container 控件,用户加载 Subreport 控件
GrapeCity.ActiveReports.PageReportModel.Container container = new GrapeCity.ActiveReports.PageReportModel.Container();
container.Name = string.Format("Container{0}", i);
container.Width = new GrapeCity.ActiveReports.Extensibility.Definition.Components.Length("1cm");
container.Height = new GrapeCity.ActiveReports.Extensibility.Definition.Components.Length("1cm");
container.Left = new GrapeCity.ActiveReports.Extensibility.Definition.Components.Length("0cm");
container.Top = new GrapeCity.ActiveReports.Extensibility.Definition.Components.Length((1 * (i - 1)).ToString() + "cm");
container.PageBreakAtEnd = true;
container.PageBreakAtStart = false;

// 创建 Subreport 控件,用户加载实际报表模板
GrapeCity.ActiveReports.PageReportModel.Subreport subreport = new GrapeCity.ActiveReports.PageReportModel.Subreport();
subreport.Name = string.Format("SubReport{0}", i);
subreport.Width = new GrapeCity.ActiveReports.Extensibility.Definition.Components.Length("1cm");
subreport.Height = new GrapeCity.ActiveReports.Extensibility.Definition.Components.Length("1cm");
subreport.Left = new GrapeCity.ActiveReports.Extensibility.Definition.Components.Length("0cm");
subreport.Top = new GrapeCity.ActiveReports.Extensibility.Definition.Components.Length("0cm");
GrapeCity.ActiveReports.PageReportModel.Parameter pid = new GrapeCity.ActiveReports.PageReportModel.Parameter();
pid.Name = "billcode";
pid.Value = codelength[i-1].ToString();
subreport.Parameters.Add(pid);
//如果是收料单
if (billtype == RMMIS.Common.BillType.SLD)
{
subreport.ReportName = "IBMTFormNew.rdlx";
}
//如果是出库单
if (billtype == RMMIS.Common.BillType.RKD)
{
subreport.ReportName = "IBMTFormNew.rdlx";
}
container.ReportItems.Add(subreport);

report.Report.Body.ReportItems.Add(container);
}

report.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(pageDocument_LocateDataSource);

WebViewer1.Report = report;
#endregion
}
private void pageDocument_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
{
//查询数据
//GetDataSource((string)args.Report.Parameters[0].Values[0].Value,ref mainDt,ref detailDt);
string type = string.Empty;
if (args.DataSetName == "DataMain")
{
type = "main";
GetDataSource((string)args.Report.Parameters[0].Values[0].Value, type, ref mainDt);
args.Data = mainDt;
}

if (args.DataSetName == "DataDetail")
{
type = "detail";
GetDataSource((string)args.Report.Parameters[0].Values[0].Value, type, ref detailDt);
args.Data = detailDt;
}

}
private DataTable GetDataSource(string billCode, string type, ref DataTable dt)
{
//如果是收料
if (billtype == RMMIS.Common.BillType.SLD)
{
if (type == "main")
{
dt = _BllRmstorReceiveMatlMt.GetBillReceiveMt(billCode);
}
else
{
dt = _BllRmstorReceiveMatlDt.GetBillReceiveDt(billCode);
}

}
return dt;
}

protected void btnExcel_Click(object sender, EventArgs e)
{
//#region 页面报表支持
//System.IO.MemoryStream ms = new System.IO.MemoryStream();
//// Provide settings for your rendering output.
//GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings
//excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
//excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xls;
////excelSetting.MultiSheet = false;
//GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting;
////Set the rendering extension and render the report.
//GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension
//excelRenderingExtension = new
//GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();
//GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
//report.Document.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
//Response.ContentType = "application/vnd.ms-excel";
//Response.AddHeader("content-disposition", "inline;filename=MyExport.xls");
//outputProvider.GetPrimaryStream().OpenStream().CopyTo(ms);
//Response.BinaryWrite(ms.ToArray());
//Response.End();

GrapeCity.ActiveReports.Export.Excel.Section.XlsExport XlsExport1 = new GrapeCity.ActiveReports.Export.Excel.Section.XlsExport();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
XlsExport1.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.Xlsx;
XlsExport1.Export(report.Document, ms);
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", Server.UrlPathEncode("attachment;filename=MyExport.xlsx"));
Response.BinaryWrite(ms.ToArray());
Response.End();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: