1周文康2020年9月金蝶云星空BOS专题中级课套打平台2Content010203套打平台总体介绍套打平台的常用配置套打平台的插件二开套打平台的常见问题04答疑053Content01套打平台总体介绍0203套打平台的常用配置套打平台的插件二开套打平台的常见问题04答疑054套打平台概念:套打平台是BOS平台的辅助工具,提供了套打模板的相关设计和配置,使用户能够迅速高效的设计套打模板并进行打印。特点:支持多种业务对象类型(基础资料、单据、账表、动态表单)。提供多种通用控件;并能够按照控件的规则进行灵活组合,实现不同的打印场景。支持插件自定义套打数据包、动态字段(实现客户的自定义输出场景)。支持页面设置、套打设置、指定打印机、多模板打印等套打配置。提供多种套打方式(连续套打所选单据、连续套打所选分录,合并套打等)和套打导出功能。5套打设计平台蓝图数据源基础资料账表单据属性设置嵌套设置分组管理页面设置套打设计平台(套打引擎)通用控件(多种控件类型)系统变量(用户、组织)工作流(审批流、工作流)常用公式(页码、时间、行号)BOS集成开发平台支撑(BOS平台核心引擎)排序打印汇总打印节纸打印分组打印分页打印动态列打印图片打印承前过次子单据体打印分层打印自动换行自动缩小层设置样式设置套打型报表型套打设置模板选择方案设置多模板设置套打打印连续套打合并套打选择套打套打预览连续套打预览合并套打预览选择套打预览套打导出连续套打导出合并套打导出选择套打导出动态表单6套打打印的执行流程7Content01套打平台总体介绍0203套打平台的常用配置套打平台的插件二开套打平台的常见问题04答疑058套打平台9套打设计器工具栏菜单栏工具箱设计区项目栏属性栏10套打控件:数据表格数据表格:多行表体数据输出的主要控件,支持表头表尾输出,对数据做分组、汇总等功能1、普通行支持每页出现、不打印空行2、数据行,作为多行表体数据的输出控件,支持报表型(高度动态计算)、套打型(固定区域输出)3、支持GetValue函数取值,实现输出内容以文本形式拼接的功能案例:数据表格行高自适应介绍https://vip.kingdee.com/article/7966593965790105611套打控件:数据表格3、支持分组管理,默认按照分组字段做升序排序,进行分组输出;支持不同分组重起一页、重新计算页码案例:利用分组行进行同一表体下相同输出单元格合并输出https://vip.kingdee.com/article/8097835741151001612套打控件:数据表格3、支持分组管理,默认按照分组字段做升序排序,进行分组输出;支持不同分组重起一页、重新计算页码案例:利用分组行进行单据体和子单据体上下布局输出https://vip.kingdee.com/article/17165713套打控件:数据表格4、支持汇总管理,按照汇总依据进行数据合并输出,对汇总字段进行统计,非汇总字段取组内最后一行输出。案例:针对明细分类账支持表达式过滤数据不参与汇总(凭证数据按日期+凭证号汇总,支持部分数据不汇总)14套打控件:数据表格5、支持承前过次行过次:在数据行没有输出完全需要换页时,在本页输出本页统计数额信息承前:接上页过次行,输出相同的统计数额信息案例:总分类账套打设置承前过次https://vip.kingdee.com/questions/148222/answers/17494815套打控件:布局表格1、支持行高自适应、嵌套文本自适应、每页出现、图片不参与行高自适应计算案例:利用布局表格每页出现行解决文本遮挡问题,输出每页页脚https://vip.kingdee.com/article/17110116套打控件:布局表格1、支持行高自适应、嵌套文本自适应、每页出现、图片不参与行高自适应计算案例:利用布局表格嵌套布局表格实现整块同页输出(整块换页)17套打控件:简单数据表格1、支持行高自适应、图片不参与行高自适应计算、合并打印数据2、支持GetValue函数取值,实现输出内容以文本形式拼接的功能;能够作用于单据头和子单据头案例:利用合并打印数据实现部分显示首行,部分以逗号作为分隔符拼接输出(合同头上输出合并内容)https://vip.kingdee.com/article/8895920467249126418套打数据源:常用公式1、页码公式:GetPageNumber()、GetPageTotal()2、数据表格输出序号公式:GetGroupNumber(0)、GetRowNumber(0)、GetGroupNumberRowNum(0)案例:针对页码,常用公式中带等号公式与不带等号公式的区别https://vip.kingdee.com/article/18397819套打设置器设置:页面设置1、纸张设置:设置套打可渲染区域大小,纸张边距2、动态走纸设置:模拟一个无限长的纸张输出,当套打模板全部输出完成时自动停止输出(没有页的概念,输出表体数据应使用报表型)案例:使用动态走纸设置,使套打导出Excel、PDF数据行连续输出(只输出一个表头)20套打设置器设置:页面设置3、节纸打印设置:支持横纵向节纸设置,单张单据下的节纸设置,跨单据的节纸设置案例:单据内的节纸设置,跨单据的节纸设置https://vip.kingdee.com/article/8352320856490828821套打应用:套打设置1、默认设置:配置单据类型或业务对象直接使用的套打模板(不启用选择模板界面和高级设置)2、高级设置:打印机名称:指定打印机名称,实现静默打印套打排序:运行时的数据实体排序,优先级高于套打模板设置分组合并设置:对单据头、子单据头字段分组,对各分组合并套打(强制,启用连续套打依然为合并)https://vip.kingdee.com/school/366222套打应用:套打设置2、高级设置,条件:对应单据数据使用该模板执行套打的前提条件3、参数设置,高级套打首条件预览打印:套打多个模板同时满足条件是否仅打印首个模板案例:凭证有人民币数据和外币数据,只打印外币的模板https://vip.kingdee.com/article/14690323套打应用:套打设置3、参数设置套打显示选择模板界面:每次套打操作进行交互式选择模板套打不显示预置套打模板:隐藏系统出厂预置的套打模板批次打印页数:设置按批次发送页面(提升性能,但无法选择页码打印)https://vip.kingdee.com/questions/7426/answers/10920;https://vip.kingdee.com/article/18203024套打应用:套打操作1、套打预览、套打打印2、套打导出:利用第三方控件技术实现的依照套打模板生成导出文件3、列表连续套打、合并套打案例:利用表单插件实现套打导出自定义导出文件名https://vip.kingdee.com/article/7624797196816025625Content010203套打平台总体介绍套打平台的常用配置套打平台的插件二开套打平台的常见问题04答疑0526套打二开接口27干预数据包接口OnPrepareNotePrintData:业务场景:在套打中想针对个别字段做特殊显示处理,但是对应在套打的格式化中无法解决套打数据源中不支持的数据处理逻辑(如显示上游单据编号)针对多行表体数据进行数据调整,修改套打输出顺序、过滤部分数据、数据合并显示等功能:通过干预数据包的逻辑,修改套打字段中的结果,或增加新的字段进行套打显示表单插件接口:干预套打数据包28案例实现:实现合并套打所选子分录https://vip.kingdee.com/article/86136272539827200Python插件动态字段https://vip.kingdee.com/article/182132输出顺序调整,实现分组倒序输出https://vip.kingdee.com/article/57110672764935425总体介绍https://vip.kingdee.com/article/86136272539827200具体参数:1、DataObjects:套打数据包。2、NotePrintTplId:套打模板标识,用以针对部分模板进行数据包调整。3、DataSourceId:套打数据源标识,当前数据对应的实体,包括单据上的元数据实体、审批路线和特定工作流程数据。4、DynamicObjectType:返回的套打数据包动态属性,如果增加字段使需要在该动态属性中增加属性。注意事项:1、基础资料下的字段和基础资料数据包不支持修改,使用动态字段处理2、插件中的兼容处理,如不同模板处理、当前表单调用其他业务对象等逻辑3、套打数据包是按需取数数据包,数据包中的键对应字段标识(对比单据数据包使用的是属性名);如果需要取该字段,可通过文本控件绑定设置不打印4、表单插件和列表插件的实现逻辑差异问题表单插件接口:干预套打数据包29跨业务对象套打打印业务场景:在采购申请单上,根据指定的规则打印其他关联单据(如采购申请单上打印采购订单),目前系统中的套打操作只支持当前业务对象的套打功能:在单据、列表界面上套打非当前业务对象的单据套打相关实现:跨业务对象套打打印30模拟前后端的套打打印逻辑,向当前视图写入打印任务,通知前端调用套打预览、打印服务案例实现:实现调用当前业务对象套打https://vip.kingdee.com/article/183240调用跨业务对象套打https://vip.kingdee.com/article/43294351955656704注意事项:1、目前该场景只支持在基础资料和单据上进行跨业务对象套打,不支持动态表单按照此实现套打(动态表单调用需要自行取数填入)2、同一个打印任务中对应的单据必须为同一个业务对象,不支持一个打印任务中处理多个业务对象(参照示例利用打印完成时间和本地打印队列实现)3、表单插件干预数据相关问题,当前视图非带引对象视图套打相关实现:跨业务对象套打打印31跨业务对象套打打印业务场景:在采购申请单上,根据指定的规则打印其他关联单据(如采购申请单上打印采购订单),目前系统中的套打操作只支持当前业务对象的套打导出;或者修改其他实现方案的套打方式(如修改发送邮件操作的导出类型为按分录合并导出)功能:在单据、列表界面上获取套打导出非当前业务对象的文件套打相关实现:跨业务对象套打导出32案例实现:干预发送邮件的套打导出附件为合并套打https://vip.kingdee.com/article/81488334698312192具体参数:1、PageId:关联的视图标识。2、FormId:业务对象标识。3、BillIds:单据内码集合。4、TemplateIds:套打模板集合。5、FileType:文件类型。6、ExportType:导出类型。7、FilePath:文件的输出路径。注意事项:1、目前该场景只支持在基础资料和单据上进行跨业务对象套打,不支持动态表单、账表按照此案例实现套打导出2、同一个套打导出任务中对应的单据必须为同一个业务对象,如需要一个文件合并多业务对象导出效果https://vip.kingdee.com/article/44822?channel_level=kdclub3、表单插件干预数据相关问题,当前视图非导出对象视图套打相关实现:跨业务对象套打导出33自定义数据表格动态列接口OnQueryDynamicColumns业务场景:针对同一个业务对象,其套打输出的列数与该单据的数据相关,无法固定其输出的列数,因此无法通过数据表格普通列进行数据绑定输出。功能:对套打模板上的特定列进行自定义,调整其输出列数以及动态绑定输出内容套打插件接口:数据表格动态列34自定义数据表格动态列接口OnQueryDynamicColumns案例实现:结合干预数据包接口进行行转列输出https://vip.kingdee.com/article/78446215485965568具体参数:1、DataSourceId:数据源标识。2、DataGridId:数据表格控件标识。3、DynamicColumnId:模板上的动态列控件标识。4、DynamicColumns:自定义的输出列集合(标题、绑定字段、统计设置)注意事项:1、动态列为对当前列宽平分到所有子列上2、动态列对应的数据表格如果位于页面上的布局表格上,应指定干预类型DataGridContainerType.LayoutGridWhoseContainerIsPage套打插件接口:数据表格动态列35Content010203套打平台总体介绍套打平台的常用配置套打平台的插件二开套打平台的常见问题04答疑0536现象:以采购订单为例,需要打印采购订单上的物料的物料分组的编码,但是通过套打拖入字段显示为名称字段1、单据A上的基础资料B的基础资料字段C套打,取值顺序:先名称后编码2、变通方案:在基础资料B上增加基础资料属性字段D,绑定基础资料字段C的编码属性,套打模板上绑定基础资料B的基础资料属性字段D。https://vip.kingdee.com/article/72056835087189760常见问题:套打嵌套基础资料需要显示编码37现象:工作流邮件、发送邮件操作、套打导出操作的套打PDF文件,显示乱码、不显示问题1、排查对应的字体是否支持对应的显示内容(如宋体不支持作用在泰语上)2、排查对应的字体在应用服务器上是否存在(通过python插件验证,公有云则提单,后续优化字体列表为服务器字体列表)3、系统只支持ttf字体类型https://vip.kingdee.com/article/61556895303144448常见问题:套打导出PDF字体乱码问题38现象:套打设置行高自适应和自动换行,对应输出内容依然被遮挡1、提供新版折行算法(字体大小、空格宽度、英文单词整词处理,套打导出不支持),控件下方留白高度https://vip.kingdee.com/article/890814400462251522、套打导出PDF与套打打印不一致问题的变通方案:https://vip.kingdee.com/article/52850796055877120常见问题:套打行高自适应自动换行内容遮挡39现象:列表界面做选中行套打操作,对应套打中缺失部分勾选数据1、前置排查,确认模板中对应数据能够显示,数据表格过滤、套打汇总管理、二开插件干预数据包、模板设置是否合理(如果为该类问题,那么套打数据丢失为必现场景)2、偶发出现的数据丢失问题,再次点击套打操作后正常,需要配置为链式请求3、详情参见:https://vip.kingdee.com/article/61033280388592640https://vip.kingdee.com/article/170666常见问题:列表所选行套打数据丢失40现象:单据界面点保存后立刻进行打印,打印出来的单据与单据界面不一致(数据缺失)1、前置排查,确认模板中对应数据能够显示,数据表格过滤、套打汇总管理、二开插件干预数据包、模板设置是否合理(如果为该类问题,那么套打数据丢失为必现场景)2、偶发出现的数据丢失问题,再次点击套打操作后正常,需要配置为链式请求,同列表操作(对应单据界面还有其他表现特征,比如在界面关闭时提示单据“内容已修改,是否需要保存”)3、其他:单据界面套打数据丢失的跟踪方案:https://vip.kingdee.com/article/83943481835465984常见问题:单据界面的套打数据丢失411、套打常见问题汇总——https://vip.kingdee.com/article/1484892、凭证套打入门到提高以及常见问题——https://vip.kingdee.com/article/552188640908631053、【套打设计平台模块】课程一览——https://vip.kingdee.com/article/114214、套打平台40问——https://vip.kingdee.com/article/1462775、金蝶云·星空套打常见问题讲解——https://vip.kingdee.com/school/3506套打其他常见问题汇总42Content010203套打平台总体介绍套打平台的常用配置套打平台的插件二开套打平台的常见问题04答疑0543Thanksterimakasih感謝谢谢ありがとうขอบคุณ