K3工業(yè)單據(jù)介紹解析課件_第1頁
K3工業(yè)單據(jù)介紹解析課件_第2頁
K3工業(yè)單據(jù)介紹解析課件_第3頁
K3工業(yè)單據(jù)介紹解析課件_第4頁
K3工業(yè)單據(jù)介紹解析課件_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、版權(quán)所有 1993-2010 金蝶軟件(中國)有限公司K/3工業(yè)單據(jù)平臺結(jié)構(gòu)介紹版權(quán)所有 1993-2010 金蝶軟件(中國)有限公司K/工業(yè)單據(jù)平臺簡介單據(jù)模版介紹代碼結(jié)構(gòu)介紹工業(yè)單據(jù)序時(shí)簿序時(shí)簿模版介紹代碼結(jié)構(gòu)介紹工業(yè)單據(jù)打印單據(jù)打印介紹套打模版介紹打印代碼結(jié)構(gòu)介紹提 綱工業(yè)單據(jù)平臺提 綱工業(yè)單據(jù)平臺-簡介工業(yè)單據(jù)平臺和BOS平臺的關(guān)系和特點(diǎn)工業(yè)單據(jù)平臺是K/3 BOS平臺產(chǎn)生之前的K/3工業(yè)統(tǒng)一單據(jù)平臺主要應(yīng)用于K/3工業(yè)鏈系統(tǒng)和制造系統(tǒng)早期開發(fā)的業(yè)務(wù)單據(jù)基于數(shù)據(jù)庫模版配置動態(tài)構(gòu)建三層架構(gòu)模式涵蓋了業(yè)務(wù)單據(jù)的設(shè)計(jì)、維護(hù)、打印、單據(jù)轉(zhuǎn)換和列表查詢等功能支持較豐富的二次開發(fā)接口和手段注意目前

2、處于維護(hù)已有單據(jù)階段禁止創(chuàng)建新的業(yè)務(wù)單據(jù)類型,新的業(yè)務(wù)單據(jù)必須使用BOS實(shí)現(xiàn),已有單據(jù)新增的業(yè)務(wù)功能盡量采用二次開發(fā)接口擴(kuò)展實(shí)現(xiàn),盡量減少對單據(jù)自身核心代碼的改動(可擴(kuò)展接口)其它本課件主要介紹工業(yè)單據(jù)平臺的單據(jù)、序時(shí)簿和套打相關(guān)的模版表結(jié)構(gòu)和代碼處理結(jié)構(gòu),單據(jù)轉(zhuǎn)換和二次開發(fā)等其他相關(guān)內(nèi)容請參考相應(yīng)主題的其它課件工業(yè)單據(jù)平臺-簡介工業(yè)單據(jù)平臺和BOS平臺的關(guān)系和特點(diǎn)工業(yè)單據(jù)平臺-單據(jù)模版介紹表名作用ICTransactionType單據(jù)事務(wù)類型表,描述單據(jù)的整體性配置屬性,類似BOS的ICClassTypeICTemplate單據(jù)頭模版表,描述單據(jù)頭字段的配置情況,類似BOS的ICClassT

3、ableinfoICTemplateEntry單據(jù)體模版表,描述單據(jù)體字段的配置情況,類似BOS的ICClassTableinfoICBillAction單據(jù)擴(kuò)展Action配置表,描述單據(jù)參數(shù)化選擇性Action配置方案工業(yè)單據(jù)平臺-單據(jù)模版介紹表名作用ICTransaction工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTransactionType 單據(jù)事務(wù)類型表(一)字段說明FBrNo機(jī)構(gòu)編碼,未使用FID單據(jù)事務(wù)類型內(nèi)部IDFRob紅藍(lán)字標(biāo)記 :1表示該單據(jù)區(qū)分紅藍(lán)字 ,0表示沒有紅藍(lán)字之分FName單據(jù)名稱FType單據(jù)類別,代碼中少數(shù)地方有判斷使用,枚舉值定義位置. CodeUltimateK

4、3INDUSTRYPublicPublic ModulesClientK3Enum.basFTempalteID單據(jù)模版IDFVchTempalteID憑證模版IDFHeadTable單據(jù)表頭對應(yīng)的數(shù)據(jù)庫表名FEntryTable單據(jù)表體對應(yīng)的數(shù)據(jù)庫表名FCheckPro單據(jù)審核的二次開發(fā)組件(現(xiàn)通過二次開發(fā)模版配置)FFixCols單據(jù)的固定列數(shù)目(從左到右的鎖定)工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTransactionType工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTransactionType 單據(jù)事務(wù)類型表(二)字段說明FObjectType權(quán)限對象類型FObjectID權(quán)限對象IDFBillPOS

5、HeadTable前臺錄單系統(tǒng)對應(yīng)單據(jù)頭表FBillPOSEntryTable前臺錄單系統(tǒng)對應(yīng)單據(jù)體表FListTemplateID序時(shí)簿ID工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTransactionType工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTemplate 單據(jù)頭字段描述表(一)字段說明FID 單據(jù)模版ID ,對應(yīng)于ICTransactionType表中的FTemplateID字段FCtlIndex 表頭控件編號(作為控件數(shù)組的索引,所以必須連續(xù)且唯一) FTabIndex 控件的Tab跳動次序 FCaption 控件標(biāo)題 FCtltype 控件類型 0文本,1日期,2查找,3數(shù)量 ,4 編號,5 選

6、單 ,6 單據(jù)標(biāo)題,7 單據(jù)分錄,8 審核,9 制單,10 批號,11 金額,12 單價(jià),13 稅率,14 會計(jì)科目 ,15 生產(chǎn)訂單狀態(tài),16 生產(chǎn)訂單來源,17 要求缺省為空的日期,18 記賬 , 20 匯率,21 含稅價(jià),22 當(dāng)前操作員, 30 自定義單據(jù)使用的字符串類型,31自定義單據(jù)使用的數(shù)字類型,32自定義單據(jù)使用的日期類型,33自定義單據(jù)使用的整數(shù)類型40本位幣金額類型 工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTemplate 單據(jù)頭字段工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTemplate 單據(jù)頭字段描述表(二)字段說明FLookUpCls 查找類別如果FCtltype為查找類型,則與表t_I

7、temClass(核算項(xiàng)目表)中的FItemClassID對應(yīng),或者為輔助資料的ID(t_SubMesType 中FtypeID,t_SubMessage中FTypeID)還有幾種不屬于以上類型的自定義的類型:18:批號 13:科目 12:幣別 -8:分錄審核人 -15:倉位-17:單據(jù)類型 -18:質(zhì)檢方案 -20:部門(車間特殊處理,現(xiàn)已無用)-24:對應(yīng)代碼 -35:選單關(guān)聯(lián)關(guān)系列表 -99:輔助屬性-100:工藝路線 -101:BOM調(diào)用 -102:生產(chǎn)類型-103:生產(chǎn)線 -110:BOM單組別 -108:虛倉批號V10版本增加對新單據(jù)平臺的支持。一般輔助資料FLookUpCls 9

8、99999。 工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTemplate 單據(jù)頭字段工業(yè)單據(jù)平臺-單據(jù)模版介紹字段說明FNeedSave是否需要保存FValueType保存到數(shù)據(jù)庫中值的類型 0 字符串,1 數(shù)字,2 日期,3 整數(shù),8 Bool型FSaveValue保存值的類型 0 名稱,1 內(nèi)部ID,2 代碼前期版本存在類型3,已經(jīng)沒有使用了FFieldName 該字段對應(yīng)在數(shù)據(jù)庫表中的字段。在同一個(gè)單據(jù)的模版中不能重復(fù)。FEnable控件在各種單據(jù)操作下是否可錄入:用一組二進(jìn)制數(shù)表示,可錄入則對應(yīng)位為1否則為0。各位表示表如下(從左到右)ICTemplate 單據(jù)頭字段描述表(三)工業(yè)單據(jù)平臺-單據(jù)

9、模版介紹字段說明FNeedSave是否需要工業(yè)單據(jù)平臺-單據(jù)模版介紹FEnable值說明操作訂單確認(rèn)新增修改查看審核下達(dá)單價(jià)金額修改位權(quán)6432168421如:48(110000)表示該字段在新增、修改狀態(tài)下可以錄入,其他狀態(tài)下不可錄入 工業(yè)單據(jù)平臺-單據(jù)模版介紹FEnable值說明操作訂單確認(rèn)新工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTemplate 單據(jù)頭字段描述表(四)字段說明FPrint是否打印FSelBill如果該控件可以選擇其它單據(jù)作為數(shù)據(jù)的輸入來源,則該值對應(yīng)為被選擇單據(jù)的敘事簿ID一般單據(jù)FSelBill999999。 FMustInput 是否必須錄入 FFilter過濾條件。一般用于

10、選單或查找某類基礎(chǔ)資料時(shí)過濾掉一些不符合選擇條件的單據(jù)或基礎(chǔ)資料。 這里只是靜態(tài)條件,如果需要動態(tài)切換,需要在單據(jù)代碼中實(shí)現(xiàn)FRelationID表示哪一個(gè)字段的改變會導(dǎo)致當(dāng)前控件值的改變。值為對應(yīng)字段的數(shù)據(jù)庫字段名。如有多個(gè)這樣的字段可以用逗號隔開。工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTemplate 單據(jù)頭字段工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTemplate 單據(jù)頭字段描述表(五)字段說明FAction 前面FRelationid定義的字段的改變時(shí)該執(zhí)行什么樣的操作。例如匯率這個(gè)字段,它的FRelationID為FCurrencyID ,F(xiàn)Action為 “.,FExchangeRate”表示當(dāng)改

11、變幣別時(shí),把對應(yīng)幣別的默認(rèn)匯率填入?yún)R率欄中。FLockA 為1表示選單過來的數(shù)據(jù)不能再添加刪除分錄 FROB 1 只在藍(lán)字單據(jù)中可見,2只在紅字單據(jù)中可見3 在紅藍(lán)字單據(jù)中都可見FDefaultCtl 系統(tǒng)自帶控件為1,自定義的為0 FVisForBillType 控件在各種單據(jù)操作下是否可見:用一組二進(jìn)制數(shù)表示,可見則對應(yīng)位為1否則為0。各位表示表如下(從左到右) 工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTemplate 單據(jù)頭字段工業(yè)單據(jù)平臺-單據(jù)模版介紹FVisForBillType 值說明操作導(dǎo)入可選數(shù)據(jù)倒入鎖定字段并默認(rèn)導(dǎo)出是否作為數(shù)據(jù)導(dǎo)入字段:K3BillsDataImport.vbp移動商

12、務(wù)默認(rèn)字段移動商務(wù)可用新增修改查看審核下達(dá)位權(quán)5122561286432168421工業(yè)單據(jù)平臺-單據(jù)模版介紹FVisForBillType 值工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTemplate 單據(jù)頭字段描述表(六)字段說明FVBACtlType 自定義單據(jù)用來區(qū)分是什么類型的控件有Frame,Label,Kdtext三種 FRelateOutTbl 如果該控件為其它選擇類型的屬性則為1表示該字段在當(dāng)前表中不存在,是屬于關(guān)聯(lián)的其他表例如:銷售發(fā)票有個(gè)客戶開戶銀行賬號就是此類 FSystemMustInputItem 是否系統(tǒng)必錄,如果為1,則自定義單據(jù)也不能把它變?yōu)榉潜劁?。FInEntryFor

13、SPrint 連續(xù)打印時(shí)打印在分錄里 FMaxValue 字段最大值 FMinValue字段最小值FDefaultValue 字段默認(rèn)值 CurrDate、CurrTime、CurrYear、CurrPeriod分別為當(dāng)前日期、時(shí)間、年度、會計(jì)期間 工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTemplate 單據(jù)頭字段工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTemplate 單據(jù)頭字段描述表(七)字段說明FFormat 表示當(dāng)前字段的格式或精度或長度如果當(dāng)前字段為日期類型(FValueType=2),則0表示普通日期類型,1表示長日期類型(精確到時(shí)分秒)FLookUpType字段查找類別,主要用于查找字段下拉列表,

14、值枚舉定義在.CodePublicK3BosPublic ModulesPubmodHYEnum.bas工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTemplate 單據(jù)頭字段工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTemplateEntry 單據(jù)體字段描述表單據(jù)體字段描述表結(jié)構(gòu)與單據(jù)頭字段描述表結(jié)構(gòu)類似,對應(yīng)字段含義也非常相似特殊字段說明字段說明FCtlOrder該字段的值決定字段在單據(jù)自字段數(shù)組中的下標(biāo),F(xiàn)CtlIndex只是字段在界面上的顯示順序,和單據(jù)頭字段描述表的FCtlInidex字段一樣,要保持FCtlOrder的順序和連續(xù)性,該字段值的先后順序決定級聯(lián)Action的觸發(fā)順序,此字段值順序的修改可能影響

15、會導(dǎo)致單據(jù)Action的計(jì)算結(jié)果的不同F(xiàn)CtlType 分錄列類型 0文本,1日期,2查找,3數(shù)量 ,4 編號,5 選單 ,6 單據(jù)標(biāo)題,7 單據(jù)分錄,8 審核,9 制單,10 批號,11 金額,12 單價(jià),13 稅率,14 會計(jì)科目 ,15 生產(chǎn)訂單狀態(tài),16 生產(chǎn)訂單來源,17 要求缺省為空的日期,18 記賬 ,20 匯率,21 含稅價(jià), 30 自定義單據(jù)使用的字符串類型,31自定義單據(jù)使用的數(shù)字類型,32自定義單據(jù)使用的日期類型,33自定義單據(jù)使用的整數(shù)類型,40本位幣金額類型 工業(yè)單據(jù)平臺-單據(jù)模版介紹ICTemplateEntry 工業(yè)單據(jù)平臺-單據(jù)模版介紹字段說明FLookUpCl

16、s 如為查找類型 則與表t_ItemClass(核算項(xiàng)目表)中的FItemClassID對應(yīng),或者為輔助資料的ID(t_SubMesType 中FtypeID,t_SubMessage中FTypeID)還有幾種不屬于以上類型的自定義的類型:18:批號 13:科目 12:幣別 -8:分錄審核人-15:倉位 -17:單據(jù)類型 -18:質(zhì)檢方案-20:部門(車間特殊處理,現(xiàn)已無用)-24:對應(yīng)代碼-35:選單關(guān)聯(lián)關(guān)系列表 -99:輔助屬性 -100:工藝路線 -101:BOM調(diào)用 -102:生產(chǎn)類型-103:生產(chǎn)線 -110:BOM單組別 -108:虛倉批號V10版本增加對新單據(jù)平臺的支持。一般輔助

17、資料FLookUpCls 999999。 ICTemplateEntry 特殊字段說明(二)工業(yè)單據(jù)平臺-單據(jù)模版介紹字段說明FLookUpCls 如為工業(yè)單據(jù)平臺-單據(jù)模版介紹字段說明FNeedCount該分錄列是否需要合計(jì),1:需要 0:不需要。應(yīng)用于單據(jù)界面的合計(jì)顯示。 FSaveRule該列值的保存規(guī)則,例如“U:0”表示該列的值不能為0。FSaveRule的詳細(xì)含義需要在代碼中查詢FStatCount是否匯總類字段(與FNeedCount類似,但使用于程序內(nèi)部的拆分、打印、合并打印等處理)ICTemplateEntry 特殊字段說明(三)模板維護(hù)注意:盡量保持FCtlOrder和FC

18、tlIndex字段的一致性盡量采用以前版本維護(hù)腳本文件中采用的模塊化SQL片段工業(yè)單據(jù)平臺-單據(jù)模版介紹字段說明FNeedCount該分錄工業(yè)單據(jù)平臺-單據(jù)模版介紹工業(yè)單據(jù)Action簡介單據(jù)Action是一種自動計(jì)算機(jī)制,計(jì)算種類非常廣泛,例如錄入物料攜帶名稱,修改數(shù)量重算金額等單據(jù)Action大多采用被動方式觸發(fā),一小部分為主動方式單據(jù)Action支持級聯(lián)觸發(fā)單據(jù)基本的Action都配置在單據(jù)頭模版和單據(jù)體模版中,有些需要根據(jù)系統(tǒng)參數(shù)和單據(jù)選項(xiàng)采用不同Action的方案保存在ICBillAction表中,該表結(jié)構(gòu)后續(xù)講解單據(jù)支持單據(jù)頭字段修改影響到單據(jù)體的Action單據(jù)Action支持對

19、觸發(fā)源的選擇性使用工業(yè)單據(jù)平臺-單據(jù)模版介紹工業(yè)單據(jù)Action簡介工業(yè)單據(jù)平臺-單據(jù)模版介紹工業(yè)單據(jù)Action詳解單據(jù)Action由Action標(biāo)示符,選擇性觸發(fā)源字段列表和Action計(jì)算參數(shù)列表三部分組成,每部分之間用逗號分隔,一個(gè)字段也可以配置多個(gè)Action,Action之間用分號分隔,如采購發(fā)票的換算率字段:FRelationID值:FItemID,FSecQtyFAction值:.,FSecCoefficient;Cal,FSecQty&A=B/C,FQty,FSecQty;ControlLocked,FSecUnitID,=,True這個(gè)Action表達(dá)式共包含了3個(gè)Acti

20、onAction1Action標(biāo)志符:. Action含義:攜帶基礎(chǔ)資料屬性到當(dāng)前字段Action選擇性觸發(fā)源:空,表示FRelationID字段中列出的所有字段修改都會觸發(fā)此Action(觸發(fā)源和參數(shù)間用&分隔,多個(gè)觸發(fā)源之間用|分隔)Action參數(shù)列表:FSecCoefficient結(jié)合參數(shù),該Action含義為:攜帶觸發(fā)源字段的輔助換算率屬性到當(dāng)前字段,因?yàn)橛|發(fā)源中的FSecQty不是基礎(chǔ)資料,此Action自動失效Action2Action標(biāo)志符:CalAction含義:按照自定義公式計(jì)算結(jié)果并填入當(dāng)前字段Action選擇性觸發(fā)源:FSecQty,表示只有FSecQty字段值修改才會

21、觸發(fā)此Action工業(yè)單據(jù)平臺-單據(jù)模版介紹工業(yè)單據(jù)Action詳解工業(yè)單據(jù)平臺-單據(jù)模版介紹工業(yè)單據(jù)Action詳解(序上頁) .,FSecCoefficient;Cal,FSecQty&A=B/C,FQty,FSecQty;ControlLocked,FSecUnitID,=,TrueAction2(續(xù)上頁)Action參數(shù)列表參數(shù)1:A=B/C 自定義計(jì)算公式,含義:當(dāng)前字段A結(jié)果=參數(shù)2/參數(shù)3參數(shù)2,3(FQty,FSecQty)按順序分別對應(yīng)為B和C的取值來源,常數(shù)計(jì)算項(xiàng)直接寫入計(jì)算公式,不需要增加參數(shù)Action3Action標(biāo)志符:ControlLocked Action含義:

22、根據(jù)計(jì)算結(jié)果鎖定/放開字段Action選擇性觸發(fā)源:空,表示FRelationID字段中列出的所有字段Action參數(shù)列表:FSecUnitID ,=,True,共4個(gè)參數(shù)FSecUnitID 判斷界面取值來源字段,這里為輔助計(jì)量單位= 判斷邏輯,這里為判斷相等 ,比較參考值,這里為 (空)True 返回值結(jié)合所有參數(shù),此Action含義為如果輔助計(jì)量單位字段為空則返回True(應(yīng)用到當(dāng)前字段的FEnabled屬性上)工業(yè)單據(jù)平臺-單據(jù)模版介紹工業(yè)單據(jù)Action詳解(序上頁)工業(yè)單據(jù)平臺-單據(jù)模版介紹ICBillAction從之前的單據(jù)模版可以看到單據(jù)模版對每個(gè)字段只能配置一套Action計(jì)

23、算公式,但是有些業(yè)務(wù)單據(jù)要求同一字段在不同的情況下采用兩套或幾套完全不同的Action計(jì)算方案,比較典型的如銷售發(fā)票的折扣字段在“是否啟用整單折扣”和“折扣基礎(chǔ)是否含稅”這兩個(gè)參數(shù)的組合情況下有4套不同的計(jì)算邏輯,ICBillAction表就是為了滿足類似要求而建立,在單據(jù)加載或選項(xiàng)切換時(shí),單據(jù)平臺會拋出Action加載事件,負(fù)責(zé)該表內(nèi)容解析的公共單據(jù)插件就會根據(jù)傳來的參數(shù)組合情況從該物理表中加載指定單據(jù)不同的Action方案,并以此替換從單據(jù)模版中得到的Action計(jì)算方案,從而在修改觸發(fā)時(shí)能應(yīng)用不同配置的Action方案字段說明FID數(shù)據(jù)內(nèi)碼FTransType單據(jù)類型,該表也用于配置新單

24、的Action方案FPage單據(jù)字段所在頁索引,用于新單FOrder執(zhí)行順序FFieldName字段名,新單為字段FKey工業(yè)單據(jù)平臺-單據(jù)模版介紹ICBillAction字段說明F工業(yè)單據(jù)平臺-單據(jù)模版介紹ICBillAction字段說明FRelationID觸發(fā)源,同于單據(jù)模版(新單不使用)FActionAction,同于單據(jù)模版FFuncID功能標(biāo)示(方案條件標(biāo)志),目前使用的值:1:啟用整單折扣,折扣率計(jì)算基礎(chǔ)為含稅金額2:啟用整單折扣,折扣率計(jì)算基礎(chǔ)為不含稅金額3:不啟用整單折扣,折扣率計(jì)算基礎(chǔ)為含稅金額4:不啟用整單折扣,折扣率計(jì)算基礎(chǔ)為不含稅金額FClassActionID新單使

25、用的功能標(biāo)示工業(yè)單據(jù)平臺-單據(jù)模版介紹ICBillAction字段說明F工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹工業(yè)單據(jù)采用三層架構(gòu),各層又根據(jù)業(yè)務(wù)功能分為不同的組件,主要有如下這些:組件名所在層說明代碼路徑K3Bills.dll客戶端單據(jù)顯示和客戶端邏輯. CodeUltimateK3INDUSTRYPublicClientDLLsK3BILLSK3Bills.vbpK3BillPlugin.dll客戶端單據(jù)擴(kuò)展Action方案處理公共插件. CodePublicK3INDUSTRYPublicClientDLLsK3BillPluginK3BillPlugin.vbpK3MBillsPackage.dl

26、l中間層單據(jù)數(shù)據(jù)包處理組件. CodePublicK3INDUSTRYPublicServerK3MBillsPackageK3MBillsPackage.vbpBillDataAccess.dll中間層單據(jù)數(shù)據(jù)處理組件. CodeUltimateK3INDUSTRYPublicServerBillDataAccessBillDataAccess.vbp工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹工業(yè)單據(jù)采用三層架構(gòu),各層又根據(jù)業(yè)工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills介紹功能K3bills是工業(yè)單據(jù)平臺最重要的客戶端組件,主要負(fù)責(zé)單據(jù)界面的顯示、控制、單據(jù)功能調(diào)用以及與二次開發(fā)接口的交互等代碼調(diào)試要求(除了安

27、裝K3通用的Spread和ActiveBar控件之外的要求)注冊單據(jù)使用的需要授權(quán)控制的控件,主要包括Ledger50.ocx和KDNote.ocx將K3安裝目錄下的ErpSwitch.sss文件拷貝到K3bills代碼目錄和要調(diào)用單據(jù)的組件的工程目錄下,如K3List.vbp和K3ReportView.vbp等主要代碼組成部分和功能類/模塊功能Bills.cls單據(jù)對外接口類,外部代碼可以通過該類調(diào)起單據(jù)Bill.cls單據(jù)控制類,界面數(shù)據(jù)操作,數(shù)據(jù)包的維護(hù)等frmBill.frm單據(jù)界面類,界面顯示,菜單工具條命令響應(yīng)等clsBillPackage.cls單據(jù)數(shù)據(jù)包控制類,負(fù)責(zé)業(yè)務(wù)數(shù)據(jù)和單

28、據(jù)模板數(shù)據(jù)包的構(gòu)造和維護(hù)等工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills介紹類/模塊功能Bi工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)的加載外部調(diào)用者創(chuàng)建單據(jù)組件,設(shè)置單據(jù)屬性,調(diào)用單據(jù)接口顯示接口并按要求傳入相應(yīng)的參數(shù)單據(jù)顯示接口:工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹外部調(diào)用工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)的加載外部調(diào)用示例(主控臺): 工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)的加載單據(jù)加載流程Bills.Show創(chuàng)建單據(jù)窗體frmbill并設(shè)置屬性調(diào)用窗體加載方法,顯示單據(jù)界

29、面Frmbill. Form_Load調(diào)用InitControls初始化界面字體和菜單名稱設(shè)置單據(jù)控制類ThisBill的屬性如果是新增單據(jù)調(diào)用,則需要設(shè)置單據(jù)的事務(wù)類型,這個(gè)設(shè)置動作會引起單據(jù)界面上單據(jù)類型控件cmbTransType的值更新,在這個(gè)值更新事件處理函數(shù)cmbTransType_Click中會完成單據(jù)界面菜單的初始化和單據(jù)界面控件的構(gòu)造和布局如果是打開已有單據(jù),除了和新增一樣完成單據(jù)界面的構(gòu)造和布局之外還需要調(diào)用MoveBill方法在傳入的記錄集中查找要顯示的單據(jù),加載單據(jù)數(shù)據(jù),并調(diào)用ThisBill填充數(shù)據(jù)的FillBillData_New完成界面數(shù)據(jù)的填充工業(yè)單據(jù)平臺-代碼

30、結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)的加載單據(jù)加載流程Frmbill. cmbTransType_Click函數(shù)功能:單據(jù)類型控件值切換函數(shù),在單據(jù)加載的時(shí)候會自動調(diào)用初始化單據(jù)控制類對象ThisBill和單據(jù)界面圖片、菜單工具條等一些控件的屬性調(diào)用ThisBill的BuildBill方法構(gòu)造單據(jù)界面和布局初始化單據(jù)二次開發(fā)插件設(shè)置單據(jù)菜單的可見性和可用性加載單據(jù)的打印設(shè)置Bill.cls BuildBill函數(shù)功能:構(gòu)造單據(jù)先循環(huán)設(shè)置單據(jù)頭字段控件全部不可見清除單據(jù)頭和單據(jù)體字段控件屬性數(shù)組調(diào)用單據(jù)數(shù)據(jù)包控制類clsBillPackage

31、的GetBillPackage方法加載單據(jù)數(shù)據(jù)包(如果是新增單據(jù)則只加載單據(jù)模版數(shù)據(jù),如果有實(shí)際單據(jù)內(nèi)碼則還會同時(shí)加載單據(jù)的實(shí)際數(shù)據(jù)包)工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)的加載單據(jù)加載流程Bill.cls BuildBill(序上)根據(jù)加載的單據(jù)類型的屬性數(shù)據(jù)判斷如果單據(jù)存在單據(jù)體則調(diào)用BuildEntryCtls方法構(gòu)造單據(jù)體,如果不存在單據(jù)體則設(shè)置窗體的單據(jù)體表格控件不可見調(diào)用BuildHeadCtls構(gòu)造單據(jù)頭BuildEntryCtls和BuildHeadCtls分別完成單據(jù)體和單據(jù)頭控件屬性數(shù)組的構(gòu)造,函數(shù)內(nèi)部

32、邏輯大致類似,基本都是根據(jù)單據(jù)數(shù)據(jù)包控制類加載的單據(jù)的模版數(shù)據(jù)重建用于描述單據(jù)頭和單據(jù)體控件屬性的結(jié)構(gòu)數(shù)組,并在數(shù)組構(gòu)造完成之后根據(jù)數(shù)組的描述信息生成與數(shù)組內(nèi)各個(gè)字段相對應(yīng)控件或者表格列,再根據(jù)屬性信息設(shè)置這個(gè)控件或者表格列的相應(yīng)屬性(主要包括鎖定性、控件編輯類型、顯示隱藏、格式控制、默認(rèn)值設(shè)置等)工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)加載單據(jù)模版和數(shù)據(jù)包的加載單據(jù)模版和數(shù)據(jù)包由單據(jù)數(shù)據(jù)包控制類clsBillPackage負(fù)責(zé)構(gòu)造維護(hù),在單據(jù)加載時(shí)控制類通過中間層接口獲得指定單據(jù)的數(shù)據(jù)并構(gòu)造成指定結(jié)構(gòu)的數(shù)據(jù)包,在保存時(shí)根據(jù)界

33、面數(shù)據(jù)的變化修改單據(jù)數(shù)據(jù)包中的數(shù)據(jù)并根據(jù)單據(jù)數(shù)據(jù)的前后變化生成數(shù)據(jù)庫更新SQL,會同數(shù)據(jù)包一起交給單據(jù)中間層完成數(shù)據(jù)的更新保存需要注意的是雖然工業(yè)單據(jù)平臺維護(hù)的有數(shù)據(jù)包,但是這個(gè)數(shù)據(jù)包中的數(shù)據(jù)并不是隨時(shí)與界面數(shù)據(jù)一致,界面上查找類別的字段的值修改時(shí)單據(jù)控制類會更新數(shù)據(jù)包中的內(nèi)容與界面保持一致,但是普通文本、數(shù)字和日期等類型字段的界面值的修改只有在觸發(fā)保存重新對界面打包的時(shí)候界面數(shù)據(jù)的實(shí)際值才會反映到單據(jù)的數(shù)據(jù)包中,在單據(jù)交互過程中,這些類型字段的實(shí)際值只能從界面控件中獲得另外一點(diǎn),單據(jù)在執(zhí)行保存之前會對界面數(shù)據(jù)進(jìn)行打包更新,但是在完成保存之后并不會再次讀取數(shù)據(jù)庫中保存的數(shù)據(jù)重建數(shù)據(jù)包和更新界面

34、,所以對于在中間層額外修改的數(shù)據(jù)需要注意處理界面和數(shù)據(jù)庫的一致性工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)模工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)加載單據(jù)模版和數(shù)據(jù)包的加載clsBillPackage. GetBillPackage函數(shù)功能:加載單據(jù)數(shù)據(jù)并構(gòu)造單據(jù)數(shù)據(jù)包判斷如果需要加載單據(jù)數(shù)據(jù)則調(diào)用K3MBillsPackage.clsReadPackage的GetBillPackage方法獲得單據(jù)數(shù)據(jù)包新增單據(jù)只需要調(diào)用GetBillEmptyPackage獲得空的單據(jù)數(shù)據(jù)包GetBillEmptyPackage函數(shù)邏輯如果單據(jù)類型沒有變化(界面新增調(diào)用)只是

35、需要獲得一個(gè)空的單據(jù)數(shù)據(jù)包而不需要更新模版數(shù)據(jù)則調(diào)用K3MBillsPackage.clsReadPackage的GetBillDataEmptyPackage方法獲得空的單據(jù)數(shù)據(jù)包如果單據(jù)類型有變化則調(diào)用K3MBillsPackage.clsReadPackage的GetBillTemplatePackage方法獲得新的單據(jù)類型的模版數(shù)據(jù)包如果獲得的單據(jù)數(shù)據(jù)包不為空,則對單據(jù)數(shù)據(jù)包中的數(shù)據(jù)執(zhí)行計(jì)算類型的Action(主要是在單據(jù)數(shù)據(jù)包中構(gòu)造需要通過界面計(jì)算獲得而又不需要保存的字段的值)工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3MBillsPackage

36、主要業(yè)務(wù)介紹單據(jù)模版和數(shù)據(jù)包的加載clsReadPackage. GetBillTemplatePackage函數(shù)功能:加載并構(gòu)造單據(jù)模版數(shù)據(jù)包讀取單據(jù)事務(wù)類型模版數(shù)據(jù)并構(gòu)造數(shù)據(jù)包填充到單據(jù)數(shù)據(jù)包的事務(wù)類型信息包中讀取單據(jù)頭模版數(shù)據(jù)并構(gòu)造數(shù)據(jù)包填充到單據(jù)數(shù)據(jù)包的單據(jù)頭信息包中讀取單據(jù)體模版數(shù)據(jù)并構(gòu)造數(shù)據(jù)包填充到單據(jù)數(shù)據(jù)包的單據(jù)體信息包中額外附加特殊操作需要的其他隱藏字段的數(shù)據(jù)包信息clsReadPackage. GetDataPackage函數(shù)功能:加載制定單據(jù)的業(yè)務(wù)數(shù)據(jù)并進(jìn)行打包根據(jù)指定單據(jù)的模版結(jié)構(gòu)和讀取條件拼接SQL獲得單據(jù)頭數(shù)據(jù),拼接SQL的時(shí)候已經(jīng)根據(jù)字段的屬性對需要擴(kuò)展取數(shù)的字段進(jìn)

37、行了關(guān)聯(lián)處理(比如資料屬性類字段的取數(shù))根據(jù)指定單據(jù)的模版結(jié)構(gòu)和讀取條件拼接SQL獲得單據(jù)體數(shù)據(jù),拼接SQL的時(shí)候已經(jīng)根據(jù)字段的屬性對需要擴(kuò)展取數(shù)的字段進(jìn)行了關(guān)聯(lián)處理(比如資料屬性類字段的取數(shù))對單據(jù)數(shù)據(jù)包中的數(shù)據(jù)執(zhí)行計(jì)算類型的Action工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3MBillsPackage主要工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)的Action處理工業(yè)單據(jù)平臺的Action是單據(jù)業(yè)務(wù)邏輯自動處理的一種實(shí)現(xiàn)方式,比如數(shù)量修改重新計(jì)算金額就是一種典型的計(jì)算Action單據(jù)的Action由模版中配置在字段上的FRelationID中的字段的值更新動作觸發(fā),觸發(fā)時(shí)會引起這個(gè)字段

38、相關(guān)的所有Action的執(zhí)行,即當(dāng)一個(gè)字段的值發(fā)生改變并驗(yàn)證生效后就調(diào)用單據(jù)控制類的Action計(jì)算函數(shù),該函數(shù)會循環(huán)整個(gè)單據(jù)的字段屬性結(jié)構(gòu)數(shù)組,解析每個(gè)字段屬性結(jié)構(gòu)中配置的FRelationID字符串,如果該字符串中的觸發(fā)源包含有當(dāng)前修改字段的字段名,則計(jì)算該字段的所有Action(選擇性觸發(fā)源的另外判斷)單據(jù)Action代碼邏輯字段值修改事件函數(shù)frmbill.frm vsEntrys_LeaveCell(以單據(jù)體為例) 通過單據(jù)控制類對象ThisBill的MainActions函數(shù)調(diào)用DoActions函數(shù)和DoAction函數(shù)完成單據(jù)的Action的觸發(fā)計(jì)算(如果當(dāng)前字段是單據(jù)頭字段,

39、可能還會調(diào)用DoActionHeadToEntry函數(shù)觸發(fā)計(jì)算單據(jù)頭到單據(jù)體的Action,此類Action一般是單據(jù)頭字段的修改引起整個(gè)單據(jù)體某些字段的重算或者對某些字段進(jìn)行鎖定)Bill.cls MainActions循環(huán)字段控件屬性數(shù)組,判斷FRelationID內(nèi)容,觸發(fā)需要計(jì)算的Action工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)Action代碼邏輯觸發(fā)指定字段上Action的計(jì)算 Bill.cls DoAction()根據(jù)傳入的觸發(fā)源字段和目標(biāo)字段的屬性獲得目標(biāo)字段的Action列表循環(huán)目標(biāo)字段的每個(gè)Action,

40、判斷如果該Action不滿足觸發(fā)條件則退出處理解析每個(gè)Action的標(biāo)志符,并根據(jù)Action的參數(shù)列表獲得Action執(zhí)行所需的參數(shù),按照Action規(guī)則執(zhí)行處理工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)Action處理說明單據(jù)平臺Action處理支持級聯(lián)處理,如果不希望級聯(lián)則需要考慮改變相關(guān)Action和FRelationID的配置單據(jù)平臺的Action執(zhí)行機(jī)制包含了死循環(huán)處理,一般可以避免Action處理陷入死循環(huán)基本所有Action的標(biāo)志符的解析代碼都包含在函數(shù)Bill.cls DoAction()中,導(dǎo)致此函數(shù)經(jīng)常超出

41、VB單一函數(shù)最大行數(shù)限制,對于新加入的Action標(biāo)志的處理要求新增函數(shù)完成業(yè)務(wù)邏輯處理,此函數(shù)中只能加入對新增Action執(zhí)行函數(shù)的調(diào)用,如果此函數(shù)仍然超長則需要先將函數(shù)中較長處理分支中的代碼進(jìn)行分離函數(shù)的處理,分離函數(shù)時(shí)需要注意函數(shù)變量的上下文引用和設(shè)置對于新增的字段計(jì)算邏輯盡量采用新增單據(jù)二次開發(fā)插件,在插件的Change事件中完成業(yè)務(wù)邏輯處理的方式來實(shí)現(xiàn)對于在Bill.cls模塊外循環(huán)訪問ThisBill.TEntryCtl數(shù)組的要求先在循環(huán)外定義局部變量并使用ThisBill.TEntryCtl對變量進(jìn)行賦值在循環(huán)中訪問此局部變量而不是直接訪問ThisBill.TEntryCtl如果

42、對變量有更新需要及時(shí)賦值回ThisBill.TEntryCtl如果在循環(huán)中直接訪問ThisBill.TEntryCtl會造成明顯的性能問題工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹查找類型字段動態(tài)設(shè)置過濾條件有很多單據(jù)的查找類型字段會要求在單據(jù)運(yùn)行時(shí)根據(jù)某一個(gè)的值或者某一些條件來動態(tài)設(shè)置查找字段的過濾條件,比如入庫單的倉庫,要求根據(jù)分錄行的檢驗(yàn)屬性限定當(dāng)前行的可錄入倉庫是良品倉還是不良品倉,控制點(diǎn)包括F7查詢結(jié)果界面,倉庫字段下拉列表和手工錄入編碼后有效性驗(yàn)證等。這個(gè)可以通過動態(tài)設(shè)置倉庫字段過濾條件來實(shí)現(xiàn)根據(jù)業(yè)務(wù)需求增加過濾條件SQ

43、L片段拼接函數(shù),在函數(shù)中根據(jù)當(dāng)前行字段的值構(gòu)造不同的過濾條件片段在F7查詢函數(shù)frmbill.frm LookUp中顯示界面之前調(diào)用此函數(shù),完成額外過濾條件的動態(tài)追加在根據(jù)編碼獲取指定資料的值并進(jìn)行數(shù)據(jù)有效性驗(yàn)證的函數(shù)frmbill.frm GetData中調(diào)用此函數(shù),完成額外過濾條件的動態(tài)追加在查找類型字段處理下拉列表的函數(shù)frmbill.frm KDCtl_ButtonClick中調(diào)用此函數(shù),完成額外過濾條件的動態(tài)追加工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)保存單據(jù)保存由單據(jù)界面的保存菜單/按鈕觸發(fā),主要完成對單據(jù)界面數(shù)據(jù)

44、的打包,有效性驗(yàn)證,調(diào)用中間層執(zhí)行保存并對界面進(jìn)行控制等功能代碼處理流程Frmbill.frm mnuFileSave_Click 保存菜單事件函數(shù)在保存前執(zhí)行單據(jù)整體性特殊業(yè)務(wù)檢查調(diào)用單據(jù)控制類對象ThisBill.Save函數(shù)完成單據(jù)保存處理單據(jù)保存后界面的特殊控制,但據(jù)特殊業(yè)務(wù)邏輯的處理和權(quán)限及網(wǎng)絡(luò)控制的轉(zhuǎn)移Bill.cls Save單據(jù)控制類單據(jù)保存函數(shù)單據(jù)特殊業(yè)務(wù)邏輯檢查單據(jù)通用控制邏輯檢查單據(jù)保存前二次開發(fā)接口調(diào)用和結(jié)果應(yīng)用獲取單據(jù)數(shù)據(jù)包根據(jù)返回值和用戶的選擇重復(fù)調(diào)用單據(jù)數(shù)據(jù)包控制類clsBillPackage的SaveBill方法保存數(shù)據(jù)并處理返回值的解析,完成用戶交互完成單據(jù)保

45、存后的特殊業(yè)務(wù)邏輯處理工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)保存代碼處理流程Bill.cls GetBillData獲取單據(jù)數(shù)據(jù)包構(gòu)造單據(jù)數(shù)據(jù)包,打包單據(jù)整體屬性和參數(shù)設(shè)置值獲取單據(jù)頭數(shù)據(jù)包循環(huán)單據(jù)頭控件,使用界面值更新單據(jù)數(shù)據(jù)包中的對應(yīng)值獲取單據(jù)體數(shù)據(jù)包循環(huán)單據(jù)體分錄重新打包該分錄各字段數(shù)據(jù)并更新到數(shù)據(jù)包中,但是需要記錄各分錄老的ID號并分配新的ID號clsBillPackage.cls SaveBill 保存單據(jù)數(shù)據(jù)更新單據(jù)保存數(shù)據(jù)包中的整體性屬性值和參數(shù)設(shè)置值根據(jù)單據(jù)數(shù)據(jù)包調(diào)用GetBillSQL獲取單據(jù)更新SQL根據(jù)

46、單據(jù)頭數(shù)據(jù)包數(shù)據(jù)拼接單據(jù)頭更新SQL循環(huán)單據(jù)體數(shù)據(jù)包,比較單據(jù)老的備份數(shù)據(jù)包拼接要刪除的單據(jù)分錄的刪除SQL根據(jù)分錄的修改方式和單據(jù)分錄字段的修改內(nèi)容拼接單據(jù)分錄的UPDATE個(gè)功能新SQL或INSERT插入SQL(單據(jù)變更保存使用UPDATE,普通新增修改保存使用INSERT)處理單據(jù)編號后調(diào)用中間層BillDataAccess.SaveData的SaveBillEx方法完成單據(jù)保存工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)保存代碼處理流程SaveData.cls SaveBillEx單據(jù)保存中間層服務(wù)函數(shù)解析單據(jù)整體屬性和參

47、數(shù)設(shè)置分配單據(jù)內(nèi)碼如果是單據(jù)修改則先以刪除的方式調(diào)用反寫接口還原單據(jù)關(guān)聯(lián)反寫數(shù)據(jù)分支處理訂單變更保存,完成訂單變更的數(shù)據(jù)檢查,單據(jù)更新和關(guān)聯(lián)數(shù)據(jù)更新如果是普通修改保存則單獨(dú)分支處理如果是庫存單據(jù)修改則根據(jù)庫存更新實(shí)際判斷處理庫存的反向更新調(diào)用信用更新接口,還原信用數(shù)據(jù)執(zhí)行單據(jù)更新SQL完成相關(guān)數(shù)據(jù)的同步更新調(diào)用反寫接口完成新的關(guān)聯(lián)反寫如果是庫存單據(jù)調(diào)用庫存更新接口使用新的數(shù)據(jù)更新庫存更新其他相關(guān)數(shù)據(jù)更新信用數(shù)據(jù)檢查信用調(diào)用二次開發(fā)接口工業(yè)單據(jù)平臺-代碼結(jié)構(gòu)介紹K3Bills主要業(yè)務(wù)介紹單據(jù)序時(shí)簿-序時(shí)簿介紹K/3的工業(yè)單據(jù)序時(shí)簿是對工業(yè)單據(jù)的一種列表展示序時(shí)簿采用模版配置的三層架構(gòu)模式序時(shí)簿界

48、面的顯示字段內(nèi)容、菜單配置和數(shù)據(jù)顯示條件等都可以進(jìn)行配置序時(shí)簿提供了靈活強(qiáng)大的業(yè)務(wù)數(shù)據(jù)過濾條件配置功能,用戶可以根據(jù)需要對要展示的數(shù)據(jù)進(jìn)行篩選并可以將配置好的過濾條件保存為過濾方案,之后繼續(xù)使用序時(shí)簿界面提供有限的二次開發(fā)接口,用戶可以通過接口在序時(shí)簿界面上添加自己的功能菜單并完成自己功能的調(diào)用對于系統(tǒng)預(yù)設(shè)功能,序時(shí)簿在中間層提供了很多二次開發(fā)接口,利用這些接口,客戶可以介入系統(tǒng)的預(yù)設(shè)功能如單據(jù)審核、作廢、拆分等操作過程,按條件終止或者完成附加操作等序時(shí)簿客戶端對外封裝為控件形式,用戶可以根據(jù)需要在自己的窗體上放置序時(shí)簿控件以便調(diào)用功能顯示單據(jù)列表并處理返回結(jié)果序時(shí)簿調(diào)用方式可參見代碼:.Co

49、dePublicK3ManufacturePublicPublic ModulesClientfrmList.frm.CodePublicK3ManufacturePublicClientDllsK3ICMOTrackQuerymodTrackQuery單據(jù)序時(shí)簿-序時(shí)簿介紹K/3的工業(yè)單據(jù)序時(shí)簿是對工業(yè)單據(jù)的一單據(jù)序時(shí)簿-序時(shí)簿模版介紹類別表名用途序事簿類型ICListTemplate序事簿類型模板表,該表的內(nèi)容也會作為單據(jù)型交叉分析報(bào)表可用字段的來源序事簿字段ICChatbillTitle記錄序事簿字段配置信息,有些功能也會借用序事簿字段模板,如盤點(diǎn)數(shù)據(jù)報(bào)告和打印等序事簿表關(guān)系ICTabl

50、erelation和單據(jù)關(guān)聯(lián)采用相同的模板表,記錄序事簿展示需要用到的表與表之間的關(guān)聯(lián)關(guān)系菜單工具條t_MenuToolBar序事簿菜單元素模板表,二次開發(fā)的菜單也在這里注冊菜單工具條t_MenuBand菜單/工具欄項(xiàng)目表菜單工具條v_tools序時(shí)簿菜單方案視圖菜單工具條t_BandToolMapping菜單元素和菜單條的映射關(guān)系模板表序事簿過濾ICListFilter記錄過濾界面快捷過濾組合框過濾項(xiàng)目的配置信息,適用于序事簿的選單顯示和一般顯示,有些在代碼里特殊控制單據(jù)序時(shí)簿-序時(shí)簿模版介紹類別表名用途序事簿類型ICList單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICListtemplate字段說明FI

51、D模版唯一內(nèi)碼FTemplateID模版IDFFontID字體FLogicStr邏輯字符串,保存序時(shí)簿對菜單的特殊設(shè)置,菜單模版表中有對菜單項(xiàng)默認(rèn)是否可見的設(shè)置,這里可以針對單據(jù)作特殊設(shè)置FToolBarVis工具條是否可見FHeadVis序時(shí)簿題頭是否可見FBottomVis狀態(tài)欄是否可見FSourceType數(shù)據(jù)源類型1:序時(shí)簿,2:自定義報(bào)表,數(shù)據(jù)來源于FSourceSQL的取數(shù)結(jié)果單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICListtemplate字段說單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICListtemplate字段說明FSourceSql自定義報(bào)表的取數(shù)SQLFGroupID分組IDFBillTempl

52、ateID對應(yīng)的單據(jù)模版IDFNeedCount是否需要計(jì)數(shù)FType模版類型,0:序時(shí)簿,1001:自定義報(bào)表FMenuID菜單方案ID單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICListtemplate字段說單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICListtemplate字段說明FBillCls單據(jù)類別FFilter數(shù)據(jù)過濾條件FRptTemplateID報(bào)表模版IDFMasterTable主要表別名列表FNeedStatistic是否需要統(tǒng)計(jì)FSubSysID子系統(tǒng)ID單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICListtemplate字段說單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICChatbillTitle字段說明FInterID內(nèi)碼

53、,相同序時(shí)簿內(nèi)不重復(fù)FTypeID序時(shí)簿模版ID,對應(yīng)ICListTemplate中的FTemplateIDFColCaption標(biāo)題,以$結(jié)束FHeadSecond雙列頭的第二列頭標(biāo)題FColName字段列標(biāo)示,相同序時(shí)簿內(nèi)不重復(fù)FTableName字段數(shù)據(jù)來源表名FColType列類型FVisible是否可見,0:不可見,1:默認(rèn)不可見,可以設(shè)置為可見,3:默認(rèn)可見,可以設(shè)置為不可見單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICChatbillTitle字段單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICChatbillTitle字段說明FItemClassID字段F7查找類別FVisForQuest過濾表格是否可見FRe

54、turnDataTypeF7返回?cái)?shù)據(jù)類型FCountPriceType計(jì)數(shù)類型FCtlIndex顯示序號FName來源字段名FTableAlias來源表別名(和ICTableRelation中一致)FAction字段額外計(jì)算邏輯(此字段有值,則該字段不能用于自定義報(bào)表)FNeedCount是否需要計(jì)數(shù)單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICChatbillTitle字段單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICChatbillTitle字段說明FIsPrimary字段業(yè)務(wù)類型標(biāo)志符FStatistical統(tǒng)計(jì)類型FMergeable是否可合并顯示FVisForOrder排序葉簽是否可見注意FInterID要保持在相

55、同F(xiàn)TypeID范圍內(nèi)不重復(fù),該字段的值有范圍區(qū)分1-899 用于單據(jù)預(yù)設(shè)字段900-999用于多級審核相關(guān)字段顯示大于1000用于用戶自定義字段FTypeID為1,3,4的數(shù)據(jù)用于盤點(diǎn)數(shù)據(jù)界面單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICChatbillTitle字段單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICTablerelation字段說明FTypeID類別ID,對應(yīng)于ICListTemplate表中的FTemplateID,如果為0則數(shù)據(jù)用于選單路線FInterID內(nèi)碼,相同序時(shí)簿或者相同選單路線內(nèi)唯一FTableName左表名FTableNameAlias左表別名FFieldName左表關(guān)聯(lián)字段名FTableNa

56、me11右表名FTableNameAlias11右表別名FFieldName11右表關(guān)聯(lián)字段名FLogic關(guān)聯(lián)操作符單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICTablerelation字段單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICTablerelation字段說明FBillID目的單據(jù)類型ID,用于選單路線FFieldID選單路線標(biāo)志,用于選單路線FCondition連接條件,用于多字段關(guān)聯(lián)的多個(gè)條件之間的拼接FLogicOperator操作符FISConst是否常量FConstType常量類型FSubFilter子過濾條件單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICTablerelation字段單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICTa

57、blerelation該表用于配置取數(shù)SQL的表關(guān)聯(lián)關(guān)系片斷的內(nèi)容需要根據(jù)取數(shù)SQL的FROM片斷按順序解析表關(guān)聯(lián)關(guān)系填寫模版表數(shù)據(jù)支持表之間的多個(gè)字段關(guān)聯(lián)方式,第一個(gè)關(guān)聯(lián)字段的數(shù)據(jù)按正常邏輯填寫,其他后續(xù)的關(guān)聯(lián)條件需要配置當(dāng)前關(guān)聯(lián)條件和上一條關(guān)聯(lián)條件之間的連接關(guān)系支持表字段和常量之間比較關(guān)系的關(guān)聯(lián)條件,這類關(guān)聯(lián)條件左表、左表字段和FLogic按正常數(shù)據(jù)配置,右表和字段配置為比較常量,同時(shí)設(shè)置該條數(shù)據(jù)的FIsConst和FConstType,設(shè)置FLogicOperator單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICTablerelation單據(jù)序時(shí)簿-序時(shí)簿模版介紹t_MenuToolBar字段說明FTo

58、olID菜單項(xiàng)IDFName菜單名稱FCaption標(biāo)題FImageName菜單圖片ID,圖片定義于序時(shí)簿自定義控件界面的ImageList控件中FToolTip菜單提示內(nèi)容FVisible默認(rèn)是否可見FEnable默認(rèn)是否可用FChecked默認(rèn)是否選中單據(jù)序時(shí)簿-序時(shí)簿模版介紹t_MenuToolBar字段說明單據(jù)序時(shí)簿-序時(shí)簿模版介紹t_MenuToolBar字段說明FShortCut熱鍵FShortChar快捷鍵字符FIndex順序FToolCaption工具條標(biāo)題該表只是配置通用的菜單項(xiàng)的基本配置,要應(yīng)用到單據(jù)上還需要在t_BandToolMapping表中將菜單項(xiàng)配置到單據(jù)使用的菜

59、單/工具條上單據(jù)序時(shí)簿-序時(shí)簿模版介紹t_MenuToolBar字段說明單據(jù)序時(shí)簿-序時(shí)簿模版介紹t_BandToolMapping字段說明FID配置內(nèi)碼FBandID菜單/工具條IDFToolID菜單項(xiàng)IDFSubBandID子菜單/工具條ID(菜單條可以配置多級)FIndex位置索引FComName處理組件類名稱,序時(shí)簿預(yù)設(shè)菜單只需要設(shè)置菜單功能標(biāo)志符即可FBeginGroup是否開始新的分組二次開發(fā)也可以在序時(shí)簿的這些菜單配置表中增加新的菜單項(xiàng)并配置到指定的單據(jù)上,在FComName中配置好菜單處理組件即可在序時(shí)簿上通過該菜單調(diào)用組件功能,具體可參見單據(jù)二次開發(fā)的相關(guān)課件v_tools是

60、序時(shí)簿加載單據(jù)菜單方案的數(shù)據(jù)源,可以據(jù)此查看單據(jù)的菜單配置情況單據(jù)序時(shí)簿-序時(shí)簿模版介紹t_BandToolMapping單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICListFilter字段說明FInterID內(nèi)碼FDestBillTranType目的單據(jù)類型ID,適用于選單過濾界面FListID序時(shí)簿ID,對應(yīng)于ICListTemplate表中的FIDFListShowStatus序時(shí)簿顯示狀態(tài)FBillROB紅蘭單標(biāo)識FCboTimeCaption組合框”時(shí)間”的簡體標(biāo)題FCboTimeList組合框“時(shí)間”的可選項(xiàng)簡體列表FCboTimeValue組合框“時(shí)間”的默認(rèn)值單據(jù)序時(shí)簿-序時(shí)簿模版介紹ICL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論