金蝶K3 BOS插件開發(fā)常見技巧

上傳人:沈*** 文檔編號:41492696 上傳時(shí)間:2021-11-20 格式:DOC 頁數(shù):7 大?。?4KB
收藏 版權(quán)申訴 舉報(bào) 下載
金蝶K3 BOS插件開發(fā)常見技巧_第1頁
第1頁 / 共7頁
金蝶K3 BOS插件開發(fā)常見技巧_第2頁
第2頁 / 共7頁
金蝶K3 BOS插件開發(fā)常見技巧_第3頁
第3頁 / 共7頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《金蝶K3 BOS插件開發(fā)常見技巧》由會員分享,可在線閱讀,更多相關(guān)《金蝶K3 BOS插件開發(fā)常見技巧(7頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、1、 如何在工具欄上添加多級審核的按鈕?在m_BillInterface_MenuBarInitialize事件里添加如下代碼即可。Set oTool = m_BillInterface.MenuBar.BOSTools("mnuEditMultiCheck")With oTool .Caption = "多級審核" .ToolTipText = "多級審核" .Description = "多級審核" .BeginGroup = False .ToolPicture = App.Path + "Chec

2、ker.bmp" .SetPicture 0, vbButtonFaceEnd WithSet oBand = oMenuBar.BOSBands("BandToolBar")oBand.BOSTools.InsertBefore "mnuFilePrint", oTool '將菜單對象插入指定工具欄2、 如何在顯示一張Bos單據(jù)的同時(shí)給它賦值?要想在顯示Bos單據(jù)的同時(shí)給它賦值,關(guān)鍵是在顯示前要購建m_Billinterface的data包,這樣在顯示這張同據(jù)的時(shí)候,程序會解析data包,并將里面的值賦到單據(jù)界面上來。 Dim dct

3、Data As kfo.Dictionary Dim datasrv as object Dim oTableinfo as object Set DataSrv = m_BillInterface.K3Lib.CreateK3Object("K3ClassTpl.DataSrv") DataSrv.ClassTypeID = lClassTypeID 'lClassTypeID 需要彈出單據(jù)的ID Set oTableInfo = DataSrv.TableInfo Set dctData = DataSrv.GetEmptyBill '然后將當(dāng)前單據(jù)數(shù)據(jù)

4、包中需要的數(shù)據(jù)填充到dctdata的對應(yīng)字段 ' 在以上語句執(zhí)行后,dctdata(“page2”)里只有一行表結(jié)構(gòu)(即表體只有一行) '賦表頭的值 dctData("Page1")(oTableinfo("map")("FText")("FFLD") = m_BillInterface.GetFieldValue("FText") dctData("Page1")(oTableinfo("map")("FDeptID"

5、)("FFLD") = m_BillInterface.GetFieldValue("FDeptID", -1, Enu_ValueType_FFLD) dctData("Page1")(oTableinfo("map")("FDeptID")("FFND") = m_BillInterface.GetFieldValue("FDeptID", -1, Enu_ValueType_FFND) dctData("Page1")(oTabl

6、einfo("map")("FDeptID")("FDSP") = m_BillInterface.GetFieldValue("FDeptID", -1, Enu_ValueType_FDSP) '賦表體的值 Dim oPage2 As Object For i = 1 To m_BillInterface.Data("Page2").UBound - 1 Set oPage2 = dctData("Page2")(1).CloneAll dctData("

7、;Page2").Add oPage2 '添加到 dcData dctData("Page2")(i + 1)(oTableinfo("map")("FIndex2")("FFLD") = i + 1 '更改分錄號 Next For i = 1 To m_BillInterface.Data("Page2").UBound '物料 FItemID dctData("Page2")(i)(oTableinfo("map")(

8、" FItemID ")("FFLD") = m_BillInterface.GetFieldValue("FItemID ", i, Enu_ValueType_FFLD) dctData("Page2")(i)(oTableinfo("map")(" FItemID ")("FDSP") = m_BillInterface.GetFieldValue("FItemID ", i, Enu_ValueType_FDSP) dctDat

9、a("Page2")(i)(oTableinfo("map")(" FItemID ")("FFND") = m_BillInterface.GetFieldValue("FItemID ", i, Enu_ValueType_FFND) '物料名稱 fbaseproperty dctData("page2")(i)(oTableinfo("map")("fbaseproperty")("FFLD") = m

10、_BillInterface.GetFieldValue("fbaseproperty", i, Enu_ValueType_FFLD) dctData("Page2")(i)(oTableinfo("map")("fbaseproperty")("FDSP") = m_BillInterface.GetFieldValue("fbaseproperty", i, Enu_ValueType_FDSP) dctData("Page2")(i)(oTable

11、info("map")("fbaseproperty")("FFND") = m_BillInterface.GetFieldValue("fbaseproperty", i, Enu_ValueType_FFND) '計(jì)量單位 FUnitID dctData("Page2")(i)(oTableinfo("map")(" FUnitID ")("FFLD") = m_BillInterface.GetFieldValue(&q

12、uot;FUnitID ", i, Enu_ValueType_FFLD) dctData("Page2")(i)(oTableinfo("map")(" FUnitID ")("FDSP") = m_BillInterface.GetFieldValue("FUnitID ", i, Enu_ValueType_FDSP) dctData("Page2")(i)(oTableinfo("map")(" FUnitID ")(

13、"FFND") = m_BillInterface.GetFieldValue("FUnitID ", i, Enu_ValueType_FFND) '數(shù)量 FQty dctData("Page2")(i)(oTableinfo("map")("FQty")("FFLD") = m_BillInterface.GetFieldValue("fqty", i, Enu_ValueType_FFLD) Next Set obj = CreateObje

14、ct("K3SingleClassBill.ClassInfoManager") With obj .datasrv = datasrv .ISCheckRight = True .Show , , , dctData End With3、 如何在插件中實(shí)現(xiàn)選單的功能?調(diào)用Bos單據(jù)m_BillInterface.BillCtl.DoSelBill lClassTypeID '(原單的ClassTypeID)調(diào)用工業(yè)單據(jù)m_BillInterface.BillCtl.DoSelOldBill lClassTypeID '(原單的ClassTypeID)4、

15、在插件中以新增、修改和查看方式打開另一單據(jù) '* '功能:顯示BOS單據(jù),顯示的方式為新增、修改和瀏覽'參數(shù):lClassTypeID顯示BOS單據(jù)的ID''* Private Sub ShowBill(ByVal lClassTypeID As Long) Dim oDataSrv As Object Dim oBill As Object On Error GoTo err_ctr Set oDataSrv = m_BillInterface.K3Lib.CreateK/3Object("K3ClassTpl.DataSrv")o

16、DataSrv.ClassTypeID = lClassTypeID Set oBill = CreateObject("K3SingleClassBill.ClassInfoManager")With oBill .DataSrv = oDataSrv .ISNetControl = True .ISCheckRight = True .Show '* 'Show 參數(shù)類型 '第一個(gè)參數(shù) Optional ByVal lID As Long = 0 ;描述修改或查看的單據(jù)ID '第二個(gè)參數(shù) Optional ByVal bShowGroup

17、 As Boolean = False ;如是基礎(chǔ)資料時(shí),是否顯示分組 '第三個(gè)參數(shù) Optional ByVal BillStatus As Long = Enu_BillStatus_New ;顯示方式 0查看;1新增;2修改 '第四個(gè)參數(shù) Optional ByVal dctData As KFO.Dictionary '單據(jù)初始值 '* End With Set oDataSrv = Nothing Set oBill = Nothing Exit Suberr_ctr:Set oDataSrv = Nothing Set oBill = Nothing

18、End Sub5、 顯示BOS序時(shí)簿并返回選中的值'* '功能:顯示BOS序時(shí)簿并返回選中的值'參數(shù):lClassTypeID顯示BOS單據(jù)的ID''* Private Function ShowListByReturn(ByVal lClassTypeID As Long) As Object Dim oDataSrv As ObjectDim objLookup As ObjectOn Error GoTo err_ctrSet oDataSrv = m_BillInterface.K3Lib.CreateK3Object("K3Class

19、Tpl.DataSrv")oDataSrv.ClassTypeID = lClassTypeIDIf oDataSrv.showfilter Then Set objLookup = CreateObject("K3ClassLookUp.BillLookUp") objLookup.ClassTypeID = lClassTypeID Set objLookup.DataSrv = oDataSrv objLookup.Lookup Set ShowListByReturn = objLookup.VectReturn End IfSet oDataSrv =

20、NothingSet objLookup = NothingExit Functionerr_ctr:Set oDataSrv = NothingSet objLookup = NothingEnd Function6、 如何在序事簿中得到選中行的記錄集值?Dim vectSelect as kfo.vectorDim rs as adodb.recordsetSet vectSelect=m_Listinterface. GetSelectedBillInfoSet rs=m_Listinterface.datasrv. GetBillDetail(vectSelect(1)("F

21、ID")7、 將當(dāng)前單據(jù)轉(zhuǎn)化為另一單據(jù),并無界面保存數(shù)據(jù) '*'功能:將當(dāng)前單據(jù)轉(zhuǎn)化為另一單據(jù),并無界面保存數(shù)據(jù)'參數(shù):lClassTypeID顯示BOS單據(jù)的ID'* Private Sub NoUISaveBill(ByVal lClassTypeID As Long) Dim oDataSrv As ObjectDim oTableInfo As ObjectDim oBill As ObjectDim oData As ObjectDim oSrv As ObjectDim oPage2 As ObjectDim i As LongOn Err

22、or GoTo err_ctrSet oDataSrv = m_BillInterface.K3Lib.CreateK3Object("K3ClassTpl.DataSrv")oDataSrv.ClassTypeID = lClassTypeIDSet oTableInfo = oDataSrv.TableInfoSet oData = oDataSrv.GetEmptyBillFor i = 1 To m_BillInterface.Data("Page2").UBound - 1 Set oPage2 = oData("Page2"

23、;)(1).CloneAll oData("Page2").Add oPage2 '添加到 dcData oData("Page2")(i + 1)("_-0001_FIndex2")("FFLD") = i + 1 '更改分錄號NextFor i = 1 To m_BillInterface.Data("Page2").UBound oData("Page2")(i)(oTableInfo("map")("FItemID&quo

24、t;)("FFLD") = m_BillInterface.GetFieldValue("FItemID", i, Enu_ValueType_FFLD) oData("Page2")(i)(oTableInfo("map")("FItemID")("FFND") = m_BillInterface.GetFieldValue("FItemID", i, Enu_ValueType_FFND) oData("Page2")(i)(oTa

25、bleInfo("map")("FItemID")("FDSP") = m_BillInterface.GetFieldValue("FItemID", i, Enu_ValueType_FDSP) Next Set oSrv = CreateObject("K3MClass.BillUpdate") i = oSrv.Save(MMTS.PropsString, oDataSrv.ClassType, oDataSrv.ClassTypeEntry, oDataSrv.TableInfo, o

26、Data, oDataSrv.dctLink)Set oDataSrv = NothingSet oBill = Nothing Exit Suberr_ctr: MsgBox Err.DescriptionSet oDataSrv = NothingSet oBill = NothingEnd Sub【備注】1、K/3 BOS保存方法Save的參數(shù)描述:'Public Function Save(ByVal sDsn As String, _' ByVal dctClassType As KFO.Dictionary, _' ByVal vctClassTypeEnt

27、ry As KFO.Vector, _' ByVal dctTableinfo As KFO.Dictionary, _' ByRef dctData As KFO.Dictionary, _' ByVal dctLinks As KFO.Dictionary) As Long'/*/'/*描述:單據(jù)保存'/*參數(shù):'/* dctClassType KFO.Dictionary 單據(jù)整體信息模板'/* dctData KFO.Dictionary 單據(jù)數(shù)據(jù)包'/* dctLink KFO.Dictionary 選單關(guān)系模板

28、,無選單為Nothing'/* dctTableInfo KFO.Dictionary 單據(jù)字段模板信息'/* sDsn String K/3標(biāo)準(zhǔn)數(shù)據(jù)庫連接串'/* vctClassTypeEntry KFO.Vector 單據(jù)體模板信息'/*備注:'/*/2、使用此方法時(shí)插件要添加MMTS。8、 如何在插件中獲取當(dāng)前系統(tǒng)字符連接串?一、連接串獲取方式:(注意不支持調(diào)試,調(diào)試的話可以用實(shí)際連接串代替)Private Declare Function GetCurrentProcessId Lib "kernel32" Alias &q

29、uot;GetCurrentProcessID" () As Long '獲取連接串Public Function GetPropsString() As String Dim lProc As Long Dim spmMgr As Object lProc = GetCurrentProcessId Set spmMgr = CreateObject("PropsMgr.ShareProps")GetPropsString = spmMgr.GetProperty(lProc, "PropsString") End Function 二、 需要申請MMTS.bas的源代碼,還需要申請ICKDListener的接口。另外,如果需要調(diào)試程序,就還需要申請KDMain的源代碼。

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!