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