




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——金蝶k3BOS开发百问百答金蝶k3BOS开发百问百答
一、基础资料篇
单据自定义无法看到bos定义的基础资料
在调出基础资料序时簿时,过滤出需要的基础资料插件实现过滤从过去时间到现在的所有基础资料查找某个物料在某个仓库中的数量和精度插件中K3Lib.GetStockQty函数的使用
二、业务单据篇
K3BOS单据(新)中的数量字段怎样才能控制到两个小数单据上显示各级审核人和审核日期
多层的BOS单据,能否将人员权限按层划分自动启动审核和自动选单
只能删除和修改本人制作的单据。获取Bos单据单据体已录信息的条数
插件中获取单据上控件的位置、尺寸信息关联自定义核算项目
是否允许插件自定义查询条件填充分录行
在Bos单据按F7查询供应商信息,按F9查询购买价格管理信息。如何可以取到单据编号的组件
是否可以直接在数据库表中直接修改Bos单据中的字段类型锁定单据字段
删除符合条件的单据动态过滤基础资料单据保存出错
标准序时簿过滤条件对话框(和K3老单据一样)如何再次添加新插件
单据分录数达到3000条,单据保存会不会出错文本字段录入完毕回车不跳转不能实现记录选择。如何删除空行。数量精度和单价精度计算公式如何定义批次过滤
应收应付系统合同是否能超额执行
基础资料录入代码时不马上显示相关的列表在插件中以新增、修改和查看方式开启另一单据显示BOS序时簿并返回选中的值
将当前单据转化为另一单据,并无界面保存数据隐蔽选单时序时簿不需的菜单和工具栏
在单据体中让下一条分录自动携带上一条分录的数据
在Bos插件中如何处理隐身的二次登录如何在插件中获取当前系统字符连接串BOS单据插件里取分录的合计值
带有辅助属性的字段的值更新事件中调用辅助属性,计算公式运行有误事务处理
基本单位数量在录入完数量后依旧为空10.1单据插件中如何向单据体逐行插入数据BOS单据选单返回时自动在表体添加一行分录只有工具条及菜单栏的浏览数据窗口K3Bos表体如何设置合计
收款单的套打设置里面怎么取到通过Bos自定义的字段如何隐蔽Bos单据中的层如何调用打印功能
BOS单据如何控制表体行数
如何在Bos单据中引用自定义核算项目
关于核算项目字段[相关属性]为核算项目类型的值更新携带变通处理方案如何调用BOS单据序事簿的刷新事件
关于因网络控制导致BOS单据无法并发运行的问题的解决方法关于插件取值报类型不匹配的答复31如何实现在Bos单据中物料多项选择31如何实现在Bos单据中物料多项选择32
如何在Bos单据的工具栏上显示“复制〞按钮32bos分录值合计33
BOS单据物料字段信息没显示全33BOS颜色控制33
从BOS如何能调用VB控件(MSCOMM)34
序时簿工具栏新增一个按钮,如何编写插件实现审核后对单据修改功能34销售订单下推生成BOS单据,无法制定流程35BOS序事簿插件调用数据库35客户端单据打不开36
BOS老单据,新增核算项目,增加自定义字段相关属性为部门,在BOSIDE中值更新事件中无法更新指定部门=自定义核算项目.部门36
关于如何在销售发票业务审核后仍能修改摘要字段的做法调拨单中的调拨类型无法单据中显示
序时簿查件分录中,如何通过插件取其中一个时间字段。新单中如何写删行的函数
如何自定义金额字段的“小数位长度〞
新单增加的单据如何携带到老单据(典型问题)新单据如何从Excel批量引入单元格数据
新增bos单据怎么会无法保存.提醒拒绝的权限.
设定的实数数量精度在参与值更新事件计算时没有精度控制大文本字段怎么就能录入这么几个字符,有什么方案没有?BOS单据自定义后新增或查询反映太慢生产领料单单据体上无法自定义成本对象代码
(工业老单据)生产任务单批量维护中参与BOS开发字段如何在修改单据的时候把制单人刷新为修改人?繁杂的计算Action应当如何处理?
为什在中文输入的时候会出现清除已输入内容,并跳出当前输入框的问题?通过修改元数据实现动态过滤基础资料
10.4版本以前手动删除已发布到主控台的功能
如何删除发布到主控台的功能以不存在的单据或者报表如何设置单据体字段的字体颜色和背风景
在查看模式下,怎样修改某个字段(譬如销售普通发票-摘要修改)的值并保存V10.3版本实现“审核人和制单人不可为同一人〞如何在插件中调用BOS基础资料的F7功能如何在插件中调用BOS基础资料的F7功能如何单据插件中实现基础资料F7动态过滤
如何在插件中响应BOS控件KDInputTool的事件三、多级审核篇批量审核。
设置为一级审核的Bos单据反审核后不能修改。
能否使administrator对任何人审核的BOS单据进行反审核。实现多级审批同时需要更改审批的数量与单价。BOS字段多级审核后可以修改。有关多级审核的问题。中间层的多级审核事件。BOS审核权限
不同级次驳回功能存在问题,审核流程不流畅
在开启单据的状况下点击审核菜单,显示XX单据审核成功,但单据并未马上切换到字段锁定状态,即此时单据内容(如分录中的各项信息等)均可修改,关闭单据后再次开启,正常。反审核也如此。59
四、单据转换流程篇
新单推老单不能实现钩稽功能新单推老单不能实现钩稽功能
未审核的老单据不能下推Bos单据未审核的老单据不能下推Bos单据
自定义的bos单据无法下推生成销售费用发票无物料编码时,下推报错下标越界
下推发货通知单的时候,所有自定义字段中的文本字段在发货通知单都变成了010.2sp1钩稽后设过滤条件不起作用关联复制
老单下推新单过滤条件的设定
在老单据中选取新单如何选取多张单据
BOS单据下推到外购入库单时无法选择红字单据
如何用BOS单据体字段推成目的单据(老单)的单据头字段如何使Bos单据表体的字段对应到老单的表头上的字段
单价和金额携带不过来
Bos单据如何同时选择两张老工业单据
新单下老单,假使是钩稽关系,怎么判断新单是否已关闭
BOS新单据到老供应链单据的转换流程,在新单据上可以关闭吗
付款单项选择单关联其他应付单时无法携带其他应付单上的自定义核算项目信息单据体的每条分录如何可以对应多个源单类型
新老单据在流程转换的时候为什么出现提醒“请设置关联原单内码保存〞?单据下推怎么会出现“数据溢出〞的问题
老单(退料通知单)下推生成BOS自定义意据时,无法实现勾稽关系!
老单(工序计划单)与BOS开发新单据建立关联关系(钩稽,关联复制)后错误
通过BOS单据做关联,由开发的BOS单据(其他费用单)关联生产其他费用单,提醒:付款计划的金额等于单据金额。即和现有的K/3系统单据业务相冲突的解决方法13销售订单下推到生产任务单,可否一次选择多条分录生成多张生产任务单五、套打篇
如何进行BOS单据打印次数控制
应收应付销售发票如何携带出地址,其他系统的信息可以类似处理BOS单据套打设置问题的重复设置问题15如何进行BOS单据打印次数控制16
应收应付销售发票如何携带出地址,其他系统的信息可以类似处理16BOS单据套打设置问题的重复设置问题17六、报表篇17交织分析报表17直接SQL报表18
关于直接SQL报表的支持长日期的变通解决方案18
为什么bos中发布交织分析报表与二次开发的报表的小数点设置不起作用?18报表分析平台中,自己做的报表如何发布K3中开启,或者有无此项功能?19七、部署发布篇20
发布功能的名称如何更改20编码规则丢失20
怎样将旧单改造数据结构的动作打包到Bos安装包中20中间层上发布插件后,客户端的插件dll文件没有被更新21发布的BOS单据如何删除21
关于BOS发布的单据和报表删除工具的问题22Bos单据发布后主控台没有显示23BOS部署客户端智能升级失败23
打包应用程序是否有类似的InstallShield的脚本参考24如何将应收应付BOS单据修改的内容打包成安装程序24BOS生成的部署文件需要部署到所有的客户端25如何获取软件特征码25
布署安装包时提醒BuildFile无效过程错误或未找到路径错误25八、其他27
关于BOS的加密问题
在使用citrix客户端时,调用出BOS过滤界面后,选择下拉列表后出错27关于Bos已过期问题的处理2
中间层插件
BOS插件调用工资系统汇总表28
bos插件中假使发生任何错误,在k3界面中不会出现任何提醒29以Administrator主控台设置刷新其他用户主控台设置29系统帮助文件的挂靠图纸管理外贸报价单
如何在单据中做一个可以选择,又可以随意录入的字段31如何将BOS单据的税率携带到下游老单据31
客户的车间管理的单据与我们K310.2的差异很大,可否用Bos开发32修改应收应付模板
客户在正式上线使用时,需如何购买站点数33在K/3BOS中能否打印一张繁杂的单据33恢复K/3BOS插件开发向导菜单按钮34438:对象不支持属性或方法34
主控台中,Bos单据可以查询,但不能新增35Bos自动关闭
BOS在主控台组件中所属的系统标36
在插件中如何得到序事簿界面上所有数据36
客户端无法开启BOS设计平台开发的业务单据36SQL自动中止37
防火墙可能会对K/3的接口造成中断的影响37如何在插件中获取某个单元格的锁定状态38
beforesendmessage事件在什么状态下触发的?38
工业单据(老单据)的客户端插件为何无法起作用?39工业单据(老单据)的中间层插件为何无法起作用?39如何为工业单据(老单据)的开发插件?41
百问回复:
一、基础资料篇:单据自定义无法看到bos定义的基础资料:K3v10.2SP2
问题描述:在单据自定义中增加自定义字段时,需要选择用bos定义的基础资料,如何设置。单据自定义的高级页签上选择基础资料下拉框中无法看到bos定义的基础资料;跟踪Sql,在ICChatBillTitle中有自定义字段属性的相关
设置,如FTableName、FLookUpClassID等字段。把记录改成BOS基础资料对应的信息,但是无法生效。解决方法:在10.2里工业单据自定义工具不能使用BOS单据的基础资料,建议使用核算项目来定义
基础资料,即可在工业单据中使用,也可在BOS单据中使用。
DimobjAsObject
Setobj=CreateObject(\Withobj
.CallByBill=True
.SelICItemID='当前物料行内码.CategoryBySupply=false.SelSupID='供应商内码.PriceType=1.Show1EndWith
Setobj=Nothing
:如何可以取到单据编号的组件:K3v10.2SP2客户化开发技术资料——K/3BOS开发百问百答
问题描述:导入一张组装单,组装单是一张BOS单据。得到单据编号的组件是怎样的?接口是什么?
解决方法:Setobj=CreateObject(\
GetThisBillNo=obj.GetBillNo(sDsn,ClassID,sKey,bGetDeleteNo,bSave)接口描述:
'/*描述:得到一种业务类型的编号'/*参数:
'/*@bGetDeleteNo是否获取空号,这种单据设置了删除的空号被保存才有效,已经无效,只是保持兼容调用接口
'/*@bSave是否需要修改新的最大单据号'/*@ClassID类型'/*@sDsn连接串信息
'/*@sKey需要处理的关键字。
:是否可以直接在数据库表中直接修改Bos单据中的字段类型:K3v10.2SP1None~已审核;isnull(@Field,0)>0~未审核;isnull(@Field,0)0,通过判断Fchecker字段的值是否大于0,来判断其是否审核;
未审核:对应得isnull(@Field,0)ExitFunctionerr_ctr:
SetoDataSrv=NothingSetobjLookup=NothingEndFunction
:将当前单据转化为另一单据,并无界面保存数据:K/3BOS所有版本
问题描述:将当前单据转化为另一单据,并无界面保存数据。解决方法:'********************************************'功能:将当前单据转化为另一单据,并无界面保存数据'参数:lClassTypeID—显示BOS单据的ID
'********************************************PrivateSubNoUISaveBill(ByVallClassTypeIDAsLong)DimoDataSrvAsObjectDimoTableInfoAsObjectDimoBillAsObjectDimoDataAsObject
DimoSrvAsObject客户化开发技术资料——K/3BOS开发百问百答
DimoPage2AsObjectDimiAsLong
OnErrorGoToerr_ctrSetoDataSrv=
m_BillInterface.K3Lib.CreateK3Object(\oDataSrv.ClassTypeID=lClassTypeIDSetoTableInfo=oDataSrv.TableInfoSetoData=oDataSrv.GetEmptyBill
Fori=1Tom_BillInterface.Data(\SetoPage2=oData(\
oData(\'添加到dcData
oData(\更改分录号Next
Fori=1Tom_BillInterface.Data(\
oData(\m_BillInterface.GetFieldValue(\oData(\m_BillInterface.GetFieldValue(\oData(\m_BillInterface.GetFieldValue(\Next
SetoSrv=CreateObject(\i=oSrv.Save(MMTS.PropsString,oDataSrv.ClassType,
oDataSrv.ClassTypeEntry,oDataSrv.TableInfo,oData,oDataSrv.dctLink)SetoDataSrv=NothingSetoBill=NothingExitSuberr_ctr:
MsgBoxErr.DescriptionSetoDataSrv=NothingSetoBill=NothingEndSub
1、K/3BOS保存方法Save的参数描述:'PublicFunctionSave(ByValsDsnAsString,_
'ByValdctClassTypeAsKFO.Dictionary,_'ByValvctClassTypeEntryAsKFO.Vector,_'ByValdctTableinfoAsKFO.Dictionary,_'ByRefdctDataAsKFO.Dictionary,_
'ByValdctLinksAsKFO.Dictionary)AsLong
'/********************************************************************/'/*描述:单据保存'/*参数:
'/*@dctClassTypeKFO.Dictionary单据整体信息模板客户化开发技术资料——K/3BOS开发百问百答
'/*@dctDataKFO.Dictionary单据数据包
'/*@dctLinkKFO.Dictionary选单关系模板,无选单为Nothing'/*@dctTableInfoKFO.Dictionary单据字段模板信息'/*@sDsnStringK/3标准数据库连接串
'/*@vctClassTypeEntryKFO.Vector单据体模板信息'/*备注:
'/********************************************************************/2、使用此方法时插件要添加MMTS。
:隐蔽选单时序时簿不需的菜单和工具栏:K/3BOS所有版本
问题描述:隐蔽选单时序时簿不需的菜单和工具栏
解决方法:在MenuBarInitialize事件中使用m_ListInterface.List.ShowMode判断(查看和选单)
1—查看;2—选单。
语法:Ifm_ListInterface.List.ShowMode=1Then??end.例:在选单时隐蔽“编辑〞菜单和工具栏Ifm_ListInterface.List.ShowMode=2ThenDimoToolAsK/3ClassEvents.BOSTool
DimoBandAsK/3ClassEvents.BOSBand
'***************开始设置BOS原有菜单***************'获得mnuEdit菜单对象,并设置属性SetoBand=oMenuBar.BOSBands(\SetoTool=oBand.BOSTools(\WithoTool
.Visible=False.Enabled=FalseEndWithEndif
:在单据体中让下一条分录自动携带上一条分录的数据:K/3BOS所有版本
问题描述:如何在单据体中让下一条分录自动携带上一条分录的数据(只是部分字段)客户化开发技术资料——K/3BOS开发百问百答
解决方法:例如代码:
'物料录入后,其次行的值自动默认第一行的值Ifdct(\m_BillInterface.SetFieldValue\
m_BillInterface.GetFieldValue(\row'提货地点endif
大力水手2023-08-0121:37:32.0
:在Bos插件中如何处理隐身的二次登录:K3v10.2SP1
问题描述:在自定义的BOS单据上,通过插件作生成凭证的功能,但是在调用凭证的组件时,需要一个二次登录后才能使用相应的模块。如何处理隐身的二次登录,或者其他的变通处理。
解决方法:1、凭证组件的调用是不需要二次登录的,可能你是在VB调试状态下运行,编译后就没事了。
2、请参考下面代码
PrivateSubm_BillInterface_MenuBarClick(ByValBOSToolAsK3ClassEvents.BOSTool,CancelAsBoolean)
DimglvchAsObject'中间层凭证对象DimmvchAsKFO.Dictionary'待保存凭证头DimmvchentryAsKFO.Vector'待保存凭证分录集DimentryAsKFO.Dictionary'待保存凭证分录DimmvchdetailAsKFO.Vector'核算项目明细集DimdetailAsKFO.Dictionary'核算项目明细Dimi,iCountAsLong
DimvValueAsVariant
'TODO:请在此处添加代码响应事件MenuBarClickSelectCaseBOSTool.ToolNameCase\生成凭证\
vValue=m_BillInterface.GetFieldValue(\
IfNot(CStr(vValue)=\
MsgBox\当前合同已经生成凭证!\金蝶提醒\ExitSubEndIf
'此处添加处理生成凭证菜单对象的Click事件Setmvch=NewKFO.Dictionary
mvch(\客户化开发技术资料——K/3BOS开发百问百答
mvch(\金华泰项目\
mvch(\Setmvchentry=NewKFO.Vector
vValue=m_BillInterface.GetFieldValue(\'合同金额
'创立凭证分录
Setentry=NewKFO.Dictionary
entry(\entry(\entry(\
entry(\'数量
InitialCatalog=xt_3};UserName=administrator;UserID=16394;DBMSName=MicrosoftSQLServer;DBMS
Version=2000;SubID=GL;AcctType=gy;Setuptype=Industry;Language=chs;
IP=2;MachineName=JAMES;UUID=800A878D-F574-4877-B79C-D88AB721ECA0\
Setglvch=CreateObject(\oucher.VoucherUpdate\
glvch.Creates,mvchs=\fUser1=\
&m_BillInterface.K3Lib.User.UserID&\m_BillInterface.GetFieldValue(\
m_BillInterface.K3Lib.UpdateDatasm_BillInterface.RefreshBill
MsgBox\凭证生成成功!\金蝶提醒\
Case\变更\EndSelectEndSub
:文本字段录入完毕回车不跳转:K3v10.2SP1+K3vSP2
问题描述:在Bos单据的表体中参与一备注字段,后再参与一文本字段,发现备注字段敲回车不跳转,后面的文本字段输入完毕回车也不跳转。
解决方法:备注型字段由于支持回车的录入,所以不支持回车跳转。经测试发现,文本字段放在备注
字段后面,则文本字段录入敲回车,也清空和备注字段的现象一样,这可能是sp1和sp2的Bug,可以将备注字段放在行的第后一列,则就没有问题。客户化开发技术资料——K/3BOS开发百问百答
:不能实现记录选择。:K3v10.2SP1+PT0704
问题描述:新做的BOS单据(配置单)在与源单(销售订单)进行选单的时候,出现在销售定单中选择某一条记录或者某几条记录的时候,会将销售订单所有的记录都选过来,不能实现记录选择。
解决方法:沟选了[选单时关联整单]选项导致的,不选上就按分录返回。
:如何删除空行。::K3v10.2SP2
问题描述:在输入信息回车后,系统光标会自动跳到下一行,即新增一行保存时,系统提醒“XXX〞字段不运行为空。需要手工删除一行,比较麻烦。我想通过插件,在点击保存时,判断:假使有空行,就删除该行;如何删除单据体一行的插件语句,如何调用?
解决方法:可以不写代码,设置该单据体的[关键字段],保存前将清除最终一行空白行。
:数量精度和单价精度:K3v10.2SP1&K3v10.2SP2&K3v10.3
问题描述:在单据体中加上“数量〞字段,用decimal的后面的小数点位太多位了;用integer的“数量〞,不可以指定到“单位〞上去,如何解决?客户化开发技术资料——K/3BOS开发百问百答
解决方法:数量和单价的精度是跟着物料的[数量精度]和[价格精度]走的,假使客户只存在整数物
料精度,可以通过[基础资料]-[公共资料]-[核算项目管理]-[004-物料修改]设置物料精度的缺省值为0。
:计算公式如何定义:K3v10.2SP1&K3v10.2SP2&K3v10.3
问题描述:在BOS单据设计的时候,进行单据体内单元格计算时,如设数量、单价、金额,正常应当在“金额〞栏设置公式等于“数量〞乘于“单价〞,但这样设“金额〞栏无法计算。
解决方法:假使要实现在修改数量列和单价列更新金额,须在“数量〞列和“单价〞列的
[值更新
事件]分别增加一条计算公式:金额=数量*单价。
:如何在插件中获取当前系统字符连接串:K310.2及以后版本
问题描述:插件中字定义系统中如何获取当前系统字符连接串?一个年结功能,进行土地数据结转、在vb中定义了年结功能窗口,要在主控台子系统中调用,怎样或得当前数据库连接信息,亦无法通过k3lib获得,由于没必要去调用bos表单或序时簿。另外,一些繁杂报表、也是通过vb中单独实现、这些报表也需要获的连接字符串才能调用
解决方法:1、连接串获取方式:(注意不支持调试,调试的话可以用实际连接串代替)PrivateDeclareFunctionGetCurrentProcessIdLib\Alias\'获取连接串
PublicFunctionGetPropsString()AsStringDimlProcAsLongDimspmMgrAsObjectlProc=GetCurrentProcessId
SetspmMgr=CreateObject(\客户化开发技术资料——K/3BOS开发百问百答
GetPropsString=spmMgr.GetProperty(lProc,\EndFunction
2、需要申请MMTS.bas的源代码,还需要申请ICKDListener的接口。另外,假使需要调试程序,就还需要申请KDMain的源代码。
:BOS单据插件里取分录的合计值:K310.2及以后版本
问题描述:工业单据自定义里面有个GetSumGridText方法取得分录某一列的合计值,现在BOS单据里面需要取某一列的合计,有什么方法可以调用。。
解决方法:Object.Sum(dctAsDictionary,[BRowAsLong],[ERowAsLong])参数说明:
dct-字段的模板字典
BRow-合计开始行,可选参数,默认值是1ERow-合计终止行,可选参数,默认值是最大行
举例(要求税额合计值):
Setdct=m_BillInterface.GetFieldInfoByKey(\dblTaxSum=m_BillInterface.Sum(dct)
:带有辅助属性的字段的值更新事件中调用辅助属性,计算公式运行有误:K310.2及以后版本
问题描述:对于已携带辅助属性的字段再定义值更新事件,假使值更新事件里包含该
辅助属性,计算公式无效。也就是值更新事件公式里调用的辅助属性是更新前的。
解决方法:在插件中使用更新后事件
客户化开发技术资料——K/3BOS开发百问百答
:事务处理:K310.2及以后版本
问题描述:1、BOS的插件开发中,不能直接操作数据库。事务怎样处理2、在事务完整性处理上,目前的BOS插件还有好多需要改进。例如:BOS是支持多插件的,多插件之间如何保证事务完整性?同样是审核事件,有2个插件响应了这个事件,假使第一个插件通过了审核,但是其次个插件却不能通过,那么第一个插件处理了的数据又如何回滚?
解决方法:1、如在插件中编写大量的更新SQL请使用中间层插件,中间层插件能保证事务的完整性。
2、假使在客户端希望执行SQL时保证事务一致性,建议使用K3Lib.UpdateData方法,将希望在同一事务中处理的SQL语句通过它一次性提交,BOS会自动启用事务处理来保证;假使像多个插件中的审核等操作的一致性问题,解决的方法是制定一个中间层的审核前插件来判断处理;这类的问题都可以在中间层的相关事件中处理,来保证一致性。
:基本单位数量在录入完数量后依旧为空:K310.2及以后版本
问题描述:新增BOS单据分录中有数量及基本单位数量字段,基本单位数量关联字段为数量,但输入完数量后,基本单位数量依旧为空。解决方法:保存后基本单位数量就有了。
:10.1单据插件中如何向单据体逐行插入数据:K3v10.1
问题描述:在BOSV10.2中,填充新行数据可以用
m_BillInterface.InsertNewRowAndFill方法实现,但是在BOSV10.1中不
知道用什么方法可以向单据体逐行插入数据客户化开发技术资料——K/3BOS开发百问百答
解决方法:将10.1的KFO.DLL换成10.2KFO.DLL,是兼容的。m_BillInterface.Data(\
:BOS单据选单返回时自动在表体添加一行分录:K310.2后所有版本
问题描述:BOS开发一张新的单据.在选单返回时,希望能在表体自动添加一行分录。事件测试代码如下:
PrivateSubm_BillInterface_AfterSelBillBeforeFillData(ByValdcDataAsKFO.IDictionary,ByValdctLinkAsKFO.IDictionary)
DimCoDictAsKFO.Dictionary
SetCoDict=dcData(\拷贝第一条分录数据dcData(\添加到dcData
dcData(\=dcData(\更改分录号'Stop
setCoDict=NothingEndSub
用watch查看DcData的值.DcData(\也有增加一条,但返回后,新添加的分录并未带到目标单据上?还要修改哪些地方?
解决方法:此方法在调试状态下是不能把值传过去的,编译之后就可以了。你的代码有以下问题:
1、取分录号使用dcData(\;2、Vect的最大值用UBound,而不是count;
3、字段的key值使用m_BillInterface.TableInfo(\是字段名。正确的代码是:
DimCoDictAsKFO.Dictionary
’dcData(\SetCoDict=dcData(\拷贝第一条分录数据dcData(\添加到dcData
dcData(\更改分录号'Stop
SetCoDict=Nothing
客户化开发技术资料——K/3BOS开发百问百答
:只有工具条及菜单栏的浏览数据窗口:K3v10.2SP2及以后版本
问题描述:能否在新版BOS中提供一个没有数据,只有工具条及菜单栏的浏览数据窗口,供做插件集成操作窗口用,现在只能用单据窗口实现,开启时还出焦?br/>滤窗口。
解决方法:BOS中有一个自定义序事簿联查接口,可以指定单据类型和过滤条件联查所有新老单序
事簿,不用弹出过滤条件。
金蝶k3BOS开发百问百答(转载)1
2023-04-1214:08:06|分类:k3|标签:|字号大中小订阅
大力水手2023-08-0121:37:59.0:K3Bos表体如何设置合计
:K310.2SP2
问题描述:K3Bos表体如何设置合计
解决方法:目前不能在界面上设置合计,(系统对数量和金额默认合计),如需对其他字段设置合计,
需更改ICClassTableInfo.FSum的值为1。
:收款单的套打设置里面怎么取到通过Bos自定义的字段
:K3v10.2SP2及以后版本
问题描述:如何设置通过BOS定义的字段的套打?目前在收款单通过BOS自定义了一个字段,那么在收款的套打设置里面怎么取到这个字段客户化开发技术资料——K/3BOS开发百问百答解决方法:在单据中添加一个字段保存后,开启这个套打文件中可以自已添加一个字段,在设置
对象属性时可以指定到单据中的这个字段。
:如何隐蔽Bos单据中的层:K3v10.2SP2及以后版本
问题描述:对BOS单据中的层处理。如何做到显示或隐蔽单据中某一层
解决方法:以层为单位的动态显示隐蔽现在没有提供方法;
可以在插件中一个一个字段的隐蔽,从字段的FLAYER属性可判断其所属的层。
:如何调用打印功能
:K3v10.3
问题描述:在单据保存后自动打印。请问在Bos单据插件里如何调用打印功能解决方法:在保存后打印Bos单据,请在单据aftersave事件里添加如下代码:
PrivateSubm_BillInterface_AfterSave(bCancelAsBoolean)
DimoPrintAsObject
SetoPrint=
m_BillInterface.K3Lib.CreateK3Object(\K3ClassBillPrint.clsNotePrint\
oPrint.DataSrv=m_BillInterface.DataSrvoPrint.Data=m_BillInterface.DataoPrint.TableInfo=m_BillInterface.TableInfooPrint.PrintBillm_BillInterface.BillCtl.hWnd,False
SetoPrint=Nothing
EndSub
客户化开发技术资料——K/3BOS开发百问百答
:BOS单据如何控制表体行数
:K3v10.3
问题描述:BOS开发的业务单如何控制表体的行数。按月预算的话,在表体中在单据新
增或是加载的时候只出现12行。如何控?
解决方法:新增和加载时控制单据的表体最大行数分别是在单据的afternewbill和
afterloadbill事件中加以下语句即可:m_billinterface.billentrys(1).maxrows=12:如何在Bos单据中引用自定义核算项目
:K3v10.2SP1+K3v10.2SP2
问题描述:在K3v10.2SP1版本的BOS中,在基础资料字段中,选择基础资料类型时,无
法选择到自定义的核算项目(例如增加的\车牌号\核算项目),但在10.3版
中能够选择,请问在不升级软件版本的状况下,如何解决该问题
解决方法:先在单据上添加一个职员,然后在数据库里改一下,就可以了。具体如下:
updateicclasstableinfosetFCapti,
FCapti,FCapti,FLookupClassID=3005,FSRCTableName='t_Item'
wherefClasstypeid=200000002andfcapti
(将职员类型改为自定义核算项目作业动因,FSRCTableName的值是该核算项目在t_Itemclass表里对应的FSQLTableName字段的值)
updateicclasstypesetfid=fid
(注意:譬如自定义核算项目对应的数据表称为a,而a表中表示编码和名字的字段名却不是FNumber,FName.有可能是FAcntNumber,FAcntName.所以要将FDspfieldname改为FAcntName,FFNDfieldName改为FAcntNumber才行.或者不改这两个,将FSrcTablename
改为t_Item也可以。)
:关于核算项目字段[相关属性]为核算项目类型的值更新携带变通处理方案
:K3v10.3
问题描述:新增核算项目,增加自定义字段相关属性为部门,在BOSIDE中值更新事件中无法更新指定部门=自定义核算项目.部门客户化开发技术资料——K/3BOS开发百问百答解决方法:由于校验问题,目前BOSIDE无法支持这种模式的录入,但实际上运行时是可以
支持的解决方案:
例如:新增核算项目,代码和内码都为3005,新增自定义字段相关属性为部门(通
过
selectfSQLColumnNamefromt_ItemPropDescwherefitemclassid=3005获知
其字段名称)
在单据上新增两个核算项目字段,基础资料类型分别为:3005和部门,字段名称
为FBase1和Fbase2,保存单据。
然后后台SQL调整:
updateICClasstableinfosetfacion='TakeBaseData{FBase2=F_101}'
wherefclasstypeid=200000002andFKey='FBase1'updateicclasstypesetfid=fid
:如何调用BOS单据序事簿的刷新事件
:K3v10.3
问题描述:序事簿中增加了一个按钮,会对数据做一些修改,希望执行完数据修改后
调用一下序事簿的刷新事件更新序事簿的显示
解决方法:可以在序事簿插件代码写如下语句来刷新序事簿数据
m_ListInterface.List.RefreshList
:关于因网络控制导致BOS单据无法并发运行的问题的解决方法
:K3v10.3
问题描述:一张单据只能有一个人新增,其次个人新增报[当前功能与其他用户冲突无
法使用]。客户化开发技术资料——K/3BOS开发百问百答
解决方法:对相应帐套执行如下SQL:deletet_mutexwhereffuncidin(selectffuncidfrom
CClassmutexwherefoperatenamelike'%新增%'andfclasstypeid>=200000000):关于插件取值报类型不匹配的答复
:K3v10.3
问题描述:在插件中Change事件中输入如下代码:
Ifdct(\
bookid=m_BillInterface.GetFieldValue(\
fbase1是物料字段,选中中物料后,敲回车键程序正常,但当删除几位物料
编码后再按F7键,会报类型不匹配的错误。
解决方法:此问题是VB类型转换需要注意的地方,BOS从数据包取数得到的变量是Variant类型,
假使界面有
值,此时BOS数据包数值可直接赋值给long型变量,但假使界面无值,此时需要进行
强制类型转换才可以
赋值,因此需要将上述代码修改成如下代码:Ifdct(\bookid=Val(m_BillInterface.GetFieldValue(\:如何实现在Bos单据中物料多项选择
:K3v10.3
问题描述::BOS单据序时簿上是否可以显示单据数,而不显示记录条数?显示张数更
便利些。Bos单据在录入时,物料字段按F12,不能够一次选中多条物料并
返回,是否有方法解决?
解决方法:1、在序事簿过滤界面中将单据体1不打勾,就只会显示单据头也就是多少张单
据,而不是多少条记录。
2、在单据的属性窗口选物料字段,在功能控制里有允大量选选项,打上勾,保存单据就可以实现物料多项选择。客户化开发技术资料——K/3BOS开发百问百答
:如何实现在Bos单据中物料多项选择
:K3v10.3
问题描述:BOS单据序时簿上是否可以显示单据数,而不显示记录条数?显示张数更方
便些。Bos单据在录入时,物料字段按F12,不能够一次选中多条物料并返
回,是否有方法解决?
解决方法:1、在序事簿过滤界面中将单据体1不打勾,就只会显示单据头也就是多少张单
据,而不是多少条记录。
2、在单据的属性窗口选物料字段,在功能控制里有允大量选选项,打上勾,保存
单据就可以实现物料多项选择。
:如何在Bos单据的工具栏上显示―复制‖按钮
:K3v10.3
问题描述:如何在Bos单据的工具栏上显示―复制‖按钮
解决方法:因复制按钮是系统内置按钮不支持外观的设置,假使需要设置须通过插件实现,
增加复制按钮在工具栏的显示
WithoMenuBar
SetoTool=oMenuBar.BOSTools(\
WithoTool'按钮显示名称
.Caption=m_ListInterface.K3Lib.LoadKDString(\复制\
'按钮显示摘要
.Description=m_ListInterface.K3Lib.LoadKDString(\复制\
'按钮显示帮助信息
.ToolTipText=m_ListInterface.K3Lib.LoadKDString(\复制单据\
'增加分组.BeginGroup=True
EndWith
'将生成的tool对象插入至第三个工具栏菜单之后.BOSBands(\
EndWith
SetoTool=Nothing
客户化开发技术资料——K/3BOS开发百问百答
:bos分录值合计
:K3v10.3
问题描述:如何在Bos插件中给单据分录行赋值后,自动给某列算出合计值(譬如数
量)
解决方法:在给分录行赋值后,加上以下两句代码,即可为数量列自动算出合计值。
Setdct=m_billinterface.GetFieldInfoByKey(\
m_billinterface.BillCtl.SetSumDatadct
:BOS单据物料字段信息没显示全
:K3v10.3
问题描述:用BOS自定义了一张单据,运行时单据体的物料代码字段信息没显示全,被
截取了前10位。
解决方法:有可能你在无意中更改了Bos单据的模板表(icclasstableinfo),在查询分析器中执行
如下语句:
updateicclasstableinfosetfeditlen=255wherefclasstypeid=200000000
andfkey='fitemid'updateicclasstypesetfid=fid
:BOS颜色控制
:K3v10.3
问题描述:在序事簿中按某一状态字段的取值不同给不同的行设置不同的颜色。客户化开发技术资
料——K/3BOS开发百问百答
解决方法:可以在序事簿插件中实现根据某一状态字段设置不同的颜色显示。请参考以下代码:(将
序事簿的记录集中文本字段为11的行显示为蓝色)PublicSubShow(ByValoListInterfaceAsObject)
Setm_ListInterface=oListInterfacem_ListInterface.EnableListFillRowEvents=True
EndSub
PrivateSubm_ListInterface_ListFillRow(ByVallRowAsLong,ByValRowDataAsObject,ByValHeadDictAsKFO.IDictionary,CellDataAsString,BackColorAsLong,ContinueRaiseAsBoolean)
ContinueRaise=True
IfHeadDict(\
BackColor=&HFF0000
EndIfEndSub
:从BOS如何能调用VB控件(MSCOMM)
:K3v10.3
问题描述:在Bos插件开发中如何调用VB控件,例如MsComm控件。
解决方法:可以在Bos插件的工程中加一窗体(form),在该窗体里面添加VB控件(如mscomm),在
Bos单据工具栏上加一按钮(如毛重),点此按钮,调出该窗体(不显示该窗体,用load而
不用show),这样就可以读取到端口数据。
:序时簿工具栏新增一个按钮,如何编写插件实现审核后对单据修改功能
:K/3V10.3SP1
问题描述:序时簿工具栏新增一个―变更‖按钮,同时有插件,实现审核后对单据修
改功能。但修改后,单据的―保存‖按钮灰色,无法保存单据,如何实现
该功能。客户化开发技术资料——K/3BOS开发百问百答
解决方法:还需加上单据插件,请添加以下代码PrivateSubm_BillInterface_AfterLoadBill()
Ifm_BillInterface.MenuBar.BOSTools(\
m_BillInterface.BillCtl.BillStatus=Enu_BillStatusExt_Modifym_BillInterface.SetBarStatus\m_BillInterface.SetBarStatus\
m_BillInterface.MenuBar.Refresh
m_BillInterface.SetBillFormCaptionm_BillInterface.BillName&\变更\
EndIfEndSub
:销售订单下推生成BOS单据,无法制定流程
:K/3V10.3SP1
问题描述:销售订单下推生成BOS单据,只要关联了销售订单的交货方式或者交货地
点(BOS单据以文本形式),会提醒错误,没有方法制定流程,假使BOS
单据定义的是备注字段,则带过来的是内码。解决方法:交贷地点和交货方式都是辅助资料类型,所以Bos单据字段也必需选辅助资料,不能是文本型。
:BOS序事簿插件调用数据库
:K/3V10.3SP1
问题描述:A,B两个存储过程,其中的A过程调用B过程,共同完成其他出入库单的
生成审核(一进一出抵消库存)。在查询分析器中执行EXECUTEA可以顺利完成单据的处理。但当在序事簿插件里利用ADO连接数据库后,调用存储过程A执行,可是A并没有执行调用B过程也没有报错。请问在BOS插件中对存储过程的调用有没有什么其它方法客户化开发技术资料——K/3BOS开发百问百答
解决方法:序事簿插件不是使用ADO连接数据库,
而是用m_listinterface.k3lib.getsql(sql),另外不会出现那个不调用B的状况.调用B时,请注意,需要加上―setnocounton‖
大力水手2023-08-0121:38:29.0:客户端单据打不开
:K/3V10.3
问题描述:客户端无法开启BOS设计平台开发的业务单据(录入、修改)界面解决方法:引起该原因是,K/3WEB时提醒下载InstGB.exe,执行InstGB.exe后,引
起所有BOS设计的单据都打不开。通过注册重新KDInputToolU.dll文件可
修复环境,目前建议担忧装InitGB.exe文件。
:BOS老单据,新增核算项目,增加自定义字段相关属性为部门,在BOSIDE中值
更新事件中无法更新指定部门=自定义核算项目.部门
:K/3V10.3
问题描述:BOS老单据,新增核算项目,增加自定义字段相关属性为部门,在BOSIDE
中值更新事件中无法更新指定部门=自定义核算项目.部门
解决方法:由于校验问题,目前BOSIDE无法支持这种模式的录入,但实际上运行时是可
以支持的解决方案:
例如:新增核算项目,代码和内码都为3005,新增自定义字段相关属性为部门(通过selectfSQLColumnNamefromt_ItemPropDescwherefitemclassid=3005获
知其字段名称)
在单据上新增两个核算项目字段,基础资料类型分别为:3005和部门,字段名
称为FBase1和Fbase2,保存单据。
然后后台SQL调整:
UpdateICClasstableinfosetfacion='TakeBaseData{FBase2=F_101}'where
fclasstypeid=200000002andFKey='FBase1'
updateicclasstypesetfid=fid。客户化开发技术资料——K/3BOS开发百问百答
:关于如何在销售发票业务审核后仍能修改摘要字段的做法
:K/3V10.3
问题描述:关于如何在销售发票业务审核后仍能修改摘要字段的做法
解决方法:首先设置除摘要字段以外的字段的锁定属性都要是审核后锁定,摘要字段
则不需要设。另要添加以下插件:
在序事簿里添加单据变更按钮(名称为BillEdit),并在序事簿插件里添加
如下代码:
新增一模块文件,里面定义公共变量。PublicbBilleditAsBooleanPrivateSubm_ListInterface_MenuBarClick(ByValBOSToolAs
K3ClassEvents.BOSTool,CancelAsBoolean)
SelectCaseBOSTool.ToolName
Case\
'此处添加处理BillEdit菜单对象的Click事件
bBilledit=True
Callm_ListInterface.LoadSelectedBill(Enu_BillStatusExt_Modify)
bBilledit=False
CaseElseEndSelectEndSub
在单据插件里添加如下代码:
PrivateSubm_BillInterface_AfterLoadBill()
IfbBilleditThen
m_BillInterface.SetBarStatus\m_BillInterface.SetBarStatus\
m_BillInterface.MenuBar.Refresh
m_BillInterface.SetBillFormCaptionm_BillInterface.BillName&\
变更\EndIfEndSub
PrivateSubm_BillInterface_BeforLoadBillFillData()
IfbBilleditThen
m_BillInterface.BillCtl.BillStatus=Enu_BillStatusExt_Modify
EndIfEndSub
最终将以上插件编译,在插件管理加到单据已有插件之后。
客户化开发技术资料——K/3BOS开发百问百答:调拨单中的调拨类型无法单据中显示
:K/3V10.3
问题描述:客户在做单据自定义的时候―源单类型‖字段只是移动了一下位置,保存
后源单类型字段就在单据上显示不出来了,就是移回原位置也显示不出来,我在自己的机器上试了一下也是这种状况,只要移动后保存这个字段就显
示不出来了,急盼答复,感谢,最好不要建议我打sp补丁,
解决方法:调拨类型字段显示与否与系统选项:核算系统选项:调拨单允许异价调拨
有关
:序时簿查件分录中,如何通过插件取其中一个时间字段。
:K/3v10.3&K/3v10.3sp1
问题描述:序时簿查件分录中,如何通过插件取其中一个时间字段解决方法:SetvectSelect=m_ListInterface.GetSelectedBillInfo
IfvectSelect.UBound>0ThenstrSQL=\Bos20000001wherefid=\
vectSelect(1)(\Setrs=m_ListInferface.K3Lib.GetData(strSQL)IfNotrs.EOFThenrs(\
:新单中如何写删行的函数:K/3v10.3-10.4,其后的版本已经增加
问题描述:
在bos单据中,通过插件插入多行分录,在保存的时候,进行数据正确性检测时,不能通过插件程序删除不符合规律检测的行客户化开发技术资料——K/3BOS开发百问百答
解决方法:
?
?名称:RemoveBillRowInfo
?描述:删除单据行?版本:V10.3?:
?参数:m_BillInterfaceObject单据对象
?lPageNumLong页?lRowLong行
?返回值:BooleanTrue:成功False:失败
?创立时间:2023/3/20
?PublicFunctionRemoveBillRowInfo(m_BillInterfaceAsObject,_
ByVallPageAsLong,_ByVallRowAsLong)
DimdctClassTypeAsKFO.Dictionary
DimdctDataAsKFO.DictionaryDimvctEntryDataAsKFO.VectorDimvctDeleteRowAsKFO.VectorDimdctDelSrcTypeAsKFO.Dictionary
DimstrKeyAsStringDimlEntryIDAsLong
DimiAsLong
SetdctData=m_BillInterface.DataSetdctClassType=m_BillInterface.ClassTypeSetvctEntryData=dctData(―Page―&lPage)
IflRow0ThenlEntryID=vctEntryData(lRow)(―FEntryID―)
IflEntryID0Then
IfdctData.Lookup(―PageDel―&lPage)ThenSetvctDeleteRow=dctData(―PageDel―&lPage)SetdctDelSrcType=dctData(―PageDelSrc―&lPage)
ElseSetvctDeleteRow=NewKFO.VectorSetdctDelSrcType=NewKFO.DictionarySetdctData(―PageDel―&lPage)=vctDeleteRowSetdctData(―PageDelSrc―&lPage)=dctDelSrcType
EndIf
vctDeleteRow.AddlEntryID
IfvctEntry
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省广元天立学校2025届高三下学期第2次月考物理试题含解析
- 宁夏宽口井中学石油希望校2024-2025学年初三5月统一考试化学试题含解析
- 陕西省咸阳市秦岭中学2024-2025学年初三下学期教学质量检测试题英语试题试卷含答案
- 房产交易合同补充协议
- 吉林省长春市双阳区重点达标名校2024-2025学年中考最后冲刺模拟(一)数学试题含解析
- 圆通快递服务合同
- 装饰工程公司与供应商合同
- 铁路合同运输的市场前景分析
- 医院食堂承包经营合同书
- 初中数学全等三角形 课件 2024-2025学年北师大版七年级数学下册
- 《大学英语》课程思政
- 中药汤剂课件完整版
- 如何做好我国新药研发的市场筛选
- 《神经外科常用药物》
- 八年级物理下学期期中考试卷
- 厄尔尼诺和拉尼娜现象课件
- 钢结构相关施工质量通病及预防措施
- TDASI 017-2021 门窗填缝砂浆
- 织码匠文字材料语言源码目录
- 葡萄酒购销合同范本(2篇)
- GB/T 37869.10-2019玻璃容器真空凸缘瓶口第10部分:六旋77普通规格
评论
0/150
提交评论