金蝶 - k3 - BOS开发百问百答 下载本文

内容发布更新时间 : 2024/5/6 0:17:14星期一 下面是文章的全部内容请认真阅读。

中间层插件

BOS插件调用工资系统汇总表28

bos插件中如果发生任何错误,在k3界面中不会出现任何提示29 以Administrator主控台设置刷新其他用户主控台设置 29 系统帮助文件的挂靠 图纸管理 外贸报价单

如何在单据中做一个可以选择,又可以随意录入的字段 31 如何将BOS单据的税率携带到下游老单据 31

客户的车间管理的单据与我们K310.2的差异很大,可否用Bos开发32 修改应收应付模板

客户在正式上线使用时,需如何购买站点数 33 在K/3 BOS中能否打印一张复杂的单据33 恢复K/3 BOS插件开发向导菜单按钮34 438:对象不支持属性或方法34

主控台中,Bos单据可以查询,但不能新增 35 Bos自动关闭

BOS在主控台组件中所属的系统标36

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

客户端无法打开BOS设计平台开发的业务单据 36 SQL自动停止 37

防火墙可能会对K/3的接口造成中断的影响37 如何在插件中获取某个单元格的锁定状态 38

beforesendmessage事件在什么状态下触发的? 38

工业单据(老单据)的客户端插件为何无法起作用? 39 工业单据(老单据)的中间层插件为何无法起作用? 39 如何为工业单据(老单据)的开发插件? 41

------------------------------------------------------

百问回答:

一、基础资料篇 【摘要】:单据自定义无法看到bos 定义的基础资料 【版本】:K3v10.2SP2

问题描述: 在单据自定义中增加自定义字段时,需要选择用 bos 定义的基础资料,如何 设置。单据自定义的高级页签上选择基础资料下拉框中无法看到 bos 定义 的基础资料;跟踪 Sql,在 ICChatBillTitle 中有自定义字段属性的相关

设置,如 FTableName、FLookUpClassID 等字段。把记录改成 BOS 基础资料 对应的信息,但是无法生效。 解决方法: 在10.2里工业单据自定义工具不能使用BOS单据的基础资料,建议使用核算项目来定义

基础资料,即可在工业单据中使用,也可在BOS单据中使用。

【摘要】:在调出基础资料序时簿时,过滤出需要的基础资料 【版本】:K3v10.2SP1&v10.2SP1&v10.3

问题描述: 能否对 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

【摘要】:插件实现过滤从过去时间到现在的所有基础资料 【版本】:K3 V10.3 以上

问题描述: 如何实现在打开 BOS 基础资料序时薄时仅显示从过去某一时间到现在的所 有基础资料? 客户化开发技术资料——K/3 BOS开发百问百答

解决方法: 假设有个基础资料,其为 基础资料200000003 表头表为 t_BOS200000003 其表头上有个日期字段FDate,

由于基础资料中数据非常多,现想在序时簿上展示2008-01-07到现在的基础资料,则主 要插件代码如下:

Private Sub m_BaseListInterface_MenuBarInitialize(ByVal oMenuBar As K3ClassEvents.MenuBar) Dim dct As Dictionary

Set dct = New Dictionary

dct(\ t_BOS200000003.FDate <= \

Set m_BaseListInterface.BrowseCtl.ExternalCondition = dct

Set dct = Nothing End Sub

【摘要】:查找某个物料在某个仓库中的数量和精度 【版本】:K3 V11.0 多语言及以下版本 问题描 述:

如何查找某个物料在某个仓库中的数量和精度? 解决方 法:

ICInventory 为实仓库 POInventory为虚仓库 StockID 仓库ID ItemID为物料ID

select

sum(Round(t1.FQty,t2.FQtyDecimal)),SUM(Round(ISNULL(t1.FSecQty,0),t2.FQtyDecimal)) AS FSecQty from ICInventory t1 INNER join t_IcItem t2 ON t1.FItemID = t2.FItemID INNER JOIN t_Stock ts ON t1.FStockID = ts.FItemID WHERE t1.FStockID=\ AND t1.FItemID=\

【摘要】:插件中K3Lib.GetStockQty 函数的使用 【版本】: K3 V11.0 多语言及以下版本

问题描述: 如何查找某个物料在某个仓库中的数量和精度? 解决方法: GetStockQty这个方法是不分虚仓和实仓。

dctParams应该这样封装:

Dim dctParas As KFO.Dictionary Dim lngQtyDecimal As Long

dctParas(\= 该物料的辅助属性 ID 号 '在表 ICItemAuxProp 中可以查客户化开发技术资料——K/3 BOS开发百问百答 到

dctParas(\该项会在函数 GetStockQty 调用后,赋上该物料的 数量精度,即物料的数量含有多少位小数位

m_BillInterface.K3Lib.GetStockQty lngItemID,lngUnitID,dctParas

lngQtyDecimal = val(dctParas(\ 客户化开发技术资料——K/3BOS开发百问百答

客户化开发技术资料——K/3 BOS开发百问百答

二、业务单据篇 【摘要】:K3BOS单据(新)中的数量字段怎样才能控制到两个小数 【版本】:K3v10.2SP1&vSP2&v10.3

问题描述: 用 K3BOS 设计的单据中的数量字段小数位默认是 10 位,怎样才能控制到两

个小数?

解决方法: 通过以下方式增加字段时:

物料->计量单位->数量,数量将按照物料定义的精度来处理,否则缺省按照十 位处理,如果需要定义字段为某个固定的精度,可以使用小数字段,通过该字 段的小数位属性来控制

【摘要】:单据上显示各级审核人和审核日期

【版本】:K3v10.2SP2

问题描述: 多级审核栏目不分成第二个 Label,而是在单据上有每级审核人和日期显 示。

解决方法: 如果用系统的多级审核流程就会有多级审核的业签。可以在单据上增加多几个 审核人、 审核日期, 在单据插件的AfterMultiCheck 事件中反写单据上的审核人、 审核日期。

【摘要】:多层的BOS单据,能否将人员权限按层划分 【版本】:K3v10.2SP1&K3v10.2SP2&K3v10.3

问题描述: 直销单据分为采购和销售两个页,采购内勤组的成员只能看到采购页而不 能看到销售页,而销售内勤组的成员只能看到销售页而不能看到采购页 客户化开发技术资料——K/3 BOS开发百问百答

解决方法: Bos 单据不能按层进行授权,可以通过数据授权和字段授权的方式变通实现此

类需求.

【摘要】:自动启动审核和自动选单 【版本】:K3v10.2SP

问题描述: 打开一个新单据的同时,能自动弹出选单的界面,同时显示要选择的单据。 10.2 SP1 在单据保存后,自动启动审核。如何在插件中调用“选单”和“启 动审核”的 BOS 的内部处理事件。 解决方法: 1、 自动启动审核: 在AfterSave事件中使用以下代码 Dim bStatus As Boolean bStatus =

m_BillInterface.MultiCheckMgr.MultiCheckBill(m_BillInterface.Data(\ 2、 选单调用: BOS单据

m_BillInterface.BillCtl.DoSelBill lClassTypeID '(原单的ClassTypeID) 工业单据

【摘要】:只能删除和修改本人制作的单据。 【版本】:K3v10.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 \

strSQL = \(当前单据制单人) From t_Sales(当前单据主 表名) Where FID(当前单据主键子段)=\ & m_ListInterface.GetCurrentSelRowInfo(\