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

2019-08-30 15:17

Dim obj As Object

Set obj = CreateObject(\ With obj

.CallByBill = True

.SelICItemID = '当前物料行内码 .CategoryBySupply = false .SelSupID = '供应商内码 .PriceType = 1 .Show 1 End With

Set obj = Nothing

【摘要】:如何可以取到单据编号的组件 【版本】:K3v10.2SP2 客户化开发技术资料——K/3 BOS开发百问百答

问题描述: 导入一张组装单, 组装单是一张BOS单据。 得到单据编号的组件是怎样的? 接口是什么?

解决方法: Set obj = CreateObject(\

GetThisBillNo = obj.GetBillNo(sDsn, ClassID, sKey, bGetDeleteNo, bSave) 接口描述:

'/*描述:得到一种业务类型的编号 '/*参数:

'/*@ bGetDeleteNo 是否获取空号,这种单据设置了删除的空号被保存才有效,已经无 效,只是保持兼容调用接口

'/*@ bSave 是否需要修改新的最大单据号 '/*@ ClassID 类型 '/*@ sDsn 连接串信息

'/*@ sKey 需要处理的关键字。

【摘要】:是否可以直接在数据库表中直接修改 Bos 单据中的字段类型 【版本】:K3v10.2SP1&K3v10.2Sp2&K3v10.3

问题描述: 在 Bos 单据中加入一备注字段,并保存了数据,可否将备注字段改为文本 字段,保证数据不丢失

解决方法: 可以修改表Icclasstableinfo的FCtlType字段,示例如下。

update icclasstableinfo set fcapti,fcapti,fcapti,FKey='FText1',FFieldName='FText1',FCtlType=1 where fid=8438

update icclasstype set fid=fid ----单据的时间梭

注意在后面更新 icclasstableinfo 表来修改单据,一定要更新一下 icclasstype,否则 前面的更新在Bos设计环境反映不出来更新。

【摘要】:锁定单据字段 【版本】:K3v10.2SP1&K3v10.2Sp2&K3v10.3

问题描述: 如何在插件中锁定单据字段 客户化开发技术资料——K/3 BOS开发百问百答

解决方法: 可以用lockcell方法锁定,如锁定单据头币别:

Set dcttemp = m_BillInterface.GetFieldInfoByKey(\

If Not dcttemp Is Nothing Then m_BillInterface.BillCtl.LockCell dcttemp, -1, True 第二个参数为分录行号,当为-1时锁定所有行。

注意:设计状态没有设计为\锁定\的字段,才可以在运行状态锁定或解锁。

【摘要】:删除符合条件的单据 【版本】:K3v10.2SP1&K3v10.2Sp2&K3v10.3

问题描述: 符合一定条件的单据不允许删除。是否有删除前的事件可以调用,或者其 他方法

解决方法: 可以在中间层插件的Beforedel事件中写代码实现。

【摘要】:动态过滤基础资料 【版本】:K3v10.2SP1&K3v10.2Sp2&K3v10.3

问题描述: BOS 新建的单据上的添加基础资料时,能否给定某中过滤条件?比如:选择 某个物料资料,要求只显示指定的某个部门的物料资料,其它的物料不显 示,这种情况能否实现。

解决方法: 可以在单据的Change事件中写如下代码来实现动态过滤条件。 If dct(“FKey”)=”FDeptID” then

m_BillInterface.DataSrv.TableInfo(m_BillInterface.TableInfo (\ & m_BillInterface.getfieldvalue(“FDeptID” ) & “’” End if

注意:上面的代码不支持调试,如果调试,发现赋值为空,没有将过滤条件赋值成功,但 编译后运行没有问题。

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

【摘要】:单据保存出错 【版本】:K3v10.2SP2

问题描述: 新增 BOS 单据,单据的表设为 poRequest,

单据体的表设为 poRequestEntry,然后保存,出现如下提示错误信息: “索 引’IX_PoRequest_FBillNo’依赖于列’FBillNo’”,能删除此索引吗?

解决方法: 这是 10.2 的一个设计不合理的地方,10.3 没有这个问题了。可以先删除,设计成功后 加上就好了。

大力水手 2009-08-01 21:36:29.0 【摘要】:标准序时簿过滤条件对话框(和K3老单据一样) 【版本】:K3v10.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开始。

【摘要】:如何再次添加新插件 【版本】: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


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

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

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

马上注册会员

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