找回密码
 立即注册

QQ登录

只需一步,快速开始

huangyuanhua

金牌服务用户

3

主题

6

帖子

97

积分

金牌服务用户

积分
97
最新发帖
huangyuanhua
金牌服务用户   /  发表于:2018-7-25 10:09  /   查看:2690  /  回复:3
1.如何实现报表导出
2.如何实现自定义事件,如增删改查按钮传参
3.当子报表无数据时,如何避免跳转进子报表
望指教,感谢!


3 个回复

倒序浏览
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2018-7-25 11:34:34
沙发
本帖最后由 KearneyKang 于 2018-7-25 11:37 编辑

1、导出WPF的view里是没有导出按钮的,你可以通过添加一个导出的按钮,然后通过按钮触发导出的操作。具体的导出后台实现的方向,导出Word:
  1. <pre>GrapeCity.ActiveReports.PageReport report = <span style="COLOR: #0000ff">new</span> GrapeCity.ActiveReports.PageReport();
  2. GrapeCity.ActiveReports.Document.PageDocument reportDocument = <span style="COLOR: #0000ff">new</span> GrapeCity.ActiveReports.Document.PageDocument(report);

  3. <span style="COLOR: #008000">// Create an output directory.
  4. </span>System.IO.DirectoryInfo outputDirectory = <span style="COLOR: #0000ff">new</span> System.IO.DirectoryInfo(<span style="COLOR: #800000">@"C:\MyWord"</span>);
  5. outputDirectory.Create();

  6. <span style="COLOR: #008000">// Provide settings for your rendering output.
  7. </span>GrapeCity.ActiveReports.Export.Word.Page.Settings wordSetting = <span style="COLOR: #0000ff">new</span> GrapeCity.ActiveReports.Export.Word.Page.Settings();

  8. <span style="COLOR: #008000">// Set the FileFormat property to .OOXML.
  9. </span>wordSetting.FileFormat = GrapeCity.ActiveReports.Export.Word.Page.FileFormat.OOXML;

  10. <span style="COLOR: #008000">// Set the rendering extension and render the report.
  11. </span>GrapeCity.ActiveReports.Export.Word.Page.WordRenderingExtension wordRenderingExtension = <span style="COLOR: #0000ff">new</span> GrapeCity.ActiveReports.Export.Word.Page.WordRenderingExtension();
  12. GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider outputProvider = <span style="COLOR: #0000ff">new</span> GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, System.IO.Path.GetFileNameWithoutExtension(outputDirectory.Name));

  13. <span style="COLOR: #008000">// Overwrite output file if it already exists.
  14. </span>outputProvider.OverwriteOutputFile = <span style="COLOR: #0000ff">true</span>;

  15. reportDocument.Render(wordRenderingExtension, outputProvider, wordSetting);           </pre>
复制代码

导出Excel
  1. GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport();GrapeCity.ActiveReports.Document.PageDocument reportDocument = new GrapeCity.ActiveReports.Document.PageDocument(report);

  2. // Create an output directory.
  3. System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"C:\MyExcel");
  4. outputDirectory.Create();

  5. // Provide settings for your rendering output.
  6. GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
  7. excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xls;
  8. GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting;

  9. // Set the rendering extension and render the report.
  10. GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension excelRenderingExtension = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();
  11. GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, System.IO.Path.GetFileNameWithoutExtension(outputDirectory.Name));

  12. // Overwrite output file if it already exists.
  13. outputProvider.OverwriteOutputFile = true;

  14. reportDocument.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
复制代码
第二个问题,如果需要自定义按钮事件的话,你就直接添加对应的按钮,因为你用的是动态数据源,参数的传递,您就可以通过文本框的形式传递,然后通过自己添加的按钮触发对应的操作。也就是我们说的自定义一些文本输入框和按钮,最后在后台把筛选好的数据绑定给报表,报表只做一个数据的展示就行。

第三个问题,如果你的子表用的是向下钻取的话,你可以根据表达式来控制跳转到对应的报表,但是没办法做的你说的数据不存在不跳转,因为我在报表端没办法做到怎样判断返回的数据是否不存在,因为你的数据是后台动态绑定的。你可以参考这个博客看看:https://www.grapecity.com.cn/blo ... -without-showing-it
用页面报表的特性来解决,当数据不存在时,不显示。那你的子表就需要用页面报表






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
huangyuanhua
金牌服务用户   /  发表于:2018-7-26 17:11:47
板凳
KearneyKang 发表于 2018-7-25 11:34
1、导出WPF的view里是没有导出按钮的,你可以通过添加一个导出的按钮,然后通过按钮触发导出的操作。具体的 ...

自定义事件具体怎么配置还不是很清楚
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2018-7-26 17:39:47
地板
自定义工具栏是可以的,但是经过电话沟通,没办法实现你想要实现的自定义的功能
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部