KINGDEE DOC ID:KDSP_EAS_T_V3.0.0 软件构架设计文档 第 21 页 共 31 页
3.6. 为单据加上打印功能
3.6.1. 列表打印
列表打印相当简单,由于控件与应用框架的良好支持,我们只要写很少的代码就可以将该功能集成进来。详见SampleBillListUI的方法: 方法名称 preparePrintPageHeader getPrintExtVarProvider 3.6.2. 单据打印
相对列表打印,单据打印复杂得多,主要由3个步骤组成:
描述 此处可以增加表头行。行格式中可以使用变量。 提供preparePrintPageHeader中定义的变量的具体取值。 3.6.2.1. 准备打印元数据
打印元数据与前面提到的业务对象、查询对象等BOS元数据不同,它实际上是一个XML格式的描述文件,列举了可用于绑定模板控件的字段。定义一个新的元数据文件时可以复制一个类似功能的文件,然后对表名和字段名稍做修改就可以了。 定义好元数据后,可以用EAS套打设计器的存储管理功能将它引入到报表服务器上:
KINGDEE DOC ID:KDSP_EAS_T_V3.0.0 软件构架设计文档 第 22 页 共 31 页 注:为每一类单据定义一个元数据目录和一个模板目录,两者必须对应,名称也必须相同。
3.6.2.2. 设计打印模板
模板设计工具的具体使用不再详述,这里着重强调几点: 数据源的类型选择“BOS元数据”,在备选来源中选择第一步定义的元数据。
设置分录循环区内第一个分组容器的分组属性为“单据唯一标志”:
KINGDEE DOC ID:KDSP_EAS_T_V3.0.0 软件构架设计文档 第 23 页 共 31 页
3.6.2.3. 编写代码调用套打功能
在SampleBillEditUI的invokePrintFunction方法中,首先同步界面控件与业务对象的状态,之后将绑定信息传递给公用的打印数据源对象BillPrintDataSource,最后以数据源对象为参数调用KDNoteHelper.printPreview显示出预览窗口。
3.7. 为业务操作加上日志功能
添加日志功能非常简单,甚至不用写一句代码,在BOS Studio中打开service.log文件,增加如下配置项:
KINGDEE DOC ID:KDSP_EAS_T_V3.0.0 软件构架设计文档 第 24 页 共 31 页
日志项与业务对象的方法绑定,即该方法被调用时,相应日志项信息就会被记录到上机日志中。例如我们执行了一个新增单据的操作,将在日志中看到:
日志很清晰地记录了操作人、操作对象、执行时间等信息。 注意:修改service.log文件后,直接用BOS Studio的发布功能无法正常使用日志配置项,必须手工将其拷贝到W:/apusic/metas下。
3.8. 为单据加上工作流
我们将设计这样一个工作流:制单人提交单据后,将启动一个工作流实例,之后经过多级审批走到结束点,在单据被审批前制单人可以修改或删除它。如图:
KINGDEE DOC ID:KDSP_EAS_T_V3.0.0 软件构架设计文档 第 25 页 共 31 页
3.8.1. 定义事件
工作流的驱动过程与事件相关,而事件是与业务对象的方法绑定的,当方法被调用时,相关的事件被触发,从而将工作流驱动到下一节点。 因此首先定义两个事件evtSubmit与evtDelete,分别与方法submit与delete绑定。