金蝶K3 BOS插件開發(fā)常見技巧
《金蝶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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 對標(biāo)管理概述和實(shí)施
- 市場營銷信息系統(tǒng)與營銷調(diào)研
- 市場經(jīng)濟(jì)的一般特征(優(yōu)質(zhì)課)
- 粒子物理學(xué)的發(fā)展PPT
- 四年級下冊語文園地三口語交際(檀麗萍)
- 四年級下冊品德與社會《創(chuàng)造文明的環(huán)境》
- 創(chuàng)業(yè)設(shè)立公司流程介紹
- XX綜合經(jīng)濟(jì)開發(fā)區(qū)戰(zhàn)略咨詢
- 零基礎(chǔ)對外漢語第一課
- 寫作+寫出人物精神+(共23張PPT)(教育精品)
- 螺桿擠出機(jī)
- 考點(diǎn)4-價(jià)格變動(dòng)對經(jīng)濟(jì)生活的影響
- 美國專利查詢介紹
- GP綠色產(chǎn)品環(huán)境管理物質(zhì)知識培訓(xùn)
- 簡潔明快的優(yōu)秀模板之商業(yè)管理技巧suervisory