了解最新技术文章
到目前为止,PDF 导出无法在页面顶部或底部添加其他信息。到目前为止,尚未提供页眉或页脚。
因此,我们扩展了调用saveAsPDF方法时可以传递的选项。有两种方法可以创建页眉和页脚。
首先,您可以使用选项对象的属性topText和bottomText。两者都允许添加还可以包含动态内容的简单文本,例如当前日期、当前页码或总页数。提供特定关键字 - { { # Date } }、{ { # PageNo } }、{ { # PageCount } } - 作为这些动态元素的占位符。
其次,为了能够处理更复杂的内容,尤其是能够向页面添加符号或图像(例如徽标),可以使用topHTML和bottomHTML属性。这样,您可以通过创建自己的 HTML 代码来设计页眉和页脚。这是另一个占位符 - { {@ symbolID } } - 可用于嵌入符号对象。当然,您也可以使用 URL 指向位于任何地方的其他图像资源。
下图显示了在顶部和底部具有 HTML 设计内容的页面示例:
如果使用topHTML或bottomHTML,则分别忽略topText或bottomText的设置。
PDF 规范提供了多种使文档更安全的方法。VSW SE 现在支持调用saveAsPDF方法时可以传递的以下选项:
作者
标题
主题
关键词
所有者密码
用户密码
访问内容的权限
许可注释
组装文档的许可
复制许可
修改权限
打印许可
有关简要概述,请参阅https://pdfkit.org/docs/guide.pdf(“加密和访问权限”一章)。
尽管 VSW SE 具有非常强大的机制,可以通过创建层次结构和分组来可视化结构化数据,但我们的客户仍然错过了一个功能:预定义组。
假设您有按订单状态“已发布”、“计划”和“已完成”分类的生产订单。您可以使用HierarchySupplementaryDefinition对象定义按状态分组的这些订单的表示。让我们进一步假设您当前的数据不包含任何状态为“已完成”的订单。不幸的是,在这种情况下,到目前为止还没有生成“完成”组。
这当然是一个缺点,因为您无法将订单从显示的组之一拖到“已完成”组。为此,您至少需要一个空的“已完成”组。这就是HierarchyLevelSupplementaryDefinition对象的新属性PredefinedGroups发挥作用的地方。下面两张图展示了一个小例子以及如何应用这个属性的相应代码片段:
在资源视图中 VSW SE通过突出显示合适的目标来支持用户进行拖放交互。也就是说,对于每个分配,可以定义哪个资源行是允许的或合适的。拖动分配时,这些行被突出显示,而其他行被半透明的窗帘覆盖。通过这种方式,用户可以在拖动分配时看到他可能已经将分配放在哪里。请注意,这只是对用户的视觉帮助。他仍然可以在“禁止”区域中删除分配,如果需要,由应用程序来阻止它。
这个“合适的对象”的概念现在已经扩展到包括与实体的交互以及作为分配目标的活动。
对于实体对象,已添加了合适的活动 ID和合适的资源 ID 属性。下图以资源视图为例说明了这些属性在拖动实体时的效果:
为了在启用分配行时也为活动视图中的分配完全支持此概念,分配现在除了现有的合适资源 ID 属性外,还具有合适的活动 ID属性。在这种情况下,可以通过新选项pm_Suitable/UnsuitableActivityOverlayColor 自定义覆盖合适行和不合适行的颜色。
虽然迄今为止日期线的标注已经非常灵活,但在字幕的呈现上总是存在冲突,尤其是当几条日期线彼此靠近显示时。然后字幕经常重叠。
这种视觉冲突现在可以通过选项pm_dateLineCaptionOptimizedPositioningEnabled启用的优化过程来解决。
文本是垂直还是水平方向都没有关系:
甚至会处理混合方向:
对于曲线区域,我们有两个有趣的增强。
您现在可以设置曲线对象的最小值(请参阅曲线属性ScaleMinimumValue)和最大值(请参阅曲线属性ScaleMaximumValue)以数字比例显示。当您想强制刻度使用最大值或最小值的特定值而不是计算值以提高可读性时,这很有用。例如,让我们看一下 VSW SE 在没有任何干预的情况下计算刻度线的情况,如下所示:
如果我们现在将曲线的ScaleMaximumValue属性设置为 3,那么它看起来像这样:
如果我们另外将ScaleMinimumValue设置为 -3,我们得到:
曲线的另一个增强是新选项pm_linesShownInLoadCurvePanes。这使用户更容易“阅读”曲线。数值刻度中每个刻度线水平的浅色水平辅助线有助于他更好地估计曲线的 y 值,即使它们远离刻度。
以前,可以使用选项pm_calendarGridColor仅更改整个日历网格的颜色。
现在,对于每个活动和每个资源对象,您都可以定义自己的网格颜色(请参阅属性PM_CalendarGridColor)。下图将常规外观的示例与对某些资源使用网格颜色的示例进行了比较:
当然,在使用 VSW SE 开发应用程序时,开发者有时会面临调用 API 方法或设置选项时,由于参数错误或缺少参数而导致小部件出现一些错误的问题。
为了更好地帮助开发者快速掌握此类情况,我们新增了两个回调函数:onLogError和onLogWarning。
一旦在小部件中发生异常,就会调用回调onLogError。此回调的参数对象为您提供有关哪个方法或设置失败的更多信息,以及有关错误的更多详细信息。默认情况下,处理回调后会重新引发异常,但您可以通过返回特殊标志来防止这种情况发生。
触发onLogError的另一种情况是应用程序本身在处理 VSW SE 回调时导致异常并且自身没有捕获该异常。
onLogWarning回调以类似的方式工作。数据不一致时触发。参数对象会通知您失败的方法的名称以及此故障原因的附加描述。此类描述的示例是“选项‘xyz’未知”、“对象 ID 为空”或“ID 为‘xyz’的对象不唯一”。
这些新回调的另一个非常有趣的用途是将它们的消息转发回服务器进行记录(理想情况下用于记录它们以及其他参数,例如用户、会话、应用程序等),以便以后重现问题。