金蝶 k3 BOS开发百问百答(2)

2019-08-30 15:17

【摘要】:在调出基础资料序时簿时,过滤出需要的基础资料 【版本】: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(\

lBillerID = m_ListInterface.K3Lib.GetData(strSQL)(0) If m_ListInterface.K3Lib.User.UserID <> lBillerID Then

MsgBox \只能删除和修改本人的单据\提示\客户化开发技术资料——K/3 BOS开发百问百答

Cancel = True End If Case Else End Select End Sub

【摘要】:获取Bos单据单据体已录信息的条数 【版本】:K3v10.2SP1

问题描述: 写插件时,如何得到单据体的已录信息的条数 解决方法: 单据体的已录的条数用下面的方法可得到。 m_BillInterface.Data(\

注意:最后一条可能是空记录,要判断(if 分录关键子段或必填字段 <>\。

【摘要】:插件中获取单据上控件的位置、尺寸信息 【版本】:K3v10.2SP1

问题描述: 插件开发中, 如何获取BOS 单据上某个控件的位置、尺寸信息?能否用代 码动态修改它们的位置?

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

m_BillInterface.BillHeads(1).BOSFields(\,其中“FDate”是控件 的名称,也可以用它来改变控件的位置。

【摘要】:关联自定义核算项目 【版本】:K3v10.2SP2 客户化开发技术资料——K/3 BOS开发百问百答

问题描述: 新建的 BOS单或原有的 BOS 单上如何关联自定义的核算项目基础资料 解决方法: 修改ICClassTableInfo中

FLookupClassID,FSRCFieldName,FSRCTableName,FDSPFieldName,FFNDFieldName。

【摘要】:是否允许插件自定义查询条件 【版本】:K3v10.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

【摘要】:填充分录行 【版本】:K3v10.2SP2

问题描述: 一张单据有几百条分录, 每条分录数据都是通过插件填入的.如果使用 setFieldValue 方法一个字段一个字段填入, 速度非常慢. 是不是有更好 的方法填充行数据

解决方法: 可以试试用insertnewrowandfill方法插入一新行。 示例如下:

'批量插入行数据 Dim i As Long For i = 1 To 10

m_BillInterface.InsertNewRowAndFill 2, i, \ \ Next

需要注意的是查找类型的字段只要给出编码即可,基础资料属性(如物料名称等)不客户化开发技术资料——K/3 BOS开发百问百答

需要赋值。

【摘要】:在 Bos 单据按 F7 查询供应商信息,按 F9 查询采购价格管理信息。 【版本】:K3v10.2SP1&PT0704

问题描述: 在新增采购申请单时,在分录中的供应商按 F7 能选择供应商信息,按 F9 能 选到采购价格管理信息,如何在新单中也添加一个供应商,也实现上述功能 解决方法: 使用MenuBarClick事件实现F7 1、 BeginEdit事件

If dct(\要处理字段FKey“ Then

m_BillInterface.MenuBar.BOSTools(\ End If

2、 MenuBarClick

If BOSTool.ToolName = \ m_BillInterface.GetActiveField dct, col, row If dct(\

m_BillInterface.BillCtl.DoSelBill 200000104 '(原单的ClassTypeID) End If End If

3、 采购价格管理的调用接口,结合上述所说使用:


金蝶 k3 BOS开发百问百答(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小学英语三年级下阅读周周练(第七周)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: