版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、版权所有 1993-2010 金蝶软件(中国)有限公司P2 版权所有 1993-2006 金蝶软件(中国)有限公司 工业单工业单据平台据平台 简介简介 单据模版介绍单据模版介绍 代码结构介绍代码结构介绍 工业单据工业单据序时序时簿簿 序时簿模版介绍序时簿模版介绍 代码结构介绍代码结构介绍 工业单据打印工业单据打印 单据打印介绍单据打印介绍 套打模版介绍套打模版介绍 打印代码结构介绍打印代码结构介绍P3 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-简介简介n工业单据平台和工业单据平台和BOSBOS平台的关系和特点平台的关系和特点工业单据平台是K/3 BOS平台
2、产生之前的K/3工业统一单据平台主要应用于K/3工业链系统和制造系统早期开发的业务单据基于数据库模版配置动态构建三层架构模式涵盖了业务单据的设计、维护、打印、单据转换和列表查询等功能支持较丰富的二次开发接口和手段n注意目前处于维护已有单据阶段禁止创建新的业务单据类型,新的业务单据必须使用BOS实现,已有单据新增的业务功能尽量采用二次开发接口扩展实现,尽量减少对单据自身核心代码的改动(可扩展接口)n其它本课件主要介绍工业单据平台的单据、序时簿和套打相关的模版表结构和代码处理结构,单据转换和二次开发等其他相关内容请参考相应主题的其它课件P4 版权所有 1993-2006 金蝶软件(中国)有限公司工
3、业单据平台工业单据平台-单据模版介绍单据模版介绍表名作用ICTransactionType单据事务类型表,描述单据的整体性配置属性,类似BOS的ICClassTypeICTemplate单据头模版表,描述单据头字段的配置情况,类似BOS的ICClassTableinfoICTemplateEntry单据体模版表,描述单据体字段的配置情况,类似BOS的ICClassTableinfoICBillAction单据扩展Action配置表,描述单据参数化选择性Action配置方案P5 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍nICTran
4、sactionType 单据事务类型表(一)单据事务类型表(一)字段说明FBrNo机构编码,未使用FID单据事务类型内部IDFRob红蓝字标记 :1表示该单据区分红蓝字 ,0表示没有红蓝字之分FName单据名称FType单据类别,代码中少数地方有判断使用,枚举值定义位置. CodeUltimateK3INDUSTRYPublicPublic ModulesClientK3Enum.basFTempalteID单据模版IDFVchTempalteID凭证模版IDFHeadTable单据表头对应的数据库表名FEntryTable单据表体对应的数据库表名FCheckPro单据审核的二次开发组件(现通
5、过二次开发模版配置)FFixCols单据的固定列数目(从左到右的锁定)P6 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍nICTransactionType 单据事务类型表(二)单据事务类型表(二)字段说明FObjectType权限对象类型FObjectID权限对象IDFBillPOSHeadTable前台录单系统对应单据头表FBillPOSEntryTable前台录单系统对应单据体表FListTemplateID序时簿IDP7 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍n
6、ICTemplate 单据头字段描述表(一)单据头字段描述表(一)字段说明FID 单据模版ID ,对应于ICTransactionType表中的FTemplateID字段FCtlIndex 表头控件编号(作为控件数组的索引,所以必须连续且唯一) FTabIndex 控件的Tab跳动次序 FCaption 控件标题 FCtltype 控件类型 0文本,1日期,2查找,3数量 ,4 编号,5 选单 ,6 单据标题,7 单据分录,8 审核,9 制单,10 批号,11 金额,12 单价,13 税率,14 会计科目 ,15 生产订单状态,16 生产订单来源,17 要求缺省为空的日期,18 记账 , 20
7、 汇率,21 含税价,22 当前操作员, 30 自定义单据使用的字符串类型,31自定义单据使用的数字类型,32自定义单据使用的日期类型,33自定义单据使用的整数类型40本位币金额类型 P8 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍nICTemplate 单据头字段描述表(二)单据头字段描述表(二)字段说明FLookUpCls 查找类别如果FCtltype为查找类型,则与表t_ItemClass(核算项目表)中的FItemClassID对应,或者为辅助资料的ID(t_SubMesType 中FtypeID,t_SubMessage中
8、FTypeID)还有几种不属于以上类型的自定义的类型:18:批号 13:科目 12:币别 -8:分录审核人 -15:仓位-17:单据类型 -18:质检方案 -20:部门(车间特殊处理,现已无用)-24:对应代码 -35:选单关联关系列表 -99:辅助属性-100:工艺路线 -101:BOM调用 -102:生产类型-103:生产线 -110:BOM单组别 -108:虚仓批号V10版本增加对新单据平台的支持。一般辅助资料FLookUpCls 999999。 P9 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍字段说明FNeedSave是否需
9、要保存FValueType保存到数据库中值的类型 0 字符串,1 数字,2 日期,3 整数,8 Bool型FSaveValue保存值的类型 0 名称,1 内部ID,2 代码前期版本存在类型3,已经没有使用了FFieldName 该字段对应在数据库表中的字段。在同一个单据的模版中不能重复。FEnable控件在各种单据操作下是否可录入:用一组二进制数表示,可录入则对应位为1否则为0。各位表示表如下(从左到右)nICTemplate 单据头字段描述表(三)单据头字段描述表(三)P10 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍nFEnab
10、leFEnable值说明值说明操作订单确认新增修改查看审核下达单价金额修改位权6432168421如:48(110000)表示该字段在新增、修改状态下可以录入,其他状态下不可录入 P11 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍nICTemplate 单据头字段描述表(四)单据头字段描述表(四)字段说明FPrint是否打印FSelBill如果该控件可以选择其它单据作为数据的输入来源,则该值对应为被选择单据的叙事簿ID一般单据FSelBill999999。 FMustInput 是否必须录入 FFilter过滤条件。一般用于选单或查
11、找某类基础资料时过滤掉一些不符合选择条件的单据或基础资料。 这里只是静态条件,如果需要动态切换,需要在单据代码中实现FRelationID表示哪一个字段的改变会导致当前控件值的改变。值为对应字段的数据库字段名。如有多个这样的字段可以用逗号隔开。P12 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍nICTemplate 单据头字段描述表(五)单据头字段描述表(五)字段说明FAction 前面FRelationid定义的字段的改变时该执行什么样的操作。例如汇率这个字段,它的FRelationID为FCurrencyID ,FAction为
12、 “.,FExchangeRate”表示当改变币别时,把对应币别的默认汇率填入汇率栏中。FLockA 为1表示选单过来的数据不能再添加删除分录 FROB 1 只在蓝字单据中可见,2只在红字单据中可见3 在红蓝字单据中都可见FDefaultCtl 系统自带控件为1,自定义的为0 FVisForBillType 控件在各种单据操作下是否可见:用一组二进制数表示,可见则对应位为1否则为0。各位表示表如下(从左到右) P13 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍nFVisForBillType 值说明操作导入可选数据倒入锁定字段并默认
13、导出是否作为数据导入字段:K3BillsDataImport.vbp移动商务默认字段移动商务可用新增修改查看审核下达位权5122561286432168421P14 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍nICTemplate 单据头字段描述表(六)单据头字段描述表(六)字段说明FVBACtlType 自定义单据用来区分是什么类型的控件有Frame,Label,Kdtext三种 FRelateOutTbl 如果该控件为其它选择类型的属性则为1表示该字段在当前表中不存在,是属于关联的其他表例如:销售发票有个客户开户银行账号就是此类
14、 FSystemMustInputItem 是否系统必录,如果为1,则自定义单据也不能把它变为非必录。FInEntryForSPrint 连续打印时打印在分录里 FMaxValue 字段最大值 FMinValue字段最小值FDefaultValue 字段默认值 CurrDate、CurrTime、CurrYear、CurrPeriod分别为当前日期、时间、年度、会计期间 P15 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍nICTemplate 单据头字段描述表(七)单据头字段描述表(七)字段说明FFormat 表示当前字段的格式或精
15、度或长度如果当前字段为日期类型(FValueType=2),则0表示普通日期类型,1表示长日期类型(精确到时分秒)FLookUpType字段查找类别,主要用于查找字段下拉列表,值枚举定义在.CodePublicK3BosPublic ModulesPubmodHYEnum.basP16 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍nICTemplateEntry 单据体字段描述表单据体字段描述表单据体字段描述表结构与单据头字段描述表结构类似,对应字段含义也非常相似n特殊字段说明特殊字段说明字段说明FCtlOrder该字段的值决定字段在
16、单据自字段数组中的下标,FCtlIndex只是字段在界面上的显示顺序,和单据头字段描述表的FCtlInidex字段一样,要保持FCtlOrder的顺序和连续性,该字段值的先后顺序决定级联Action的触发顺序,此字段值顺序的修改可能影响会导致单据Action的计算结果的不同FCtlType 分录列类型 0文本,1日期,2查找,3数量 ,4 编号,5 选单 ,6 单据标题,7 单据分录,8 审核,9 制单,10 批号,11 金额,12 单价,13 税率,14 会计科目 ,15 生产订单状态,16 生产订单来源,17 要求缺省为空的日期,18 记账 ,20 汇率,21 含税价, 30 自定义单据使
17、用的字符串类型,31自定义单据使用的数字类型,32自定义单据使用的日期类型,33自定义单据使用的整数类型,40本位币金额类型 P17 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍字段说明FLookUpCls 如为查找类型 则与表t_ItemClass(核算项目表)中的FItemClassID对应,或者为辅助资料的ID(t_SubMesType 中FtypeID,t_SubMessage中FTypeID)还有几种不属于以上类型的自定义的类型:18:批号 13:科目 12:币别 -8:分录审核人-15:仓位 -17:单据类型 -18:质检
18、方案-20:部门(车间特殊处理,现已无用)-24:对应代码-35:选单关联关系列表 -99:辅助属性 -100:工艺路线 -101:BOM调用 -102:生产类型-103:生产线 -110:BOM单组别 -108:虚仓批号V10版本增加对新单据平台的支持。一般辅助资料FLookUpCls 999999。 nICTemplateEntry 特殊字段说明(二)特殊字段说明(二)P18 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍字段说明FNeedCount该分录列是否需要合计,1:需要 0:不需要。应用于单据界面的合计显示。 FSaveR
19、ule该列值的保存规则,例如“U:0”表示该列的值不能为0。FSaveRule的详细含义需要在代码中查询FStatCount是否汇总类字段(与FNeedCount类似,但使用于程序内部的拆分、打印、合并打印等处理)nICTemplateEntry 特殊字段说明(三)特殊字段说明(三)模板维护注意:尽量保持FCtlOrder和FCtlIndex字段的一致性尽量采用以前版本维护脚本文件中采用的模块化SQL片段P19 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍n工业单据工业单据ActionAction简介简介单据Action是一种自动计算
20、机制,计算种类非常广泛,例如录入物料携带名称,修改数量重算金额等单据Action大多采用被动方式触发,一小部分为主动方式单据Action支持级联触发单据基本的Action都配置在单据头模版和单据体模版中,有些需要根据系统参数和单据选项采用不同Action的方案保存在ICBillAction表中,该表结构后续讲解单据支持单据头字段修改影响到单据体的Action单据Action支持对触发源的选择性使用P20 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍n工业单据工业单据ActionAction详解详解单据Action由Action标示符,
21、选择性触发源字段列表和Action计算参数列表三部分组成,每部分之间用逗号分隔,一个字段也可以配置多个Action,Action之间用分号分隔,如采购发票的换算率字段:FRelationID值:FItemID,FSecQtyFItemID,FSecQtyFAction值:.,.,FSecCoefficientFSecCoefficient; ;Cal,FSecQty&ACal,FSecQty&A=B/=B/C,FQty,FSecQtyC,FQty,FSecQty; ;ControlLocked,FSecUnitIDControlLocked,FSecUnitID,=,True,
22、=,True这个Action表达式共包含了3个ActionAction1Action标志符:. Action含义:携带基础资料属性到当前字段Action选择性触发源:空,表示FRelationID字段中列出的所有字段修改都会触发此Action(触发源和参数间用&分隔,多个触发源之间用|分隔)Action参数列表:FSecCoefficient结合参数,该Action含义为:携带触发源字段的辅助换算率属性到当前字段,因为触发源中的FSecQty不是基础资料,此Action自动失效Action2Action标志符:CalAction含义:按照自定义公式计算结果并填入当前字段Action选择
23、性触发源:FSecQty,表示只有FSecQty字段值修改才会触发此ActionP21 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍n工业单据工业单据ActionAction详解详解( (序上页序上页) ) .,FSecCoefficient;Cal,FSecQty&A=B/C,FQty,FSecQty;ControlLocked,FSecUnitID,=,TrueAction2(续上页)Action参数列表参数1:A=B/C 自定义计算公式,含义:当前字段A结果=参数2/参数3参数2,3(FQty,FSecQty)按顺序分别
24、对应为B和C的取值来源,常数计算项直接写入计算公式,不需要增加参数Action3Action标志符:ControlLocked Action含义:根据计算结果锁定/放开字段Action选择性触发源:空,表示FRelationID字段中列出的所有字段Action参数列表:FSecUnitID ,=,True,共4个参数FSecUnitID 判断界面取值来源字段,这里为辅助计量单位= 判断逻辑,这里为判断相等 ,比较参考值,这里为 (空)True 返回值结合所有参数,此Action含义为如果辅助计量单位字段为空则返回True(应用到当前字段的FEnabled属性上)P22 版权所有 1993-20
25、06 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍nICBillActionICBillAction从之前的单据模版可以看到单据模版对每个字段只能配置一套Action计算公式,但是有些业务单据要求同一字段在不同的情况下采用两套或几套完全不同的Action计算方案,比较典型的如销售发票的折扣字段在“是否启用整单折扣”和“折扣基础是否含税”这两个参数的组合情况下有4套不同的计算逻辑,ICBillAction表就是为了满足类似要求而建立,在单据加载或选项切换时,单据平台会抛出Action加载事件,负责该表内容解析的公共单据插件就会根据传来的参数组合情况从该物理表中加载指
26、定单据不同的Action方案,并以此替换从单据模版中得到的Action计算方案,从而在修改触发时能应用不同配置的Action方案字段说明FID数据内码FTransType单据类型,该表也用于配置新单的Action方案FPage单据字段所在页索引,用于新单FOrder执行顺序FFieldName字段名,新单为字段FKeyP23 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-单据模版介绍单据模版介绍nICBillAction字段说明FRelationID触发源,同于单据模版(新单不使用)FActionAction,同于单据模版FFuncID功能标示(方案条件标志)
27、,目前使用的值:1:启用整单折扣,折扣率计算基础为含税金额2:启用整单折扣,折扣率计算基础为不含税金额3:不启用整单折扣,折扣率计算基础为含税金额4:不启用整单折扣,折扣率计算基础为不含税金额FClassActionID新单使用的功能标示P24 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍工业单据采用三层架构,各层又根据业务功能分为不同的组件,主要有如下这些:组件名所在层说明代码路径K3Bills.dll客户端单据显示和客户端逻辑. CodeUltimateK3INDUSTRYPublicClientDLLsK3BILLSK3Bill
28、s.vbpK3BillPlugin.dll客户端单据扩展Action方案处理公共插件. CodePublicK3INDUSTRYPublicClientDLLsK3BillPluginK3BillPlugin.vbpK3MBillsPackage.dll中间层单据数据包处理组件. CodePublicK3INDUSTRYPublicServerK3MBillsPackageK3MBillsPackage.vbpBillDataAccess.dll中间层单据数据处理组件. CodeUltimateK3INDUSTRYPublicServerBillDataAccessBillDataAccess
29、.vbpP25 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3BillsK3Bills介绍介绍 功能K3bills是工业单据平台最重要的客户端组件,主要负责单据界面的显示、控制、单据功能调用以及与二次开发接口的交互等 代码调试要求(除了安装K3通用的Spread和ActiveBar控件之外的要求) 注册单据使用的需要授权控制的控件,主要包括Ledger50.ocx和KDNote.ocx 将K3安装目录下的ErpSwitch.sss文件拷贝到K3bills代码目录和要调用单据的组件的工程目录下,如K3List.vbp和K3Repor
30、tView.vbp等 主要代码组成部分和功能类/模块功能Bills.cls单据对外接口类,外部代码可以通过该类调起单据Bill.cls单据控制类,界面数据操作,数据包的维护等frmBill.frm单据界面类,界面显示,菜单工具条命令响应等clsBillPackage.cls单据数据包控制类,负责业务数据和单据模板数据包的构造和维护等P26 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3BillsK3Bills主要业务介绍主要业务介绍 单据的加载外部调用者创建单据组件,设置单据属性,调用单据接口显示接口并按要求传入相应的参数单据显示
31、接口:P27 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3BillsK3Bills主要业务介绍主要业务介绍 单据的加载外部调用示例(主控台): P28 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3BillsK3Bills主要业务介绍主要业务介绍 单据的加载单据加载流程 Bills.Show 创建单据窗体frmbill并设置属性 调用窗体加载方法,显示单据界面 Frmbill. Form_Load 调用InitControls初始化界面字体和菜单名称 设置单据控制类
32、ThisBill的属性如果是新增单据调用,则需要设置单据的事务类型,这个设置动作会引起单据界面上单据类型控件cmbTransType的值更新,在这个值更新事件处理函数cmbTransType_Click中会完成单据界面菜单的初始化和单据界面控件的构造和布局如果是打开已有单据,除了和新增一样完成单据界面的构造和布局之外还需要调用MoveBill方法在传入的记录集中查找要显示的单据,加载单据数据,并调用ThisBill填充数据的FillBillData_New完成界面数据的填充P29 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3Bi
33、llsK3Bills主要业务介绍主要业务介绍 单据的加载单据加载流程 Frmbill. cmbTransType_Click函数功能:单据类型控件值切换函数,在单据加载的时候会自动调用 初始化单据控制类对象ThisBill和单据界面图片、菜单工具条等一些控件的属性 调用ThisBill的BuildBill方法构造单据界面和布局 初始化单据二次开发插件 设置单据菜单的可见性和可用性 加载单据的打印设置 Bill.cls BuildBill函数功能:构造单据 先循环设置单据头字段控件全部不可见 清除单据头和单据体字段控件属性数组 调用单据数据包控制类clsBillPackage的GetBillPa
34、ckage方法加载单据数据包(如果是新增单据则只加载单据模版数据,如果有实际单据内码则还会同时加载单据的实际数据包)P30 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3BillsK3Bills主要业务介绍主要业务介绍 单据的加载单据加载流程 Bill.clsBill.cls BuildBillBuildBill(序上)(序上) 根据加载的单据类型的属性数据判断如果单据存在单据体则调用BuildEntryCtls方法构造单据体,如果不存在单据体则设置窗体的单据体表格控件不可见 调用BuildHeadCtls构造单据头 BuildE
35、ntryCtls和BuildHeadCtls分别完成单据体和单据头控件属性数组的构造,函数内部逻辑大致类似,基本都是根据单据数据包控制类加载的单据的模版数据重建用于描述单据头和单据体控件属性的结构数组,并在数组构造完成之后根据数组的描述信息生成与数组内各个字段相对应控件或者表格列,再根据属性信息设置这个控件或者表格列的相应属性(主要包括锁定性、控件编辑类型、显示隐藏、格式控制、默认值设置等)P31 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3BillsK3Bills主要业务介绍主要业务介绍 单据加载 单据模版和数据包的加载单据模
36、版和数据包由单据数据包控制类clsBillPackage负责构造维护,在单据加载时控制类通过中间层接口获得指定单据的数据并构造成指定结构的数据包,在保存时根据界面数据的变化修改单据数据包中的数据并根据单据数据的前后变化生成数据库更新SQL,会同数据包一起交给单据中间层完成数据的更新保存需要注意的是虽然工业单据平台维护的有数据包,但是这个数据包中的数据并不是随时与界面数据一致,界面上查找类别的字段的值修改时单据控制类会更新数据包中的内容与界面保持一致,但是普通文本、数字和日期等类型字段的界面值的修改只有在触发保存重新对界面打包的时候界面数据的实际值才会反映到单据的数据包中,在单据交互过程中,这些
37、类型字段的实际值只能从界面控件中获得另外一点,单据在执行保存之前会对界面数据进行打包更新,但是在完成保存之后并不会再次读取数据库中保存的数据重建数据包和更新界面,所以对于在中间层额外修改的数据需要注意处理界面和数据库的一致性P32 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3BillsK3Bills主要业务介绍主要业务介绍 单据加载 单据模版和数据包的加载 clsBillPackage. GetBillPackage函数功能:加载单据数据并构造单据数据包 判断如果需要加载单据数据则调用K3MBillsPackage.clsRea
38、dPackage的GetBillPackage方法获得单据数据包 新增单据只需要调用GetBillEmptyPackage获得空的单据数据包 GetBillEmptyPackage函数逻辑 如果单据类型没有变化(界面新增调用)只是需要获得一个空的单据数据包而不需要更新模版数据则调用K3MBillsPackage.clsReadPackage的GetBillDataEmptyPackage方法获得空的单据数据包 如果单据类型有变化则调用K3MBillsPackage.clsReadPackage的GetBillTemplatePackage方法获得新的单据类型的模版数据包 如果获得的单据数据包不
39、为空,则对单据数据包中的数据执行计算类型的Action(主要是在单据数据包中构造需要通过界面计算获得而又不需要保存的字段的值)P33 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3MBillsPackageK3MBillsPackage主要业务介绍主要业务介绍 单据模版和数据包的加载 clsReadPackage. GetBillTemplatePackage函数功能:加载并构造单据模版数据包 读取单据事务类型模版数据并构造数据包填充到单据数据包的事务类型信息包中 读取单据头模版数据并构造数据包填充到单据数据包的单据头信息包中 读
40、取单据体模版数据并构造数据包填充到单据数据包的单据体信息包中 额外附加特殊操作需要的其他隐藏字段的数据包信息 clsReadPackage. GetDataPackage函数功能:加载制定单据的业务数据并进行打包 根据指定单据的模版结构和读取条件拼接SQL获得单据头数据,拼接SQL的时候已经根据字段的属性对需要扩展取数的字段进行了关联处理(比如资料属性类字段的取数) 根据指定单据的模版结构和读取条件拼接SQL获得单据体数据,拼接SQL的时候已经根据字段的属性对需要扩展取数的字段进行了关联处理(比如资料属性类字段的取数) 对单据数据包中的数据执行计算类型的ActionP34 版权所有 1993-
41、2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3BillsK3Bills主要业务介绍主要业务介绍 单据的Action处理工业单据平台的Action是单据业务逻辑自动处理的一种实现方式,比如数量修改重新计算金额就是一种典型的计算Action单据的Action由模版中配置在字段上的FRelationID中的字段的值更新动作触发,触发时会引起这个字段相关的所有Action的执行,即当一个字段的值发生改变并验证生效后就调用单据控制类的Action计算函数,该函数会循环整个单据的字段属性结构数组,解析每个字段属性结构中配置的FRelationID字符串,如果该字
42、符串中的触发源包含有当前修改字段的字段名,则计算该字段的所有Action(选择性触发源的另外判断) 单据Action代码逻辑 字段值修改事件函数frmbill.frm vsEntrys_LeaveCell(以单据体为例) 通过单据控制类对象ThisBill的MainActions函数调用DoActions函数和DoAction函数完成单据的Action的触发计算(如果当前字段是单据头字段,可能还会调用DoActionHeadToEntry函数触发计算单据头到单据体的Action,此类Action一般是单据头字段的修改引起整个单据体某些字段的重算或者对某些字段进行锁定) Bill.cls Mai
43、nActions 循环字段控件属性数组,判断FRelationID内容,触发需要计算的ActionP35 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3BillsK3Bills主要业务介绍主要业务介绍 单据Action代码逻辑 触发指定字段上Action的计算 Bill.cls DoAction() 根据传入的触发源字段和目标字段的属性获得目标字段的Action列表 循环目标字段的每个Action,判断如果该Action不满足触发条件则退出处理 解析每个Action的标志符,并根据Action的参数列表获得Action执行所需的参
44、数,按照Action规则执行处理P36 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3BillsK3Bills主要业务介绍主要业务介绍 单据Action处理说明 单据平台Action处理支持级联处理,如果不希望级联则需要考虑改变相关Action和FRelationID的配置 单据平台的Action执行机制包含了死循环处理,一般可以避免Action处理陷入死循环 基本所有Action的标志符的解析代码都包含在函数Bill.cls DoAction()中,导致此函数经常超出VB单一函数最大行数限制,对于新加入的Action标志的处理要
45、求新增函数完成业务逻辑处理,此函数中只能加入对新增Action执行函数的调用,如果此函数仍然超长则需要先将函数中较长处理分支中的代码进行分离函数的处理,分离函数时需要注意函数变量的上下文引用和设置 对于新增的字段计算逻辑尽量采用新增单据二次开发插件,在插件的Change事件中完成业务逻辑处理的方式来实现 对于在Bill.cls模块外循环访问ThisBill.TEntryCtl数组的要求 先在循环外定义局部变量并使用ThisBill.TEntryCtl对变量进行赋值 在循环中访问此局部变量而不是直接访问ThisBill.TEntryCtl 如果对变量有更新需要及时赋值回ThisBill.TEnt
46、ryCtl 如果在循环中直接访问ThisBill.TEntryCtl会造成明显的性能问题P37 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3BillsK3Bills主要业务介绍主要业务介绍 查找类型字段动态设置过滤条件有很多单据的查找类型字段会要求在单据运行时根据某一个的值或者某一些条件来动态设置查找字段的过滤条件,比如入库单的仓库,要求根据分录行的检验属性限定当前行的可录入仓库是良品仓还是不良品仓,控制点包括F7查询结果界面,仓库字段下拉列表和手工录入编码后有效性验证等。这个可以通过动态设置仓库字段过滤条件来实现 根据业务需求
47、增加过滤条件SQL片段拼接函数,在函数中根据当前行字段的值构造不同的过滤条件片段 在F7查询函数frmbill.frm LookUp中显示界面之前调用此函数,完成额外过滤条件的动态追加 在根据编码获取指定资料的值并进行数据有效性验证的函数frmbill.frm GetData中调用此函数,完成额外过滤条件的动态追加 在查找类型字段处理下拉列表的函数frmbill.frm KDCtl_ButtonClick中调用此函数,完成额外过滤条件的动态追加P38 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3BillsK3Bills主要业务介
48、绍主要业务介绍 单据保存单据保存由单据界面的保存菜单/按钮触发,主要完成对单据界面数据的打包,有效性验证,调用中间层执行保存并对界面进行控制等功能 代码处理流程 Frmbill.frm mnuFileSave_Click 保存菜单事件函数 在保存前执行单据整体性特殊业务检查 调用单据控制类对象ThisBill.Save函数完成单据保存 处理单据保存后界面的特殊控制,但据特殊业务逻辑的处理和权限及网络控制的转移 Bill.cls Save单据控制类单据保存函数 单据特殊业务逻辑检查 单据通用控制逻辑检查 单据保存前二次开发接口调用和结果应用 获取单据数据包 根据返回值和用户的选择重复调用单据数据
49、包控制类clsBillPackage的SaveBill方法保存数据并处理返回值的解析,完成用户交互 完成单据保存后的特殊业务逻辑处理P39 版权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3BillsK3Bills主要业务介绍主要业务介绍 单据保存 代码处理流程 Bill.cls GetBillData获取单据数据包 构造单据数据包,打包单据整体属性和参数设置值 获取单据头数据包 循环单据头控件,使用界面值更新单据数据包中的对应值 获取单据体数据包 循环单据体分录重新打包该分录各字段数据并更新到数据包中,但是需要记录各分录老的ID号并
50、分配新的ID号 clsBillPackage.cls SaveBill 保存单据数据 更新单据保存数据包中的整体性属性值和参数设置值 根据单据数据包调用GetBillSQL获取单据更新SQL 根据单据头数据包数据拼接单据头更新SQL 循环单据体数据包,比较单据老的备份数据包拼接要删除的单据分录的删除SQL 根据分录的修改方式和单据分录字段的修改内容拼接单据分录的UPDATE个功能新SQL或INSERT插入SQL(单据变更保存使用UPDATE,普通新增修改保存使用INSERT) 处理单据编号后调用中间层BillDataAccess.SaveData的SaveBillEx方法完成单据保存P40 版
51、权所有 1993-2006 金蝶软件(中国)有限公司工业单据平台工业单据平台-代码结构介绍代码结构介绍nK3BillsK3Bills主要业务介绍主要业务介绍 单据保存 代码处理流程 SaveData.cls SaveBillEx单据保存中间层服务函数 解析单据整体属性和参数设置 分配单据内码 如果是单据修改则先以删除的方式调用反写接口还原单据关联反写数据 分支处理订单变更保存,完成订单变更的数据检查,单据更新和关联数据更新 如果是普通修改保存则单独分支处理 如果是库存单据修改则根据库存更新实际判断处理库存的反向更新 调用信用更新接口,还原信用数据 执行单据更新SQL 完成相关数据的同步更新 调
52、用反写接口完成新的关联反写 如果是库存单据调用库存更新接口使用新的数据更新库存 更新其他相关数据 更新信用数据 检查信用 调用二次开发接口P41 版权所有 1993-2006 金蝶软件(中国)有限公司单据序时簿单据序时簿-序时簿介绍序时簿介绍nK/3的工业单据序时簿是对工业单据的一种列表展示n序时簿采用模版配置的三层架构模式n序时簿界面的显示字段内容、菜单配置和数据显示条件等都可以进行配置n序时簿提供了灵活强大的业务数据过滤条件配置功能,用户可以根据需要对要展示的数据进行筛选并可以将配置好的过滤条件保存为过滤方案,之后继续使用n序时簿界面提供有限的二次开发接口,用户可以通过接口在序时簿界面上添
53、加自己的功能菜单并完成自己功能的调用n对于系统预设功能,序时簿在中间层提供了很多二次开发接口,利用这些接口,客户可以介入系统的预设功能如单据审核、作废、拆分等操作过程,按条件终止或者完成附加操作等n序时簿客户端对外封装为控件形式,用户可以根据需要在自己的窗体上放置序时簿控件以便调用功能显示单据列表并处理返回结果序时簿调用方式可参见代码:.CodePublicK3ManufacturePublicPublic ModulesClientfrmList.frm.CodePublicK3ManufacturePublicClientDllsK3ICMOTrackQuerymodTrackQueryP
54、42 版权所有 1993-2006 金蝶软件(中国)有限公司单据序时簿单据序时簿- -序时簿模版介绍序时簿模版介绍类别类别表名表名用途用途序事簿类型ICListTemplate序事簿类型模板表,该表的内容也会作为单据型交叉分析报表可用字段的来源序事簿字段ICChatbillTitle记录序事簿字段配置信息,有些功能也会借用序事簿字段模板,如盘点数据报告和打印等序事簿表关系ICTablerelation和单据关联采用相同的模板表,记录序事簿展示需要用到的表与表之间的关联关系菜单工具条t_MenuToolBar序事簿菜单元素模板表,二次开发的菜单也在这里注册菜单工具条t_MenuBand菜单/工具
55、栏项目表菜单工具条v_tools序时簿菜单方案视图菜单工具条t_BandToolMapping菜单元素和菜单条的映射关系模板表序事簿过滤ICListFilter记录过滤界面快捷过滤组合框过滤项目的配置信息,适用于序事簿的选单显示和一般显示,有些在代码里特殊控制P43 版权所有 1993-2006 金蝶软件(中国)有限公司单据序时簿单据序时簿- -序时簿模版介绍序时簿模版介绍nICListtemplateICListtemplate字段说明FID模版唯一内码FTemplateID模版IDFFontID字体FLogicStr逻辑字符串,保存序时簿对菜单的特殊设置,菜单模版表中有对菜单项默认是否可见
56、的设置,这里可以针对单据作特殊设置FToolBarVis工具条是否可见FHeadVis序时簿题头是否可见FBottomVis状态栏是否可见FSourceType数据源类型1:序时簿,2:自定义报表,数据来源于FSourceSQL的取数结果P44 版权所有 1993-2006 金蝶软件(中国)有限公司单据序时簿单据序时簿- -序时簿模版介绍序时簿模版介绍nICListtemplateICListtemplate字段说明FSourceSql自定义报表的取数SQLFGroupID分组IDFBillTemplateID对应的单据模版IDFNeedCount是否需要计数FType模版类型,0:序时簿,1
57、001:自定义报表FMenuID菜单方案IDP45 版权所有 1993-2006 金蝶软件(中国)有限公司单据序时簿单据序时簿- -序时簿模版介绍序时簿模版介绍nICListtemplateICListtemplate字段说明FBillCls单据类别FFilter数据过滤条件FRptTemplateID报表模版IDFMasterTable主要表别名列表FNeedStatistic是否需要统计FSubSysID子系统IDP46 版权所有 1993-2006 金蝶软件(中国)有限公司单据序时簿单据序时簿- -序时簿模版介绍序时簿模版介绍nICChatbillTitleICChatbillTitle
58、字段说明FInterID内码,相同序时簿内不重复FTypeID序时簿模版ID,对应ICListTemplate中的FTemplateIDFColCaption标题,以$结束FHeadSecond双列头的第二列头标题FColName字段列标示,相同序时簿内不重复FTableName字段数据来源表名FColType列类型FVisible是否可见,0:不可见,1:默认不可见,可以设置为可见,3:默认可见,可以设置为不可见P47 版权所有 1993-2006 金蝶软件(中国)有限公司单据序时簿单据序时簿- -序时簿模版介绍序时簿模版介绍nICChatbillTitleICChatbillTitle字段
59、说明FItemClassID字段F7查找类别FVisForQuest过滤表格是否可见FReturnDataTypeF7返回数据类型FCountPriceType计数类型FCtlIndex显示序号FName来源字段名FTableAlias来源表别名(和ICTableRelation中一致)FAction字段额外计算逻辑(此字段有值,则该字段不能用于自定义报表)FNeedCount是否需要计数P48 版权所有 1993-2006 金蝶软件(中国)有限公司单据序时簿单据序时簿- -序时簿模版介绍序时簿模版介绍nICChatbillTitleICChatbillTitle字段说明FIsPrimary字
60、段业务类型标志符FStatistical统计类型FMergeable是否可合并显示FVisForOrder排序叶签是否可见n注意FInterID要保持在相同FTypeID范围内不重复,该字段的值有范围区分1-899 用于单据预设字段900-999用于多级审核相关字段显示大于1000用于用户自定义字段FTypeID为1,3,4的数据用于盘点数据界面P49 版权所有 1993-2006 金蝶软件(中国)有限公司单据序时簿单据序时簿- -序时簿模版介绍序时簿模版介绍nICTablerelationICTablerelation字段说明FTypeID类别ID,对应于ICListTemplate表中的FTemplateID,如果为0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中材节能股份有限公司招聘笔试参考题库附带答案详解(3卷)
- 2025中国水利水电第十二工程局有限公司云南分公司选聘5人笔试参考题库附带答案详解(3卷)
- 2025上汽集团大乘用车制造类岗位人才招募笔试历年参考题库附带答案详解
- 2026年重庆财经学院校园招聘备考题库完整参考答案详解
- 2026年湖南省第二工程有限公司公开招聘备考题库附答案详解
- 2025赣州银行校园招聘入闱与背景调查人员笔试历年典型考题及考点剖析附带答案详解
- 2025秋季陕西西安雁塔恒通村镇银行招聘2人笔试历年典型考题及考点剖析附带答案详解
- 2026年湖南云箭制导航空弹药研究开发有限公司招聘备考题库完整答案详解
- 2026年楚雄卷烟厂招聘44人正式员工备考题库及答案详解1套
- 四川省大英中学2025年临聘教师招聘备考题库含答案详解
- 2025年中国赛车行业发展运行现状及投资策略研究报告
- 医疗质量安全自查报告范文
- UL294标准中文版-2018版门禁系统单元
- GB/T 36547-2024电化学储能电站接入电网技术规定
- GB/T 19342-2024手动牙刷一般要求和检测方法
- 生活垃圾焚烧发电厂掺烧一般工业固废和协同处置污泥项目环评资料环境影响
- 物业收费技巧培训
- 期末测试(试题)-2024-2025学年六年级上册语文统编版
- GB/T 15822.1-2024无损检测磁粉检测第1部分:总则
- 重症医学质量控制中心督查评价标准及评分细则(2020版)
- 高中生物学选择性必修一测试卷及答案解析
评论
0/150
提交评论