电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

金蝶云星空BOS专题中级课-账表.pdf

金蝶云星空BOS专题中级课-账表.pdf_第1页
1/54
金蝶云星空BOS专题中级课-账表.pdf_第2页
2/54
金蝶云星空BOS专题中级课-账表.pdf_第3页
3/54
1张虎2020年6月金蝶云星空BOS专题中级课账表开发2Content010203总体介绍创建简单账表扩展现有账表最佳实践04答疑053Content010203总体介绍创建简单账表扩展现有账表最佳实践04答疑054报表平台解决方案整体介绍系统账表万能报表账表轻分析5系统账表的分类6账表的基本组成账表标题账表轻分析分页账表专用账表关联查询单据头,显示过滤条件表头组合表头汇总行7账表的基本组成8账表的基本组成9Content010203总体介绍创建简单账表扩展现有账表最佳实践04答疑0510接口关系图11账表开发基本步骤在账表开发过程中,账表引擎只负责把账表服务端插件取到的数据绑定到设计好的账表模型上。1.创建账表元数据,设置表头和报表列。2.创建自定义过滤方案元数据,设置条件、排序字段、分组汇总等。3.账表服务端插件开发。4.账表表单插件开发(可选)。5.发布菜单。12需求分析采购订单执行明细表主要用来查询采购订单执行的情况,显示订单、到货、入库、退料的详细信息,数据来源于采购订单以及与采购订单相关联的收料单、入库单、退料单。简化需求:报表根据过滤条件,显示采购组织、采购部门、供应商、采购日期、单据状态、物料、采购数量、单位、单价。13创建账表元数据14创建过滤方案元数据—显示隐藏列15创建过滤方案元数据—快捷16创建过滤方案元数据—条件17创建过滤方案元数据—汇总18插件开发—创建工程使用VS2012及以上版本,.Net4.0,创建一个ClassLibrary项目创建好单据转换插件类库工程后,可以把同一个子系统的所有服务取数插件类都放在这个类库中;项目命名规范:[开发商].K3[.业务领域][.子系统].ReportPlugIn。19插件开发—创建工程1.引用必要的组件(从安装的K/3Cloud业务站点WebSite\Bin目录获取)2.创建账表插件类在前文所建的账表插件工程中,添加新类,派生自系统报表数据源服务基类:Kingdee.BOS.Contracts.Report.SysReportBaseService输出路径为相应的开发站点WebSite\Bin目录20插件开发—启用插件插件编写完毕,类库编译通过后进入BOS设计器,打开对应账表模型,配置账表服务插件。21服务插件开发—取数第一步,在Initialize函数中设置报表属性。第二步,在BuilderReportSqlAndTempTable函数中查询数据并存入临时表。22服务插件开发-重要属性 ReportPropertyReportType账表类型,默认是简单账表 IsCreateTempTableByPlugin标识报表是否调用BuilderReportSqlAndTempTable接口创建临时表23服务插件开发-重要函数 Initialize()触发时机账表View初始化,开始初始化账表服务取数插件代理对象时应用场景此时账表插件基类已完成账表属性对象(ReportProperty)的创建工作备注设置账表的类型、设置账表属性替代显示信息、设置字段精度控制等等24服务插件开发-重要属性 IRptParams.BaseDataTempTable基础资料临时表;如果设置了数据范围,该表会把根据数据范围过滤出来的内码存入临时表;25服务插件开发-重要函数 BuilderReportSqlAndTempTable(IRptParamsfilter,stringtableName)触发时机正式进入账表取数sql拼接并取数,把账表取数结果放到上一步创建的临时表中应用场景开始进行账表sql拼接取数,并把账表取数结果放到上一步创建的临时表中备注如果此账表插件设置sql数据逻辑由插件完成(IsCreateTempTableByPlugin),即调用BuilderReportSqlAndTempTable接口,否则调用以下3个接口,完成账表取数逻辑的sql指令即:BuilderSelectFieldSQL、BuilderTempTableOrderBySQL、BuilderFormWhereSQL26服务插件开发-设置表头 GetReportHeaders(IRptParamsfilter)应用场景如果账表模型在设计时,没有配置账表单据体字段信息,则通过此方法设置账表列头字段信息27服务插件开发-设置汇总字段 GetSummaryColumnInfo(IRptParamsfilter)触发时机获取账表分组汇总字段信息、汇总类型应用场景获取账表分组汇总字段信息,即在账表取数的所有字段中,哪些字段需要进行分组汇总28服务插件开发-干预汇总字段 GetSummaryColumsSQL(ListsummaryFields)获取汇总列SQL语句29服务插件开发—主账表联查明细账表 ReportPropertyDetailReportType明细账表类型DetailReportId明细报表的FormId(报表表单标识),用于单明细报表30服务插件开发—主账表联查明细账表 IRptParams参数的重要属性和方法IsRefresh报表是否重新刷新取数GetParentReportFilter()获得父报表过滤条件GetParentReportCurrentRow()获得父报表当前行数据GetFirstParentReportFilter()报表穿透,获得第一个报表的过滤条件31服务插件开发—主账表联查多种明细账表 ReportPropertyDetailReportType明细账表类型DetailReportFormIdFieldName明细报表的FormId存储字段名,用于多明细报表32服务插件开发—主账表联查对应单据 ReportPropertyBillKeyFieldName联查单据主键字段名FormIdFieldName联查单据FormId字段名33服务插件开发—分页账表 ReportPropertyReportType账表类型,ReportType.REPORTTYPE_MOVE IRptParams参数的重要属性CurrentPosition当前页账表数据对象的位置信息,除分页报表外,该值始终是034服务插件开发—分页账表 CacheDataList根据账表当前页位置,获取当前页的隔离依据DataRow对象 GetList(IRptParamsfilter)获取分页账表隔离依据列表35服务插件开发—树形账表 ReportPropertyReportType账表类型,ReportType.REPORTTYPE_TREE CurrentGroupID树形账表分组标识,点击树形账表左边树时,由平台账表引擎为其赋值,账表取数sql时,需要以CurrentGroupID作为过滤条件拼接到Sql指令的Where部分36服务插件开发—树形账表 GetTreeNodes(IRptParamsfilter)树形账表获取左边树形控件数据包的方法37服务插件开发—透视表 SettingInfoRowTitleFields透视表行标题字段集合ColTitleFields透视表列标题字段集合AggregateFields透视表统计字段集合SelectedFields透视表选择的字段集合38服务插件开发—透视表 PivotReportSettingInfo.CreateColumnSettingField(Fieldfld,intseq)创建行列分析字段39表单插件开发—格式化账表表单插件继承于基类AbstractSysReportPlugIn OnFormatRowConditions(ReportFormatConditionArgsargs)报表数据行格式化事件40表单插件开发—Python插件41表单插件开发—禁止表头排序42表单插件开发—点击/双击单元格 voidCellClick(CellEventArgsArgs);单元格单击事件 voidCellDbClick(CellEventArgsArgs);单元格双击事件。不会触发EntityRowDoubleClick事件。43Content010203总体介绍创建简单账表扩展现有账表最佳实践04答疑0544扩展基础资料属性操作步骤:1.在账表上增加基础资料属性控件,关联基础资料属性绑定已存在的基础资料。2.在自定义过滤方案的显示隐藏列,增加基础资料属性,和元数据的Key一致。注意:使用这种方法扩展时,插件重载GetReportHeaders()方式时,不能newReportHeader()。45扩展新字段46Content010203总体介绍创建简单账表扩展现有账表最佳实践04答疑0547最佳实践—用元数据管理字段 在元数据中增加需要显示的字段,便于控制字段显示格式。特别对于小数、日期等字段,在元数据中调整字段样式更便于二开扩展。48最佳实践—SQL属性 SQL属性可以把取数SQL暴露出来,这样对于修改数据、增加字段的二开,只需要修改SQL语句即可。49最佳实践—SQLScript控件 如果业务比较复杂,可对取数过程的SQL进行切片。此时可用多个SQLScript控件管理多个SQL语句,使得每部分SQL更加短小、清晰,便于二开扩展和修改。50最佳实践—对临时表创建索引 临时表是以物理表的形式存在,对过滤方案中的常用查询字段可创建索引,提高账表性能。51最佳实践—HotUpdate开启与关闭52注意事项—FIDENTITYID字段FIDENTITYID字段是从1开始的整数序列,用于报表分页显示,所以临时表中一定要有FIDENTITYID字段,且不能重复,不能跳号。53注意事项—删除自定义临时表删除后的临时表确保不再使用,否则会报错。建议放在CloseReport()函数里统一处理。创建临时表使用:IDBService.CreateTemporaryTableName()删除临时表使用:IDBService.DeleteTemporaryTableName()服务端插件使用Kingdee.BOS.App.ServiceHelper.GetService()使用接口,不要使用Kingdee.BOS.Contracts.ServiceFactory//IDBServicedbSrv=Kingdee.BOS.Contracts.ServiceFactory.GetDBService(Context);IDBServicedbSrv=Kingdee.BOS.App.ServiceHelper.GetService();stringtmpTbName=dbSrv.CreateTemporaryTableName(Context);54Thanksterimakasih感謝谢谢ありがとうขอบคุณ

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

金蝶云星空BOS专题中级课-账表.pdf

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信