combit开发博客

将不同的项目合并为一个打印作业

发布于: 2020年8月20日 星期四 | 0条评论
 
这一直是另一个没有真正好答案的常见问题--我怎样才能得到一份具有完全不同部分的报告,如封面、目录、一些表格报告、一些图表和图像,然后是文本块等?

虽然已经可以通过使用不同的预览文件并将它们合并成一个单一的预览来达到这个结果,但这种方法并不像它可以得到的那样灵活。而收集一个共同的目录,这种方式根本不可能。List & Label 26将通过一个名为 "组合打印 "的功能来提供帮助,该功能允许将任意的项目组合成一个打印作业。

该功能的使用非常简单--你将所需的项目文件以分号分开传递给LlPrintWithBoxStart或--当使用我们的一个组件--传递给AutoProjectFile。这个功能需要一个数据提供者实现作为数据源,也就是说,它可以从.NET、VCL或C++中使用。

让我们做一个快速演练。对于这个例子,我准备了三个报告,一个封面,一个仪表盘和一个细节部分。将这三份报告打印出来的代码是这样的:

LL.DataSource = GetMyDataSource();
LL.AutoProjectFile = @"C:\Reports\Cover Sheet.lst;c:\Reports\Dashboard.lst;c:\Reports\Details.lst";
LL.AutoShowSelectFile = false;
LL.Print();

就是这样--AutoProjectFile的设置器告诉List & Label连续打印这三份报告,然后预览中的结果看起来和预期的一样:

Combination Print List & Label

与打印不同的报告并附加各自的预览文件相比,这种方法有巨大的优势,这在以前是实现类似结果的方法。

  • 在打印过程中逐步显示预览,就像 "正常 "报告一样。
  • 像 "正常 "报告一样支持进度
  • 报告的跨页计数,包括正确的TotalPages$计数器。这在以前是不容易做到的,对于合并报告来说,需要一个耗时的两遍方法。
  • 报告横跨目录和索引:只需将目录或索引项目添加到要打印的项目列表中。这在以前是不可能的。

为了增加更多的灵活性,每当下一个项目触发时,还有一个回调/事件("NextCombinationPrintStep "或LL_NTFY_COMBINATIONPRINTSTEP),给你当前项目的索引和完整路径。然后,这可以用来调整选项,根据需要添加额外的数据等。
 

发现List & Label 26的更多新功能:
强大的、可重复使用的子报告
表格的新拖放功能




作者: Jochen Bartlau
List & Label开发主管

Jochen Bartlau 作为总经理领导combit的开发工作。他是一个微软.NET的爱好者,推动创新和敏捷项目管理。这位移动设备的极客在他的第一人生中曾是一位物理学家,他喜欢和他的家人一起度过他的业余时间。