




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
二次開發(fā)簡介
曹且根金蝶軟件(中國)有限公司研發(fā)中心二次開發(fā)簡介
曹且根金蝶軟件(中國)有限公司研1提綱工業(yè)老單二次開發(fā)工業(yè)老單二次開發(fā)所需環(huán)境及要點工業(yè)老單序時薄二次開發(fā)工業(yè)老單單據(jù)二次開發(fā)工業(yè)老單實戰(zhàn)演練組件編譯及布署問題交流提綱工業(yè)老單二次開發(fā)二次開發(fā)所需環(huán)境及要點單據(jù)二次開發(fā)是針對現(xiàn)目前單據(jù)的一些功能無法滿足一些客戶的特殊要求,同時分公司又有能力進行二次開發(fā)而提出的,這樣既可以在現(xiàn)有的系統(tǒng)不做變動的情況下面滿足用戶的需求,同時也增強了系統(tǒng)的穩(wěn)定性。本篇所介紹所用到的動態(tài)連接庫名為:K3BillTransfer.dll通過該說明文檔,你可以了解到1.如何通過K3BillTransfer組件在錄單過程中對單據(jù)上各項目加以控制。2.如何通過K3BillTransfer組件實現(xiàn)自定義功能菜單。
3.如何通過K3BillTransfer組件控制數(shù)據(jù)的保存。4.如何在序時薄上增加菜單及應(yīng)用。5.應(yīng)用示例—實戰(zhàn)演練。適用對象需要在K/3供應(yīng)鏈系統(tǒng)單據(jù)上進行二次開發(fā)的開發(fā)者開發(fā)環(huán)境1.安裝過K/3ERP9.41以后的版本且購買過供應(yīng)鏈系統(tǒng)。2.VB6.0企業(yè)版+SP13.SQLSERVER2000及后續(xù)版本(SQLSERVER2019,SQLSERVER2019)二次開發(fā)所需環(huán)境及要點單據(jù)二次開發(fā)是針對現(xiàn)目前單據(jù)的一序時薄二次開發(fā)老單序時薄開發(fā)相對簡單,它只能在序時薄上增加菜單,通過菜單去實現(xiàn)一些二次開發(fā)功能.使用方法:1.)在t_BandToolMapping中的FcomName填入需要調(diào)用組件的名稱,注意:不要覆蓋原有內(nèi)容,要在原有內(nèi)容上用“|”分割后加入自己的組件,可以加多個組件。第一個插件前一定要加“|”,因為之前的部分是記錄了其他信息。2).二次開發(fā)組件必須實現(xiàn)MainFunction(ByValsKeyAsstring,oListAsObject,ByrefbCancelasBoolean)方法。要終止事件,請將bCancel設(shè)置為true。3).oList為一個即是ICList,可以使用其中的任何Public方法。比方說GetSelData為取得選取的對象序時薄二次開發(fā)老單序時薄開發(fā)相對簡單,它只能在序時薄上增加菜序時薄二次開發(fā)流程圖序時薄二次開發(fā)流程圖序時薄二次開發(fā)范例增加元數(shù)據(jù)按鈕菜單名“FMenuPC”,新增加一個不存在的FToolIDDeleteFromt_MenuToolBarWhereFToolID=10002insertintot_MenuToolBar(FToolID,FName,FCaption,FCaption_CHT,FCaption_EN,FImageName,FToolTip,FToolTip_CHT,FToolTip_EN,FControlType,FVisible,FEnable,FChecked,FShortCut,FCBList,FCBList_CHT,FCBList_EN,FCBStyle,FCBWidth,FIndex,FToolCaption,FToolCaption_CHT,FToolCaption_EN)values(10002,'FMenuPC','外購入庫拆分','外購入庫拆分','外購入庫拆分','39','外購入庫拆分','外購入庫拆分','外購入庫拆分',0,0,1,0,0,'','','',0,0,0,'外購入庫拆分','外購入庫拆分','外購入庫拆分')序時薄二次開發(fā)范例序時薄二次開發(fā)范例續(xù)
將上面的按鈕插入到菜單欄和工具欄在t_BandToolMapping中的FcomName填入需要調(diào)用組件的名稱,注意:不要覆蓋原有內(nèi)容,要在原有內(nèi)容上用“|”分割后加入自己的組件,可以加多個組件。第一個插件前一定要加“|”,因為之前的部分是記錄了其他信息。FID對應(yīng)iclisttemplate里的FMenuID,FBandID表示放在哪個菜單下(對應(yīng)t_BandToolMapping.FSubBandID),可以通過以下語句關(guān)聯(lián)得到是哪個菜單selecta.*,b.fname,b.FCaptionFromt_BandToolMappinga,t_MenuToolBarbwherea.FID=82anda.ftoolid=b.ftoolid將按鈕插入到菜單欄DeleteFromt_BandToolMappingwhereFBandID=3andFToolID=10002andFID=82insertintot_BandToolMapping(FID,FBandID,FToolID,FSubBandID,FIndex,FComName,FBeginGroup)values(82,3,10002,0,65,'|K3ListPlug.List',0)序時薄二次開發(fā)范例續(xù)范例續(xù)將按鈕插入到工具欄DeleteFromt_BandToolMappingwhereFBandID=52andFToolID=10002andFID=82insertintot_BandToolMapping(FID,FBandID,FToolID,FSubBandID,FIndex,FComName,FBeginGroup)values(82,52,10002,0,65,'|K3ListPlug.List',0)在外購入庫序時薄顯示按鈕(如果里面有"|V",則只能在后面加菜單項)UpdateIclistTemplatesetFLogicStr=FLogicStr+CaseWhenRight(FLogicStr,1)='|'then'V:FMenuPC'else'|V:FMenuPC'endwhereFID=1andnotFLogicStrlike'%FMenuPC%'序時薄二次開發(fā)范例續(xù)序時薄二次開發(fā)數(shù)據(jù)元建好之后,再新建一個工程文件。如:新建一個vb工程,命名為:ProListBill,在工程中新建一個類命名為:ListBill序時薄二次開發(fā)數(shù)據(jù)元建好之后,再新建一個工程文件。如:序時薄二次開發(fā)在類ListBill中添加以下代碼以上只是序時薄二次開發(fā)實現(xiàn)的一個簡單的例子,具體的二次開發(fā),要根據(jù)不同的需求,進行相應(yīng)的開發(fā),接口都是統(tǒng)一調(diào)用MainFunction函數(shù),再根據(jù)具體情況進行擴展。序時薄二次開發(fā)在類ListBill中添加以下代碼以上只是序時薄二次開發(fā)實現(xiàn)單據(jù)二次開發(fā)單據(jù)二次開發(fā)主要通過K3BillTransfer組件控制單據(jù)上一些操作。其常用屬性1.PropertyCnnstringAsString
當(dāng)前數(shù)據(jù)庫的MMTS.PropsString連接串。2.PropertySystemNameAsString
當(dāng)前系統(tǒng)名稱。3.PropertyLastInfoAsString最后一次系統(tǒng)返回的各種信息4.PropertyBillFormAsObject整個單據(jù)窗體對象。可通過該對象訪問單據(jù)上的任何一個對象,包括控件,
菜單。共有的方法有:InsertRow(),在Grid的當(dāng)前行追加一行,它沒有參數(shù)。5.PropertyBillFuncasObject
代表單據(jù)對象。目前沒什么用途。單據(jù)二次開發(fā)單據(jù)二次開發(fā)主要通過K3BillTransfer其常用屬性—續(xù)6.PropertyHeadAsObject單據(jù)表頭控件,是一個KDText控件數(shù)組7.PropertyGridAsObject單據(jù)分錄控件,為FpSpread控件8.PropertySumGridAsObject單據(jù)分錄合計控件,為FpSpread控件9.PropertyHeadCtlAsVariant
對應(yīng)表頭控件數(shù)組,記錄每個表頭項目各屬性的數(shù)組如果要改變HeadCtl中的某個屬性值,需先對HeadCtl做一個備份,然后修改此備份的相應(yīng)屬性值,再將此備份賦值給HeadCtl。。單據(jù)二次開發(fā)其常用屬性—續(xù)單據(jù)二次開發(fā)其常用屬性—續(xù)10.PropertyEntryCtlAsVariant對應(yīng)分錄各列,記錄每個分錄列各屬性的數(shù)組如果要改變EntryCtl中的某個屬性值,需先對EntryCtl做一個備份,然后修改此備份的相應(yīng)屬性值,再將此備份賦值給EntryCtl11.PropertySaveVectAsKFO.Vector
二次開發(fā)外部數(shù)據(jù)存取接口。在錄單過程中,用戶可將某些數(shù)據(jù)保存在此Vector中,在單據(jù)保存時,再通過二次開發(fā)中間層組件,將此Vector中的數(shù)據(jù)保存到指定位置。 SaveVect.Item(1)為一個KFO.Dictionary對象該對象包含以下四個系統(tǒng)數(shù)據(jù)SaveVect.Item(1).Value("FInterID"):單據(jù)內(nèi)碼SaveVect.Item(1).Value("FTransType"):單據(jù)事務(wù)類型SaveVect.Item(1).Value("ISRedBill"):是否紅字單據(jù)SaveVect.Item(1).Value("BillChecked"):是否審核。單據(jù)二次開發(fā)其常用屬性—續(xù)單據(jù)二次開發(fā)常用的方法FunctionAddUserMenuItem(ByValCaptionAsString,[ByValRootMenuCaptionAsString=""])說明:添加一個用戶自定義菜單項,系統(tǒng)一共預(yù)設(shè)了五個菜單項供二次開發(fā)使用參數(shù):Caption:菜單名稱RootMenuCaption:根菜單名稱。缺省為“自定義菜單”2.FunctionGetGridText(ByValRowAsLong,ByValColAsLong)AsString說明:獲取分錄某單元格的值參數(shù):Row:分錄行,Col:分錄列3.FunctionGetHeadNumber(ByValCtlIndexAsLong)AsString說明:獲取表頭某項的代碼參數(shù):CtlIndex:表頭控件索引
4.FunctionGetHeadText(ByValCtlIndexAsLong)AsString說明:獲取表頭某項的文本參數(shù):CtlIndex:表頭控件索引單據(jù)二次開發(fā)常用的方法單據(jù)二次開發(fā)單據(jù)二次開發(fā)常用的方法—續(xù)5.FunctionGetSumGridText(ByValRowAsLong,ByValColAsLong)AsString說明:獲取合計行某列的值參數(shù):Row:行。一般為1,Col:分錄列
6.FunctionSetGridText(ByValRowAsLong,ByValColAsLong,ByValValue,[ByValInterIDAsLong=0],[ByValsNameAsString=""])AsBoolean說明:設(shè)置分錄某單元格的值,當(dāng)分錄為查找類型時,會把相應(yīng)的信息一起
攜帶到相應(yīng)的位置,如當(dāng)為物料代碼時,它會攜帶物料的一些基本
信息物料名稱等。參數(shù):Row:分錄行,Col:分錄列, Value:設(shè)置的值。如果該單元格是查找
類型的,Value應(yīng)設(shè)置為代碼。InterID:暫未使用,sName:暫未使用
單據(jù)二次開發(fā)常用的方法—續(xù)常用的方法—續(xù)7.FunctionSetHead(ByValIndexAsLong,ByValValue,[ByValInterIDAsLong=0],[ByValsNameAsString=""])AsBoolean說明:設(shè)置表頭某項的值參數(shù):Index:表頭控件索引,
Value:設(shè)置的值。如果該表頭項是查找類型的,Value應(yīng)設(shè)置為代碼,
InterID:暫未使用,
sName:暫未使用8.FunctionSetSumGridText(ByValRowAsLong,ByValColAsLong,ByValValue)AsBoolean說明:設(shè)置分錄合計某列的值參數(shù):Row:分錄行。一般為1Col:分錄列Value:設(shè)置的值。
單據(jù)二次開發(fā)常用的方法—續(xù)單據(jù)二次開發(fā)常用的事件1.PublicEventBillInitialize()
單據(jù)初始化完成時激發(fā)該事件2.PublicEventBillTerminate()
單據(jù)卸載完成時激發(fā)該事件3.PublicEventUserMenuClick(ByValIndexAsLong,ByValCaptionAsString)說明:當(dāng)點擊用戶自定義的菜單時激發(fā)這個事件。參數(shù):Index:表示第幾個菜單、由添加菜單的先后順序決定,Caption:菜單項的標(biāo)題,如何添加自定義菜單請參見方法AddUserMenuItem4.PublicEventHeadChange(ByValCtlIndexAsLong,ByValValueAsVariant,ByValbNewBillAsBoolean,CancelAsBoolean)說明:當(dāng)表頭的一個項目改變時激發(fā)這個事件參數(shù):ctlIndex表頭字段索引Value當(dāng)前值
bNewBill是否是新增單據(jù)Cancel是否取消單據(jù)二次開發(fā)常用的事件單據(jù)二次開發(fā)常用的事件—續(xù)5.PublicEventLeveCell(ByValColAsLong,ByValRowAsLong,_ByValNewColAsLong,ByValNewRowAsLong,CancelAsBoolean)說明:當(dāng)離開分錄的一個單元格的時候激發(fā)這個事件參數(shù):Col分錄的要離開列Row分錄的要離開行NewCol新的列NewRow新的行Cancel是否取消6.PublicEventGridChange(ByValColAsLong,ByValRowAsLong,ByValValueAsVariant,ByValbNewBillAsBoolean,CancelAsBoolean)說明:當(dāng)表體的一個項目改變時激發(fā)這個事件參數(shù):Col分錄的當(dāng)前列Row分錄的當(dāng)前行Value當(dāng)前值
bNewBill是否是新增單據(jù)Cancel是否取消單據(jù)二次開發(fā)常用的事件—續(xù)單據(jù)二次開發(fā)常用的事件—續(xù)PublicEventBeforGridLookUp(ByValRowAsLong,ByValColAsLong,ByValnLookUpClsIDAsLong,CancelAsBoolean)說明:在分錄執(zhí)行查找功能之前激發(fā)這個事件參數(shù):Col分錄的當(dāng)前列,Row分錄的當(dāng)前行,
nLookUpClsID當(dāng)前查詢的資料類型,Cancel是否取消8.PublicEventEndGridLookUp(ByValRowAsLong,ByValColAsLong,ByValnLookUpClsIDAsLong)說明:在分錄完成查找功能之后激發(fā)這個事件參數(shù):Col分錄的當(dāng)前列,Row分錄的當(dāng)前行,
nLookUpClsID當(dāng)前查詢的資料類型9.PublicEventBeforHeadLookUp(ByValCtlIndexAsLong,ByValnLookUpClsIDAsLong,CancelAsBoolean)說明:在表頭的一個項目執(zhí)行查找功能之前激發(fā)這個事件參數(shù):ctlIndex表頭字段索引nLookUpClsID當(dāng)前查詢的資料類型Cancel是否取消單據(jù)二次開發(fā)常用的事件—續(xù)單據(jù)二次開發(fā)常用的事件—續(xù)PublicEventEndHeadLookUp(ByValCtlIndexAsLong,ByValnLookUpClsIDAsLong)說明:在表頭的一個項目完成查找功能之后激發(fā)這個事件,參數(shù):ctlIndex表頭字段索引nLookUpClsID當(dāng)前查詢的資料類型
11.PublicEventBeforeSave(ByValbNewAsBoolean,ByRefReturnCodeAsLong)說明:在單據(jù)執(zhí)行保存功能的時候激發(fā)這個事件參數(shù):bNew表示是否是新增單據(jù),ReturnCode返回參數(shù)
-1:失敗,結(jié)束
單據(jù)保存;0:成功,繼續(xù)單據(jù)保存,1:成功返回,結(jié)束單據(jù)保存
12.PublicEventEndSave(ByValBillNoAsString)說明:在單據(jù)執(zhí)行完成保存功能的時候激發(fā)這個事件參數(shù):BillNo表示單據(jù)的編號單據(jù)二次開發(fā)常用的事件—續(xù)單據(jù)二次開發(fā)常用的事件—續(xù)13.PublicEventLoadBillEnd(ByValShowTypeAsLong)說明:在單據(jù)裝載完成的時候激發(fā)這個事件參數(shù):ShowType單據(jù)顯示狀態(tài)
0.新增
1.修改
2.查看
3.審核14.PublicEventNewBillEnd()說明:在單據(jù)新增完成的時候激發(fā)這個事件15.PublicEventSetMenuBarCtlPropEnd(ByValShowTypeAsLong,ByValBillCheckedAsBoolean)說明:在單據(jù)設(shè)置菜單、工具條各屬性完成的時候激發(fā)這個事件參數(shù):ShowType 單據(jù)顯示狀態(tài)
0.新增
1.修改
2.查看
3.審核BillChecked單據(jù)是否已被審核16.PublicEventBeforeFillBillData(ByValBillTransTypeAsLong,ByValBillInterIDAsLong)說明:在裝載某張單據(jù)之前激發(fā)這個事件參數(shù):BillTransType單據(jù)事務(wù)類型BillInterID單據(jù)內(nèi)碼單據(jù)二次開發(fā)常用的事件—續(xù)單據(jù)二次開發(fā)常用的事件—續(xù)17.PublicEventEndBillFormActive()說明:在顯示單據(jù)之后激發(fā)這個事件18.PublicEventGridFormat(ByValColAsLong,ByValRowAsLong)說明:在設(shè)置單據(jù)體格式后激發(fā)這個事件參數(shù):Col 要設(shè)置格式的目標(biāo)列Row 要設(shè)置格式的目標(biāo)行19.PublicEventRefreshControl()說明:在設(shè)置單據(jù)的單元格和單據(jù)頭的鎖定狀態(tài)后激發(fā)這個事件20.PublicEventBeforeEntrySplit(ByValpCurRowAsLong,ByValpSplitCountAsLong,ByValpSplitMethodAsLong,ByRefpCancelAsBoolean)說明:在單據(jù)的拆分操作之前激發(fā)此事件參數(shù):pCurRow 要拆分的當(dāng)前分錄行pSplitCount 拆分的數(shù)目pSplitMethod 拆分分錄位置
0插入式,
1追加式pCancel 是否取消拆分
true:取消拆分
false:拆分單據(jù)二次開發(fā)常用的事件—續(xù)單據(jù)二次開發(fā)21.PublicEventAfterEntrySplit(ByValpCurRowAsLong,ByValpSplitCountAsLong,ByValpSplitMethodAsLong)說明:在單據(jù)的拆分操作之后激發(fā)此事件參數(shù):pCurRow 被拆分的分錄行pSplitCount 被拆分成的數(shù)目pSplitMethod 拆分分錄位置
0:插入式,
1:追加式22.PublicEventOnBeforeDelRow(ByVallRowAsLong,ByRefbCancelAsBoolean)說明:在單據(jù)刪除指定行之前激發(fā)此事件參數(shù):lRow指定要刪除的行,bCancel是否取消刪除,true:取消刪除
false:刪除23.PublicEventOnAfterDelRow(ByVallRowAsLong,ByRefbCancelAsBoolean)說明:在單據(jù)刪除指定行后激發(fā)此事件參數(shù):lRow 被刪除的行bCancel 備用參數(shù),目前沒用到單據(jù)二次開發(fā)21.PublicEventAfterEntrySpli中間層事件如果需要在單據(jù)保存的事務(wù)處理過程中插入一些用戶處理過程,可以編寫一個用戶中間層,必須包含以下兩個函數(shù):1.PublicFunctionBeginSave(ByValSdsnAsString,ByRefSaveVectAsKFO.Vector,ByRefReturnMsgAsString)AsBoolean說明:在單據(jù)保存的事務(wù)處理中,在單據(jù)數(shù)據(jù)保存到數(shù)據(jù)庫之前,調(diào)用
該函數(shù)。返回值:FALSE保存事務(wù)終止,返回錯誤。
TRUE單據(jù)繼續(xù)保存事務(wù)
處理。參數(shù):Sdsn:MMTS.PropsString,SaveVect:二次開發(fā)外部數(shù)據(jù)存取接口。ReturnMsg:失敗時返回的錯誤信息。
單據(jù)二次開發(fā)中間層事件單據(jù)二次開發(fā)中間層事件—續(xù)2.PublicFunctionEndSave(ByValSdsnAsString,ByRefSaveVectAsKFO.Vector,ByRefReturnMsgAsString)AsBoolean說明:在單據(jù)保存的事務(wù)處理中,在單據(jù)數(shù)據(jù)保存到數(shù)據(jù)庫之后,調(diào)
用該函數(shù)。返回值:FALSE保存事務(wù)終止,返回錯誤。TRUE單據(jù)繼續(xù)保存事務(wù)處理。參數(shù):Sdsn:MMTS.PropsStringSaveVect:二次開發(fā)外部數(shù)據(jù)存取接口。ReturnMsg:失敗時返回的錯誤信息。單據(jù)二次開發(fā)中間層事件—續(xù)單據(jù)二次開發(fā)關(guān)于HeadCtl、EntryCtl數(shù)組屬性和Head控件數(shù)組、Grid的簡要說明HeadCtlIDAsInteger數(shù)組的Index與KDCtl的Index相對應(yīng),(FCtlIndex)CaptionAsStringKDCtl的CaptionFontNameAsString字體FontSizeAsInteger字體大小FCtlIndexAsInteger控件序號TabIndexAsIntegerTAB索引LeftAsSingle左TopAsSingle上
WidthAsSingle寬
HeightAsSingle高
EnableAsBoolean控件是否Locked與KDCtl的Locked屬性相對應(yīng)EnableValueAsInteger 件在各種狀態(tài)下的可用性:新增、修改、察看、審核、下達。單據(jù)二次開發(fā)關(guān)于HeadCtl、EntryCtl數(shù)組屬性和Head控件數(shù)HeadCtl數(shù)組續(xù)用一個五位的二進制數(shù)表示,可見則對應(yīng)位為1,否則為0。常用值:0、31。bPrintAsBoolean是否打印VisibleAsBoolean是否可見VisibleValueAsInteger 控件在各種狀態(tài)下的可見性:新增、修改、察看、審核、下達。用一個五位的二進制數(shù)表示,可見則對應(yīng)位為1,否則為0。常用值:0、31。NeedSaveAsBoolean該控件的值是否保存RelateOutTblAsBoolean該控件的值是否來自其他表MustInputAsBoolean該控件是否必須輸入LookUpClsAsInteger如果控件的類型是查找類型的(LookUpCls=ctlLookUp),則該屬性標(biāo)示查找的類型'---控件的數(shù)據(jù)來源屬性
單據(jù)二次開發(fā)HeadCtl數(shù)組續(xù)單據(jù)二次開發(fā)HeadCtl數(shù)組續(xù)
InterIDAsLongFInterIDAsString'nterID對應(yīng)的字段名NumberAsStringFNumberAsStringNumber對應(yīng)的字段名NameAsStringFNameAsStringName對應(yīng)的字段名
'---控件的數(shù)據(jù)保存屬性FieldNameAsString該值保存時對應(yīng)的字段名ValeAsString保存的值(要用ValType來格式化)FilterAsString查找的過濾條件LOCKAAsBoolean 選單鎖定
單據(jù)二次開發(fā)HeadCtl數(shù)組續(xù)單據(jù)二次開發(fā)EntryCtl數(shù)組IDAsInteger'數(shù)組的Index與KDCtl的Index相對應(yīng),(FCtlIndex)CtlTypeAsE_CtlType'控件的類型(KCtlType)EnableAsBoolean'控件是否Locked與KDCtl的Locked屬性相對應(yīng)EnableValueAsInteger 控件在各種狀態(tài)下的可用性:新增、修
改、察看、審核、下達。用一個五位的二進制數(shù)表示,
可見則對應(yīng)位為1,否則為0。常用值:0、31。bPrintAsBoolean'是否打印VisibleAsBoolean'是否可見VisibleValueAsInteger控件在各種狀態(tài)下的可見性:新增、修改、
察看、審核、下達。用一個五位的二進制數(shù)表示,可見則對應(yīng)
位為1,否則為0。常用值:0、31。NeedSaveAsBoolean'該控件的值是否保存RelateOutTblAsBoolean'該控件的值是否來自其他表MustInputAsBoolean'該控件是否必須輸入LookUpClsAsInteger'如果控件的類型是查找類型的(LookUpCls=ctlLookUp),單據(jù)二次開發(fā)EntryCtl數(shù)組單據(jù)二次開發(fā)EntryCtl數(shù)組續(xù)則該屬性標(biāo)示查找的類型
NeedCountAsBoolean'是否需要合計StatCountAsBoolean'是否匯總類字段FCtlIndexAsInteger控件序號FCtlOrderAsInteger控件順序號RelationIDAsString該列相關(guān)聯(lián)的父級列
'---控件的數(shù)據(jù)來源屬性FInterIDAsStringInterID對應(yīng)的字段名FNumberAsStringNumber對應(yīng)的字段名FNameAsStringName對應(yīng)的字段名FilterStringAsStringDInterID()AsString如果該控件是查找類型的,則在該數(shù)組內(nèi)記錄InterID的值,其他的值直接從界面中取得
單據(jù)二次開發(fā)EntryCtl數(shù)組續(xù)單據(jù)二次開發(fā)EntryCtl數(shù)組續(xù)---控件的數(shù)據(jù)保存屬性SaveRuleAsStringFieldNameAsString該值保存時對應(yīng)的字段名ValTypeAsE_ValType保存值的數(shù)據(jù)類型SaveValueAsE_SaveValue保存何種類型的值(FName、
InterID、Number)DName()AsStringDNumber()AsStringFilter()AsStringHead
ItemID 當(dāng)前數(shù)據(jù)的內(nèi)碼 ItemName 當(dāng)前數(shù)據(jù)的名稱ItemNumber 當(dāng)前數(shù)據(jù)的IDText 控件顯示的Text單據(jù)二次開發(fā)EntryCtl數(shù)組續(xù)單據(jù)二次開發(fā)Grig控件Grid
SetText(colasLong,RowasLong,var)方法
給數(shù)據(jù)控件的第Col列,第Row行賦值var GetText(colasLong,RowasLong,var)方法
取數(shù)據(jù)控件的第Col列,第Row行的值var Col 指定起始列 Col2 指定結(jié)束列 Row 指定起始行 Row2 指定結(jié)束行 Lock 是否鎖定 Value 指定行列的單元格的值單據(jù)二次開發(fā)Grig控件單據(jù)二次開發(fā)二次開發(fā)實現(xiàn)的步驟:第一步、新建組件工程(假設(shè)工程名為ReDevPro,包含一個類名為clsReDev的類模塊),引用k3BillTransfer組件和其他你要使用的組件例如ADO--MicrosoftActiveXDataObjects2.1Library等。第二步、在clsReDev類代碼中聲明PrivateWithEventsm_BillTransferAsk3BillTransfer.Bill。第三步、必須添加以下代碼否則系統(tǒng)不能夠傳遞事件到你的組件中PublicSubShow(ByValoAsObject)Setm_BillTransfer=oEndSub第四步、在m_BillTransfer的各事件中編寫相應(yīng)處理代碼。例如PrivateSubm_BillTransfer_BillInitialize() Setcn=NewADODB.Connection cn.CursorLocation=adUseClient cn.Openm_BillTransfer.CnnstringEndSub單據(jù)二次開發(fā)二次開發(fā)實現(xiàn)的步驟:單據(jù)二次開發(fā)二次開發(fā)實現(xiàn)的步驟—續(xù):第五步、編寫完成以后編譯你的工程第六步、注冊二次開發(fā)組件使單據(jù)調(diào)用時能觸發(fā) 在表t_ThirdpartyComponent中增加二次開發(fā)組件記錄,各字段
含義為FTypeID:二次開發(fā)插件類型,0為客戶端插件;2為中間層插件FTypeDetailID:單據(jù)類型ID,客戶端表示對應(yīng)表ICTransactionType的FID,中間層表示事件類型FIndex:組件調(diào)用順序,按FTypeDetailID排取一個值FComponentName:客戶端二次開發(fā)組件,如PrjDemo.clsDemoFComponentSrv:中間層保存二次開發(fā)組件名稱FDescription:描述單據(jù)二次開發(fā)二次開發(fā)實現(xiàn)的步驟—續(xù):單據(jù)二次開發(fā)舉幾個二次開發(fā)的例子范例一在菜單中添加一個菜單,并實現(xiàn)該功能PrivateSubm_BillTransfer_BillInitialize()m_BillTransfer.AddUserMenuItem"ddd","dddddd"EndSubPrivateSubm_billtranty_UserMenuClick(ByValIndexAsLong,ByValCaptionAsString)IfCaption="ddd"Then''MsgBox"OK"此處可以實現(xiàn)該菜單的功能代碼EndIfEndSub單據(jù)二次開發(fā)舉幾個二次開發(fā)的例子單據(jù)二次開發(fā)范例二改變單據(jù)頭的Filter
屬性值,在插件中看到已經(jīng)改變,為什么沒有傳到k3bills中去,用以下代碼即可實現(xiàn)Private
Sub
m_BillTransfer_BeforHeadLookUp(ByVal
CtlIndex
As
Long,
ByVal
nLookUpClsID
As
Long,
Cancel
As
Boolean)
Dim
THeadCtl
As
Variant
Dim
i
As
Long
If
CtlIndex
=
4
Then
THeadCtl
=
m_BillTransfer.HeadCtl
THeadCtl(CtlIndex).Filter
=
Replace(THeadCtl(CtlIndex).Filter,
986=986”,
“986<>986”)
m_BillTransfer.HeadCtl
=
THeadCtl‘一定需要先定義
一個THeadCtl的變量,最后把該變量賦給m_BillTransfer.HeadCtl,才能使其真正生效
End
IfEnd
Sub單據(jù)二次開發(fā)范例二單據(jù)二次開發(fā)范例三在插件中改變輔助屬性的值為什么不起作用,插件中對表體的賦值有的不能按照m_BillTransfer.SetGridText的形式修改,一定要調(diào)用m_BillTransfer.BillForm.SetBillDataInput方式才可以真正修改
Set
tmpItemInfo
=
New
KFO.Dictionary
tmpItemInfo("Name")
=
"黃色"
'輔助屬性名稱
tmpItemInfo("Number")
=
"YELLOW"
'輔助屬性代碼
tmpItemInfo("Value")
=
"2"
'輔助屬性內(nèi)碼
m_BillTransfer.BillForm.SetBillDataInput
tmpItemInfo,
"FAuxPropID",
1,
1
Set
tmpItemInfo
=
Nothing
'SetBillDataInput
輔助屬性包,字段名,單據(jù)體(0:單據(jù)頭;1:單據(jù)體),行號單據(jù)二次開發(fā)范例三單據(jù)二次開發(fā)范例四在插件中填界面字段的三值PrivateConstOperNo=22'FOperID的FCtlOrder
PrivateSubSetOperID(ByValRowAsLong,ByRefdctResultAsKFO.Dictionary)OnErrorGoToHErrDimEntryCtlAsVariantEntryCtl=m_BillTransfer.EntryCtlEntryCtl(OperNo).DInterID(Row)=dctResult.GetValue("FOperID")EntryCtl(OperNo).DNumber(Row)=dctResult.GetValue("FID")EntryCtl(OperNo).DName(Row)=dctResult.GetValue("FName")m_BillTransfer.EntryCtl=EntryCtlm_BillTransfer.SetGridTextRow,OperNo,dctResult.GetValue("FName")HErr:....EndSub單據(jù)二次開發(fā)范例四單據(jù)二次開發(fā)二次開發(fā)中間層接口PublicFunctionHookInvoke(ByValEventIDAsLong,dctParamsAsKFO.Dictionary)AsLongdctParams 參數(shù)包里有可能要使用的單據(jù)信息操作信息和連接串
sDsn 連接串
OperateCode 1'------審核
2'------反審核
4'------保存
8'------刪除
16'-----反作廢
32'-----作廢
64'-----單據(jù)復(fù)制
TranType 單據(jù)類型
InterID 單據(jù)內(nèi)碼
ROB 1-藍字 -1紅字
返回值1為正常,返回值0為失敗,可以向上拋出異常和提示信息單據(jù)二次開發(fā)二次開發(fā)中間層接口單據(jù)二次開發(fā)EventID說明300014單據(jù)拆分后事件300013單據(jù)拆分前事件300012單據(jù)合并后事件300011單據(jù)合并前事件300010單據(jù)關(guān)聯(lián)反寫后事件300009單據(jù)關(guān)聯(lián)反寫前事件300008關(guān)閉/反關(guān)閉單據(jù)后事件300007關(guān)閉/反關(guān)閉單據(jù)前事件300006作廢/反作廢單據(jù)后事件300005作廢/反作廢單據(jù)前事件300004刪除單據(jù)后事件300003刪除單據(jù)前事件300002序時簿復(fù)制后事件300001序時簿復(fù)制前事件100001生成憑證結(jié)束反寫事件100000生成憑證結(jié)束反寫事件200003審核退出前事件200002審核反寫事件200001審核前事件單據(jù)二次開發(fā)EventID說明300014單據(jù)拆分后事件300013單據(jù)客戶端二次開發(fā),先在二次開發(fā)模板中插入記錄(t_ThirdPartyComponent)deletefromt_ThirdPartyComponentwhereFComponentName='ProBillPlugIns.clsStockIn_PlugIns'declareFIndexintsetFIndex=(selectMAX(FIndex)fromt_ThirdPartyComponentWHEREFTypeDetailID=2)INSERTINTOt_ThirdPartyComponent(FTypeID,FTypeDetailID,FIndex,FComponentName,FComponentSrv,FDescription)SELECT0,2,FIndex+1,'ProBillPlugIns.clsStockIn_PlugIns','','生產(chǎn)領(lǐng)料單插件'GO二次開發(fā)實戰(zhàn)演練客戶端二次開發(fā),先在二次開發(fā)模板中插入記錄(t_ThirdP二次開發(fā)實戰(zhàn)演練判斷生產(chǎn)任務(wù)單是否生成領(lǐng)料單先創(chuàng)建工程ProBillPlugIns:二次開發(fā)實戰(zhàn)演練判斷生產(chǎn)任務(wù)單是否生成領(lǐng)料單創(chuàng)建好類:clsStockIn_PlugIns二次開發(fā)實戰(zhàn)演練創(chuàng)建好類:clsStockIn_PlugIns二次開發(fā)實戰(zhàn)業(yè)務(wù)實現(xiàn)主函數(shù)二次開發(fā)實戰(zhàn)演練業(yè)務(wù)實現(xiàn)主函數(shù)二次開發(fā)實戰(zhàn)演練中間層二次開發(fā),先在二次開發(fā)模板中插入記錄(t_ThirdPartyComponent)DELETEFROMt_ThirdPartyComponentWHEREFComponentSrv='MProSaleBillOut.clsMSaleBillOut_PlugIns'declareFIndexintsetFIndex=(selectisnull(MAX(FIndex),0)fromt_ThirdPartyComponentWHEREFTypeDetailID=300009)INSERTINTOt_ThirdPartyComponent(FComponentSrv,FTypeID,FTypeDetailID,FIndex,FComponentName,FDescription)SELECT'MProSaleBillOut.clsMSaleBillOut_PlugIns',2,300009,FIndex+1,'','銷售出庫單審核反寫接口'--FROMt_ThirdPartyComponentGO二次開發(fā)實戰(zhàn)演練中間層二次開發(fā),先在二次開發(fā)模板中插入記錄(t_ThirdP注意MTSTransactionMode屬性的選擇二次開發(fā)實戰(zhàn)演練注意MTSTransactionMode屬性的選擇二次開發(fā)實MTSTransactionMode屬性可能的值有:
0-NotAnMTSObject——對象無法識別MTS或者事務(wù)處理,而且不參與其中。
1-NoTransactions——對象無法在事務(wù)處理模式里執(zhí)行,即使它是由參與事務(wù)處理的某個對象調(diào)用的。
2-RequiresTransaction——對象必須在事務(wù)處理里運行。如果對象的創(chuàng)建者有事務(wù)處理,那么對象就要在其創(chuàng)建者的事務(wù)處理里運行。如果情況不是如此,那么就會為對象創(chuàng)建一個事務(wù)處理。
3-UsesTransaction——對象需要或者不需要事務(wù)處理都可以運行。如果對象的創(chuàng)建者在事務(wù)處理里運行,那么對象就會被放在事務(wù)處理里。如果其創(chuàng)建者不是在事務(wù)處理里運行,那么它也不會創(chuàng)建一個。
4-RequiresNewTransaction——對象需要在新的事務(wù)處理里運行。對象總是在一個新的事務(wù)處理里運行,而不管創(chuàng)建它的對象是否運行在某個事物對象里。
正確使用MTS的事務(wù)處理能夠讓多個對象將數(shù)據(jù)保存到一個數(shù)據(jù)庫或者多個數(shù)據(jù)庫里,并執(zhí)行或者返回所有的更改。二次開發(fā)實戰(zhàn)演練MTSTransactionMode屬性可能的值有:
0-中間層組件,以下屬性一定要選擇二次開發(fā)實戰(zhàn)演練中間層組件,以下屬性一定要選擇二次開發(fā)實戰(zhàn)演練字符串連接解析函數(shù)二次開發(fā)實戰(zhàn)演練字符串連接解析函數(shù)二次開發(fā)實戰(zhàn)演練中間層主關(guān)鍵調(diào)用入口函數(shù),此函數(shù)的名字,參數(shù)一定要這樣寫。二次開發(fā)實戰(zhàn)演練中間層主關(guān)鍵調(diào)用入口函數(shù),此函數(shù)的名字,參數(shù)一定要這樣寫。二入口函數(shù)中:dictparams字典包中的值lngoperate=CLng(dictparams("OperateCode"))當(dāng)lngoperate=1時,為審核調(diào)用當(dāng)lngoperate=2時,為反審核調(diào)用lngTranType=CLng(dictparams("DestTranType"))單據(jù)類型lngFInterID=CLng(dictparams("DestBillInterID"))單據(jù)內(nèi)碼二次開發(fā)實戰(zhàn)演練入口函數(shù)中:dictparams字典包中的值二次開發(fā)實戰(zhàn)演組件部署V11多語言之后版本(含本版本):客戶端:ProgramFiles\Kingdee\K3ERP服務(wù)器:ProgramFiles\Kingdee\K3ERP\KDSYSTEM\KDCOMV11多語言之前版本客戶端:ProgramFiles\Kingdee\K3ERP服務(wù)器:ProgramFiles\Kingdee\K3ERP\KDSYSTEM\KDCOM客戶端組件及中間層組件編譯時,都要設(shè)置兼容性客戶端組件編譯好之后,直接在對應(yīng)目錄下雙擊或在運行下面使用此命令:組件編譯及布署組件部署組件編譯及布署中間層組件注冊相對麻煩一些組件編譯及布署中間層組件注冊相對麻煩一些組件編譯及布署組件編譯及布署組件編譯及布署把組件拖到組件服務(wù)中組件編譯及布署把組件拖到組件服務(wù)中組件編譯及布署VBR文件注冊使用:clireg32.exe組件編譯及布署VBR文件注冊使用:clireg32.exe組件編譯及布署Question?問題交流Question?問題交流謝謝!謝謝!特別聲明沒有金蝶軟件(中國)有限公司的特別許可,任何人不能以任何形式或為任何目的復(fù)制或傳播本文檔的任何部分。本文檔中包含的信息如有更改,恕不另行通知。
由金蝶軟件(中國)有限公司和其分銷商所銷售的某些軟件產(chǎn)品包含有其它軟件供應(yīng)商版權(quán)所有的軟件組件。Microsoft?、WINDOWS?、NT?、EXCEL?、Word?、PowerPoint?和SQLServer?是微軟公司的注冊商標(biāo)。IBM?、DB2?、DB2通用數(shù)據(jù)庫、OS/2?、ParallelSysplex?、MVS/ESA、AIX?、S/390?、AS/400?、OS/390?、OS/400?、iSeries、pSeries、xSeries、zSeries、z/OS、AFP、IntelligentMiner、WebSphere?、Netfinity?、Tivoli?、Informix和Informix?動態(tài)ServerTM是IBM公司在美國或其他公司的商標(biāo)。ORACLE?是ORACLE公司的注冊商標(biāo)。UNIX?、X/Open?、OSF/1?和Motif?是OpenGroup的注冊商標(biāo)。Citrix?、Citrix徽標(biāo)、ICA、ProgramNeighborhood?、MetaFrame?、WinFrame?、VideoFrame?、MultiWin?以及此處引用的Citrix產(chǎn)品名是CitrixSystems公司的商標(biāo)或注冊商標(biāo)。HTML、DHTML、XML和XHTML是W3C?、WorldWideWeb協(xié)會、計算機科學(xué)實驗室的商標(biāo)或注冊商標(biāo)。JAVA?是SunMicrosystems公司的注冊商標(biāo)。JAVASCRIPT?SunMicrosystems公司的注冊商標(biāo),由其技術(shù)開發(fā)和實施商Netscape許可使用。本文檔提到的金蝶?
、金蝶KIS?
、金蝶K/3?
、金蝶EAS?
、Apusic?
、金蝶iFly?和其它金蝶產(chǎn)品和服務(wù)以及它們各自的徽標(biāo)是金蝶軟件(中國)有限公司在中國和世界其它一些國家的商標(biāo)或注冊商標(biāo)。本文檔提到的所有其它產(chǎn)品和服務(wù)名稱是它們各自公司的商標(biāo)。特別聲明沒有金蝶軟件(中國)有限公司的特別許可,任何人不能以二次開發(fā)簡介
曹且根金蝶軟件(中國)有限公司研發(fā)中心二次開發(fā)簡介
曹且根金蝶軟件(中國)有限公司研60提綱工業(yè)老單二次開發(fā)工業(yè)老單二次開發(fā)所需環(huán)境及要點工業(yè)老單序時薄二次開發(fā)工業(yè)老單單據(jù)二次開發(fā)工業(yè)老單實戰(zhàn)演練組件編譯及布署問題交流提綱工業(yè)老單二次開發(fā)二次開發(fā)所需環(huán)境及要點單據(jù)二次開發(fā)是針對現(xiàn)目前單據(jù)的一些功能無法滿足一些客戶的特殊要求,同時分公司又有能力進行二次開發(fā)而提出的,這樣既可以在現(xiàn)有的系統(tǒng)不做變動的情況下面滿足用戶的需求,同時也增強了系統(tǒng)的穩(wěn)定性。本篇所介紹所用到的動態(tài)連接庫名為:K3BillTransfer.dll通過該說明文檔,你可以了解到1.如何通過K3BillTransfer組件在錄單過程中對單據(jù)上各項目加以控制。2.如何通過K3BillTransfer組件實現(xiàn)自定義功能菜單。
3.如何通過K3BillTransfer組件控制數(shù)據(jù)的保存。4.如何在序時薄上增加菜單及應(yīng)用。5.應(yīng)用示例—實戰(zhàn)演練。適用對象需要在K/3供應(yīng)鏈系統(tǒng)單據(jù)上進行二次開發(fā)的開發(fā)者開發(fā)環(huán)境1.安裝過K/3ERP9.41以后的版本且購買過供應(yīng)鏈系統(tǒng)。2.VB6.0企業(yè)版+SP13.SQLSERVER2000及后續(xù)版本(SQLSERVER2019,SQLSERVER2019)二次開發(fā)所需環(huán)境及要點單據(jù)二次開發(fā)是針對現(xiàn)目前單據(jù)的一序時薄二次開發(fā)老單序時薄開發(fā)相對簡單,它只能在序時薄上增加菜單,通過菜單去實現(xiàn)一些二次開發(fā)功能.使用方法:1.)在t_BandToolMapping中的FcomName填入需要調(diào)用組件的名稱,注意:不要覆蓋原有內(nèi)容,要在原有內(nèi)容上用“|”分割后加入自己的組件,可以加多個組件。第一個插件前一定要加“|”,因為之前的部分是記錄了其他信息。2).二次開發(fā)組件必須實現(xiàn)MainFunction(ByValsKeyAsstring,oListAsObject,ByrefbCancelasBoolean)方法。要終止事件,請將bCancel設(shè)置為true。3).oList為一個即是ICList,可以使用其中的任何Public方法。比方說GetSelData為取得選取的對象序時薄二次開發(fā)老單序時薄開發(fā)相對簡單,它只能在序時薄上增加菜序時薄二次開發(fā)流程圖序時薄二次開發(fā)流程圖序時薄二次開發(fā)范例增加元數(shù)據(jù)按鈕菜單名“FMenuPC”,新增加一個不存在的FToolIDDeleteFromt_MenuToolBarWhereFToolID=10002insertintot_MenuToolBar(FToolID,FName,FCaption,FCaption_CHT,FCaption_EN,FImageName,FToolTip,FToolTip_CHT,FToolTip_EN,FControlType,FVisible,FEnable,FChecked,FShortCut,FCBList,FCBList_CHT,FCBList_EN,FCBStyle,FCBWidth,FIndex,FToolCaption,FToolCaption_CHT,FToolCaption_EN)values(10002,'FMenuPC','外購入庫拆分','外購入庫拆分','外購入庫拆分','39','外購入庫拆分','外購入庫拆分','外購入庫拆分',0,0,1,0,0,'','','',0,0,0,'外購入庫拆分','外購入庫拆分','外購入庫拆分')序時薄二次開發(fā)范例序時薄二次開發(fā)范例續(xù)
將上面的按鈕插入到菜單欄和工具欄在t_BandToolMapping中的FcomName填入需要調(diào)用組件的名稱,注意:不要覆蓋原有內(nèi)容,要在原有內(nèi)容上用“|”分割后加入自己的組件,可以加多個組件。第一個插件前一定要加“|”,因為之前的部分是記錄了其他信息。FID對應(yīng)iclisttemplate里的FMenuID,FBandID表示放在哪個菜單下(對應(yīng)t_BandToolMapping.FSubBandID),可以通過以下語句關(guān)聯(lián)得到是哪個菜單selecta.*,b.fname,b.FCaptionFromt_BandToolMappinga,t_MenuToolBarbwherea.FID=82anda.ftoolid=b.ftoolid將按鈕插入到菜單欄DeleteFromt_BandToolMappingwhereFBandID=3andFToolID=10002andFID=82insertintot_BandToolMapping(FID,FBandID,FToolID,FSubBandID,FIndex,FComName,FBeginGroup)values(82,3,10002,0,65,'|K3ListPlug.List',0)序時薄二次開發(fā)范例續(xù)范例續(xù)將按鈕插入到工具欄DeleteFromt_BandToolMappingwhereFBandID=52andFToolID=10002andFID=82insertintot_BandToolMapping(FID,FBandID,FToolID,FSubBandID,FIndex,FComName,FBeginGroup)values(82,52,10002,0,65,'|K3ListPlug.List',0)在外購入庫序時薄顯示按鈕(如果里面有"|V",則只能在后面加菜單項)UpdateIclistTemplatesetFLogicStr=FLogicStr+CaseWhenRight(FLogicStr,1)='|'then'V:FMenuPC'else'|V:FMenuPC'endwhereFID=1andnotFLogicStrlike'%FMenuPC%'序時薄二次開發(fā)范例續(xù)序時薄二次開發(fā)數(shù)據(jù)元建好之后,再新建一個工程文件。如:新建一個vb工程,命名為:ProListBill,在工程中新建一個類命名為:ListBill序時薄二次開發(fā)數(shù)據(jù)元建好之后,再新建一個工程文件。如:序時薄二次開發(fā)在類ListBill中添加以下代碼以上只是序時薄二次開發(fā)實現(xiàn)的一個簡單的例子,具體的二次開發(fā),要根據(jù)不同的需求,進行相應(yīng)的開發(fā),接口都是統(tǒng)一調(diào)用MainFunction函數(shù),再根據(jù)具體情況進行擴展。序時薄二次開發(fā)在類ListBill中添加以下代碼以上只是序時薄二次開發(fā)實現(xiàn)單據(jù)二次開發(fā)單據(jù)二次開發(fā)主要通過K3BillTransfer組件控制單據(jù)上一些操作。其常用屬性1.PropertyCnnstringAsString
當(dāng)前數(shù)據(jù)庫的MMTS.PropsString連接串。2.PropertySystemNameAsString
當(dāng)前系統(tǒng)名稱。3.PropertyLastInfoAsString最后一次系統(tǒng)返回的各種信息4.PropertyBillFormAsObject整個單據(jù)窗體對象。可通過該對象訪問單據(jù)上的任何一個對象,包括控件,
菜單。共有的方法有:InsertRow(),在Grid的當(dāng)前行追加一行,它沒有參數(shù)。5.PropertyBillFuncasObject
代表單據(jù)對象。目前沒什么用途。單據(jù)二次開發(fā)單據(jù)二次開發(fā)主要通過K3BillTransfer其常用屬性—續(xù)6.PropertyHeadAsObject單據(jù)表頭控件,是一個KDText控件數(shù)組7.PropertyGridAsObject單據(jù)分錄控件,為FpSpread控件8.PropertySumGridAsObject單據(jù)分錄合計控件,為FpSpread控件9.PropertyHeadCtlAsVariant
對應(yīng)表頭控件數(shù)組,記錄每個表頭項目各屬性的數(shù)組如果要改變HeadCtl中的某個屬性值,需先對HeadCtl做一個備份,然后修改此備份的相應(yīng)屬性值,再將此備份賦值給HeadCtl。。單據(jù)二次開發(fā)其常用屬性—續(xù)單據(jù)二次開發(fā)其常用屬性—續(xù)10.PropertyEntryCtlAsVariant對應(yīng)分錄各列,記錄每個分錄列各屬性的數(shù)組如果要改變EntryCtl中的某個屬性值,需先對EntryCtl做一個備份,然后修改此備份的相應(yīng)屬性值,再將此備份賦值給EntryCtl11.PropertySaveVectAsKFO.Vector
二次開發(fā)外部數(shù)據(jù)存取接口。在錄單過程中,用戶可將某些數(shù)據(jù)保存在此Vector中,在單據(jù)保存時,再通過二次開發(fā)中間層組件,將此Vector中的數(shù)據(jù)保存到指定位置。 SaveVect.Item(1)為一個KFO.Dictionary對象該對象包含以下四個系統(tǒng)數(shù)據(jù)SaveVect.Item(1).Value("FInterID"):單據(jù)內(nèi)碼SaveVect.Item(1).Value("FTransType"):單據(jù)事務(wù)類型SaveVect.Item(1).Value("ISRedBill"):是否紅字單據(jù)SaveVect.Item(1).Value("BillChecked"):是否審核。單據(jù)二次開發(fā)其常用屬性—續(xù)單據(jù)二次開發(fā)常用的方法FunctionAddUserMenuItem(ByValCaptionAsString,[ByValRootMenuCaptionAsString=""])說明:添加一個用戶自定義菜單項,系統(tǒng)一共預(yù)設(shè)了五個菜單項供二次開發(fā)使用參數(shù):Caption:菜單名稱RootMenuCaption:根菜單名稱。缺省為“自定義菜單”2.FunctionGetGridText(ByValRowAsLong,ByValColAsLong)AsString說明:獲取分錄某單元格的值參數(shù):Row:分錄行,Col:分錄列3.FunctionGetHeadNumber(ByValCtlIndexAsLong)AsString說明:獲取表頭某項的代碼參數(shù):CtlIndex:表頭控件索引
4.FunctionGetHeadText(ByValCtlIndexAsLong)AsString說明:獲取表頭某項的文本參數(shù):CtlIndex:表頭控件索引單據(jù)二次開發(fā)常用的方法單據(jù)二次開發(fā)單據(jù)二次開發(fā)常用的方法—續(xù)5.FunctionGetSumGridText(ByValRowAsLong,ByValCo
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 服裝合同采購6篇
- 專業(yè)網(wǎng)站建設(shè)試題及答案
- 上海土建安全員模擬題庫及答案
- 糖果加工合同6篇
- 室內(nèi)設(shè)計課件
- 城區(qū)水環(huán)境綜合治理勞務(wù)施工合同6篇
- 電動吊籃租賃合同與電動工具租賃合同2篇
- 幼兒園愛衛(wèi)生講文明
- 健康促進縣區(qū)課件
- 機械設(shè)計及其制度課件
- 《養(yǎng)老機構(gòu)重大事故隱患判定標(biāo)準(zhǔn)》主要內(nèi)容解讀
- 米字格A4打印版
- 陜西省西安市蓮湖區(qū)2023-2024學(xué)年六年級下學(xué)期期末英語試題
- 企業(yè)錄用通知書offer模板
- 人際溝通與禮儀智慧樹知到課后章節(jié)答案2023年下河北工業(yè)職業(yè)技術(shù)學(xué)院
- 臨床藥理學(xué)(完整課件)
- 田徑運動會競賽團體總分記錄表
- 《中小學(xué)綜合實踐活動課程指導(dǎo)綱要》
- 公共資源交易中心政府采購業(yè)務(wù)流程圖
- 建筑施工單位職業(yè)危害歸類表
- 重慶市醫(yī)療服務(wù)價格-重慶市《醫(yī)療服務(wù)價格手冊-》
評論
0/150
提交評論