歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

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

  • 資源ID:41492696       資源大?。?span id="5nnyjb0" class="font-tahoma">64KB        全文頁數(shù):7頁
  • 資源格式: DOC        下載積分:10積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號:
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

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

1、 如何在工具欄上添加多級審核的按鈕?在m_BillInterface_MenuBarInitialize事件里添加如下代碼即可。Set oTool = m_BillInterface.MenuBar.BOSTools("mnuEditMultiCheck")With oTool .Caption = "多級審核" .ToolTipText = "多級審核" .Description = "多級審核" .BeginGroup = False .ToolPicture = App.Path + "Checker.bmp" .SetPicture 0, vbButtonFaceEnd WithSet oBand = oMenuBar.BOSBands("BandToolBar")oBand.BOSTools.InsertBefore "mnuFilePrint", oTool '將菜單對象插入指定工具欄2、 如何在顯示一張Bos單據(jù)的同時給它賦值?要想在顯示Bos單據(jù)的同時給它賦值,關(guān)鍵是在顯示前要購建m_Billinterface的data包,這樣在顯示這張同據(jù)的時候,程序會解析data包,并將里面的值賦到單據(jù)界面上來。 Dim dctData 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ù)包中需要的數(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")("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")(oTableinfo("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("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")(" 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) dctData("Page2")(i)(oTableinfo("map")(" FItemID ")("FFND") = m_BillInterface.GetFieldValue("FItemID ", i, Enu_ValueType_FFND) '物料名稱 fbaseproperty dctData("page2")(i)(oTableinfo("map")("fbaseproperty")("FFLD") = m_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)(oTableinfo("map")("fbaseproperty")("FFND") = m_BillInterface.GetFieldValue("fbaseproperty", i, Enu_ValueType_FFND) '計量單位 FUnitID dctData("Page2")(i)(oTableinfo("map")(" FUnitID ")("FFLD") = m_BillInterface.GetFieldValue("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 ")("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 = CreateObject("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、 在插件中以新增、修改和查看方式打開另一單據(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")oDataSrv.ClassTypeID = lClassTypeID Set oBill = CreateObject("K3SingleClassBill.ClassInfoManager")With oBill .DataSrv = oDataSrv .ISNetControl = True .ISCheckRight = True .Show '* 'Show 參數(shù)類型 '第一個參數(shù) Optional ByVal lID As Long = 0 ;描述修改或查看的單據(jù)ID '第二個參數(shù) Optional ByVal bShowGroup As Boolean = False ;如是基礎(chǔ)資料時,是否顯示分組 '第三個參數(shù) Optional ByVal BillStatus As Long = Enu_BillStatus_New ;顯示方式 0查看;1新增;2修改 '第四個參數(shù) Optional ByVal dctData As KFO.Dictionary '單據(jù)初始值 '* End With Set oDataSrv = Nothing Set oBill = Nothing Exit Suberr_ctr:Set oDataSrv = Nothing Set oBill = NothingEnd Sub5、 顯示BOS序時簿并返回選中的值'* '功能:顯示BOS序時簿并返回選中的值'參數(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("K3ClassTpl.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 = 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)("FID")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 Error 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")(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")("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)(oTableInfo("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, oData, 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 vctClassTypeEntry 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)系模板,無選單為Nothing'/* dctTableInfo KFO.Dictionary 單據(jù)字段模板信息'/* sDsn String K/3標(biāo)準(zhǔn)數(shù)據(jù)庫連接串'/* vctClassTypeEntry KFO.Vector 單據(jù)體模板信息'/*備注:'/*/2、使用此方法時插件要添加MMTS。8、 如何在插件中獲取當(dāng)前系統(tǒng)字符連接串?一、連接串獲取方式:(注意不支持調(diào)試,調(diào)試的話可以用實(shí)際連接串代替)Private Declare Function GetCurrentProcessId Lib "kernel32" Alias "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的源代碼。

注意事項(xiàng)

本文(金蝶K3 BOS插件開發(fā)常見技巧)為本站會員(沈***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(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),我們立即給予刪除!