导出PDF ,WORD,EXECL
有没有FlashViewer以datatable为数据源的导出PDF,EXECL的列子啊, 为什么我在做导出的时候总是出这样的错误发生了一个意外错误。更多信息: 'No data has been set. Please specify either a DataSet or a DataView to usestring url = @"RDLC/ADrugSale.rdlx";
GrapeCity.ActiveReports.PageReport report1 = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath(url)));
//SetSelectedColumns(report1);
report1.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(Document_LocateDataSource);
GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(report1);
GrapeCity.ActiveReports.Export.Excel.Page.ExcelTransformationDevice _renderingExtension = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelTransformationDevice();
GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider _provider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
GrapeCity.ActiveReports.Export.Excel.Page.Settings s = new GrapeCity.ActiveReports.Export.Excel.Page.Settings();
_reportRuntime.Render(_renderingExtension, _provider, s);
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", "attachment;filename=MyExport.xls");
System.IO.MemoryStream ms = new System.IO.MemoryStream();
_provider.GetPrimaryStream().OpenStream().CopyTo(ms);
Response.BinaryWrite(ms.ToArray());
Response.End(); 每次运行到了这样就_reportRuntime.Render(_renderingExtension, _provider, s);
出这样的错误发生了一个意外错误。更多信息: 'No data has been set. Please specify either a DataSet or a DataView to use ,我的数据源类型是datetable 最好是有FlashViewer以datatable为数据源的导出PDF,EXECL的列子 回复 3楼gywm15111336483的帖子
请先参考博客文章尝试实现:
http://blog.gcpowertools.com.cn/post/2014/11/13/customize_flashviewer.aspx
有后续问题欢迎继续沟通。
谢谢 我看的就你发的那个列子 ,用Datatable就会有问题 你不信可以试试 protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
return;
}
GrapeCity.ActiveReports.PageReport report1 = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("") + "\\PageReport1.rdlx"));
report1.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(Document_LocateDataSource);
WebViewer1.PdfExportOptions.FitWindow = false;
WebViewer1.PdfExportOptions.DisplayMode = GrapeCity.ActiveReports.Export.Pdf.Section.DisplayMode.Outlines;
WebViewer1.Report = report1;
CustomizeToolBar();
}
private void CustomizeToolBar()
{
//设置显示语言版本为中文
this.WebViewer1.FlashViewerOptions.ResourceLocale = "zh_CN";
ToolButton btnWord = Tool.CreateButton("Word");
btnWord.ToolTip = "导出到 Word";
btnWord.Caption = "导出到 Word";
btnWord.ClickNavigateTo = "ARExport.ashx?exporttype=Word";
this.WebViewer1.FlashViewerToolBar.Tools.Add(btnWord);
ToolButton btnExcel = Tool.CreateButton("Excel");
btnExcel.ToolTip = "导出到 Excel";
btnExcel.Caption = "导出到 Excel";
btnExcel.ClickNavigateTo = "ARExport.ashx?exporttype=Excel";
this.WebViewer1.FlashViewerToolBar.Tools.Add(btnExcel);
}
void Document_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
{
if (args.DataSourceName == "DataSource1")
{
if (args.DataSetName == "DataSet1")
{
args.Data = GetDate();
}
}
}
private DataTable GetDate()
{
DataTable dt = new DataTable();
dt.Columns.Add("Col1");
dt.Columns.Add("Col2");
dt.Columns.Add("Col3");
dt.Rows.Add(1, 1, 1);
dt.Rows.Add(2, 1, 1);
dt.Rows.Add(3, 1, 1);
dt.Rows.Add(4, 1, 1);
dt.Rows.Add(5, 1, 1);
dt.Rows.Add(6, 1, 1);
return dt;
}
你看下 我的代码 回复 3楼gywm15111336483的帖子
问题出现的原因在于 Service 中没有添加数据源,请参考附件 demo:
Service 中没有添加数据源,有类似的写法没有 回复 9楼gywm15111336483的帖子
有两个建议可以提供给您:
1.把数据源部分抽成一个类,在各个页面、包括Service 中公用。
2.或者可以把数据源存入到 Session 中,直接咋在 Service 中获取。
谢谢
页:
[1]