金蝶 k3 BOS開發百問百答_第1頁
金蝶 k3 BOS開發百問百答_第2頁
金蝶 k3 BOS開發百問百答_第3頁
金蝶 k3 BOS開發百問百答_第4頁
金蝶 k3 BOS開發百問百答_第5頁
已閱讀5頁,還剩71頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本文格式為Word版,下載可任意編輯——金蝶k3BOS開發百問百答金蝶k3BOS開發百問百答

一、基礎資料篇

單據自定義無法看到bos定義的基礎資料

在調出基礎資料序時簿時,過濾出需要的基礎資料插件實現過濾從過去時間到現在的所有基礎資料查找某個物料在某個倉庫中的數量和精度插件中K3Lib.GetStockQty函數的使用

二、業務單據篇

K3BOS單據(新)中的數量字段怎樣才能控制到兩個小數單據上顯示各級審核人和審核日期

多層的BOS單據,能否將人員權限按層劃分自動啟動審核和自動選單

只能刪除和修改本人制作的單據。獲取Bos單據單據體已錄信息的條數

插件中獲取單據上控件的位置、尺寸信息關聯自定義核算項目

是否允許插件自定義查詢條件填充分錄行

在Bos單據按F7查詢供應商信息,按F9查詢購買價格管理信息。如何可以取到單據編號的組件

是否可以直接在數據庫表中直接修改Bos單據中的字段類型鎖定單據字段

刪除符合條件的單據動態過濾基礎資料單據保存出錯

標準序時簿過濾條件對話框(和K3老單據一樣)如何再次添加新插件

單據分錄數達到3000條,單據保存會不會出錯文本字段錄入完畢回車不跳轉不能實現記錄選擇。如何刪除空行。數量精度和單價精度計算公式如何定義批次過濾

應收應付系統合同是否能超額執行

基礎資料錄入代碼時不馬上顯示相關的列表在插件中以新增、修改和查看方式開啟另一單據顯示BOS序時簿并返回選中的值

將當前單據轉化為另一單據,并無界面保存數據隱蔽選單時序時簿不需的菜單和工具欄

在單據體中讓下一條分錄自動攜帶上一條分錄的數據

在Bos插件中如何處理隱身的二次登錄如何在插件中獲取當前系統字符連接串BOS單據插件里取分錄的合計值

帶有輔助屬性的字段的值更新事件中調用輔助屬性,計算公式運行有誤事務處理

基本單位數量在錄入完數量后依舊為空10.1單據插件中如何向單據體逐行插入數據BOS單據選單返回時自動在表體添加一行分錄只有工具條及菜單欄的瀏覽數據窗口K3Bos表體如何設置合計

收款單的套打設置里面怎么取到通過Bos自定義的字段如何隱蔽Bos單據中的層如何調用打印功能

BOS單據如何控制表體行數

如何在Bos單據中引用自定義核算項目

關于核算項目字段[相關屬性]為核算項目類型的值更新攜帶變通處理方案如何調用BOS單據序事簿的刷新事件

關于因網絡控制導致BOS單據無法并發運行的問題的解決方法關于插件取值報類型不匹配的答復31如何實現在Bos單據中物料多項選擇31如何實現在Bos單據中物料多項選擇32

如何在Bos單據的工具欄上顯示“復制〞按鈕32bos分錄值合計33

BOS單據物料字段信息沒顯示全33BOS顏色控制33

從BOS如何能調用VB控件(MSCOMM)34

序時簿工具欄新增一個按鈕,如何編寫插件實現審核后對單據修改功能34銷售訂單下推生成BOS單據,無法制定流程35BOS序事簿插件調用數據庫35客戶端單據打不開36

BOS老單據,新增核算項目,增加自定義字段相關屬性為部門,在BOSIDE中值更新事件中無法更新指定部門=自定義核算項目.部門36

關于如何在銷售發票業務審核后仍能修改摘要字段的做法調撥單中的調撥類型無法單據中顯示

序時簿查件分錄中,如何通過插件取其中一個時間字段。新單中如何寫刪行的函數

如何自定義金額字段的“小數位長度〞

新單增加的單據如何攜帶到老單據(典型問題)新單據如何從Excel批量引入單元格數據

新增bos單據怎么會無法保存.提醒拒絕的權限.

設定的實數數量精度在參與值更新事件計算時沒有精度控制大文本字段怎么就能錄入這么幾個字符,有什么方案沒有?BOS單據自定義后新增或查詢反映太慢生產領料單單據體上無法自定義成本對象代碼

(工業老單據)生產任務單批量維護中參與BOS開發字段如何在修改單據的時候把制單人刷新為修改人?繁雜的計算Action應當如何處理?

為什在中文輸入的時候會出現清除已輸入內容,并跳出當前輸入框的問題?通過修改元數據實現動態過濾基礎資料

10.4版本以前手動刪除已發布到主控臺的功能

如何刪除發布到主控臺的功能以不存在的單據或者報表如何設置單據體字段的字體顏色和背風景

在查看模式下,怎樣修改某個字段(譬如銷售普通發票-摘要修改)的值并保存V10.3版本實現“審核人和制單人不可為同一人〞如何在插件中調用BOS基礎資料的F7功能如何在插件中調用BOS基礎資料的F7功能如何單據插件中實現基礎資料F7動態過濾

如何在插件中響應BOS控件KDInputTool的事件三、多級審核篇批量審核。

設置為一級審核的Bos單據反審核后不能修改。

能否使administrator對任何人審核的BOS單據進行反審核。實現多級審批同時需要更改審批的數量與單價。BOS字段多級審核后可以修改。有關多級審核的問題。中間層的多級審核事件。BOS審核權限

不同級次駁回功能存在問題,審核流程不流暢

在開啟單據的狀況下點擊審核菜單,顯示XX單據審核成功,但單據并未馬上切換到字段鎖定狀態,即此時單據內容(如分錄中的各項信息等)均可修改,關閉單據后再次開啟,正常。反審核也如此。59

四、單據轉換流程篇

新單推老單不能實現鉤稽功能新單推老單不能實現鉤稽功能

未審核的老單據不能下推Bos單據未審核的老單據不能下推Bos單據

自定義的bos單據無法下推生成銷售費用發票無物料編碼時,下推報錯下標越界

下推發貨通知單的時候,所有自定義字段中的文本字段在發貨通知單都變成了010.2sp1鉤稽后設過濾條件不起作用關聯復制

老單下推新單過濾條件的設定

在老單據中選取新單如何選取多張單據

BOS單據下推到外購入庫單時無法選擇紅字單據

如何用BOS單據體字段推成目的單據(老單)的單據頭字段如何使Bos單據表體的字段對應到老單的表頭上的字段

單價和金額攜帶不過來

Bos單據如何同時選擇兩張老工業單據

新單下老單,假使是鉤稽關系,怎么判斷新單是否已關閉

BOS新單據到老供應鏈單據的轉換流程,在新單據上可以關閉嗎

付款單項選擇單關聯其他應付單時無法攜帶其他應付單上的自定義核算項目信息單據體的每條分錄如何可以對應多個源單類型

新老單據在流程轉換的時候為什么出現提醒“請設置關聯原單內碼保存〞?單據下推怎么會出現“數據溢出〞的問題

老單(退料通知單)下推生成BOS自定義意據時,無法實現勾稽關系!

老單(工序計劃單)與BOS開發新單據建立關聯關系(鉤稽,關聯復制)后錯誤

通過BOS單據做關聯,由開發的BOS單據(其他費用單)關聯生產其他費用單,提醒:付款計劃的金額等于單據金額。即和現有的K/3系統單據業務相沖突的解決方法13銷售訂單下推到生產任務單,可否一次選擇多條分錄生成多張生產任務單五、套打篇

如何進行BOS單據打印次數控制

應收應付銷售發票如何攜帶出地址,其他系統的信息可以類似處理BOS單據套打設置問題的重復設置問題15如何進行BOS單據打印次數控制16

應收應付銷售發票如何攜帶出地址,其他系統的信息可以類似處理16BOS單據套打設置問題的重復設置問題17六、報表篇17交織分析報表17直接SQL報表18

關于直接SQL報表的支持長日期的變通解決方案18

為什么bos中發布交織分析報表與二次開發的報表的小數點設置不起作用?18報表分析平臺中,自己做的報表如何發布K3中開啟,或者有無此項功能?19七、部署發布篇20

發布功能的名稱如何更改20編碼規則丟失20

怎樣將舊單改造數據結構的動作打包到Bos安裝包中20中間層上發布插件后,客戶端的插件dll文件沒有被更新21發布的BOS單據如何刪除21

關于BOS發布的單據和報表刪除工具的問題22Bos單據發布后主控臺沒有顯示23BOS部署客戶端智能升級失敗23

打包應用程序是否有類似的InstallShield的腳本參考24如何將應收應付BOS單據修改的內容打包成安裝程序24BOS生成的部署文件需要部署到所有的客戶端25如何獲取軟件特征碼25

布署安裝包時提醒BuildFile無效過程錯誤或未找到路徑錯誤25八、其他27

關于BOS的加密問題

在使用citrix客戶端時,調用出BOS過濾界面后,選擇下拉列表后出錯27關于Bos已過期問題的處理2

中間層插件

BOS插件調用工資系統匯總表28

bos插件中假使發生任何錯誤,在k3界面中不會出現任何提醒29以Administrator主控臺設置刷新其他用戶主控臺設置29系統幫助文件的掛靠圖紙管理外貿報價單

如何在單據中做一個可以選擇,又可以隨意錄入的字段31如何將BOS單據的稅率攜帶到下游老單據31

客戶的車間管理的單據與我們K310.2的差異很大,可否用Bos開發32修改應收應付模板

客戶在正式上線使用時,需如何購買站點數33在K/3BOS中能否打印一張繁雜的單據33恢復K/3BOS插件開發向導菜單按鈕34438:對象不支持屬性或方法34

主控臺中,Bos單據可以查詢,但不能新增35Bos自動關閉

BOS在主控臺組件中所屬的系統標36

在插件中如何得到序事簿界面上所有數據36

客戶端無法開啟BOS設計平臺開發的業務單據36SQL自動中止37

防火墻可能會對K/3的接口造成中斷的影響37如何在插件中獲取某個單元格的鎖定狀態38

beforesendmessage事件在什么狀態下觸發的?38

工業單據(老單據)的客戶端插件為何無法起作用?39工業單據(老單據)的中間層插件為何無法起作用?39如何為工業單據(老單據)的開發插件?41

百問回復:

一、基礎資料篇:單據自定義無法看到bos定義的基礎資料:K3v10.2SP2

問題描述:在單據自定義中增加自定義字段時,需要選擇用bos定義的基礎資料,如何設置。單據自定義的高級頁簽上選擇基礎資料下拉框中無法看到bos定義的基礎資料;跟蹤Sql,在ICChatBillTitle中有自定義字段屬性的相關

設置,如FTableName、FLookUpClassID等字段。把記錄改成BOS基礎資料對應的信息,但是無法生效。解決方法:在10.2里工業單據自定義工具不能使用BOS單據的基礎資料,建議使用核算項目來定義

基礎資料,即可在工業單據中使用,也可在BOS單據中使用。

DimobjAsObject

Setobj=CreateObject(\Withobj

.CallByBill=True

.SelICItemID='當前物料行內碼.CategoryBySupply=false.SelSupID='供應商內碼.PriceType=1.Show1EndWith

Setobj=Nothing

:如何可以取到單據編號的組件:K3v10.2SP2客戶化開發技術資料——K/3BOS開發百問百答

問題描述:導入一張組裝單,組裝單是一張BOS單據。得到單據編號的組件是怎樣的?接口是什么?

解決方法:Setobj=CreateObject(\

GetThisBillNo=obj.GetBillNo(sDsn,ClassID,sKey,bGetDeleteNo,bSave)接口描述:

'/*描述:得到一種業務類型的編號'/*參數:

'/*@bGetDeleteNo是否獲取空號,這種單據設置了刪除的空號被保存才有效,已經無效,只是保持兼容調用接口

'/*@bSave是否需要修改新的最大單據號'/*@ClassID類型'/*@sDsn連接串信息

'/*@sKey需要處理的關鍵字。

:是否可以直接在數據庫表中直接修改Bos單據中的字段類型:K3v10.2SP1None~已審核;isnull(@Field,0)>0~未審核;isnull(@Field,0)0,通過判斷Fchecker字段的值是否大于0,來判斷其是否審核;

未審核:對應得isnull(@Field,0)ExitFunctionerr_ctr:

SetoDataSrv=NothingSetobjLookup=NothingEndFunction

:將當前單據轉化為另一單據,并無界面保存數據:K/3BOS所有版本

問題描述:將當前單據轉化為另一單據,并無界面保存數據。解決方法:'********************************************'功能:將當前單據轉化為另一單據,并無界面保存數據'參數:lClassTypeID—顯示BOS單據的ID

'********************************************PrivateSubNoUISaveBill(ByVallClassTypeIDAsLong)DimoDataSrvAsObjectDimoTableInfoAsObjectDimoBillAsObjectDimoDataAsObject

DimoSrvAsObject客戶化開發技術資料——K/3BOS開發百問百答

DimoPage2AsObjectDimiAsLong

OnErrorGoToerr_ctrSetoDataSrv=

m_BillInterface.K3Lib.CreateK3Object(\oDataSrv.ClassTypeID=lClassTypeIDSetoTableInfo=oDataSrv.TableInfoSetoData=oDataSrv.GetEmptyBill

Fori=1Tom_BillInterface.Data(\SetoPage2=oData(\

oData(\'添加到dcData

oData(\更改分錄號Next

Fori=1Tom_BillInterface.Data(\

oData(\m_BillInterface.GetFieldValue(\oData(\m_BillInterface.GetFieldValue(\oData(\m_BillInterface.GetFieldValue(\Next

SetoSrv=CreateObject(\i=oSrv.Save(MMTS.PropsString,oDataSrv.ClassType,

oDataSrv.ClassTypeEntry,oDataSrv.TableInfo,oData,oDataSrv.dctLink)SetoDataSrv=NothingSetoBill=NothingExitSuberr_ctr:

MsgBoxErr.DescriptionSetoDataSrv=NothingSetoBill=NothingEndSub

1、K/3BOS保存方法Save的參數描述:'PublicFunctionSave(ByValsDsnAsString,_

'ByValdctClassTypeAsKFO.Dictionary,_'ByValvctClassTypeEntryAsKFO.Vector,_'ByValdctTableinfoAsKFO.Dictionary,_'ByRefdctDataAsKFO.Dictionary,_

'ByValdctLinksAsKFO.Dictionary)AsLong

'/********************************************************************/'/*描述:單據保存'/*參數:

'/*@dctClassTypeKFO.Dictionary單據整體信息模板客戶化開發技術資料——K/3BOS開發百問百答

'/*@dctDataKFO.Dictionary單據數據包

'/*@dctLinkKFO.Dictionary選單關系模板,無選單為Nothing'/*@dctTableInfoKFO.Dictionary單據字段模板信息'/*@sDsnStringK/3標準數據庫連接串

'/*@vctClassTypeEntryKFO.Vector單據體模板信息'/*備注:

'/********************************************************************/2、使用此方法時插件要添加MMTS。

:隱蔽選單時序時簿不需的菜單和工具欄:K/3BOS所有版本

問題描述:隱蔽選單時序時簿不需的菜單和工具欄

解決方法:在MenuBarInitialize事件中使用m_ListInterface.List.ShowMode判斷(查看和選單)

1—查看;2—選單。

語法:Ifm_ListInterface.List.ShowMode=1Then??end.例:在選單時隱蔽“編輯〞菜單和工具欄Ifm_ListInterface.List.ShowMode=2ThenDimoToolAsK/3ClassEvents.BOSTool

DimoBandAsK/3ClassEvents.BOSBand

'***************開始設置BOS原有菜單***************'獲得mnuEdit菜單對象,并設置屬性SetoBand=oMenuBar.BOSBands(\SetoTool=oBand.BOSTools(\WithoTool

.Visible=False.Enabled=FalseEndWithEndif

:在單據體中讓下一條分錄自動攜帶上一條分錄的數據:K/3BOS所有版本

問題描述:如何在單據體中讓下一條分錄自動攜帶上一條分錄的數據(只是部分字段)客戶化開發技術資料——K/3BOS開發百問百答

解決方法:例如代碼:

'物料錄入后,其次行的值自動默認第一行的值Ifdct(\m_BillInterface.SetFieldValue\

m_BillInterface.GetFieldValue(\row'提貨地點endif

大力水手2023-08-0121:37:32.0

:在Bos插件中如何處理隱身的二次登錄:K3v10.2SP1

問題描述:在自定義的BOS單據上,通過插件作生成憑證的功能,但是在調用憑證的組件時,需要一個二次登錄后才能使用相應的模塊。如何處理隱身的二次登錄,或者其他的變通處理。

解決方法:1、憑證組件的調用是不需要二次登錄的,可能你是在VB調試狀態下運行,編譯后就沒事了。

2、請參考下面代碼

PrivateSubm_BillInterface_MenuBarClick(ByValBOSToolAsK3ClassEvents.BOSTool,CancelAsBoolean)

DimglvchAsObject'中間層憑證對象DimmvchAsKFO.Dictionary'待保存憑證頭DimmvchentryAsKFO.Vector'待保存憑證分錄集DimentryAsKFO.Dictionary'待保存憑證分錄DimmvchdetailAsKFO.Vector'核算項目明細集DimdetailAsKFO.Dictionary'核算項目明細Dimi,iCountAsLong

DimvValueAsVariant

'TODO:請在此處添加代碼響應事件MenuBarClickSelectCaseBOSTool.ToolNameCase\生成憑證\

vValue=m_BillInterface.GetFieldValue(\

IfNot(CStr(vValue)=\

MsgBox\當前合同已經生成憑證!\金蝶提醒\ExitSubEndIf

'此處添加處理生成憑證菜單對象的Click事件Setmvch=NewKFO.Dictionary

mvch(\客戶化開發技術資料——K/3BOS開發百問百答

mvch(\金華泰項目\

mvch(\Setmvchentry=NewKFO.Vector

vValue=m_BillInterface.GetFieldValue(\'合同金額

'創立憑證分錄

Setentry=NewKFO.Dictionary

entry(\entry(\entry(\

entry(\'數量

InitialCatalog=xt_3};UserName=administrator;UserID=16394;DBMSName=MicrosoftSQLServer;DBMS

Version=2000;SubID=GL;AcctType=gy;Setuptype=Industry;Language=chs;

IP=2;MachineName=JAMES;UUID=800A878D-F574-4877-B79C-D88AB721ECA0\

Setglvch=CreateObject(\oucher.VoucherUpdate\

glvch.Creates,mvchs=\fUser1=\

&m_BillInterface.K3Lib.User.UserID&\m_BillInterface.GetFieldValue(\

m_BillInterface.K3Lib.UpdateDatasm_BillInterface.RefreshBill

MsgBox\憑證生成成功!\金蝶提醒\

Case\變更\EndSelectEndSub

:文本字段錄入完畢回車不跳轉:K3v10.2SP1+K3vSP2

問題描述:在Bos單據的表體中參與一備注字段,后再參與一文本字段,發現備注字段敲回車不跳轉,后面的文本字段輸入完畢回車也不跳轉。

解決方法:備注型字段由于支持回車的錄入,所以不支持回車跳轉。經測試發現,文本字段放在備注

字段后面,則文本字段錄入敲回車,也清空和備注字段的現象一樣,這可能是sp1和sp2的Bug,可以將備注字段放在行的第后一列,則就沒有問題??蛻艋_發技術資料——K/3BOS開發百問百答

:不能實現記錄選擇。:K3v10.2SP1+PT0704

問題描述:新做的BOS單據(配置單)在與源單(銷售訂單)進行選單的時候,出現在銷售定單中選擇某一條記錄或者某幾條記錄的時候,會將銷售訂單所有的記錄都選過來,不能實現記錄選擇。

解決方法:溝選了[選單時關聯整單]選項導致的,不選上就按分錄返回。

:如何刪除空行。::K3v10.2SP2

問題描述:在輸入信息回車后,系統光標會自動跳到下一行,即新增一行保存時,系統提醒“XXX〞字段不運行為空。需要手工刪除一行,比較麻煩。我想通過插件,在點擊保存時,判斷:假使有空行,就刪除該行;如何刪除單據體一行的插件語句,如何調用?

解決方法:可以不寫代碼,設置該單據體的[關鍵字段],保存前將清除最終一行空白行。

:數量精度和單價精度:K3v10.2SP1&K3v10.2SP2&K3v10.3

問題描述:在單據體中加上“數量〞字段,用decimal的后面的小數點位太多位了;用integer的“數量〞,不可以指定到“單位〞上去,如何解決?客戶化開發技術資料——K/3BOS開發百問百答

解決方法:數量和單價的精度是跟著物料的[數量精度]和[價格精度]走的,假使客戶只存在整數物

料精度,可以通過[基礎資料]-[公共資料]-[核算項目管理]-[004-物料修改]設置物料精度的缺省值為0。

:計算公式如何定義:K3v10.2SP1&K3v10.2SP2&K3v10.3

問題描述:在BOS單據設計的時候,進行單據體內單元格計算時,如設數量、單價、金額,正常應當在“金額〞欄設置公式等于“數量〞乘于“單價〞,但這樣設“金額〞欄無法計算。

解決方法:假使要實現在修改數量列和單價列更新金額,須在“數量〞列和“單價〞列的

[值更新

事件]分別增加一條計算公式:金額=數量*單價。

:如何在插件中獲取當前系統字符連接串:K310.2及以后版本

問題描述:插件中字定義系統中如何獲取當前系統字符連接串?一個年結功能,進行土地數據結轉、在vb中定義了年結功能窗口,要在主控臺子系統中調用,怎樣或得當前數據庫連接信息,亦無法通過k3lib獲得,由于沒必要去調用bos表單或序時簿。另外,一些繁雜報表、也是通過vb中單獨實現、這些報表也需要獲的連接字符串才能調用

解決方法:1、連接串獲取方式:(注意不支持調試,調試的話可以用實際連接串代替)PrivateDeclareFunctionGetCurrentProcessIdLib\Alias\'獲取連接串

PublicFunctionGetPropsString()AsStringDimlProcAsLongDimspmMgrAsObjectlProc=GetCurrentProcessId

SetspmMgr=CreateObject(\客戶化開發技術資料——K/3BOS開發百問百答

GetPropsString=spmMgr.GetProperty(lProc,\EndFunction

2、需要申請MMTS.bas的源代碼,還需要申請ICKDListener的接口。另外,假使需要調試程序,就還需要申請KDMain的源代碼。

:BOS單據插件里取分錄的合計值:K310.2及以后版本

問題描述:工業單據自定義里面有個GetSumGridText方法取得分錄某一列的合計值,現在BOS單據里面需要取某一列的合計,有什么方法可以調用。。

解決方法:Object.Sum(dctAsDictionary,[BRowAsLong],[ERowAsLong])參數說明:

dct-字段的模板字典

BRow-合計開始行,可選參數,默認值是1ERow-合計終止行,可選參數,默認值是最大行

舉例(要求稅額合計值):

Setdct=m_BillInterface.GetFieldInfoByKey(\dblTaxSum=m_BillInterface.Sum(dct)

:帶有輔助屬性的字段的值更新事件中調用輔助屬性,計算公式運行有誤:K310.2及以后版本

問題描述:對于已攜帶輔助屬性的字段再定義值更新事件,假使值更新事件里包含該

輔助屬性,計算公式無效。也就是值更新事件公式里調用的輔助屬性是更新前的。

解決方法:在插件中使用更新后事件

客戶化開發技術資料——K/3BOS開發百問百答

:事務處理:K310.2及以后版本

問題描述:1、BOS的插件開發中,不能直接操作數據庫。事務怎樣處理2、在事務完整性處理上,目前的BOS插件還有好多需要改進。例如:BOS是支持多插件的,多插件之間如何保證事務完整性?同樣是審核事件,有2個插件響應了這個事件,假使第一個插件通過了審核,但是其次個插件卻不能通過,那么第一個插件處理了的數據又如何回滾?

解決方法:1、如在插件中編寫大量的更新SQL請使用中間層插件,中間層插件能保證事務的完整性。

2、假使在客戶端希望執行SQL時保證事務一致性,建議使用K3Lib.UpdateData方法,將希望在同一事務中處理的SQL語句通過它一次性提交,BOS會自動啟用事務處理來保證;假使像多個插件中的審核等操作的一致性問題,解決的方法是制定一個中間層的審核前插件來判斷處理;這類的問題都可以在中間層的相關事件中處理,來保證一致性。

:基本單位數量在錄入完數量后依舊為空:K310.2及以后版本

問題描述:新增BOS單據分錄中有數量及基本單位數量字段,基本單位數量關聯字段為數量,但輸入完數量后,基本單位數量依舊為空。解決方法:保存后基本單位數量就有了。

:10.1單據插件中如何向單據體逐行插入數據:K3v10.1

問題描述:在BOSV10.2中,填充新行數據可以用

m_BillInterface.InsertNewRowAndFill方法實現,但是在BOSV10.1中不

知道用什么方法可以向單據體逐行插入數據客戶化開發技術資料——K/3BOS開發百問百答

解決方法:將10.1的KFO.DLL換成10.2KFO.DLL,是兼容的。m_BillInterface.Data(\

:BOS單據選單返回時自動在表體添加一行分錄:K310.2后所有版本

問題描述:BOS開發一張新的單據.在選單返回時,希望能在表體自動添加一行分錄。事件測試代碼如下:

PrivateSubm_BillInterface_AfterSelBillBeforeFillData(ByValdcDataAsKFO.IDictionary,ByValdctLinkAsKFO.IDictionary)

DimCoDictAsKFO.Dictionary

SetCoDict=dcData(\拷貝第一條分錄數據dcData(\添加到dcData

dcData(\=dcData(\更改分錄號'Stop

setCoDict=NothingEndSub

用watch查看DcData的值.DcData(\也有增加一條,但返回后,新添加的分錄并未帶到目標單據上?還要修改哪些地方?

解決方法:此方法在調試狀態下是不能把值傳過去的,編譯之后就可以了。你的代碼有以下問題:

1、取分錄號使用dcData(\;2、Vect的最大值用UBound,而不是count;

3、字段的key值使用m_BillInterface.TableInfo(\是字段名。正確的代碼是:

DimCoDictAsKFO.Dictionary

’dcData(\SetCoDict=dcData(\拷貝第一條分錄數據dcData(\添加到dcData

dcData(\更改分錄號'Stop

SetCoDict=Nothing

客戶化開發技術資料——K/3BOS開發百問百答

:只有工具條及菜單欄的瀏覽數據窗口:K3v10.2SP2及以后版本

問題描述:能否在新版BOS中提供一個沒有數據,只有工具條及菜單欄的瀏覽數據窗口,供做插件集成操作窗口用,現在只能用單據窗口實現,開啟時還出焦?br/>濾窗口。

解決方法:BOS中有一個自定義序事簿聯查接口,可以指定單據類型和過濾條件聯查所有新老單序

事簿,不用彈出過濾條件。

金蝶k3BOS開發百問百答(轉載)1

2023-04-1214:08:06|分類:k3|標簽:|字號大中小訂閱

大力水手2023-08-0121:37:59.0:K3Bos表體如何設置合計

:K310.2SP2

問題描述:K3Bos表體如何設置合計

解決方法:目前不能在界面上設置合計,(系統對數量和金額默認合計),如需對其他字段設置合計,

需更改ICClassTableInfo.FSum的值為1。

:收款單的套打設置里面怎么取到通過Bos自定義的字段

:K3v10.2SP2及以后版本

問題描述:如何設置通過BOS定義的字段的套打?目前在收款單通過BOS自定義了一個字段,那么在收款的套打設置里面怎么取到這個字段客戶化開發技術資料——K/3BOS開發百問百答解決方法:在單據中添加一個字段保存后,開啟這個套打文件中可以自已添加一個字段,在設置

對象屬性時可以指定到單據中的這個字段。

:如何隱蔽Bos單據中的層:K3v10.2SP2及以后版本

問題描述:對BOS單據中的層處理。如何做到顯示或隱蔽單據中某一層

解決方法:以層為單位的動態顯示隱蔽現在沒有提供方法;

可以在插件中一個一個字段的隱蔽,從字段的FLAYER屬性可判斷其所屬的層。

:如何調用打印功能

:K3v10.3

問題描述:在單據保存后自動打印。請問在Bos單據插件里如何調用打印功能解決方法:在保存后打印Bos單據,請在單據aftersave事件里添加如下代碼:

PrivateSubm_BillInterface_AfterSave(bCancelAsBoolean)

DimoPrintAsObject

SetoPrint=

m_BillInterface.K3Lib.CreateK3Object(\K3ClassBillPrint.clsNotePrint\

oPrint.DataSrv=m_BillInterface.DataSrvoPrint.Data=m_BillInterface.DataoPrint.TableInfo=m_BillInterface.TableInfooPrint.PrintBillm_BillInterface.BillCtl.hWnd,False

SetoPrint=Nothing

EndSub

客戶化開發技術資料——K/3BOS開發百問百答

:BOS單據如何控制表體行數

:K3v10.3

問題描述:BOS開發的業務單如何控制表體的行數。按月預算的話,在表體中在單據新

增或是加載的時候只出現12行。如何控?

解決方法:新增和加載時控制單據的表體最大行數分別是在單據的afternewbill和

afterloadbill事件中加以下語句即可:m_billinterface.billentrys(1).maxrows=12:如何在Bos單據中引用自定義核算項目

:K3v10.2SP1+K3v10.2SP2

問題描述:在K3v10.2SP1版本的BOS中,在基礎資料字段中,選擇基礎資料類型時,無

法選擇到自定義的核算項目(例如增加的\車牌號\核算項目),但在10.3版

中能夠選擇,請問在不升級軟件版本的狀況下,如何解決該問題

解決方法:先在單據上添加一個職員,然后在數據庫里改一下,就可以了。具體如下:

updateicclasstableinfosetFCapti,

FCapti,FCapti,FLookupClassID=3005,FSRCTableName='t_Item'

wherefClasstypeid=200000002andfcapti

(將職員類型改為自定義核算項目作業動因,FSRCTableName的值是該核算項目在t_Itemclass表里對應的FSQLTableName字段的值)

updateicclasstypesetfid=fid

(注意:譬如自定義核算項目對應的數據表稱為a,而a表中表示編碼和名字的字段名卻不是FNumber,FName.有可能是FAcntNumber,FAcntName.所以要將FDspfieldname改為FAcntName,FFNDfieldName改為FAcntNumber才行.或者不改這兩個,將FSrcTablename

改為t_Item也可以。)

:關于核算項目字段[相關屬性]為核算項目類型的值更新攜帶變通處理方案

:K3v10.3

問題描述:新增核算項目,增加自定義字段相關屬性為部門,在BOSIDE中值更新事件中無法更新指定部門=自定義核算項目.部門客戶化開發技術資料——K/3BOS開發百問百答解決方法:由于校驗問題,目前BOSIDE無法支持這種模式的錄入,但實際上運行時是可以

支持的解決方案:

例如:新增核算項目,代碼和內碼都為3005,新增自定義字段相關屬性為部門(通

selectfSQLColumnNamefromt_ItemPropDescwherefitemclassid=3005獲知

其字段名稱)

在單據上新增兩個核算項目字段,基礎資料類型分別為:3005和部門,字段名稱

為FBase1和Fbase2,保存單據。

然后后臺SQL調整:

updateICClasstableinfosetfacion='TakeBaseData{FBase2=F_101}'

wherefclasstypeid=200000002andFKey='FBase1'updateicclasstypesetfid=fid

:如何調用BOS單據序事簿的刷新事件

:K3v10.3

問題描述:序事簿中增加了一個按鈕,會對數據做一些修改,希望執行完數據修改后

調用一下序事簿的刷新事件更新序事簿的顯示

解決方法:可以在序事簿插件代碼寫如下語句來刷新序事簿數據

m_ListInterface.List.RefreshList

:關于因網絡控制導致BOS單據無法并發運行的問題的解決方法

:K3v10.3

問題描述:一張單據只能有一個人新增,其次個人新增報[當前功能與其他用戶沖突無

法使用]??蛻艋_發技術資料——K/3BOS開發百問百答

解決方法:對相應帳套執行如下SQL:deletet_mutexwhereffuncidin(selectffuncidfrom

CClassmutexwherefoperatenamelike'%新增%'andfclasstypeid>=200000000):關于插件取值報類型不匹配的答復

:K3v10.3

問題描述:在插件中Change事件中輸入如下代碼:

Ifdct(\

bookid=m_BillInterface.GetFieldValue(\

fbase1是物料字段,選中中物料后,敲回車鍵程序正常,但當刪除幾位物料

編碼后再按F7鍵,會報類型不匹配的錯誤。

解決方法:此問題是VB類型轉換需要注意的地方,BOS從數據包取數得到的變量是Variant類型,

假使界面有

值,此時BOS數據包數值可直接賦值給long型變量,但假使界面無值,此時需要進行

強制類型轉換才可以

賦值,因此需要將上述代碼修改成如下代碼:Ifdct(\bookid=Val(m_BillInterface.GetFieldValue(\:如何實現在Bos單據中物料多項選擇

:K3v10.3

問題描述::BOS單據序時簿上是否可以顯示單據數,而不顯示記錄條數?顯示張數更

便利些。Bos單據在錄入時,物料字段按F12,不能夠一次選中多條物料并

返回,是否有方法解決?

解決方法:1、在序事簿過濾界面中將單據體1不打勾,就只會顯示單據頭也就是多少張單

據,而不是多少條記錄。

2、在單據的屬性窗口選物料字段,在功能控制里有允大量選選項,打上勾,保存單據就可以實現物料多項選擇。客戶化開發技術資料——K/3BOS開發百問百答

:如何實現在Bos單據中物料多項選擇

:K3v10.3

問題描述:BOS單據序時簿上是否可以顯示單據數,而不顯示記錄條數?顯示張數更方

便些。Bos單據在錄入時,物料字段按F12,不能夠一次選中多條物料并返

回,是否有方法解決?

解決方法:1、在序事簿過濾界面中將單據體1不打勾,就只會顯示單據頭也就是多少張單

據,而不是多少條記錄。

2、在單據的屬性窗口選物料字段,在功能控制里有允大量選選項,打上勾,保存

單據就可以實現物料多項選擇。

:如何在Bos單據的工具欄上顯示―復制‖按鈕

:K3v10.3

問題描述:如何在Bos單據的工具欄上顯示―復制‖按鈕

解決方法:因復制按鈕是系統內置按鈕不支持外觀的設置,假使需要設置須通過插件實現,

增加復制按鈕在工具欄的顯示

WithoMenuBar

SetoTool=oMenuBar.BOSTools(\

WithoTool'按鈕顯示名稱

.Caption=m_ListInterface.K3Lib.LoadKDString(\復制\

'按鈕顯示摘要

.Description=m_ListInterface.K3Lib.LoadKDString(\復制\

'按鈕顯示幫助信息

.ToolTipText=m_ListInterface.K3Lib.LoadKDString(\復制單據\

'增加分組.BeginGroup=True

EndWith

'將生成的tool對象插入至第三個工具欄菜單之后.BOSBands(\

EndWith

SetoTool=Nothing

客戶化開發技術資料——K/3BOS開發百問百答

:bos分錄值合計

:K3v10.3

問題描述:如何在Bos插件中給單據分錄行賦值后,自動給某列算出合計值(譬如數

量)

解決方法:在給分錄行賦值后,加上以下兩句代碼,即可為數量列自動算出合計值。

Setdct=m_billinterface.GetFieldInfoByKey(\

m_billinterface.BillCtl.SetSumDatadct

:BOS單據物料字段信息沒顯示全

:K3v10.3

問題描述:用BOS自定義了一張單據,運行時單據體的物料代碼字段信息沒顯示全,被

截取了前10位。

解決方法:有可能你在無意中更改了Bos單據的模板表(icclasstableinfo),在查詢分析器中執行

如下語句:

updateicclasstableinfosetfeditlen=255wherefclasstypeid=200000000

andfkey='fitemid'updateicclasstypesetfid=fid

:BOS顏色控制

:K3v10.3

問題描述:在序事簿中按某一狀態字段的取值不同給不同的行設置不同的顏色??蛻艋_發技術資

料——K/3BOS開發百問百答

解決方法:可以在序事簿插件中實現根據某一狀態字段設置不同的顏色顯示。請參考以下代碼:(將

序事簿的記錄集中文本字段為11的行顯示為藍色)PublicSubShow(ByValoListInterfaceAsObject)

Setm_ListInterface=oListInterfacem_ListInterface.EnableListFillRowEvents=True

EndSub

PrivateSubm_ListInterface_ListFillRow(ByVallRowAsLong,ByValRowDataAsObject,ByValHeadDictAsKFO.IDictionary,CellDataAsString,BackColorAsLong,ContinueRaiseAsBoolean)

ContinueRaise=True

IfHeadDict(\

BackColor=&HFF0000

EndIfEndSub

:從BOS如何能調用VB控件(MSCOMM)

:K3v10.3

問題描述:在Bos插件開發中如何調用VB控件,例如MsComm控件。

解決方法:可以在Bos插件的工程中加一窗體(form),在該窗體里面添加VB控件(如mscomm),在

Bos單據工具欄上加一按鈕(如毛重),點此按鈕,調出該窗體(不顯示該窗體,用load而

不用show),這樣就可以讀取到端口數據。

:序時簿工具欄新增一個按鈕,如何編寫插件實現審核后對單據修改功能

:K/3V10.3SP1

問題描述:序時簿工具欄新增一個―變更‖按鈕,同時有插件,實現審核后對單據修

改功能。但修改后,單據的―保存‖按鈕灰色,無法保存單據,如何實現

該功能??蛻艋_發技術資料——K/3BOS開發百問百答

解決方法:還需加上單據插件,請添加以下代碼PrivateSubm_BillInterface_AfterLoadBill()

Ifm_BillInterface.MenuBar.BOSTools(\

m_BillInterface.BillCtl.BillStatus=Enu_BillStatusExt_Modifym_BillInterface.SetBarStatus\m_BillInterface.SetBarStatus\

m_BillInterface.MenuBar.Refresh

m_BillInterface.SetBillFormCaptionm_BillInterface.BillName&\變更\

EndIfEndSub

:銷售訂單下推生成BOS單據,無法制定流程

:K/3V10.3SP1

問題描述:銷售訂單下推生成BOS單據,只要關聯了銷售訂單的交貨方式或者交貨地

點(BOS單據以文本形式),會提醒錯誤,沒有方法制定流程,假使BOS

單據定義的是備注字段,則帶過來的是內碼。解決方法:交貸地點和交貨方式都是輔助資料類型,所以Bos單據字段也必需選輔助資料,不能是文本型。

:BOS序事簿插件調用數據庫

:K/3V10.3SP1

問題描述:A,B兩個存儲過程,其中的A過程調用B過程,共同完成其他出入庫單的

生成審核(一進一出抵消庫存)。在查詢分析器中執行EXECUTEA可以順利完成單據的處理。但當在序事簿插件里利用ADO連接數據庫后,調用存儲過程A執行,可是A并沒有執行調用B過程也沒有報錯。請問在BOS插件中對存儲過程的調用有沒有什么其它方法客戶化開發技術資料——K/3BOS開發百問百答

解決方法:序事簿插件不是使用ADO連接數據庫,

而是用m_listinterface.k3lib.getsql(sql),另外不會出現那個不調用B的狀況.調用B時,請注意,需要加上―setnocounton‖

大力水手2023-08-0121:38:29.0:客戶端單據打不開

:K/3V10.3

問題描述:客戶端無法開啟BOS設計平臺開發的業務單據(錄入、修改)界面解決方法:引起該原因是,K/3WEB時提醒下載InstGB.exe,執行InstGB.exe后,引

起所有BOS設計的單據都打不開。通過注冊重新KDInputToolU.dll文件可

修復環境,目前建議擔憂裝InitGB.exe文件。

:BOS老單據,新增核算項目,增加自定義字段相關屬性為部門,在BOSIDE中值

更新事件中無法更新指定部門=自定義核算項目.部門

:K/3V10.3

問題描述:BOS老單據,新增核算項目,增加自定義字段相關屬性為部門,在BOSIDE

中值更新事件中無法更新指定部門=自定義核算項目.部門

解決方法:由于校驗問題,目前BOSIDE無法支持這種模式的錄入,但實際上運行時是可

以支持的解決方案:

例如:新增核算項目,代碼和內碼都為3005,新增自定義字段相關屬性為部門(通過selectfSQLColumnNamefromt_ItemPropDescwherefitemclassid=3005獲

知其字段名稱)

在單據上新增兩個核算項目字段,基礎資料類型分別為:3005和部門,字段名

稱為FBase1和Fbase2,保存單據。

然后后臺SQL調整:

UpdateICClasstableinfosetfacion='TakeBaseData{FBase2=F_101}'where

fclasstypeid=200000002andFKey='FBase1'

updateicclasstypesetfid=fid??蛻艋_發技術資料——K/3BOS開發百問百答

:關于如何在銷售發票業務審核后仍能修改摘要字段的做法

:K/3V10.3

問題描述:關于如何在銷售發票業務審核后仍能修改摘要字段的做法

解決方法:首先設置除摘要字段以外的字段的鎖定屬性都要是審核后鎖定,摘要字段

則不需要設。另要添加以下插件:

在序事簿里添加單據變更按鈕(名稱為BillEdit),并在序事簿插件里添加

如下代碼:

新增一模塊文件,里面定義公共變量。PublicbBilleditAsBooleanPrivateSubm_ListInterface_MenuBarClick(ByValBOSToolAs

K3ClassEvents.BOSTool,CancelAsBoolean)

SelectCaseBOSTool.ToolName

Case\

'此處添加處理BillEdit菜單對象的Click事件

bBilledit=True

Callm_ListInterface.LoadSelectedBill(Enu_BillStatusExt_Modify)

bBilledit=False

CaseElseEndSelectEndSub

在單據插件里添加如下代碼:

PrivateSubm_BillInterface_AfterLoadBill()

IfbBilleditThen

m_BillInterface.SetBarStatus\m_BillInterface.SetBarStatus\

m_BillInterface.MenuBar.Refresh

m_BillInterface.SetBillFormCaptionm_BillInterface.BillName&\

變更\EndIfEndSub

PrivateSubm_BillInterface_BeforLoadBillFillData()

IfbBilleditThen

m_BillInterface.BillCtl.BillStatus=Enu_BillStatusExt_Modify

EndIfEndSub

最終將以上插件編譯,在插件管理加到單據已有插件之后。

客戶化開發技術資料——K/3BOS開發百問百答:調撥單中的調撥類型無法單據中顯示

:K/3V10.3

問題描述:客戶在做單據自定義的時候―源單類型‖字段只是移動了一下位置,保存

后源單類型字段就在單據上顯示不出來了,就是移回原位置也顯示不出來,我在自己的機器上試了一下也是這種狀況,只要移動后保存這個字段就顯

示不出來了,急盼答復,感謝,最好不要建議我打sp補丁,

解決方法:調撥類型字段顯示與否與系統選項:核算系統選項:調撥單允許異價調撥

有關

:序時簿查件分錄中,如何通過插件取其中一個時間字段。

:K/3v10.3&K/3v10.3sp1

問題描述:序時簿查件分錄中,如何通過插件取其中一個時間字段解決方法:SetvectSelect=m_ListInterface.GetSelectedBillInfo

IfvectSelect.UBound>0ThenstrSQL=\Bos20000001wherefid=\

vectSelect(1)(\Setrs=m_ListInferface.K3Lib.GetData(strSQL)IfNotrs.EOFThenrs(\

:新單中如何寫刪行的函數:K/3v10.3-10.4,其后的版本已經增加

問題描述:

在bos單據中,通過插件插入多行分錄,在保存的時候,進行數據正確性檢測時,不能通過插件程序刪除不符合規律檢測的行客戶化開發技術資料——K/3BOS開發百問百答

解決方法:

?

?名稱:RemoveBillRowInfo

?描述:刪除單據行?版本:V10.3?:

?參數:m_BillInterfaceObject單據對象

?lPageNumLong頁?lRowLong行

?返回值:BooleanTrue:成功False:失敗

?創立時間:2023/3/20

?PublicFunctionRemoveBillRowInfo(m_BillInterfaceAsObject,_

ByVallPageAsLong,_ByVallRowAsLong)

DimdctClassTypeAsKFO.Dictionary

DimdctDataAsKFO.DictionaryDimvctEntryDataAsKFO.VectorDimvctDeleteRowAsKFO.VectorDimdctDelSrcTypeAsKFO.Dictionary

DimstrKeyAsStringDimlEntryIDAsLong

DimiAsLong

SetdctData=m_BillInterface.DataSetdctClassType=m_BillInterface.ClassTypeSetvctEntryData=dctData(―Page―&lPage)

IflRow0ThenlEntryID=vctEntryData(lRow)(―FEntryID―)

IflEntryID0Then

IfdctData.Lookup(―PageDel―&lPage)ThenSetvctDeleteRow=dctData(―PageDel―&lPage)SetdctDelSrcType=dctData(―PageDelSrc―&lPage)

ElseSetvctDeleteRow=NewKFO.VectorSetdctDelSrcType=NewKFO.DictionarySetdctData(―PageDel―&lPage)=vctDeleteRowSetdctData(―PageDelSrc―&lPage)=dctDelSrcType

EndIf

vctDeleteRow.AddlEntryID

IfvctEntry

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論