K3ERPwise老单开发手册

上传人:陈** 文档编号:96068993 上传时间:2022-05-25 格式:DOCX 页数:211 大小:1.98MB
收藏 版权申诉 举报 下载
K3ERPwise老单开发手册_第1页
第1页 / 共211页
K3ERPwise老单开发手册_第2页
第2页 / 共211页
K3ERPwise老单开发手册_第3页
第3页 / 共211页
资源描述:

《K3ERPwise老单开发手册》由会员分享,可在线阅读,更多相关《K3ERPwise老单开发手册(211页珍藏版)》请在装配图网上搜索。

1、 供应链开发帮助手册金蝶软件(中国)有限公司研发中心K/3供应开发组解释 目录K/3老单单据平台开发手册4l整体框架和设计思路4一、设计思路4二、UML图4l模版5一,单据构造模版:5二、选单模版9三,单据控制10四,单据套打10l单据调用接口11一、客户端调用接口11二、中间层调用接口13l单据流程15一、新建单据流程15二、查看或修改单据流程:16三、录单流程:17四、单据的保存流程22五、对下一版本的一些建议24l单据选单的实现说明25一,实现思路:25二,实现方式:25l单据模板Action说明文档28一、概述28二、关键词28三、分类28四、功能标准定义28五、标准过程指南31l单据

2、打印、连续打印、合并打印实现说明32一、GUI上单据打印的实现方式:32l常见问题分析32一、对于KDInputTool.DLL组件的日期控件的日期格式32二、对于Spread控件的取值赋值33三、模板数据冗余:33四、选单结构不灵活:34五、ICTemplate表、ICTemplateEntry表的问题34六、单据选单的关联关系:34单据二次开发手册34l属性35l方法36l用户可实现自己功能的事件37l中间层事件40l应用示例41K/3序时簿开发手册45l整体框架和设计思路45l模版45一、ICListTemplate:该表反映了供需链所有序时簿的总体情况。45二、ICChatbillti

3、tle:该表反映了所有序时簿的显示的字段详细情况。46三、ICListToolbar:该表反映了序时簿菜单和工具栏详细情况。47四、ICTableRelation:选单中涉及的所有表之间的连接关系。47l接口函数描述48一、相关组件48l序时簿二次开发48一、创建一个中间层组件,实现一个接口48二、注册组件49l常见问题分析50一、模板数据冗余:51二、序时簿几种状态51采购价格管理开发手册51l流程51l表结构51l代码结构51销售价格/折扣管理开发手册51l流程51l表结构51l代码结构52进出口开发手册52l流程52l表结构52l代码结构52发票钩稽开发手册52l流程52l表结构52l代

4、码结构52盘点开发手册52l盘点作业52l盘点方案查询53l盘点方案新建54l盘点方案删除54l备份盘点数据55l盘点数据引入/引出57l盘点选单57l生成盘点单据57序列号开发手册59l流程59l表结构59一、序列号流转表ICSerialFlow表结构:59二、序列号表ICSerial59三、ICSerial_FXXX60l基本操作61一、新增单据61二、审核单据:62三、删除单据:62四、作废单据:62五、更新库存后序列号状态单据类型对应表:63l代码结构63入库核算开发手册64l流程64l表结构64l代码结构64委外核销开发手册64l流程64l表结构64l代码结构64出库核算开发手册64

5、l表说明64l算法说明65l代码结构65一,所有计价方法的入口函数:65二,每一种计价方法的处理逻辑:66l核算常见问题汇总69l出库核算核算报错问题70凭证开发手册72l表说明72l凭证模版72l代码结构74l凭证常见问题说明75分销开发手册75l流程75l表结构75l代码结构81门店开发手册81l流程81l表结构81l代码结构81销售前台开发手册81l流程81l表结构81工业报表开发手册81l简介:81l主要函数:82l处理过程顺序图:83l代码结构83门户报表开发手册83l流程错误!未定义书签。l表结构错误!未定义书签。l代码结构错误!未定义书签。VB编程经验总结开发手册86lVB中精确

6、数据的四舍五入处理86l假设VB中有如下的变量声明:87lVB中的对象是自动回收的,类似java87l对对象变量赋值应该用 set obj = AnOtherObj 这种方式88lVB中字符串的内部存储格式是Unicode,它可以自动转化为ANSI字符(单字节字符)或者 DBCS 字符(双字节字符)88l字符串的比较应该是用 strCmp 函数,而不是简单的用 = 号89lVB中字符串处理的函数有三种版本:89lVB程序代码中的以下标识符不能含有双字节字符:91 K/3老单单据平台开发手册l 整体框架和设计思路一、 设计思路二、 UML图l 模版单据主要是在模版的基础上实现的。单据的模版有以下

7、几张表:ICTransactionType,ICTemplate,ICTemplateEntry,ICSelBills,ICTableRelation。前三张表用于构造显示单据,后两张表用于选单。一,单据构造模版: 1ICTransactionType:该表反映了供需链所有单据的总体情况。ICTransactionTypeFbrNoFID单据事务类型内部IDFROB红蓝字标记 :1表示该单据区分红 蓝字 ,0表示没有红蓝字之分Fname单据名称Ftype单据类别FtempalteID单据模版ID (与 ICTemplate,ICTemplateEntry 表中的FID对应FvchTempalt

8、eID(未用)FheadTable单据表头对应的数据库表名FentryTable单据表体对应的数据库表名FcheckPro(未用)FformWidth单据录入时的缺省宽度FformHeight单据录入时的缺省高度FfixCols单据的固定列数目 2ICTemplate:该表反映了所有单据的表头的详细情况。ICTemplateFID单据模版IDFctlIndex表头控件编号,连续且唯一FtabIndex控件的Tab跳动次序Fcaption控件标题Fctltype控件类型 0文本,1日期,2查找,3数量 ,4 编号,5 选单 ,6 单据标题,7 单据分录,8 审核,9 制单,10 批号,11 金额

9、,12 单价,13 税率,14 会计科目 ,15 生产订单状态,16 生产订单来源,17 要求缺省为空的日期,18 记账 ,20 汇率,21 含税价 30 自定义单据使用的字符串类型,31自定义单据使用的数字类型,32自定义单据使用的日期类型,33自定义单据使用的整数类型FlookUpCls如为查找类型 则与表t_ItemClass(核算项目表)中的FItemClassID对应。或者为辅助资料的ID(t_submestype 中的FtypeID)FneedSave是否需要保存到数据库中FvalueType值的类型 0 字符串,1 数字,2 日期,3 整数FsaveValue保存值的类型 0 名

10、称,1 内部ID,2 代码FfieldName该字段对应在数据库表中的字段。在同一个单据的模版中不能重复。Fleft该单据头控件的位置FtopFwidthFheightFenable控件在各种状态下是否可录入:新增、修改、察看、审核、下达、单价金额修改。用一个六位的二进制数表示,可录入则对应位为1否则为0。常用值:0、32、48。Fprint是否打印(暂未用)Ffontname字体类型FfontSize字体大小FselBill如果该控件可以选择其它单据作为数据的输入来源,则该值对应为被选择单据的叙事簿ID(ICListTemplate表中的FID)FmustInput是否必须录入Ffilter

11、过滤条件。一般用于选单或查找某类基础资料时过滤掉一些不符合选择条件的单据或基础资料。FrelationID表示哪一个字段的改变会导致当前控件值的改变。它的值为对应字段的数据库字段名。如有多个这样的字段可以用逗号隔开。Faction为前面Frelationid定义的字段的改变时该执行什么样的操作。例如汇率这个字段,它的FrelationID为FcurrencyID ,Faction为 “.,FExchangeRate”表示当改变币别时,把对应币别的默认汇率填入汇率栏中。FlockA为1表示选单过来的数据不能再添加删除分录FROB1 只在蓝字单据中可见,2只在红字单据中可见3 在红蓝字单据中都可见

12、FdefaultCtl系统自带控件为1,自定义的为0 FvisForBillType控件在各种状态下的可见性:新增、修改、察看、审核、下达。用一个五位的二进制数表示,可见则对应位为1,否则为0。常用值:0、31。FVBACtlType自定义单据用来区分是什么类型的控件有Frame,Label,Kdtext三种FrelateOutTbl如果该控件为其它选择类型的属性则为1例如:销售发票有个客户开户银行账号就是此类FSystemMustInputItem如果是系统规定必须输入,即使自定义单据也不能把它变为非必录。3ICTemplateEntry:该表反映了所有单据的分录的详细情况。ICTempla

13、teEntryFID单据模版IDFctlOrder分录列的排列前后顺序FctlIndex分录列编号,连续且唯一Fctltype分录列类型 0文本,1日期,2查找,3数量 ,4 编号,5 选单 ,6 单据标题,7 单据分录,8 审核,9 制单,10 批号,11 金额,12 单价,13 税率,14 会计科目 ,15 生产订单状态,16 生产订单来源,17 要求缺省为空的日期,18 记账 ,20 汇率,21 含税价, 30 自定义单据使用的字符串类型,31自定义单据使用的数字类型,32自定义单据使用的日期类型,33自定义单据使用的整数类型FlookUpCls如为查找类型 则与表t_ItemClass

14、(核算项目表)中的FItemClassID对应。或者为辅助资料的ID(t_submestype 中的FtypeID)FneedSave是否需要保存到数据库中FvalueType值的类型 0 字符串,1 数字,2 日期,3 整数FsaveValue保存值的类型 0 名称,1 内部ID,2 代码FfieldName该字段对应在数据库表中的字段。在同一个单据的模版中不能重复。Fenable该分录列在各种状态下是否可录入:新增、修改、察看、审核、下达、单价金额修改。用一个六位的二进制数表示,可录入则对应位为1否则为0。常用值:0、48、49。Fprint是否打印该列(暂未用)FheadCaption该

15、分录列的表头标题Fwidth该分录列的宽度FneedCount该分录列是否需要合计,1:需要 0:不需要FrelationID表示哪一个字段的改变会导致当前列值的改变。它的值为对应字段的数据库字段名。如有多个这样的字段可以用逗号隔开。Faction为前面Frelationid定义的字段的改变时该执行什么样的操作。例如金额这个字段,它的FrelationID为“FauxQty,FAuxPrice” ,Faction为“(),FAuxQty,*,FAuxPrice”表示当数量或单价改变时,计算数量与单价的乘积,并填入金额列中。FmustInput是否必须录入Ffilter过滤条件。一般用于查找某类

16、基础资料时过滤掉一些不符合选择条件的基础资料。FSaveRule该列值的保存规则,例如“U:0”表示该列的值不能为0。FdefaultCtl系统自带分录列为1,自定义的为0 FvisForBillType该列在各种状态下的可见性:新增、修改、察看、审核、下达。用一个五位的二进制数表示,可见则对应位为1,否则为0。常用值:0、31。FRelateOutTbl如果该分录列为其它选择类型的属性则为1例如:销售发票有个客户开户银行账号就是此类FSystemMustInputItem如果是系统规定必须输入,即使自定义单据也不能把它变为非必录。单据构造模版的基本用途是:根据要显示哪一种单据,首先去ICTr

17、ansactionType表中获取该种单据的总体信息,包括表头模版号、分录模版号、单据宽高等等。然后根据表头模版号去查表头模版ICTemplate,构造该种单据的表头,根据分录模版号去查分录模版ICTemplateEntry,构造单据的分录。函数:Bills.SetPropDescFSaveRule说明:操作符功能例子备注该字段不能为空该字段不能为空U该字段不能=某个值U:0该字段不能=0该字段必须某个值1.:0;2.:Fqty1.该字段必须0;2.该字段FQty该字段必须0该字段必须0该字段大于等于0并且小于某数或者某列的值1.;2.:Fqty;3.:1001.该字段必须0;2.该字段FQt

18、y;3.该字段=K”:表示某分录控件的值应大于或等于某表头控件的值。例:表头模版ICTemplate中FrelationID为“FDate”,Faction为“V=K,Fdate”,表示分录里的日期应大于等于表头的日期。“=”:处理是否允许录入批次。例:FrelationID为“FitemID”,Faction为“=,Ftrack,80”,表示物料计价方法为分批认定时(Ftrack=80),锁定控件不让录入,否则允许录入。“=”:表示当前控件的值应小于等于某值。例:FrelationID为“FDescount”,Faction为“=,100”,表示当前格的值应小于等于100。“!”:取分录某几

19、列的值,从左到右依次进行四则运算。运算式中不能包含常量。例:FrelationID为“FAuxQty,FAuxPrice,FQty”,Faction为“!,FAuxQty,*,FAuxPrice”,表示当数量、单价、基本单位数量任一个发生改变时,计算数量x单价的值,填入当前格(金额)。注:“!”完全可被“!1”取代。“!1”、“()”:取分录某几列的值,从左到右依次进行四则运算。运算式中可包含常量。例:FrelationID为“FAuxQty,FAuxPrice,FQty”,Faction为“!,FAuxQty,*,FauxPrice,+,0”,表示当数量、单价、基本单位数量任一个发生改变时,

20、计算数量x单价+0的值,填入当前格(金额)。注:“()”最多只能定义三项之间的运算。主要是用于自定义单据中。而“!1”则不受限制。可考虑将两者统一。“!2”:特殊计算,由折扣率或折扣额之一计算金额(折扣率或折扣额中某一列必不可见)。例:Faction 为“!2,FAmount,*,FTaxRate,/,100;!2,FAuxQty,*,FUniDiscount”,表示当使用折扣率时,计算金额x折扣率100的值;当使用折扣额时,计算数量x单位折扣额的值。“!3”:前一项与后几项的运算结果进行运算。例:Faction 为“!3,FAuxPrice,*,100,+,FTaxRate,/,100”,表

21、示计算单价x(100+税率/100)的值。注: 任何“!”、“!1”式子都可改装为“!3”的式子,因此,可考虑用“!3”替换“!”、“!1”。“!4” 前一项与后几项的运算结果进行运算,但数据是取界面上显示的数。注:因为VaSpread的特殊性,界面上看见的数与实际表格里面的数可能有尾差,从而有可能导致计算上的误差,例如在发票上金额与税额的和不等于价税合计。故引入“!4”解决该问题。“&”:取基础资料附带的其他基础资料属性。例:FrelationID为“FcustID”,Faction为“&,FSetID,FSetName,FSetNumber”,表示由供应商带出结算方式的内码、名称、代码。注

22、:可考虑与“.A”合并。“”:计划价调价单据中,得到物料的记价方法为计划价调价的当前库存数。“*”:处理其他入库单单据头只能录供应商和部门中的一种,其他出库单单据头只能录客户和部门中的一种。“A”:在录入盘赢盘亏单时自动带出某种物料在某个仓库中的帐存数量。“A*”:在录入盘赢盘亏单时仓库改变时自动带出录入的所有物料在该仓库中的帐存数量。“A1”:当数量改变时,相应的改变基本单位数量。“A2”:当基本单位数量改变时,相应的改变数量。四、 单据的保存流程单据保存之前,首先调用函数PreventDirtyData(),以确保当前单据上的数据是正确有效的,然后再调用函数Save()保存单据。函数Sav

23、e()的主要流程如下:调用函数CheckMustInput()检查所有必录项是否录入了数据,以及录入的数据是否符合保存规则否退出,要求录入合法数据是调用函数CheckGuestCredit()对销售订单及销售发票, 检查该单据是否没有超出该客户的信用额度,或超出了也继续保存否退出是否对于有分录的单据,检查分录是否录入了数据退出是将表头模版数组TheadCtl、分录模版数组TentryCtl及分录数据、其它相关数据打成一个包将这个包传给中间层,由中间层根据模版及数据构造相应的SQL语句,执行后将该张单据保存到数据库对应的表中否保存完毕是发票单据是将发票传递到应收应付系统保存完毕() 单据的审核、下达在单据录入或修改完成以后,可在单据界面直接完成审核与反审核,下达与反下达,结案与反结案的操作(发票除外)。这些操作都是调用中间层K3McheckBill.DLL实现的,具体的操作可

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!