XtraReport 仅打印选择行 C#
Posted
技术标签:
【中文标题】XtraReport 仅打印选择行 C#【英文标题】:XtraReport print only select rows C# 【发布时间】:2020-09-15 20:58:45 【问题描述】:enter image description here我在 datagridview 中有复选框,我希望在检查后打印(XtraReport)只检查 datagridview 中的行。现在全部从 datagridview 打印。
【问题讨论】:
你能多展示一些你自己的作品吗? 是的,我现在添加新图片。 datagridview 是标准的 dotnet winforms 网格吗?您可以展示如何生成报告布局 是的,添加了新图片。我只打电话报告并打印所有。我只想在复选框(datagridview 列)中选中打印。 我找不到,xtrareport 布局如何配置? 【参考方案1】:要仅打印选定的行,您可以分配一个XtraReport.FilterString 并创建一个不可见的multivalue parameter 以将检查的ID 传递给它。 所以报表布局可能有
.FilterString = "ID in (?filterParameters)"
“filterParameters”是参数名称。 在显示报告打印预览之前,您可以传递参数值,如
report.Parameters["filterParameters"].Value = new[] 1, 2, 3 ;
new ReportPrintTool(report).ShowRibbonPreviewDialog();
【讨论】:
谢谢兄弟,但我将复选框作为列添加到 datagridview,我在 xtrareport 中没有它作为过滤器。 是的,我明白了。因此,正如我在回答中提到的那样,您需要手动从在网格中检查的代码过滤器项目并将行 ID 传递给报告参数。您可以在此处显示您的代码,以及您如何尝试从 gridview 获取检查的行。 for (int i = 0; i () //3 .Where(row => (bool?)row.Cells[0].Value == true ) .ToList(); //1 遍历datagridview //2 如果选中则为真 //3 将所有(真)值存储在 ToList();如何在 XtraReport 中仅打印这些值? 要过滤在网格上检查的值,您应该从“allCheckedRows”中获取 ID 作为 int[] 并将其传递给 xtrareport 参数。您可以尝试应用答案中的步骤并在 cmets 中报告您的进度。以上是关于XtraReport 仅打印选择行 C#的主要内容,如果未能解决你的问题,请参考以下文章