k3 Bos開發百問百答


 

 

 

 

 

K/3 BOS開發百問百答

 

(版本:V1.1)

 

 

 

 

 

K3產品市場部

 

 

 


目錄

一、基礎資料篇__ 1

【摘要】bos基礎資料的顯示問題_ 1

【摘要】單據自定義無法看到bos定義的基礎資料_ 1

【摘要】在調出基礎資料序時簿時,過濾出我需要的基礎資料_ 1

【摘要】bos定義的基礎資料能否做到按名稱而不是按代碼進行自動匹配_ 1

二、業務單據篇__ 2

【摘要】是否支持多插件和數據授權_ 2

【摘要】K3BOS單據(新)中的數量字段怎樣才能控制到兩個小數_ 2

【摘要】單據上顯示各級審核人和審核日期_ 2

【摘要】多層的BOS單據,能否將人員權限按層划分_ 2

【摘要】自動啟動審核 和自動選單_ 3

【摘要】觸發值更新事件_ 3

【摘要】只能刪除和修改本人制作的單據。_ 3

【摘要】插件發送消息打開單據_ 4

【摘要】獲取Bos單據單據體已錄信息的條數_ 4

【摘要】插件中獲取單據上控件的位置、尺寸信息_ 4

【摘要】關聯自定義核算項目_ 5

【摘要】是否允許插件自定義查詢條件?_ 5

【摘要】填充分錄行?_ 5

【摘要】在Bos單據按F7查詢供應商信息,按F9查詢采購價格管理信息。_ 6

【摘要】有沒有可以取到單據編號的組件呢?_ 6

【摘要】是否可以直接在數據庫表中直接修改Bos單據中的字段類型?_ 7

【摘要】鎖定單據字段_ 7

【摘要】刪除符合條件的單據_ 7

【摘要】動態過濾基礎資料_ 7

【摘要】金額小寫轉化為大寫。_ 8

【摘要】單據保存出錯_ 8

【摘要】表體當中的當前記錄號,不能在套打中打印。_ 8

【摘要】標准序時簿過濾條件對話框(和K3老單據一樣)_ 8

【摘要】K3Bos英文版Bos單據表體行號為中文如何解決_ 9

【摘要】如何再次添加新插件?_ 9

【摘要】下拉框里不能錄入半角逗號_ 9

【摘要】單據分錄數達到3000條,單據保存會不會出錯?_ 9

【摘要】Bos單據是否支持上傳下載功能?_ 10

【摘要】文本字段錄入完畢回車不跳轉_ 10

【摘要】選單數據顯示?_ 10

【摘要】不能實現記錄選擇。_ 10

【摘要】如何刪除空行。_ 10

【摘要】沒有找到符合條件的記錄。_ 11

【摘要】BOS套打_ 11

【摘要】數量精度和單價精度_ 11

【摘要】計算公式如何定義?_ 11

【摘要】批次過濾_ 12

【摘要】應收應付系統合同是否能超額執行_ 12

【摘要】基礎資料錄入代碼時不馬上顯示相關的列表_ 12

【摘要】在插件中以新增、修改和查看方式打開另一單據_ 13

【摘要】顯示BOS序時簿並返回選中的值_ 14

【摘要】將當前單據轉化為另一單據,並無界面保存數據_ 15

【摘要】隱藏選單時序時簿不需的菜單和工具欄_ 16

【摘要】在單據體中讓下一條分錄自動攜帶上一條分錄的數據_ 17

【摘要】在Bos插件中如何處理隱身的二次登錄_ 17

【摘要】如何在插件中獲取當前系統字符連接串?_ 19

【摘要】BOS單據插件里取分錄的合計值_ 20

【摘要】表體行的高度設置_ 20

【摘要】帶有輔助屬性的字段的值更新事件中調用輔助屬性,計算公式運行有誤_ 21

【摘要】事務處理_ 21

【摘要】Bos單據插件中能否調用K3Billtransfer.dll組件_ 21

【摘要】基本單位數量在錄入完數量后仍然為空_ 21

【摘要】BOSV10.1單據插件中如何向單據體逐行插入數據_ 21

【摘要】BOS單據選單返回時自動在表體添加一行分錄_ 22

【摘要】只有工具條及菜單欄的瀏覽數據窗口_ 22

【摘要】K3Bos表體如何設置合計_ 23

【摘要】收款單的套打設置里面怎么取到通過Bos自定義的字段_ 23

【摘要】如何隱藏Bos單據中的層_ 23

三、多級審核篇__ 23

【摘要】批量審核_ 23

【摘要】設置為一級審核的Bos單據反審核后不能修改_ 24

【摘要】能否使administrator對任何人審核的BOS單據進行反審核_ 24

【摘要】實現多級審批同時需要更改審批的數量與單價_ 24

【摘要】BOS字段多級審核后可以修改_ 24

【摘要】多級審核跳轉_ 25

【摘要】多級審核的操作_ 25

【摘要】插件的審核事件_ 25

【摘要】有關多級審核的問題_ 26

【摘要】合同進行多級審核提示需要Bos加密狗_ 27

四、單據轉換流程篇__ 1

【摘要】Bos單據與反審核相關的業務流程問題_ 1

【摘要】新單推老單不能實現鈎稽功能_ 1

【摘要】系統BUG_ 1

【摘要】未審核的老單據不能下推Bos單據_ 2

【摘要】單據轉換流程中能否實現匯總下推? 2

【摘要】自定義的bos單據無法下推生成銷售費用發票。_ 2

【摘要】選單一致_ 2

【摘要】無物料編碼時,下推報錯_ 3

【摘要】合同字段帶到付款單_ 3

【摘要】下推發貨通知單的時候,所有自定義字段中的文本字段在發貨通知單都變成了0?_ 3

【摘要】下標越界_ 3

【摘要】10.2sp1 鈎稽后設過濾條件不起作用_ 4

【摘要】關聯復制_ 4

【摘要】老單下推新單過濾條件的設定_ 5

【摘要】在老單單據中選取新單如何選取多張單據_ 5

【摘要】BOS單據下推到外購入庫單時無法選擇紅字單據_ 5

【摘要】如何用BOS單據體字段推成目的單據(老單)的單據頭字段_ 5

五、報表篇__ 6

【摘要】交叉分析報表_ 6

【摘要】直接SQL報表_ 6

六、部署發布篇__ 6

【摘要】發布功能的名稱如何更改_ 6

【摘要】編碼規則丟失_ 7

【摘要】怎樣將舊單改造數據結構的動作打包到Bos安裝包中? 7

【摘要】中間層上發布插件后,客戶端的插件dll文件沒有被更新。_ 7

【摘要】發布的BOS單據如何刪除_ 8

【摘要】Bos單據發布后主控台沒有顯示_ 8

【摘要】BOS部署客戶端智能升級失敗_ 8

【摘要】打包應用程序是否有類似的InstallShield的腳本參考_ 8

七、其他__ 9

【摘要】關於BOS的加密問題_ 9

【摘要】數據權限管理_ 9

【摘要】在使用citrix客戶端時,調用出BOS過濾界面后,選擇下拉列表后出錯_ 9

【摘要】關於Bod已過期問題的處理。_ 9

【摘要】中間層插件_ 9

【摘要】BOS插件調用工資系統匯總表_ 10

【摘要】bos插件中如果發生任何錯誤,在k3界面中不會出現任何提示_ 10

【摘要】以Administrator主控台設置刷新其他用戶主控台設置_ 10

【摘要】系統幫助文件的掛靠_ 11

【摘要】圖紙管理_ 11

【摘要】外貿報價單_ 11

【摘要】如何在單據中做一個可以選擇,又可以隨意錄入的字段?_ 12

【摘要】如何將BOS單據的稅率攜帶到下游老單據_ 12

【摘要】客戶的車間管理的單據與我們K310.2的差異很大,可否用Bos開發_ 12

【摘要】修改應收應付模板_ 12

【摘要】客戶在正式上線使用時,需如何購買站點數_ 13

【摘要】在K/3 BOS中能否打印一張復雜的單據_ 13

【摘要】恢復K/3 BOS插件開發向導菜單按鈕_ 13

 


一、基礎資料篇

【摘要】bos基礎資料的顯示問題

版本:K310.2SP2+10.3+10.2SP1

問題描述:我們的bos做出來的基礎資料為什么不能做成象核算項目一樣,點中上級組就能顯示相面所有基礎資料,而不是現在點到最后一個上級組才能顯示明細。

 

解答

這是新需求,以后版本會解決。

【摘要】單據自定義無法看到bos定義的基礎資料

版本:K310.2SP2

問題描述:在單據自定義中增加自定義字段時,需要選擇用bos定義的基礎資料該如何設置。我在單據自定義的高級頁簽上選擇基礎資料下拉框中無法看到bos定義的基礎資料;我跟蹤Sql,在ICChatBillTitle 中有自定義字段屬性的相關設置,如FTableName、FLookUpClassID等字段。我把記錄改成BOS基礎資料對應的信息,但是無法生效。請高手指點。

 

解答

在10.2里工業單據自定義工具不能使用BOS單據的基礎資料,建議使用核算項目來定義基礎資料,即可在工業單據中使用,也可在BOS單據中使用。

【摘要】在調出基礎資料序時簿時,過濾出我需要的基礎資料

版本:K310.2SP2+10.3+10.2SP1

問題描述:能否對BOS基礎資料做過濾,即:在調出基礎資料序時簿時,過濾出我需要的基礎資料。

 

解答

1、在ICClasstypeentry的FFilter字段增加過慮條件;

2、在ICClassTableInfo的FFilter中填寫條件。

下例能完成只顯示“01”組的物料,FFilter的值應是“x2.FNumber like '01.%'”

SELECT  t1.FItemID  FROM t_Item t1  with(index (uk_Item2)) LEFT JOIN t_ICItem x2 ON t1.FItemID = x2.FItemID WHERE FItemClassID = 4 AND t1.FDetail=1  AND (x2.FNumber like '01.%') AND t1.FDeleteD=0  ORDER BY t1.FNumber

【摘要】bos定義的基礎資料能否做到按名稱而不是按代碼進行自動匹配

版本:K310.2SP2+SP1

問題描述:是否可以在相關的基礎資料的對象中增加通過名字查詢功能。目前的基礎資料(部門,人員,物料等)是通過F7查詢或者輸入代碼,但是實際業務中很多情況是輸入名字,很多客戶已經要求使用名字查詢,特別是涉及職員、部門等基礎資料,不知道BOS能不能先行一步,改掉k/3的這個習慣?即直接在那個文本框中輸入名稱,然后自動匹配,就像在文本框中輸入代碼一樣,能夠自動找到相應的基礎資料。

 

解答

  1. 具體功能計划10.3實現。
  2. 另外,現在BOS支持漢字的模糊查詢,按F8(F9)即可。

二、業務單據篇

【摘要】是否支持多插件和數據授權

版本:K310.1

問題描述:客戶使用應付款管理系統,需要將合同資料、其他應付單、收款單等單據按部門進行數據授權,是否需要申請源代碼,如果使用BOS插件能否解決數據授權問題,另外Bos是否支持多插件,謝謝!

 

解答

1、10.1下不支持多插件;

2、由於不支持多插件,必須要申請插件的源代碼。

【摘要】K3BOS單據(新)中的數量字段怎樣才能控制到兩個小數

版本:K310.2SP1+SP2+10.3

問題描述:最近在用K3BOS作一個項目,用K3BOS設計的單據中的數量字段小數位默認是10位,請問怎樣才能控制到兩個小數?是用插件來控制的嗎? 

 

解答

通過以下方式增加字段時:物料->計量單位->數量,數量將按照物料定義的精度來處理,否則缺省按照十位處理,如果需要定義字段為某個固定的精度,可以使用小數字段,通過該字段的小數位屬性來控制。

【摘要】單據上顯示各級審核人和審核日期

版本:K310.2SP2

問題描述:多級審核欄目客戶不希望分成第二個Label,而是想在單據上有每級審核人和日期顯示。

 

解答

如果用系統的多級審核流程就會有多級審核的業簽。可以在單據上增加多幾個審核人、審核日期,在單據插件的AfterMultiCheck 事件中反寫單據上的審核人、審核日期。

【摘要】多層的BOS單據,能否將人員權限按層划分

版本:K310.2SP1后各版本

問題描述:某直銷單據分為采購和銷售兩個頁,采購內勤組的成員只能看到采購頁而不能看到銷售頁,而銷售內勤組的成員只能看到銷售頁而不能看到采購頁?

 

解答

Bos單據不能按層進行授權,可以通過數據授權和字段授權的方式變通實現此類需求。

【摘要】自動啟動審核 和自動選單

版本:K310.2SP1

問題描述:客戶希望在打開一個新單據的同時,自動彈出選單的界面,顯示要選擇的單據。.因為客戶使用的10.2 SP1 所以希望在 單據保存后,自動啟動審核。希望總部提供 在插件中調用“選單”和“啟動審核”的BOS的內部處理事件。

 

【解答】

1、   自動啟動審核:

在AfterSave事件中使用以下代碼

Dim bStatus As Boolean

bStatus = m_BillInterface.MultiCheckMgr.MultiCheckBill(m_BillInterface.Data("FID"))

2、   選單調用:

BOS單據

m_BillInterface.BillCtl.DoSelBill lClassTypeID '(原單的ClassTypeID)
工業單據

m_BillInterface.BillCtl.DoSelOldBill lClassTypeID '(原單的ClassTypeID)

【摘要】觸發值更新事件

版本:K310.2SP1+0704

問題描述:我在BOS的表體字段數量中設置了值更新事件。在插鍵中自定義一個菜單,點擊菜單后,更改表體中數量的值,但沒有觸發字段數量所設置的值更新事件。更改表體中數量是用m_BillInterface.SetFieldValue "FAuxQty", 500, 1方法更新的。同時發現更新數量,合計值沒有被改變。請問:用什么方法更新表體數據能觸發字段中設置的值更新事件,及其它值加載事件?同時可以更新合計值?

 

【解答】

目前在插件中沒有處理事件的方法,可用插件更新合計值。

【摘要】只能刪除和修改本人制作的單據。

版本:K310.2SP1

問題描述:如果實現只能刪除和修改本人制作的單據

 

 【解答】

Private Sub m_ListInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean)

 

Dim lBillerID As Long

Dim strSQL As String

 

 Select Case BOSTool.ToolName

 Case "mnuEditDelete", "mnuEditModify"

       strSQL = "Select FBiller(當前單據制單人) From t_Sales(當前單據主表名) Where FID(當前單據主鍵子段)=" & m_ListInterface.GetCurrentSelRowInfo("FID")

        lBillerID = m_ListInterface.K3Lib.GetData(strSQL)(0)

        If m_ListInterface.K3Lib.User.UserID <> lBillerID Then

             MsgBox "只能刪除和修改本人的單據", vbExclamation, "提示"

              Cancel = True

       End If

 

Case Else

End Select

End Sub

【摘要】插件發送消息打開單據

版本:K310.2SP1

問題描述:能否在插件里用sendmessage方法發送消息來打開相應的單據

 

解答

sendmessage發送的消息不能打開對應的單據。

【摘要】獲取Bos單據單據體已錄信息的條數

版本:K310.2SP1

問題描述:我在寫插件時,想得到單據體的已錄信息的條數,用什么語句得到呢?

 

解答

單據體的已錄的條數用下面的方法可得到。

m_BillInterface.Data("Page2").UBound

注意:最后一條可能是空記錄,要判斷(if 分錄關鍵子段或必填字段<>"" then .....)。

【摘要】插件中獲取單據上控件的位置、尺寸信息

版本:K310.2SP1

問題描述:請問在BOS插件開發中,可否用代碼獲取BOS單據上某個控件的位置、尺寸信息?以及能否用代碼動態修改它們的位置?

 

解答

在K/3BOS插件中獲取控件的位置的方法:

m_BillInterface.BillHeads(1).BOSFields("FDate").FieldTop,其中“FDate”是控件的名稱,也可以用它來改變控件的位置。

【摘要】關聯自定義核算項目

版本:K310.2SP2

問題描述:請問在新建的BOS單或原有的BOS單上如何關聯自定義的核算項目基礎資料?

 

解答

修改ICClassTableInfo中FLookupClassID,FSRCFieldName,FSRCTableName,FDSPFieldName,FFNDFieldName。

【摘要】是否允許插件自定義查詢條件?

版本:K310.2SP2

問題描述:需要在序事簿查詢過程,根據人員角色不同,自動將所能看到的數據進行過濾,請問此類問題怎么實現,BOS序事簿是否允許插件自定義查詢條件?

 

解答

可以通過在序事簿插件的show中直接修改ListFilterString屬性的值來自定義查詢條件.

示例如下:

With m_listinterface

     If len(.listfilterstring)>0 then

       .listfilterstring=.listfilterstring & “ and FDeptID=984”

     Else

       .listfilterstring=” FDeptID=984”

     End if

End with

【摘要】填充分錄行?

版本:K310.2SP2

問題描述一張單據有幾百條分錄, 每條分錄數據都是通過插件填入的.但是如果使用 setFieldValue 方法一個字段一個字段填的話, 速度非常慢. 是不是有更好的方法填充行數據?

 

解答

可以試試用insertnewrowandfill方法插入一新行。

示例如下:

'批量插入行數據

 Dim i As Long

 For i = 1 To 10

     m_BillInterface.InsertNewRowAndFill 2, i, "FBase", "01.001", "FPrice", "100.001", "FAmount", "50000"

 Next

 需要注意的是查找類型的字段只要給出編碼即可,基礎資料屬性(如物料名稱等)不需要賦值。

【摘要】在Bos單據按F7查詢供應商信息,按F9查詢采購價格管理信息。

版本:K310.2SP1+PT0704

問題描述:在新增采購申請單時,在分錄中的供應商按F7能選擇供應商信息,按F9能選到采購價格管理信息,我現在想在新單中也添加一個供應商,也實現上述功能.該什么實現?

 

解答

使用MenuBarClick事件實現F7

1、   BeginEdit事件

If  dct("FKey") = "要處理字段FKey“ Then

m_BillInterface.MenuBar.BOSTools("mnuDataLookUp").Enabled = True

End If

2、   MenuBarClick

If  BOSTool.ToolName = "mnuDataLookUp" Then

m_BillInterface.GetActiveField dct, col, row

If  dct("FKey") = "FBillNo_BS" Then

m_BillInterface.BillCtl.DoSelBill 200000104 '(原單的ClassTypeID)

End If

End If

3、   采購價格管理的調用接口,結合上述所說使用:

Dim obj As Object

Set obj = CreateObject("k3Suplly.SupplyFace")

With  obj

       .CallByBill = True

       .SelICItemID = '當前物料行內碼

       .CategoryBySupply = false

       .SelSupID = '供應商內碼

       .PriceType = 1

       .Show 1

End With

Set obj = Nothing

【摘要】有沒有可以取到單據編號的組件呢?

版本:K310.2SP2

問題描述:客戶要導入一張組裝單,組裝單是一張BOS單據。有沒有一個專門得到單據編號的組件呢?有的話,接口是什么?

 

解答

Set obj = CreateObject("K3MClass.ClassInfo")

GetThisBillNo = obj.GetBillNo(sDsn, ClassID, sKey, bGetDeleteNo, bSave)

接口描述:

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

'/*參數:

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

'/*@ bSave 是否需要修改新的最大單據號

'/*@ ClassID 類型

'/*@ sDsn 連接串信息

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

【摘要】是否可以直接在數據庫表中直接修改Bos單據中的字段類型?

版本:K310.2SP1+Sp2+10.3

問題描述:現在在Bos單據中加入一備注字段,並保存了數據,可否將備注字段改為文本字段,保證數據不丟失

 

解答

可以修改表Icclasstableinfo的FCtlType字段,示例如下。

update icclasstableinfo set fcaption_chs='文本1',fcaption_cht='文本1',fcaption_En='Text1',FKey='FText1',FFieldName='FText1',FCtlType=1 where fid=8438

update icclasstype set fid=fid ----單據的時間梭

注意在后面更新icclasstableinfo表來修改單據,一定要更新一下icclasstype,否則前面的更新在Bos設計環境反映不出來更新。

【摘要】鎖定單據字段

版本:K310.2SP1+Sp2+10.3

問題描述:如何在插件中鎖定單據字段。

 

解答

可以用lockcell方法鎖定,如鎖定單據頭幣別: Set dcttemp = m_BillInterface.GetFieldInfoByKey("FCurrencyID ", "", 0) If Not dcttemp Is Nothing Then m_BillInterface.BillCtl.LockCell dcttemp, -1, True

第二個參數為分錄行號,當為-1時鎖定所有行。

注意:設計狀態沒有設計為"鎖定"的字段,才可以在運行狀態鎖定或解鎖。

【摘要】刪除符合條件的單據

版本:K310.2SP1+Sp2+10.3

問題描述:符合一定條件的單據不允許刪除。是否有刪除前的事件可以調用,或者其他方法?

 

解答

可以在中間層插件的Beforedel事件中寫代碼實現。

【摘要】動態過濾基礎資料

版本:K310.2SP1+Sp2+10.3

問題描述:用K/3 BOS新建的單據上的添加基礎資料時,能否給定某中過濾條件?比如:我選擇某個物料資料,我要求只顯示指定的某個部門的物料資料,其它的物料不顯示,不清楚這種情況能否實現,還是可以通過其它方法來實現該功能。

 

解答

     可以在單據的Change事件中寫如下代碼來實現動態過濾條件。

 If dct(“FKey”)=”FDeptID” then

m_BillInterface.DataSrv.TableInfo(m_BillInterface.TableInfo("Map")("FItemID"))("FFilter") = " x2.FNumber =’”  &  m_BillInterface.getfieldvalue(“FDeptID” ) & “’”

 End if

注意:上面的代碼不支持調試,如果調試,發現賦值為空,沒有將過濾條件賦值成功,但編譯后運行沒有問題。

【摘要】金額小寫轉化為大寫。

版本:K310.2SP2

問題描述:K3Bos有沒有將金額轉化為大寫的功能。

 

解答

K/3 BOS現在還沒有集成金額小寫轉化為大寫的功能。

【摘要】單據保存出錯

版本:K310.2SP2

問題描述:新增BOS單據,單據的表設為poRequest,  單據體的表設為 poRequestEntry,然后保存,出現如下提示錯誤信息:”索引’IX_PoRequest_FBillNo’依賴於列’FBillNo’”,請問這是怎么回事?能刪除此索引嗎?

 

解答

這是10.2的一個設計不合理的地方,10.3沒有這個問題了。可以先刪除,設計成功后加上就好了。

【摘要】表體當中的當前記錄號,不能在套打中打印。

版本:K310.2SP1+PT0704

問題描述:表體當中的當前記錄號,不能在套打中打印。

 

解答

當前行號打印的補丁PT003411已經解決。

【摘要】標准序時簿過濾條件對話框(和K3老單據一樣)

版本:K310.2SP1

問題描述:請問BOS單據的序時簿過濾條件對話框中是否可以像標准K3單據那樣,有默認的“本期”,“紅藍字”等過濾條件?

 

解答

可以在數據庫里寫執行如下代碼實現:(下面例子是添加審核的過濾條件)

Update icclasstableinfo set flock=-1,fconditionext=1000000 where fclasstypeid=300000000 and fkey='Fchecker'

說明:fconditionext=1000000對應的內容為ICClassCondition表中FID=1000000內容,察看該條記錄的FDataSource_CHS簡體中文信息為:”全部;None~已審核;isnull(@Field,0)>0~未審核;isnull(@Field,0)<=0”。

全部:對應得解析條件為None,說明該過濾條件不起作用

已審核:對應得isnull(@Field,0)>0,通過判斷Fchecker字段的值是否大於0,來判斷其是否審核;

未審核:對應得isnull(@Field,0)<=0,通過判斷Fchecker字段的值是否小於等於0,來判斷其未審核。

P.S:如果現有的擴展過濾條件不滿足條件需要增加,請不要緊接着系統定義的Fid開始擴展,以免被系統升級時清除,可像單據類型一樣從200000000開始。

【摘要】K3Bos英文版Bos單據表體行號為中文如何解決

版本:K310.2SP1

問題描述:我們現在在進行英文界面BOS單據的開發,添加的表體上有“行號”兩個漢字,不知道是否可以隱藏或者用英文單詞進行替換?

 

解答

產品的Bug,后續版本會處理。

【摘要】如何再次添加新插件?

版本:K310.2及以后版本

問題描述:我想在投料變更單的菜單上加入一個菜單項需要插入一個插件但投料變更單上已經有一個插件了我想了解一下怎樣才可以再插入一個插件呢

 

解答

點插件管理中的按鈕,可以通過瀏覽來選擇自定義插件,並選擇多個插件對象,BOS允許多個插件同時存在。

【摘要】下拉框里不能錄入半角逗號

版本:K310.2SP1

問題描述:在BOS單據中添加了一個下拉框控件,使用手工錄入值列表,如果錄入的值中包含半角“,”,則點擊確定的時候,會報錯“無效的過程調用或參數”,請問如何才能錄入逗號且不會報錯?謝謝

 

解答

產品的Bug,和輸入法有關。

【摘要】單據分錄數達到3000條,單據保存會不會出錯?

版本:K310.2SP2

問題描述:因為業務需要,可能一張單據的分錄數達到2000-3000條,這樣的BOS開發的單據,保存時是否有問題?參考:10.0的設備管理中,錄入50-60條分錄,保存時就會有問題出現。

 

解答

你提到那個問題是10.0的bug,目前K3BOS單據最大行數設定是2000行。如確實有需求可放開相應限制。但單據體字段過多,性能會受到一些影響,建議最好不要超過這個限制。

【摘要】Bos單據是否支持上傳下載功能?

版本:K310.2SP2

問題描述:BOS開發的單據是否支持K3分銷系統的上傳下載功能?

 

解答

Bos單據不支持k3分銷系統的上傳下載功能。

【摘要】文本字段錄入完畢回車不跳轉

版本:K310.2SP1+SP2

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

 

解答

備注型字段因為支持回車的錄入,所以不支持回車跳轉。經測試發現,文本字段放在備注字段后面,則文本字段錄入敲回車,也清空和備注字段的現象一樣,這可能是sp1和sp2的Bug,可以將備注字段放在行的第后一列,則就沒有問題。

【摘要】選單數據顯示?

版本:K310.2SP1

問題描述:單據界面有多個層,選單完成后,所有層的數據都被顯示出,只有手工切換層才能刷新

 

解答

這應該是個bug,詳細描述操作(最好提供帳套)后,提條程序錯誤的提單把。你試試補丁PT002046,這個問題sp2已經解決了的。

【摘要】不能實現記錄選擇。

版本:K310.2SP1+PT0704

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

 

解答

應該是你溝選了[選單時關聯整單]選項導致的,不選上就按分錄返回。

【摘要】如何刪除空行。

版本:K310.2SP2

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

 

解答

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

【摘要】沒有找到符合條件的記錄。

版本:K310.2SP2

問題描述:我在采購請購單與采購訂單建立一中間的流轉單,發現中間單無法正常的下推到采購訂單,出現如下錯誤,"沒有找到符合條件的記錄".

 

解答

這是sp2的一個Bug,請下載補丁PT003011。

【摘要】BOS套打

版本:K310.2SP2

問題描述:在表頭所有項目打印出后,為防止更改,在每個項目后加入&quot;#&quot;,且該&quot;#&quot;,尾隨打印內容體現,目前在套打模板中定義后,&quot;#&quot;顯示按固定位置,如果該項值很少的話,項目值和&quot;#&quot;之間有很大距離,無法實現管理要求,這個問題怎么解決??

 

解答

特殊需求,已制作補丁包PT003682。

【摘要】數量精度和單價精度

版本:K310.2SP2+10.3+10.2SP1

問題描述:在單據體中加上“數量”字段,用decimal的后面的小數點位太多位了;用integer的“數量”,怎么不可以指定到“單位”上去,請問大家有什么好辦法嗎;

 

解答

數量和單價的精度是跟着物料的[數量精度]和[價格精度]走的,如果客戶只存在整數物料精度,可以通過[基礎資料]-[公共資料]-[核算項目管理]-[004-物料修改]設置物料精度的缺省值為0。

【摘要】計算公式如何定義?

版本:K310.2SP2+10.3+10.2SP1

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

 

解答

如果要實現在修改數量列和單價列更新金額,須在“數量”列和“單價”列的[值更新事件]分別增加一條計算公式:金額=數量*單價。

【摘要】批次過濾

版本:K310.2SP2+10.3+10.2SP1

問題描述:關於批次號分別按輸入的物料、倉庫、倉位的過濾批次的范例代碼。

 

解答

環境說明:

物料:字段名稱FItemID

倉庫:字段名稱FDCStockID

倉位:字段名稱FDCSPID

批次號:字段名稱FBatchNo

 

1、 錄入倉庫后,依據倉庫的倉庫組過濾倉位。

update ICClasstableinfo set FFilter='FSPGroupID = (SELECT FSPGroupID FROM t_Stock WHERE FItemID = GetFldValue(FDCStockID,1))' where FKey='FDCSPID' and FClassTypeID=300000000

 

2、 根據輸入的物料、倉庫、倉位過濾過率批次號時。

update ICClassTableinfo set FFilter='(FItemID=GetFldValue(FItemID,1) and FStockID=GetFldValue(FDCStockID,1) and FStockplaceID=GetFldValue(FDCSPID,1))' where FKey='FBatchNo' and FClassTypeID=300000000

 

3、 更新BOS單據緩存

UPdate ICClasstype set fid=fid

【摘要】應收應付系統合同是否能超額執行

版本:K310.1

問題描述:應收應付系統合同是否能超額執行?

 

解答

10.1應收應付的合同的反寫由應收應付自行控制,且並為提供相應參數控制。10.2應收應付合同該由BOS實現,且提供了[合同是否允許超額執行]的系統參數選項。

【摘要】基礎資料錄入代碼時不馬上顯示相關的列表

版本:K310.2SP2+K310.3

問題描述:BOS單據引用基礎資料時,能否有設置,使在錄入代碼時不馬上顯示相關的列表,而是在回車之后才判斷是否存在代碼,因為客戶的某個基礎資料太大了,輸入一個字母要等N長時間才能夠反映。

 

解答

可以在單據錄入界面選項中選擇禁止下拉列表自動顯示。

【摘要】在插件中以新增、修改和查看方式打開另一單據

版本:K/3BOS所有版本

問題描述:在插件中以新增、修改和查看方式打開另一單據

 

解答

'********************************************

 

'功能:顯示BOS單據,顯示的方式為新增、修改和瀏覽

'參數:lClassTypeID—顯示BOS單據的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 參數類型

   '第一個參數 Optional ByVal lID As Long = 0 ;描述修改或查看的單據ID

   '第二個參數 Optional ByVal bShowGroup As Boolean = False ;如是基礎資料時,是否顯示分組

   '第三個參數 Optional ByVal BillStatus As Long = Enu_BillStatus_New ;顯示方式 0—查看;1—新增;2—修改

   '第四個參數 Optional ByVal dctData As KFO.Dictionary '單據初始值

   '**********************

 End With

 

 Set oDataSrv = Nothing

 Set oBill = Nothing

   

Exit Sub

err_ctr:

Set oDataSrv = Nothing

 Set oBill = Nothing

End Sub

【摘要】顯示BOS序時簿並返回選中的值

版本:K/3BOS所有版本

問題描述:請問在插件中怎樣顯示BOS序時簿並返回選中的值?

 

解答

'********************************************

 

'功能:顯示BOS序時簿並返回選中的值

'參數:lClassTypeID—顯示BOS單據的ID

'

'********************************************

 

Private Function ShowListByReturn(ByVal lClassTypeID As Long) As Object

                           

Dim oDataSrv As Object

Dim objLookup As Object

 

On Error GoTo err_ctr

 

Set oDataSrv = m_BillInterface.K3Lib.CreateK3Object("K3ClassTpl.DataSrv")

oDataSrv.ClassTypeID = lClassTypeID

If oDataSrv.showfilter Then

   Set objLookup = CreateObject("K3ClassLookUp.BillLookUp")

   objLookup.ClassTypeID = lClassTypeID

   Set objLookup.DataSrv = oDataSrv

  

  objLookup.Lookup

  

   Set ShowListByReturn = objLookup.VectReturn

       

End If

 

Set oDataSrv = Nothing

Set objLookup = Nothing

 

Exit Function

err_ctr:

Set oDataSrv = Nothing

Set objLookup = Nothing

End Function

【摘要】將當前單據轉化為另一單據,並無界面保存數據

版本:K/3BOS所有版本

問題描述:將當前單據轉化為另一單據,並無界面保存數據

 

解答

'********************************************

'功能:將當前單據轉化為另一單據,並無界面保存數據

'參數:lClassTypeID—顯示BOS單據的ID

'********************************************

 

Private Sub NoUISaveBill(ByVal lClassTypeID As Long)

       

Dim oDataSrv As Object

Dim oTableInfo As Object

Dim oBill As Object

Dim oData As Object

Dim oSrv As Object

Dim oPage2 As Object

Dim i As Long

 

On Error GoTo err_ctr

 

Set oDataSrv = m_BillInterface.K3Lib.CreateK3Object("K3ClassTpl.DataSrv")

oDataSrv.ClassTypeID = lClassTypeID

Set oTableInfo = oDataSrv.TableInfo

Set oData = oDataSrv.GetEmptyBill

 

For 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 '更改分錄號

Next

For 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 = Nothing

Set oBill = Nothing

   

Exit Sub

err_ctr:

    MsgBox Err.Description

Set oDataSrv = Nothing

Set oBill = Nothing

End Sub

【備注】

1、K/3 BOS保存方法Save的參數描述:

'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

'/********************************************************************/

'/*描述:單據保存

'/*參數:

'/*@ dctClassType KFO.Dictionary  單據整體信息模板

'/*@ dctData KFO.Dictionary 單據數據包

'/*@ dctLink KFO.Dictionary 選單關系模板,無選單為Nothing

'/*@ dctTableInfo KFO.Dictionary 單據字段模板信息

'/*@ sDsn String  K/3標准數據庫連接串

'/*@ vctClassTypeEntry KFO.Vector 單據體模板信息

'/*備注:

'/********************************************************************/

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

【摘要】隱藏選單時序時簿不需的菜單和工具欄

版本:K/3BOS所有版本

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

 

解答

在MenuBarInitialize事件中使用m_ListInterface.List.ShowMode判斷(查看和選單)1—查看;2—選單。

語法:If m_ListInterface.List.ShowMode = 1 Then ……end.

例:在選單時隱藏“編輯”菜單和工具欄

 If m_ListInterface.List.ShowMode = 2 Then

Dim oTool   As K/3ClassEvents.BOSTool

    Dim oBand   As K/3ClassEvents.BOSBand

    '*************** 開始設置 BOS 原有菜單 ***************

    '獲得 mnuEdit 菜單對象,並設置屬性

    Set oBand = oMenuBar.BOSBands("menu")

    Set oTool = oBand.BOSTools("mnuEdit")

    With oTool

         .Visible = False

         .Enabled = False

    End With

End if

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

版本:K/3 BOS所有版本

問題描述:如何在單據體中讓下一條分錄自動攜帶上一條分錄的數據(只是部分字段)

 

【解答】

示例代碼:

'物料錄入后,第二行的值自動默認第一行的值

If dct("FKey") = "FItemID" And row > 1 Then

    m_BillInterface.SetFieldValue "FBase_TH", m_BillInterface.GetFieldValue("FBase_TH", row - 1, Enu_ValueType_FFND), row '提貨地點

end if

【摘要】在Bos插件中如何處理隱身的二次登錄

版本:K310.2SP1

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

 

解答

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

2、     請參考下面代碼

Private Sub m_BillInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean)

Dim glvch As Object                         '中間層憑證對象

Dim mvch As KFO.Dictionary                  '待保存憑證頭

Dim mvchentry As KFO.Vector                 '待保存憑證分錄集

Dim entry As KFO.Dictionary                 '待保存憑證分錄

Dim mvchdetail As KFO.Vector                '核算項目明細集

Dim detail As KFO.Dictionary                '核算項目明細

Dim i, iCount As Long

Dim vValue      As Variant

 

'TODO: 請在此處添加代碼響應事件 MenuBarClick

Select Case BOSTool.ToolName

    Case "生成憑證"

       vValue = m_BillInterface.GetFieldValue("FUser1")

      

If Not (CStr(vValue) = "" Or CLng(vValue = 0)) Then

          MsgBox "當前合同已經生成憑證!", vbExclamation, "金蝶提示"

          Exit Sub

       End If

       

       '此處添加處理 生成憑證 菜單對象的 Click 事件

       Set mvch = New KFO.Dictionary

       mvch("FDate") = Now

       mvch("FGroup") = "金華泰項目"

       mvch("FReference") = m_BillInterface.GetFieldValue("FID")

       Set mvchentry = New KFO.Vector

      

       vValue = m_BillInterface.GetFieldValue("FInteger")              '合同金額

       

       '創建憑證分錄

       Set entry = New KFO.Dictionary

       entry("FExplanation") = m_BillInterface.GetFieldValue("FNote")

       entry("FAccountID") = m_BillInterface.GetFieldValue("FBase")

       entry("FDC") = 1

       entry("FAmount") = vValue

       '數量&單價

       entry("FQuantity") = 0

        entry("FUnitPrice") = 0

        entry("FMeasureUnitID") = 0

        '創建核算項目明細

        Set mvchdetail = New KFO.Vector

        Set detail = New KFO.Dictionary

        detail("FItemClassNumber") = "002"

        detail("FItemNumber") = "02"

        mvchdetail.Add detail

        

        Set entry("_Details") = mvchdetail

        mvchentry.Add entry

        Set mvch("_Entries") = mvchentry

        Set entry = New KFO.Dictionary

        entry("FExplanation") = m_BillInterface.GetFieldValue("FNote")

        entry("FAccountID") = m_BillInterface.GetFieldValue("FBase1")

        entry("FDC") = 0

        entry("FAmount") = vValue

        '數量&單價

        entry("FQuantity") = 0

        entry("FUnitPrice") = 0

        entry("FMeasureUnitID") = 0

        '創建核算項目明細

        Set mvchdetail = New KFO.Vector

        Set detail = New KFO.Dictionary

        detail("FItemClassNumber") = "002"

        detail("FItemNumber") = "02"

        mvchdetail.Add detail

               

        Set entry("_Details") = mvchdetail

        mvchentry.Add entry

        Set mvch("_Entries") = mvchentry

       

        Dim s As String

        s = "ConnectString={Provider=SQLOLEDB.1;User ID=sa;Password=ahyj;Data Source=JAMES;Initial Catalog=xt_3};UserName=administrator;UserID=16394;DBMS Name=Microsoft SQL Server;DBMS Version=2000;SubID=GL;AcctType=gy;Setuptype=Industry;Language=chs;IP=192.168.1.92;MachineName=JAMES;UUID=800A878D-F574-4877-B79C-D88AB721ECA0"

       

        Set glvch = CreateObject("EBSGLVoucher.VoucherUpdate")

                                 glvch.Create s, mvchs = "Update t_BOS_ht set fUser1=" & m_BillInterface.K3Lib.User.UserID & " where fid=" & m_BillInterface.GetFieldValue("FID")

       

        m_BillInterface.K3Lib.UpdateData s

        m_BillInterface.RefreshBill

       

        MsgBox "憑證生成成功!", vbInformation, "金蝶提示"

       

    Case "變更"

  End Select

End Sub

【摘要】如何在插件中獲取當前系統字符連接串?

版本:K310.2及以后版本

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

 

【解答】

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

 

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

 

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

【摘要】BOS單據插件里取分錄的合計值

版本:10.2后所有版本

問題描述:工業單據自定義里面有個GetSumGridText方法取得分錄某一列的合計值,現在BOS單據里面需要取某一列的合計,請問有什么方法可以調用。我注意到有個sum方法,但不知道該怎么用?里面帶BRow和ERow兩個參數,應該是起始行和結束行吧,但分錄的行是可以改變的,這兩個值怎么取得?

 

【解答】

Object.Sum (dct As Dictionary, [BRow As Long], [ERow As Long])

參數說明:

dct-字段的模板字典

BRow-合計開始行,可選參數,默認值是1

ERow-合計結束行,可選參數,默認值是最大行

 

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

Set dct = m_BillInterface.GetFieldInfoByKey("FTaxFor", "", 0)

dblTaxSum = m_BillInterface.Sum(dct)

【摘要】表體行的高度設置

版本:K310.2SP1+SP2+10.3

問題描述:表單的表體的行高的屬性在哪里,我找不到,如果發布后到主控台里去調,表體的標題行會同比例變化,非常不美觀。

 

【解答】

標體的行高目前不能調整。

【摘要】帶有輔助屬性的字段的值更新事件中調用輔助屬性,計算公式運行有誤

版本:K310.2SP1+SP2+10.3

問題描述:對於已攜帶輔助屬性的字段再定義值更新事件,如果值更新事件里包含該輔助屬性,計算公式無效。也就是值更新事件公式里調用的輔助屬性是更新前的。

 

【解答】

在插件中使用更新后事件。

【摘要】事務處理

版本:K310.2SP1+SP2+10.3

問題描述:1、BOS的插件開發中,事務怎樣處理啊?又不能直接操作數據庫。有什么好方法嗎?否則數據可能就亂掉了。2、在事務完整性處理上,目前的BOS插件還有很多需要改進。說個簡單例子:BOS是支持多插件的,那么多插件之間如何保證事務完整性呢?同樣是審核事件,有2個插件響應了這個事件,如果第一個插件通過了審核,但是第二個插件卻不能通過,那么第一個插件處理了的數據又如何回滾?

 

【解答】

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

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

【摘要】Bos單據插件中能否調用K3Billtransfer.dll組件

版本:K310.2SP1+SP2+10.3

問題描述:Bos 開發的單據還能不能調用 k3billtransfer.dll 這個組件?

 

【解答】

BOS 開發的單據不能調用 k3billtransfer.dll,只有在工業單據里能調用。

【摘要】基本單位數量在錄入完數量后仍然為空

版本:K310.2SP1+SP2+10.3

問題描述:新增BOS 單據分錄中有數量 及基本單位數量 字段, 基本單位數量關聯字段為數量, 但輸入完數量后,基本單位數量仍然為空。

 

【解答】

保存后基本單位數量就有了。

【摘要】BOSV10.1單據插件中如何向單據體逐行插入數據

版本:K310.1

問題描述:在BOSV10.2中,填充新行數據可以用m_BillInterface.InsertNewRowAndFill方法實現,但是在BOSV10.1中不知道用什么方法可以向單據體逐行插入數據?

 

【解答】

將10.1的KFO.DLL換成10.2 KFO.DLL,是兼容的。

m_BillInterface.Data("Page2").Add dctRow.CloneAll

【摘要】BOS單據選單返回時自動在表體添加一行分錄

版本:K310.2后所有版本

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

事件測試代碼如下:

Private Sub m_BillInterface_AfterSelBillBeforeFillData(ByVal dcData As KFO.IDictionary, ByVal dctLink As KFO.IDictionary)

 

Dim CoDict As KFO.Dictionary

Set CoDict = dcData("Page2")(1).CloneAll //拷貝第一條分錄數據
dcData("Page2").Add CoDict //添加到 dcData

dcData("Page2")(dcData("Page2").Count)("_-0001_FIndex2")("FFLD") = dcData("Page2").Count //更改分錄號

'Stop

set CoDict=Nothing

End Sub

 

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

 

【解答】

此方法在調試狀態下是不能把值傳過去的,編譯之后就可以了。

你的代碼有以下問題:

1、取分錄號使用dcData("Page2")(dcData("Page2").UBound)("FEntryID");

2、Vect的最大值用UBound,而不是count;

3、字段的key值使用m_BillInterface.TableInfo("map")("FPrice"),'FPrice是字段名。

正確的代碼是:

Dim CoDict As KFO.Dictionary

’dcData("Page2")(1)(m_BillInterface.TableInfo("map")("FPrice"))("FFLD") = 1000

Set CoDict = dcData("Page2")(1).CloneAll ''拷貝第一條分錄數據

dcData("Page2").Add CoDict '添加到 dcData

dcData("Page2")(dcData("Page2").UBound)("FEntryID") = dcData("Page2").UBound - 1 '更改分錄號

'Stop

Set CoDict = Nothing

【摘要】只有工具條及菜單欄的瀏覽數據窗口

版本:K310.2SP2及以后版本

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

 

【解答】

BOS中有一個自定義序事簿聯查接口,可以指定單據類型和過濾條件聯查所有新老單序事簿,不用彈出過濾條件。

【摘要】K3Bos表體如何設置合計

版本:K310.2SP2

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

 

【解答】

目前不能在界面上設置合計,(系統對數量和金額默認合計),如需對其他字段設置合計,需更改ICClassTableInfo.FSum的值為1。

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

版本:K310.2SP1+SP2+10.3

問題描述:如何設置通過BOS定義的字段的套打?目前在收款單通過BOS自定義了一個字段,那么在收款的套打設置里面怎么取到這個字段呢?

 

【解答】

在單據中添加一個字段保存后,打開這個套打文件中可以自已添加一個字段,在設置對象屬性時可以指定到單據中的這個字段。

【摘要】如何隱藏Bos單據中的層

版本:K310.2SP1+SP2+10.3

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

 

【解答】

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

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

三、多級審核篇

【摘要】批量審核

版本:K310.2SP1

問題描述:K/3 BOS 單據是否支持批量審核? 如果不支持, 自己可否編寫此方面的插件? 能否給過一段示例代碼? 序時薄接口對象現在沒有審核事件可供調用, 那所有的審核代碼都得在插件中自己寫嘛?

 

【解答】

K/3 BOS 單據不支持批量審核,目前還沒有這方面的插件,先自己編寫吧。序時薄中MultiCheckMgr是審核對象,其中包含了審核的各種方法,但編寫代碼比較難。

【摘要】設置為一級審核的Bos單據反審核后不能修改

版本:K310.2SP1

問題描述:BOS 開發的新單據. 啟用了多極審核,且只設置了一級審核; "修改無需反審到最后一級" 的選項也選中了. 在實際作業中,單據反審核后仍然不能修改? 這是什么原因? 用BOS 做了五張單據,經測試如果在序時薄 將單據反審核, 再打開單據, 可以修改;如果在序時薄界面, 打開未審核的單據, 審核后, 再進行反審核操作, 單據可以修改;如果在序時薄界面,打開已經審核的單據, 將單據反審核,單據還是不能修改。

 

解答

在序時薄界面,只能通過“查看”方式打開已經審核的單據,即使單據反審核了,任在“查看”狀態下,單據是不能修改的。

在K310.3中已解決此問題。

【摘要】能否使administrator對任何人審核的BOS單據進行反審核

版本:K310.2SP2

問題描述:只有一級審核的BOS單據,其他用戶審核的,有否這樣的設置,能夠讓administrator對其進行反審核。目前由於administrator既不是審核人又不是下級審核人,沒有這樣的權限。

 

解答

不能,除非管理員也是審核成員。

【摘要】實現多級審批同時需要更改審批的數量與單價

版本:K/310.2SP2及以上版本

問題描述:在BOS中可否實現多級審批同時需要更改審批的數量與單價的需求?

 

解答

10.2SP2以后的版本有“修改單據無需反審核到最末一級”的選項,但它能修改單據中所有的內容,再通過字段授權的方式控制單價和數量的權限。

【摘要】BOS字段多級審核后可以修改

版本:K310.2SP1

問題描述:BOS字段多級審核后可以修改

 

解答

BOS10.2增加多級審核的功能,所以IDE設計時也增加了[審核后鎖定]的狀態,如果是BOS新增的單據啟用多級審核后且該流程勾選了[修改無須反審核到最后一級]選項,在審核流程未完成之前,用戶都可以修改未勾選[審核后鎖定]的字段的內容。但單據流程審核結束后修改按鈕灰顯,用戶只能通過查看按鈕進入,因此時整單狀態為查看,用戶不能修改該張單據任何內容。如審核流程后仍有字段需要維護,可以通過在序時簿增加一個按鈕,然后在插件代碼中增加如下代碼:

Private Sub m_LstInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean)

 

Select case Bostool.name

case "Edit"

call m_LstInterface.LoadSelectedBill(IIf(CanEdit(vectSelect(1)("FInterID")), Enu_BillStatusExt_Modify, Enu_BillStatusExt_View))

        case else

            

   end select

End Sub

獲得單據修改狀態,BOS將根據設計時狀態鎖定/解鎖相應字段。

【摘要】多級審核跳轉

版本:K310.2SP1+PT0704

問題描述:對BOS單據設置多級審核流程,例如共有5級審核,想從3級審核依據某個條件跳轉到結束,設置的跳轉條件不起作用。跳轉條件只在審核級次內起作用(如從3級跳轉到5級可以,跳轉到結束不行)

 

解答

請打補丁PT001721解決多級審核跳轉問題。

【摘要】多級審核的操作

版本:所有版本

問題描述:Bos單據多級審核增加的“啟動多級審核”具體完成什么功能?客戶對原有的F4 、Shift+F4操作比較習慣,對現有的“啟動多級審核”、“多級審核”和“駁回審核”操作有比較大的意見。問能否統一設置為這種審核操作方式?

 

解答

這種問題產品是不好改了,只有讓客戶適應。

【摘要】插件的審核事件

版本:K310.2SP1+PT0704

問題描述:BOS單據插件里的BusinessCheck事件有何用途寫在BusinessCheck里面的代碼也不執行不知道這個事件到底是什么時候觸發的。在AfterBusinessCheck事件中寫的代碼在打了10.2SP1之后就不執行了,我把代碼放到BusinessCheck事件中也不執行,不知道什么原因,但AfterUnBusinessCheck中的代碼卻執行了。我只做了一級審核。AfterBusinessCheck事件和BusinessCheck事件觸發時點的問題,以查看狀態打開單據進行審核時,這兩個事件不觸發,只有在修改狀態打開單據並進行審核,這兩個事件才會被觸發。之前沒有打SP1的時候是沒有這個問題的。因為強制審核人必須要打開單據檢查后再進行審核,所以我在該單據的序時簿中把審核菜單去掉了,只能打開單據審核。不知道有沒有人遇到這個問題。

 

解答

經檢查,以查看狀態打開單據,進行多級審核,在業務審核級次被審核時,能夠觸發業務審核事件,另外,昨天發現的業務審核事件在某條件下會多次觸發的BUG已經修改,將會隨8.31日須完成的功能點一起發放。估計還是因為用戶沒有針對單據插件進行編碼,所以沒有捕捉到事件。

【摘要】有關多級審核的問題

版本:K310.2SP1+PT0704

問題描述:

  1. 1.   在對一張單據進行“多級審核流程”配置時,在對每一級審核進行配置時,業務審核級次、業務審核人、業務審核日期都只能是一樣的,這就導致在單據序時薄測試時,啟動多級審核后,多級審核中只能有其中某一級的審核人和審核日期有數據,其余審核人和審核日期字段都不能在相應級別審核完畢后記錄數據。
  2. 2.   在設置多級審核流程后,如果在某一級駁回審核,填寫的駁回意見不能看到。
  3. 3.   設置多級審核流程后,在單據運行時,“審核”並沒有像原有K/3系統中其它單據審核一樣出現在上方菜單下的按鈕上,而只能在菜單中啟動多級審核。
  4. 4.   在多級審核級別之間進行“流轉配置”時,只能在中間級別之間進行跳轉,如共有5級審核,想要在某一條件下4級審核完畢后就結束,無法實現,只能在1-5級之間跳轉。
  5. 5.    “流轉配置”時,只能增加一次流轉配置,即級別之間只能進行一次“添加關系”,且添加上的關系不能刪除。
  6. 6.   在設置“流轉配置”的“跳轉條件”時,字段列表中只有單據的單據頭字段,而沒有單據體字段。
  7. 7.   最不方便使用的是在單據定義時,一旦添加上字段之后便不能刪除,否則便會將單據上的所有字段全部刪除。新增的單據、多級審核流程、單據轉換流程保存后也不能刪除。在多級審核流程中進行流轉配置時添加上的關系不能刪除。
  8. 8.   在進行“單據轉換流程”定義時,不能由源單的單據體下推生成目的單的單據頭。

 

解答

1、     答復:每一級審核都已經記錄了審核人、審核日期、審核意見,在單據上“多級審核”頁可以很清楚的看到。單據序時簿則暫時沒有提供查看各級審核人、審核日期、審核意見的功能;這個和多級審核配置中的業務審核人、業務審核日期字段是無關的,業務審核人只在做業務審核的時候才會同時記錄,多級審核中有且只有一個級次能作為業務審核級次,所以也只需要一個字段作為業務審核人字段;

2、     答復:已經記錄了駁回意見,但暫時沒有提供駁回意見的查看。駁回意見會以消息的方式發送出去;

3、     答復:SP2中會進一步簡化、優化多級審核,本點在列;

4、     答復:9.30補丁中會增加一種屬性,提供給插件判斷流程是否已經跳轉到結束,讓插件有依據進行自動審核等操作,自動結束多級審核流程;

5、     答復:在關閉“啟用多級審核”選項並保存后,可以自由添加、刪除跳轉關系;

6、     答復:暫時沒有提供單據體字段;

7、     答復:10.2 SP增加了新功能,單據模版、多級審核配置、單據轉換流程、報表等都可以刪除;

8、     答復:暫沒有提供;

【摘要】合同進行多級審核提示需要Bos加密狗

版本:K310.2

問題描述:在10.2產品中對合同進行多級審核,在消息提示中,打開后提示需要BOS加密狗,但數據量只有一條,難道,10.2產品中自帶的審批流設置也需要BOS狗嗎?

 

 

解答

這個問題應該是Bug,計划在10月底V10.2SP補丁中解決。

 

四、單據轉換流程篇

【摘要】Bos單據與反審核相關的業務流程問題

版本:K310.2SP1

問題描述:工業單據,如銷售訂單和銷售出庫單:新增銷售訂單A並保存和審核==〉新建銷售出庫單B,選單整單選取訂單A,先不保存==〉反審核A,修改后保存審核A==〉保存並審核B。這個流程在Bos單據之間、Bos單據與工業單據之間都能夠實現,這樣造成了業務流程上的混亂。Bos單據,單據B1與B2為鈎稽關系,B1為上級單據:新建並保存和審核一張B1,然后新建B2整單關聯B1,然后保存和審核B2,此時B1仍然可以被反審核。這樣業務流程也發生了混亂。實際中有這樣的需求:某單據的制單人與審核人為同一人,而反審核人為另一人,目前的K/3 10.2無法實現,原來在10.1是可以的。這個需求怎么處理?

 

解答

目前控制不了,BOS單據引用后任可以反審核,在產品中確實這樣的,如需控制使用插件處理。

【摘要】新單推老單不能實現鈎稽功能

版本:K310.2SP1

問題描述:我作了個bos單據,只有單據頭,沒有單據體,現要下推生成外構入庫單,在單據關聯時, 提示與老單關聯必須輸入物料和計量單位,我設了單據頭的物料和計量單位后,還是提示必須輸入物料和計量單位。忽視此問題,在下推到入庫單時,物料的單位帶不出來,后期也加不上。我想知道,是不是只有單據體關聯才不會出錯,單據頭的物料和計量單位為什么不行。

 

解答

1、  在sp1的環境下新老單不能實現鈎稽功能,其他關聯關系功能也不健全。

2、  在SP2的環境雖然提示“老單關聯必須輸入物料和計量單位”,但選擇繼續能完成你需要的功能。

【摘要】系統BUG

版本:K310.2SP1+PT0704

問題描述:在K310.2+sp1 補丁的環境下,自己定義了一張新單據和已有的老單建立了鈎稽關系,設置了鈎稽字段關系,在做單據下推保存后,扣減數量一直為零。並且將關閉標志(數值型)設置為1時,還可以繼續下推,請問該怎么處理.

 

解答

1、   前產品確實存在如上問題,但后續版本(10.3以后版本會解決)。

2、 可以在序事簿插件的AfterSelList事件中編寫代碼來判斷關閉標志是否為1,從而判斷是否允許下推。

3、 可以在目標單據的中間層插件的AfterSave事件中編寫代碼來扣減源單的數量,給扣減數量賦值。

【摘要】未審核的老單據不能下推Bos單據

版本:K310.2SP2+10.3+10.2SP1(所有版本)

問題描述:單據流程系統默認只能選擇已審核的單據,現在客戶要求能否包括未審核的單據,即老工業單據保存后就可以下推生成自定義的bos單據。

 

解答

只能選擇已經審核的單據下推是在老工業單據序時簿里面控制的,選單時沒有此問題,即流程設計並不是默認只能選擇已經審核的單據。

【摘要】單據轉換流程中能否實現匯總下推?

版本:K310.2SP2+10.3+10.2SP1(所有版本)

問題描述:單據下推如何實現匯總下推,如幾張銷售出庫單下推生成一張bos單據,要求按照源單號、客戶進行匯總,即目標單中只要包含每張出庫單的合計數量和金額即可。

 

解答

由於合並下推/選單涉及的邏輯比較復雜(需要在目標單一條分錄里面記錄多條源單分錄的內碼,或者單獨用另外一個表來記錄,且涉及反寫數量的問題),現在BOS沒有支持,也沒有簡單的辦法可以支持,如果不需要數量扣減關系,即關聯關系為復制,不需要上下查,可以使用插件在下推生成單據后來合並。

【摘要】自定義的bos單據無法下推生成銷售費用發票。

版本:K310.2SP2+10.3

問題描述:自定義的bos單據無法下推生成銷售費用發票,提示下標越界。在定義單據轉換流程時提示必須包含物料等內容,而費用發票中是沒有物料的,自定義的bos單據中也沒有物料,不知道這個轉換流程如何定義,有什么辦法可以解決。

 

解答

費用發票由於其特殊性,在k3內部也是特殊處理才完成選單功能的,暫時沒有簡便的方法來通過流程設計完成選單功能。

【摘要】選單一致

版本:K310.2SP2

問題描述:做一Bos新單,用的是應付合同的模版,叫臨時合同,這個單據把單據頭子段全部刪除掉了。用復制關聯流程:應付合同->臨時合同,選多張源單合同,返回時提示:選多張單據時,核算項目必須完全一致。但是我的目標單據的單據頭上沒有核算項目。

 

解答

這是應收應付系統為實現新單推老單實現選單一致的功能在代碼里寫死的,如確實需要這樣做,可以提需求,研發出補丁。或者采用其它變通的方法實現。

【摘要】無物料編碼時,下推報錯

版本:K310.2SP2

問題描述:項目為一個數據接口:接口文件導入生成BOS單據;但接口文件中的物料和k/3中物料不能一一對應;現在考慮在BOS單據中不錄入物料,在老單中指定物料,單據保存時把老單中物料反寫到BOS單據中。出現的問題:K/3Bos 新增單據下推到老單關聯時,關聯關系有物料和計量單位字段。但客戶有時BOS新單上的物料無法確定,即不錄入物料編碼,下推報錯!

 

解答

你先在BOS單據將物料轉換好之后再下推到老單中,無法確定的物料可以使用一種通用的物料來代替,下推到老單后由用戶修改。但這種處理不好。

【摘要】合同字段帶到付款單

版本:K310.2SP2

問題描述:有個問題請教大家.要求在要把合同中的FRECEIVEAMOUNTFOR,FRECEIVEAMOUNT字段帶到付款單中,怎樣實現? 

 

解答

合同和付款單都是BOS單據,直接進入流程設計里修改,據在應付模塊里。

【摘要】下推發貨通知單的時候,所有自定義字段中的文本字段在發貨通知單都變成了0?

版本:K310.2SP1+Sp2+10.3

問題描述:新做的BOS單據(配置單)下推發貨通知單的時候,所有自定義的文本字段在發貨通知單都變成了0。

 

解答

這可能是系統的Bug,可以用update ICSelbills set faction='' where faction='0'清除錯誤的元數據即可解決。

【摘要】下標越界

版本:K310.2Sp2

問題描述:在10.2sp2下BOS做了一張單據下退生成銷售報價單出現下標越界錯誤

 

解答

這是系統的一個bug,可執行以下腳本來解決: delete ICTemplate where fid='g01' and ffieldname in ('FSelTranType','FSelBillNo') INSERT INTO ICTemplate (FID, FCtlIndex, FTabIndex, FCaption, FCtlType, FLookUpCls, FNeedSave, FValueType, FSaveValue, FFieldName, FLeft, FTop, FWidth, FHeight, FEnable, FPrint, FFontName, FFontSize, FSelBill, FMustInput, FFilter, FRelationID, FAction, FLockA, FROB, FDefaultCtl, FVisForBillType, FVBACtlType, FRelateOutTbl, FSysMustInputItem, FCaption_CHT, FCaption_EN, FInEntryForSPrint, FRMustInput, FIsVisibleForList, FCanEditedAllTime, FAllowCopy, FDefaultValue, FMaxValue, FMinValue, FFormat)

 

VALUES ('G01',35,15,'選單號:',5,-1,0,0,0,'FSelBillNo',0,0,2250,330,32,1,'宋體',9,0,0,'','','',1,3,1,31,'Kdtext',1,0,'選單號:','Number of document selection',0,0,1,1,0,'','','',' ')

GO

 

INSERT INTO ICTemplate (FID, FCtlIndex, FTabIndex, FCaption, FCtlType, FLookUpCls, FNeedSave, FValueType, FSaveValue, FFieldName, FLeft, FTop, FWidth, FHeight, FEnable, FPrint, FFontName, FFontSize, FSelBill, FMustInput, FFilter, FRelationID, FAction, FLockA, FROB, FDefaultCtl, FVisForBillType, FVBACtlType, FRelateOutTbl, FSysMustInputItem, FCaption_CHT, FCaption_EN, FInEntryForSPrint, FRMustInput, FIsVisibleForList, FCanEditedAllTime, FAllowCopy, FDefaultValue, FMaxValue, FMinValue, FFormat)

VALUES ('G01',34,14,'源單類型:',2,-35,0,3,1,'FSelTranType',0,0,2250,330,32,1,'宋體',9,0,0,'FID=84','FSelTranType','RESET,FSelBillNo,FRemark;',1,3,1,31,'Kdtext',0,0,'源單類型:','Src doc type:',0,0,1,1,0,'','','',' ')

GO

【摘要】10.2sp1 鈎稽后設過濾條件不起作用

版本:K310.2SP1+0704

問題描述:我的環境時10.2sp1+PT0704 ,源單和目標單都是bos單據.設置關系為鈎稽 ,過濾條件處打勾后, 選單時選的是所有單據,而不是根據過濾條件過濾后的單據 即 鈎稽后設過濾條件不起作用。

 

解答

經測試,的確存在如下問題,可以升級10.2sp2或10.3,或者寫如下插件來實現過濾功能

Private Sub m_BillInterface_BeforeSelBills(ByVal lSelBillType As Long, ByVal oDataSrv As Object, ByVal dctLink As Object, sFilter As String, dctParam As Object)

   if len(sFilter)>0 then

        sFilter = sFilter & " And FBase3=" & m_BillInterface.GetFieldValue("FBase")

   else

       sFilter=" FBase3=" & m_BillInterface.GetFieldValue("FBase")

    end if

       

End Sub

其中FBase3是源單表頭的部門字段,FBase是目標單表頭的部門字段。

【摘要】關聯復制

版本:K310.2SP2+10.3+10.2SP1

問題描述:在BOS中的“關聯復制”與“復制”有什么區別?在設計中應該怎樣運用?

 

解答

關聯復制與復制的區別在於,關聯復制會在目標單保存單據之間的關聯關系,這樣選單完成后可以通過上下查查詢單據之間的關系,而復制則不會。

【摘要】老單下推新單過濾條件的設定

版本:K310.2SP2+10.3+10.2SP1

問題描述:在10.2 Sp1的BOS選單時,可以設定ICClassLink中的FCondition實現原單過濾,但是升級成10.3后就報錯,具體錯誤不說了,經過測試發現選單后(就是彈出原單選擇界面后),會根據ICClassLink.FCondition的值進行了再次判斷。這樣就會產生一個表別名體系問題:ICClassLink.FCondition中表示的原單敘事簿的別名體系。選單后返回再次檢測時使用的是目標單據別名體系。但是這兩個別名體系肯定會產生沖突的。請問如何解決。就算我把目標單據的別名體系與原單的別名體系改成一致,這樣做是可以的。但是如果多選單就不能使用這個方法!

 

解答

這是老單序時簿在新單和選單返回時解析方案不一致造成的。解決方案如下:

利用老單固定的別名v1表頭,u1表體,采用子查詢的方式規避。

范例代碼如下:

update icclasslink set fcondition =' u1.FItemid in (select fitemid from t_icitem where fnumber like ''01''%)' where fdestclasstypeid=300000000 and fsourclasstypeid=-81

【摘要】在老單單據中選取新單如何選取多張單據

版本:K310.2SP2+SP1

問題描述:新單下推(鈎稽)老單時,在新單序時簿里可以選中多張單據下推生成老單,但在老單單據中選取新單是不能選取多張單據,怎樣解決?

 

【解答】

在ICClassLink.FRemark中加上“<FAction=,CanMultiSelBill/>”后就能選取多張單據。

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

版本:K310.2SP1+0704

問題描述:為什么在BOS單據下推到外購入庫單時無法選擇紅字單據,只能是藍字單據呢?BOS單據下推生成老單的時候,怎樣把BOS單據的單據號顯示在老單上呢?

 

【解答】

1、     BOS單據下推到老單沒有處理紅蘭字單據,默認就是藍字單據,目前下推沒有處理紅字單據。

2、     BOS單據下推生成老單的時候,使用鈎稽就可以把BOS單據的單據號顯示在老單上。

【摘要】如何用BOS單據體字段推成目的單據(老單)的單據頭字段

版本:K310.2SP2+SP1+10.3

問題描述:開發過程中需要從一張BOS單據下推生成一張K/3老單據,其中要從源單據的一個單據體字段推成目的單據的單據頭字段,在你拷貝給我們的文檔資料中明確說明不能由單據體推成單據頭,所以只能通過插件開發來實現。但是在插件開發中我們發現不能對目的單據即K/3老單據進行定位,所以不知道這個功能能否通過插件開發來實現,如果可以,怎么實現?

 

【解答】

在BOS單據中增加一個隱藏的字段,單據保存時用插件代碼自動把單據體要下推的字段賦值到單據頭這個字段中,然后再定義單據頭下推到單據頭,這樣就不用在老單據中定義插件了。

五、報表篇

【摘要】交叉分析報表

版本:K310.2SP1

問題描述:請問BOS定義的單據怎樣才能在交叉分析報表設計中看得到?再有怎樣才能使用視圖做一張虛擬的單據?這樣做有很多好處,可以利用現在的視圖,做序時簿,也可以用來做交叉分析報表。

 

解答

1、BOS定義的單據在V10.2中可以直接定義交叉分析報表,但在V10.2SP1中不能直接看到,需要打補丁PT001541,V10.2SP2已處理該問題。

2、使用視圖做單據可以參考BOS里面的單據:設備檔案(1002051)的制作方式,有什么疑問再交流。

【摘要】直接SQL報表

版本:K310.2SP2+10.3+10.2SP1

問題描述:直接SQL報表在SQL Server中運行通過,替換成[關鍵字]后無法保存。

 

解答

直接SQL報表保存前會通過常量替換[關鍵字]的方式來進行測試,BOS保存前拋出的錯誤實際上是SQL Server拋出的錯誤。通過SQL跟蹤器可以很清楚的看到最終錯誤SQL。

六、部署發布篇

【摘要】發布功能的名稱如何更改

版本:K310.2SP1+0704

問題描述:BOS 開發的單據, 功能已經發布到目標賬套中. 現發現發布功能(SubSystem 子系統)的名稱有誤, 請問  發布功能的名稱如何更改,才能使得所有客戶端的名稱同時更正過來? 我有修改過 :t_DataFlowSubSystem   和 t_suerSubSystem  兩個表, 但都只能在本機上或當前用戶有效.

 

解答

1、  客戶端臨時目錄下的DataFlowTemp目錄清空。

2、  將數據表中的t_DataFlowTimeStamp表清空。

【摘要】編碼規則丟失

版本:K310.2SP1

問題描述:我們從BOS提取出單據的SQL,運行到其他賬套后,發現編碼規則丟失,必須重新進行編碼規則的設置,請問用sql發布的話,如何才能不丟失編碼規則。

 

解答

從BOS導出的模板后請更改腳本中以下語句:

/****** Object:Data 單據編號:ICBillNo Script Date: 2006-01-06 ******/

If  not exists (SELECT * FROM ICBillNo WHERE FBillID=700000)

begin

INSERT   INTO ICBillNo(FBillID,FBillName,FPreLetter,FSufLetter,FCurNo,FBillName_CHT,FBillName_EN,FFormat,FPos,FCanAlterBillNo,FCheckAfterSave,FUseBillCodeRule,FDesc)

VALUES (700000,'采購入庫_BOS','','',2,'單據700000_BOS','Doc700000_BOS','00000000',700000,0,0,1,'00000002')

end

其中“FPreLetter”是單據編碼的前綴。

 

【摘要】怎樣將舊單改造數據結構的動作打包到Bos安裝包中?

版本:K310.2SP2

問題描述:在BOS開發過程中,在原來的表中增加了一列如: poRequest 中增加一個列 ColA 在利用K3BOS打包工具進行打包的時候怎么來把增加一列ColA的動作打在安裝包內?

 

解答

舊單改造(以單據類型是否小於200000000判斷)的數據結構變更,BOS目前尚未支持,還請手工調整。

范例代碼如下:

if not exists (select name from syscolumns where id=(select id from sysobjects where name='poRequest') and name='ColA' )

ALTER TABLE poRequest ADD ColA int not null default(0)

GO

【摘要】中間層上發布插件后,客戶端的插件dll文件沒有被更新。

版本:K3Bos10.2SP2+10.3

問題描述:我在客戶處,對編寫的插件單獨打包,在客戶的中間層上發布,但是客戶端的插件dll文件沒有被更新。客戶是2個中間層服務器,發布是在有BOS運行平台的加密狗的中間層上進行的。發布后,客戶端又使用了遠程組建注冊,仍沒有效果。

 

解答

1、SP2開始安裝包只需要在中間層服務器上安裝,客戶端自動部署。但SP2有一問題,由於打包過程中將文件進行了壓縮,解壓后文件日期變化,導致可能客戶端更新不到最新的組件,這種情況需要手工更新客戶端,V10。3版本此問題已解決。

2、元數據、功能部署、插件打在一個包中不會有問題,功能可正確運行。

【摘要】發布的BOS單據如何刪除

版本:K310.2SP2+10.3+10.2SP1

問題描述:已經發布的BOS單據如何從主控台中刪除?有沒有相應的SQL腳本?因為不刪除的話在重新發布時系統老是自動增加新的單據編號,容易引起用戶混亂。

 

解答

目前主控台和K3BOS都未提供相應功能,通過SQL變通實現,請參考如下SQL代碼:

delete from t_dataflowDetailFunc where fsubfuncid in (select FSubFuncID from  t_dataflowSubFunc where ffuncname='子功能名稱')

delete  t_dataflowSubFunc where ffuncname='子功能名稱'

update t_DataFlowTimeStamp set fname=fname

【摘要】Bos單據發布后主控台沒有顯示

版本:K310.2SP2+10.3+10.2SP1

問題描述:K3發布時雖然提示發布成功,但主控台仍沒有顯示

 

解答

打開子系統分組和子系統明細的屬性,檢查適應帳套類型是否一致。

【摘要】BOS部署客戶端智能升級失敗

版本:K310.2SP2+K310.3

問題描述:進入主控台報[BOS部署客戶端智能升級失敗]

 

解答

1、重新導入中間層應用程序EBOBOS組件K3MBOSInstall.dll組件;

2、將應用程序EBOBOS的標示-帳戶改為交互式用戶。

【摘要】打包應用程序是否有類似的InstallShield的腳本參考

版本:所有版本

問題描述:如何打包應用程序?有一個項目需要發布,如何像開K/3發布補丁一樣,自動找到金蝶的安裝目錄,自動注冊組件,在中間層連接帳套,執行SQL語句。是否有類似的InstallShield的腳本參考?

 

解答

請嘗試使用BOS里的部署功能(除BOS的插件外,其他客戶端和中間層組件也能發布),使用InstallShield比較復雜。《客戶化開發知識庫v1.0》文檔中有使用InstallShield制作安裝包的說明。

在最新的BOS V10.2SP中,提供了“一次環境部署,所有客戶端自動更新”的功能,即在客戶環境中一次部署完畢后,所有客戶端登陸中間層時,能自動更新客戶端組件,減少了重復安裝客戶端的工作量。

七、其他

【摘要】關於BOS的加密問題

版本:K310.2SP1+0704

問題描述:現在有個客戶的版本是10.2+sp1+704,客戶自定義了一個應收合同的多級審核,系統自動放送的消息提示需要BOS加密狗,是不是客戶需要購買BOS運行平台?

 

解答

客戶需要購買BOS運行平台才能使用多級審核的功能。客戶需要購買BOS運行平台才能使用多級審核的功能。

【摘要】數據權限管理

版本:K310.2SP2

問題描述:怎樣才能獲得,該用戶具有哪些數據查詢權限呢?都涉及到哪幾張表?Access_BOS200000?這些表和t_user 是關系呢?我通過什么方式的查詢能夠直接查詢到該用戶具備的數據權限呢?

 

解答

尚無明確答復,留待蔡波補充。

【摘要】在使用citrix客戶端時,調用出BOS過濾界面后,選擇下拉列表后出錯

版本:K310.2SP2+10.3+10.2SP1(所有版本)

問題描述:在使用citrix客戶端時,調用出BOS過濾界面后,選擇下拉列表后出錯

 

解答

citrix客戶端版本未打SP3的情況下選擇16位色進入會造成如上問題,選擇256色或打上citrix Sp3后該問題消除。

【摘要】關於Bod已過期問題的處理。

版本:K310.2SP2+10.3

問題描述:大家在開發過程中,遇到BOS已過期時怎么辦?

 

解答

因BOS10.2加密策略調整,請向總部申請BOS設計運行狗。

【摘要】中間層插件

版本:K310.2SP1

問題描述:我用金蝶BOS的客戶端向導生成一個編輯窗口的客戶端,然后自己寫了一個中間層,沒有中金蝶BOS的中間層向導生成。現在在服務器上運行正常,但在客戶端上報組件不能創建。請問為什么?

 

解答

估計你寫的中間層組件並不是BOS中間層插件,如果只是一個普通的中間層組件,需要為該組件進行遠程組件配置。

如果你的中間層組件並不需要捕獲BOS單據中間層事件,請直接使用m_BillInterface.K3Lib.GetData(或UpdateData)執行數據庫操作,而不用另外建立中間層組件。

【摘要】BOS插件調用工資系統匯總表

版本:K310.1

問題描述:如果使用K/3BOS的插件功能調用工資管理系統的<工資匯總表>?

 

【解答】

在BOS插件中用以下代碼可以調出"工資匯總表

Dim objSrv as Object

Set objSrv = CreateObject("PAReport.PAVrpt")

call objSrv.PAPayRpt(103)

【摘要】bos插件中如果發生任何錯誤,在k3界面中不會出現任何提示

版本:K310.2SP1+0704+SP2+10.3(所有版本)

問題描述:現在bos插件中如果發生任何錯誤,在k3界面中不會出現任何提示,這樣一旦插件不正常的話無法看出,是否只能在插件中自己捕獲錯誤信息?

 

解答

本來就應該在插件中要做錯誤處理。開發部項目組也是這樣處理的。而且有錯誤處理也是k3開發的編碼規范之一。

【摘要】以Administrator主控台設置刷新其他用戶主控台設置

版本:K310.2SP2+10.3+10.2SP1

問題描述:以Administrator主控台設置刷新其他用戶主控台設置

 

解答

10.4基礎系統部功能點,目前通過SQL變通實現,請參考如下SQL代碼:

delete t_DataFlowTimeStamp where fname not in ('dataflow16394','dataflow')

insert into t_DataFlowTimeStamp(FName) select 'dataflow'+convert(char(5),t1.FUserID) from t_user t1 where t1.fuserid>16394

delete t_UserTopClass where fuserid>16394

insert into t_UserTopClass(FTopClassID,FTopClassName,FTopClassName_EN,FTopClassName_CHT,FIndex,FAcctType,FVisible,FUserid)

select FTopClassID,FTopClassName,FTopClassName_EN,FTopClassName_CHT,FIndex,FAcctType,FVisible,t2.FUserid

from t_UserTopClass t1,(select fuserid from t_user where fuserid>16394) t2 where t1.fuserid=16394

update t_DataFlowTimeStamp set fname=fname

【摘要】系統幫助文件的掛靠

版本:K310.2SP2+10.3

問題描述:如何使用系統幫助文件的掛靠?

 

解答

update t_DataFlowSubSystem set fhelpfilename='二次開發系統幫助.CHM' where fname='明細子系統名稱

【摘要】圖紙管理

版本:K310.2SP2+10.3

問題描述:客戶的產品是通過圖紙來制造的,圖紙有些是客戶自己提供標准圖紙,有些是客戶的需求自己根據需求畫出來的,報價單很大的部分是根據圖紙來的,而且圖紙是公司的機密。現在用戶需求是圖紙需要有嚴格的權限控制,最好能夠放在數據庫里面統一管理,有圖紙單據有:報價單,銷售定單,合同;現在我們的K/3v10.2的附件的權限不好管理不能滿足客戶的需求。如何提供解決方案?

 

解答

1、     這樣的話可以對圖紙管理進行開發(如果對方有PDM系統就不需要),圖紙存放可以用局域網FTP或數據庫存儲解決,后者比較容易進行權限控制,自己設定權限控制,下載、瀏覽、更新、刪除,都能進行控制;而且關於圖紙管理也比較容易解決,如圖紙的版本控制。

2、     K/3 BOS解決不了。

【摘要】外貿報價單

版本:K310.2SP1+SP2+10.3

問題描述:客戶需要開發一張外貿報價單,里面涉及到物料對應表的內容,對應代碼具體能實現的功能跟現有的報價單的一致,現在不知道怎么樣能夠具體的實現這樣的功能,因為BOS的基礎資料里面沒有物料對應表,可以新增BOS基礎資料和物料對應表共用一個表名,但是怎么可以做到跟原有的報價單在物料對應這一塊的一摸一樣的功能。

 

解答

不可能具有原來一模一樣的功能,“BOS新增基礎資料、映射到原有的數據表或視圖”方式只能提供數據映射功能,保證能通過F7選擇原有的數據。但由於原有數據的業務邏輯上的不可控,因此在實際操作過程中建議對這種基礎資料隱藏增加、刪除、修改等功能,來保證系統的穩定性。

在這里的物料對應表沒有基於BOS開發,因此不能在外貿報價單上直接引用物料對應表,可以通過映射物料對應表的物理表方式滿足客戶需求。

具體操作:

1、新增一個BOS基礎資料,把主表映射到表ICItemMapping。表ICItemMapping里面已經有數據。

2、把BOS基礎資料里代碼字段映射到FMapNumber字段,名稱字段映射到FMapName,保存。

3、BOS單據序時薄測試的時候並不能把表ICItemMapping里面已有字段的內容顯示出來,序時薄為空。

【摘要】如何在單據中做一個可以選擇,又可以隨意錄入的字段?

版本:K310.2SP1+SP2+10.3

問題描述:如何在單據中做一個可以選擇,又可以隨意錄入的字段?客戶要在單據上加入一個“送貨地點”,送貨地點有一部分是固定的,還有一部分是只用一次,所以客戶需要當是固定送貨地點時的就進行選擇,對於選不到的就直接在單據上打字(也就是不錄入BOS基礎資料中)。

 

解答

在單據上增加一個文本類型的字段(送貨地點),通過插件在菜單上增加一菜單項(選擇送貨地點),並在插件中實現如下功能:

1、判斷客戶的送貨地點類別,

2、如果是固定送貨點,則菜單項可用,點菜單項選擇“送貨地點”基礎資料,返回值填入字段中(只返回名稱即可)

3、如果是一次性送貨點,則菜單項不可用,可手工在單據上輸入送貨地點。

當然上面的還可以更細化,比如固定送貨點時,“送貨地點”只能選擇,不能錄入等等。

【摘要】如何將BOS單據的稅率攜帶到下游老單據

版本:K310.2SP1+SP2+10.3

問題描述:如何在把BOS單據的稅率攜帶到下游老單據?BOS新做的單據稅率是基礎資料屬性來做的,但是K/3的老單據的稅率不是基礎資料屬性,所以BOS單據下推生成老單據的時候怎么樣攜帶稅率下去呢

 

解答

可以將BOS的單據稅率用小數類型描述,在基礎資料值更新事件中,自動將基礎資料的稅率帶到單據稅率中,然后就可以關聯到K/3來單據中。

【摘要】客戶的車間管理的單據與我們K310.2的差異很大,可否用Bos開發

版本:K310.2SP1+SP2+10.3

問題描述:客戶的車間管理的單據與我們K310.2的差異很大,無法使用K3的車間來滿足客戶需求。從派工單,到工序匯報,到最后的計時計件工資,都有差異,比如派工單,K3的表頭是客戶單據的表體,而K3的表體是客戶單據的表頭。但單據流是基本一致的。請問這樣的開發用BOS是否可行?還是單獨寫程序比較好?哪個綜合起來效果最佳?另外,分錄是否可以把字段豎着表示?把行變成列,把列變成行?

 

解答

K/3 BOS 的單據為主表-明細表的一對多結構,如你的單據可以設計成這種結構即可用BOS實現,如為特殊結構單據,如無法變通,只能自行開發了。“分錄是否可以把字段豎着表示”不能行變成列,但如果分錄為單條紀錄,可以用常用字段庫中的字段或自定義字段實現。

【摘要】修改應收應付模板

版本:K310.2

問題描述:有個客戶,需要做接口,用到應收應付模塊,但有些要求比較特殊,需要修改應收模板。K/3 版本10.2,因為應收應付是BOS做的,所以我想在現有應收模塊基礎上進行修改,BOS設計界面可以調出來應收款管理,但不能發布。我想問在現有應收款管理上修改,可行么?

 

解答

應收款管理屬於標准模塊,暫時沒有提供部署發布功能,但可以在客戶運行環境中進行修改,環境如下:K/3 V10.2SP1+PT00704。

【摘要】客戶在正式上線使用時,需如何購買站點數

版本:所有版本

問題描述:請問用K/3 BOS開發的多種單據后,客戶在正式上線使用時,需如何購買站點數?是統一並發的嗎?

 

解答

底價5萬元人民幣,包括6個站點,每增加一個站點2000元人民幣;客戶也可以用20萬元買斷,沒有站點限制。是統一並發的,與單據數量無關,只與並發站點相關。

【摘要】在K/3 BOS中能否打印一張復雜的單據

版本:所有版本

問題描述:在K/3 BOS中能否打印一張復雜的單據?需要結合三張單據的內容進行打印。用兩個以上的表體。其中一張單據的表頭中一部分數據需要和表體的數據合在一起組成一個表體打印。其他部分數據在表頭或其他的表體中打印。

 

解答

K/3 BOS套打只能是每個單據體制作一種套打。一般來講,各單據體只具有聯合關系,不具備內外連接關系。

【摘要】恢復K/3 BOS插件開發向導菜單按鈕

版本:所有版本

問題描述:最近我在網上下了一個不知名的程序安裝后隨即卸了,可VB6運行時報錯,我就重新修復安裝了一下,但原來的K/3 BOS插件開發向導菜單按鈕不見了,這樣開發BOS插件很不方便,我想能否注冊一下BOS組件就能解決問題?

 

解答

經過試驗證明,以下注冊表代碼可以使VB中消失了的BOS插件向導重新找回來,或者使用附件中的注冊表文件。

Windows Registry Editor Version 5.00

 

[HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\6.0\Addins\K3BOSPLUGINSADDIN.Connect]

"FriendlyName"="K/3 BOS PlugIns Maker VB AddIn"

"Description"="K/3 BOS PlugIns Maker VB AddIn"

"LoadBehavior"=dword:00000003

"CommandLineSafe"=dword:00000000 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM