K3wise老單二次開發(fā)方法0001_第1頁
K3wise老單二次開發(fā)方法0001_第2頁
K3wise老單二次開發(fā)方法0001_第3頁
K3wise老單二次開發(fā)方法0001_第4頁
K3wise老單二次開發(fā)方法0001_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、K/3 Wise插件開發(fā)和配置 919 7發(fā)表于2016-12-20 10:57:17 BOS開發(fā) 復(fù)制鏈接 只看樓主 查看全部開發(fā)環(huán)境:K/3 Wise 13.0、K/3 Bos 開發(fā)平臺、 Visual Basic 6.0目錄一、二次開發(fā)插件編程二、代碼演示三、配置插件四、測試插件五、插件事件附錄一、二次開發(fā)插件編程打開 Visual Basic 6.0,新建工程 ActiveX DLL:命名為 FirstPlugin.class:位更j臼弱工程1。程11國-臼類塊-43 FirstFlugin (FirEtPluginJZF ixs-tPliiigi nt|FirstT2wiii Cla

2、ssMcdulFirstPlugi n 0 i vKNong 0 vbNon*按字母序報分類序j咯布)1 at aB i di Jig hivi ?r Dat&S4urcaBtihavi orInst Aitei ng5 - MultiUstMTST r 皿氏 acti ojhNodeU = No tAnMTSObj ect引用類庫如下:_sJ優(yōu)先皴引用 BOSPlnjgXi3.5iVi GoilR,lEii. vibp可用的引用;Vi. 虹 B a51 c F or Appl i cat i ons IYiEual Basic ruiitima objectE and procedure:

3、I VueusI B c cL i e cILe and proc edur e eOLE Automti on3I3C1 assE vent sKingd fdundati on Obj sets 1.0MBillTr 時式眶 矍:必立1_.蟲2上1交&X口里 里.。加通3._2,.&工讓,上到,*.IAS Helper COM 口叩的電 nt 1.0 Typt Li hr aryIAS RADIUS Protocol 10 Typ( Library K3B0S Fact14skAccQ-uxilLi LAcctTalVi ewLib皿miirt i vf IS TTR R;rtartG-M

4、icrcsaft ActiveX Dt& Objects Z. 8 Library定位: C: Frop-am Fili&sCoiTimenu Eiloxlwy互t-nAado.宜adk)15. dll膏言:缽窿已安裝K/3 Wise ,在VB 6.0菜單欄上會多出一個金蝶開發(fā)插件:查詢 圖聲Q)工具如 外接程序地)智口比)黏助第 金蟒燈3-E0S霸甯打得於房鬲行L列1鼠函數(shù)說明工具電),Adi開發(fā)向?qū)).,J插件開發(fā)向?qū) at ion開發(fā)文措也).打開金蝶開發(fā)向?qū)В瑒?chuàng)建工業(yè)單據(jù)客戶端插件(工業(yè)單據(jù)俗稱“老單”):IS金娛V3-B0S裝件開位向?qū)g迎使用金蝶K/3T0E插件開發(fā)向?qū)|蝶打并

5、加插件產(chǎn)生向?qū)У脦椭不?建一”板龍的幺蝶R/3-E0S抽伴.目 導(dǎo)支持胡俎適用于全我WT能VII 口及真以上版本的插伴.請逸播一種您想創(chuàng)建的金蝶K/3-E0S騎伴:r金蟆W-BOS客戶端插件金膜V3-B0S中河屋善伸 r金蝶K13 BOS技顯眼多值金醒V3工業(yè)單據(jù)客尸端插件 廣金叫V3工業(yè)單據(jù)中闊層棲伴請點擊“下一步”繼柒.點擊確定,選擇類 FirstPlugin ”,金蝶 V3-BQ5播件開發(fā)向?qū)е付ㄒ粋€全局的對要請選擇一個類,或者輸入一W的關(guān)名稱“類女件名;rirstFln向?qū)мo要您提供一個全局的對象。請選擇一個類,翡著箭入一個新的類名稱,向?qū)⑹褂眠@個黑 作為全局對募口語電擊“不一步健

6、續(xù).取消 F步理)| 浣點擊“下一步”,這里我們自定義一個菜單項“插件工具”:點擊下一步,選擇事件 UserMenuClick摩金蝶V3-BOS插件開裳向?qū)нx擇事件-I單需請選搖您希翅在插件中處理的單據(jù)插件辛件.LeveCellUserMenuClick事件BilllnitializsBi llTtrin inttI I H aiCh,皿辛 口 Gr i dJChanI I 片士 for(jr i dLcotlTp上“而門dU?Mp l-l Btor)LdLQckirp EjLdJCetdLookVp 11 Be fareSave EndS anPublic Event UserManuCli

7、ckCBvVI Index A Long, ByVsl Cdptlon As String)當點擊用尸自定義的菜單時謝發(fā)這個事件.Ind且x:表示第幾個菜單一由添加萊里的先后順序決定, C日ption:菜單項的赫題,國響褥加自定義菜單請參見? iAddUserMenuIte rn請點擊“下一步M費等.Lo&dillEikd用渭也)| 上一步|下一步小)“ 先亞;完成向?qū)?。、代碼演示代碼編寫如下:配置路徑:供應(yīng)鏈-外購入庫單函數(shù)功能:插件工具-根據(jù)“長、寬、厚”自動計算批號定義 插件對象接口 .必須具有的聲明,以此來獲得事件 Private WithEvents m_BillTransfer A

8、sK3BillTransfer.BillDim F55 As Long, F55Text As String 長 Dim F56 As Long,F56Text As String 寬 Dim F57 As Long, F57Text As String 高 Dim FDate AsLong, FDateText As String 日期 Dim FBatchNo As String 批號 Dim FItemID As Long, FNumber As String 物料編碼 Dim FBatchManager As Boolean 是否采用業(yè)務(wù)批號管理 Dim str As StringPu

9、blic Sub Show(ByVal oBillTransfer As Object)接口實現(xiàn)注意:此方法必須存在,請勿修改 Set m_BillTransfer = oBillTransfer EndSubPrivate Sub Class_Terminate(),釋放接口對象 注意:此方法必須存在,請勿修改 Set m_BillTransfer = NothingEnd SubPrivate Subm_BillTransfer_BillInitialize()I*開始設(shè)置菜單*m_BillTransfer.AddUserMenuItem自動批號”,插件工具*結(jié)束設(shè)置菜單*TODO:請在此

10、處添加代碼響應(yīng)事件 BillInitialize F55 = GetCtlIndexByFld(FEntrySelfA0155,True) F56 = GetCtlIndexByFld(FEntrySelfA0156”, True) F57 =GetCtlIndexByFld(FEntrySelfA0157”, True) FBatchNo =GetCtlIndexByFld(FBatchNo, True) FDate = GetCtlIndexByFld(FDate,False) FItemID = GetCtlIndexByFld(FItemID, True)End SubPrivate

11、Sub m_BillTransfer_UserMenuClick(ByVal Index As Long, ByValCaption As String) TODO:請在此處添加代碼響應(yīng)事件UserMenuClick SelectCase Caption Case 自動批號此處添加處理 批號生成 菜單對象的Click事件 With m_BillTransferFor i = 1 To1000If .GetGridText(i, FItemID) = ThenExitForEnd If 從物料表檢測 是否采用業(yè)務(wù)批次管理DimstrSQL As String 用于執(zhí)行 SQLDim rs AsA

12、DODB.RecordsetFNumber = FNumber = .GetGridText(i,FItemID)strSQL = strSQL = SELECT FBatchManagerFROM t_ICItem WHERE FNumber= & FNumber & Set rs =SQLHelper.ExecuteSQL(strSQL, )If rs.EOF = FalseThenFBatchManager = rs.Fields(FBatchManager)EndIfSet rs = NothingF55Text = .GetGridText(i,F55)F56Text = .GetG

13、ridText(i, F56)F57Text二.GetGridText(i, F57)If F55Text = Then F55Text = 0IfF56Text = Then F56Text = 0If F57Text = Then F57Text =0FDateText = Replace(.GetHeadText(FDate), -, )If(FBatchManager = True) Then.SetGridText i, FBatchNo, F55Text & -& F56Text & - & F57Text & - & FDateTextEndIfNext End With Cas

14、e Else End SelectEndSubl*l獲取分錄行數(shù)I*Public FunctionGetEntryMax() As LongDim k As LongDim iFItemID As LongDim oEntryCtl AsVariantDim maxrow As Long 最大行For k = LBound(m_BillTransfer.EntryCtl) ToUBound(m_BillTransfer.EntryCtl) IfUCase(m_BillTransfer.EntryCtl(k).FieldName) = UCase(FItemID) Then 物料代碼獲取表體所在

15、歹 UiFItemID = k Exit For End IfNext koEntryCtl = m_BillTransfer.EntryCtlmaxrow = UBound(oEntryCtl(iFItemID).DInterID)最大行 GetEntryMax = maxrowEndFunction*返回單據(jù)字段順序(isEntry True是表體)I*Public FunctionGetCtlIndexByFld(ByVal fldName As String, Optional ByVal isEntry As Boolean = False) As LongDim ctlIdx As

16、 LongDim i As IntegerDim isFind As BooleanDim vValue As VariantfldName = UCase(fldName)isFind = FalseWith m_BillTransferIf isEntry Then For i = LBound(.EntryCtl) To UBound(.EntryCtl) If UCase(.EntryCtl(i).FieldName) = fldName Then ctlIdx=.EntryCtl(i).FCtlOrder isFind = True Exit For End If Next iEls

17、e For i = LBound(.HeadCtl) To UBound(.HeadCtl) If UCase(.HeadCtl(i).FieldName)= fldName Then ctlIdx = .HeadCtl(i).FCtlIndex isFind = True Exit For End If Next iEnd IfEnd WithIf isFind = True ThenGetCtlIndexByFld = ctlIdxElseGetCtlIndexByFld = 0End IfEnd Functionurl=/url三、配置插件在 Visual Basic 6.0 生成 DL

18、L :式生I窗雷|機文件(E)編造 視圖9 ZSCE)格式Q) if 新建工程但)Ctrl+N方 打開工程)一,Ctrl+0士添加工程5一移除工程、扇保存工程在)1t工程另存為()._ 保存也門1門口|加 門二母)Clrl+EFirst Plugin. els 另存為隨工.一苗保存選擇r保有更改的腳本第爭打印一.Ctrl+FW打印設(shè)置)_ 生成FTfwtFluqim dll 展).C 頡工海0 1啟動K/3 Wise BOS開發(fā)平臺,打開外購入庫單,并進行插件配置:七金蝶K/3 BOS -外麴入庫單文件化)工程g 編輯星查看 格式皿 運行 部署)窗口 潞m平臺 幫助增加單據(jù)頭字&F2增加分錄列

19、用刪腺分錄列SLifmlete! r - r r .-r4*-F d 界 14 I*:;夕 I-次勺犬庫單調(diào)整編錄列位置防該定位置行 r 序時德設(shè)置Shift+M插件配置管理掃描錄單界畫調(diào)整付款日期.-_111;1 一.占麗J-.摘要:.一*T-a r P - r r. - r - T r r -lir - t - l-.,-,r t - rr rr , h 1, r19nrt,mrT.成單類型::.:怫黛4-, 行碧時度代碼劉應(yīng)芻稱物料編鵑期第g粉雙櫻刪除單據(jù)文字段點擊“插件配置管理”,配置客戶端插件:油件管理數(shù)據(jù)庫分組管理單據(jù)裱引用判鼾存儲過程:注意.蛆件名字總長度不能超過同1類型的各組件

20、名字之間以分號.分隔開!點擊“瀏覽”,找到插件并勾選:注意lEBTXMQuervPluff. clsOuervPluE Bill;K3TKMPriIltPl. clsPriatPluff Bi窸輛i取il基做單據(jù)I單狒I -1-1 J數(shù)語層客尸端單據(jù)事件處理蛆件名:里提1中間息單據(jù)1確定 |點擊“確定”,并保存外購入庫單。 四、測試插件啟動 K/3 Wise,打開“供應(yīng)鏈-倉存管理-外購入庫單-新增”:冏外購入庫單一新增-111000085文件如 編輯如 查看現(xiàn))選項國電0 c 普多新增復(fù)制保存仃年 條碼打E插件工具幫助但)J 丁泗范! 丸茅自動批號3+犯除添加外購入庫單采購方式:11. JL

21、日購2014-06-11摘要;供應(yīng)商:行號物料編碼物料名稱現(xiàn)格型號輔助崖性*批號單位*厘收數(shù)量實收數(shù)量1Z345&四單類型:收料通知,請檢單選m號:至此,插件開發(fā)和配置完成!五、插件配置后未生效1.在插件配置管理提示“沒有找到文件,或文件沒有正確注冊”解決方法:插件 dll名稱命名要和工程名稱一致。比如工程名稱“ aaaa ”,其中有一個類“ bbb ,dll命名為“ aaa ”,配置插件后,顯示完整名稱 aaa.bbb ,提示aaaa 沒有找到文件,或 文件沒有正確注冊”。修改dll名稱“ aaa ”為“ aaaa ”,重新配置插件,即可修復(fù)問題。六、插件事件附錄附上K/3 Wise工業(yè)單據(jù)

22、開發(fā)事件說明:序 號事件函數(shù)描述1BillTerminatePublic Event BillTerminate()單據(jù)卸載完成時激 發(fā)該事件2UserMenuClickPublic EventUserMenuClick(ByVal Index As Long, ByVal Caption As String)當點擊用戶自定義 的菜單時激發(fā)這個 事件。參數(shù):Index:表小第幾個 菜單、由添加菜單 的先后順序決定, Caption:菜單項的 標題3LeveCellPublic Event LeveCell(ByVal Col As Long, ByVal Row As Long, ByVal

23、NewCol As Long, ByVal NewRow As Long, Cancel As Boolean)當離開分錄的一個 單元格的時候激發(fā) 這個事件參數(shù):Col分錄的要離開 列Row分錄的要離開行NewCol新的列NewRow 新的行 Cancel是否取消4HeadChangePublic EventHeadChange(ByVal CtlIndex As Long, ByVal Value As Variant,當表頭的一個項目 改變時激發(fā)這個事 件ByVal bNewBill As Boolean, Cancel As Boolean)參數(shù):ctlIndex 表頭字段 索引Valu

24、e當前值 bNewBill 是否是 新增單據(jù)Cancel是否取消5GridChangePublic Event GridChange(ByVal Col As Long, ByVal Row As Long, ByVal Value As Variant, ByVal bNewBill As Boolean, Cancel As Boolean)當表體的一個項目 改變時激發(fā)這個事 件參數(shù):Col分錄的當前列 Row分錄的當前 行Value當前值 bNewBill 是否是新增單據(jù)Cancel是否取消6BeforGridLookUpPublic EventBeforGridLookUp(ByVal

25、 Row As Long, ByVal Col As Long, ByVal nLookUpClsID As Long, Cancel As Boolean)在分錄執(zhí)行查找功 能之前激發(fā)這個事 件參數(shù):Col分錄的當前列 Row分錄的當前 行nLookUpClsID 當 前查詢的資料類 型,Cancel是否取消7EndGridLookUpPublic EventEndGridLookUp(ByVal Row As Long, ByVal Col As Long, ByVal nLookUpClsID As Long)在分錄完成查找功 能之后激發(fā)這個事 件參數(shù):Col分錄的當前列 Row分錄的當

26、前 行nLookUpClsID 當前查詢的資料類型8BeforHeadLookUpPublic Event BeforHeadLookUp(ByVal CtlIndex As Long, ByVal nLookUpClsID As Long, Cancel As Boolean)在表頭的一個項目執(zhí)行查找功能之前激發(fā)這個事件參數(shù):ctlIndex表頭字段索引nLookUpClsID 當前查詢的資料類型Cancel是否取消9EndHeadLookUpPublic EventEndHeadLookUp(ByVal CtlIndex As Long, ByVal nLookUpClsID As Lon

27、g)在表頭的一個項目 完成查找功能之后 激發(fā)這個事件, 參數(shù):ctlIndex表頭字段索引nLookUpClsID 當 前查詢的資料類型10BeforeSavePublic Event BeforeSave(ByVal bNew As Boolean, ByRef ReturnCode As Long)在單據(jù)執(zhí)行保存功 能的時候激發(fā)這個 事件參數(shù):bNew表小是否是 新增單據(jù)ReturnCode 返回 參數(shù)-1:失敗,結(jié) 束單據(jù)保存; 0:成功,繼續(xù)單 據(jù)保存1 :成功返回,結(jié) 束單據(jù)保存11EndSavePublic Event EndSave(ByValBillNo As String)在

28、單據(jù)執(zhí)行完成保 存功能的時候激發(fā) 這個事件參數(shù):BillNo表示單據(jù)的編R12LoadBillEndPublic Event LoadBillEnd(ByValShowType As Long)在單據(jù)裝載完成的 時候激發(fā)這個事件 參數(shù):ShowType 單據(jù)顯小狀態(tài)0 .新增1.修改2.查有3.審 核13NewBillEndPublic Event NewBillEnd()在單據(jù)新增完成的 時候激發(fā)這個事件14SetMenuBarCtlPropEndPublic EventSetMenuBarCtlPropEnd(ByVal ShowType As Long, ByVal BillChecke

29、d As Boolean)在單據(jù)設(shè)置菜單、 工具條各屬性完成 的時候激發(fā)這個事 件參數(shù):ShowType 單據(jù)顯小狀態(tài)0 .新增1.修改2.查有3.審 核BillChecked 單據(jù) 是否已被審核15BeforeFillBillDataPublic EventBeforeFillBillData(ByValBillTransType As Long, ByValBillInterID As Long)在裝載某張單據(jù)之 前激發(fā)這個事件 參數(shù):BillTransType 單 據(jù)事務(wù)類型BillInterID 單據(jù)內(nèi) 碼16EndBillFormActivePublic EventEndBillFormActive。在顯示單據(jù)之后激發(fā)這個事件17GridFormatPublic Event GridFormat(ByValDest As Long, ByVal Col As Long, ByVal Row As Long)在設(shè)置單據(jù)體格式 后激發(fā)這個事件 參數(shù):DestCol要設(shè)置格式的 目標列Row要設(shè)置格式 的目標行18RefreshControlPublic Event RefreshControl()Public EventRefreshControl()19BeforeEntrySplitPublic

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論