金蝶_k3_BOS开发百问百答 下载本文

解决方法: 可以在数据库里写执行如下代码实现:(下面例子是添加审核的过滤条件) 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开始。

【摘要】:如何再次添加新插件 【版本】:K3v10.2 及以后版本

问题描述: 在投料变更单的菜单上加入一个菜单项,需要插入一个插件,但投料变更 单上已经有一个插件了,如何才可以再插入一个插件 客户化开发技术资料——K/3BOS开发百问百答

解决方法: 点插件管理中的按钮,可以通过浏览来选择自定义插件,并选择多个插件对象,BOS允

许多个插件同时存在。

【摘要】:单据分录数达到 3000 条,单据保存会不会出错 【版本】:K3v10.2SP2

问题描述: 因为业务需要,可能一张单据的分录数达到 2000-3000 条,这样的 BOS开 发的单据,保存时是否有问题?参考:10.0 的设备管理中,录入 50-60 条分 录,保存时就会有问题出现。

解决方法: 这个问题是 10.0 的 bug,目前 K3BOS 单据最大行数设定是 2000 行。如确实有需求可放

开相应限制。但单据体字段过多,性能会受到一些影响,建议最好不要超过这个限制。

【摘要】:批次过滤 【版本】:K3v10.2SP1&K3v10.2SP2&K3v10.3

问题描述: 关于批次号分别按输入的物料、仓库、仓位的过滤批次的范例代码。 解决方法: 环境说明: 物料:字段名称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 客户化开发技术资料——K/3 BOS开发百问百答

FStockplaceID=GetFldValue(FDCSPID,1))' where FKey='FBatchNo' and FClassTypeID=300000000 3、 更新BOS 单据缓存 UPdate ICClasstype set fid=fid

【摘要】:应收应付系统合同是否能超额执行 【版本】:K3v10.1

问题描述: 应收应付系统合同是否能超额执行。

解决方法: 10.1应收应付的合同的反写由应收应付自行控制,且并为提供相应参数控制。10.2应

收应付合同该由BOS实现,且提供了[合同是否允许超额执行]的系统参数选项。

【摘要】:基础资料录入代码时不马上显示相关的列表 【版本】:K3v10.2SP2+K3v10.3

问题描述: BOS 单据引用基础资料时,能否有设置,使在录入代码时不马上显示相关的 列表,而是在回车之后才判断是否存在代码,因为某个基础资料太大了, 输入一个字母要长时间才能够反映。

解决方法: 可以在单据录入界面选项中选择禁止下拉列表自动显示。 客户化开发技术资料——K/3 BOS开发百问百答

【摘要】:在插件中以新增、修改和查看方式打开另一单据 【版本】: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(\ oDataSrv.ClassTypeID = lClassTypeID

Set oBill = CreateObject(\ 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 所有版本 客户化开发技术资料——K/3 BOS开发百问百答

问题描述: 请问在插件中怎样显示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(\ oDataSrv.ClassTypeID = lClassTypeID If oDataSrv.showfilter Then

Set objLookup = CreateObject(\ 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 客户化开发技术资料——K/3 BOS开发百问百答

Dim oPage2 As Object Dim i As Long

On Error GoTo err_ctr Set oDataSrv =

m_BillInterface.K3Lib.CreateK3Object(\ oDataSrv.ClassTypeID = lClassTypeID Set oTableInfo = oDataSrv.TableInfo Set oData = oDataSrv.GetEmptyBill

For i = 1 To m_BillInterface.Data(\ Set oPage2 = oData(\

oData(\ '添加到 dcData

oData(\更改分录号 Next

For i = 1 To m_BillInterface.Data(\

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

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