




免费预览已结束,剩余34页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
客户化开发技术资料K/3 BOS开发百问百答K/3 BOS开发百问百答应用集成部客户化管理部2005年12月目录一、插件开发篇1【问题1】在插件中以新增、修改和查看方式打开另一单据1【问题2】我想在投料变更单的菜单上加入一个菜单项,需要插入一个插件,但投料变更单上已经有一个插件了,我想了解一下怎样才可以再插入一个插件呢?2【问题3】如何通过插件代码动态设置基础资料或业务单据序时薄过滤条件2【问题4】在插件中调用序时簿并返回选中的数据3【问题5】在自定义的BOS单据上,通过插件作生成凭证的功能,但是在调用凭证的组件时,需要一个二次登录后才能使用相应的模块。请问:如何处理隐身的二次登录,或者其他的变通处理。3【问题6】在设计BOS单据的过程中,经常会有关联的下拉列表框操作,如我在客户上选择“建设银行”,那么在客户相对应的地址的下拉列表框中应动态显示“建设银行所对应的地址”。也就是说客户地址是随着客户的变化而变化的。6【问题7】如何可以物料多选?6【问题8】在表单分录里需要在第一列中使用F7键或点击菜单调出某一窗体(在插件中自定义Form,上有Spread表单),在Form中选中数据(多条或一条),返回到源单,请问在插件中用什么事件可以完成?在单据中添加一菜单,用MenuBarClick事件,F7不易实现。返回的数据需用赋值方法填写到表体中。是什么样的需求不能用BOS单据或基础资料完成“Spread表单”?7【问题9】插件中字定义系统中如何获取当前系统字符连接串?有个项目中,需要作一个年结功能,进行土地数据结转、在vb中定义了年结功能窗口,要在主控台子系统中调用,怎样或得当前数据库连接信息,亦无法通过k3lib获得,因为我没必要去调用 bos表单或序时簿。另外,一些复杂报表、我也是通过vb中单独实现、这些报表也需要获的连接字符串才能调用?8【问题10】关于K3Billtransfer.dll组件无法使用问题8【问题11】BOS单据插件里的取分录的合计值该怎么做?8【问题12】隐藏选单时序时簿不要的菜单和工具栏。K/3单据查看和选单使用的是同一个序时簿,在插件中用MenuBarInitialize添加的菜单和工具栏在选单时也显示出来。9【问题13】标体行高设置和值更新事件9【问题14】事务处理10【问题15】如何在新的BOS单据中通过代码逐行添加分录数据?10【问题16】在单据体中有没有办法让下一条分录自动携带上一条分录的数据(只是部分字段)。11【问题17】否有办法完成单据体中的行点击事件?现在有需要在点击BOS单据中单据体的某一行时,在另一个表体中显示与该行有关的信息,请问各位有什么好的实现方法,特别是怎么获取点击事件和所点击的行数据信息。11【问题18】多分录序时簿浏览,字段权限。11【问题19】怎么样可以用代码调出单据的序时薄窗口。11【问题20】K/3 BOS SDK 二次开发组件(k3Billtransfer组件)嵌入K/3系统,数据库端按装后(update ictransactiontype. 后),再在./system32/ls_DV.dll,并注册,最后进入K/3,没有效果!是不是K3 V10.2不支持二次组件开发?还是不支持K/3 BOS SDK中的K3billtransfer组件?13【问题21】如何在单据插件代码中通过条件判断来启动多级审核.13【问题22】在插件开发中,如何获得当前登陆的用户ID?比如administrator登陆,如何得到ID?另外,如何得到选中多行单据时的集合?一个表体中,有职员编码和职员名称,想通过输入编码后,直接关联出名称来。名称这个字段用职员类型,还是文本?值更新事件好象不管用。13【问题23】在销售系统中增加了一张BOS开发的单据. 单据上也指定了相应的插件.(插件是依据BOS 开发向导生成的. 插件的功能只是增加一个自定的菜单项).组件中也引用了: K3ClassEvents.dll,但在单据测试时,却总是提示错误: 单据接口无效 的错误. 请问BOS新开发的单据是不是不能调用自定义的插件? 如果有调用是不是要做其它处理?14【问题24】Bos 开发的单据还能不能调用 k3billtransfer.dll 这个组件? BOS插件中如何取得连接字符串? (以前 m_Billtransfer.Cnnstring ) 我想把连接字符串做为参数传递给其它语言开发的程序.14【问题25】需要通过工具栏上的按钮,实现单据体分录的上移和下移功能,请问BOS插件的如何实现?14【问题26】新增BOS 单据分录中有数量 及基本单位数量 字段, 基本单位数量关联字段为数量, 但输入完数量后,基本单位数量仍然为空.14【问题27】我在做k3BillTransfer开发时需要取表体中的“批次”列是否可以录入,即该物料是否批次管理,请问控件fpSpread中,怎么才能知道哪一个单元格可以录入或不能录入?或者可以取到该物料的内码也可以。EnteryCtl都有那些属性啊,我只知道一个fieldname,其他的比如内码等是什么?在单据二次开发参考组件没有描述,在哪有详细的说明?15【问题28】K/3 BOS单据、序时簿和工业单据、序时簿中分别如何获得当前用户的信息?(比如ID)15【问题29】通过工业单据插件怎么获得当前K/3的版本号?工业单据插件是否支持所有账套类型的单据,不区分工业供应链、商业供应链?15【问题30】在工业单据的插件中如何得到单据的FInterID? (工业单据)15【问题31】在BOSV10.2中,填充新行数据可以用m_BillInterface.InsertNewRowAndFill方法实现,但是在BOSV10.1中不知道用什么方法可以向单据体逐行插入数据?如果单据体中有物料、计量单位等查找类型字段,其赋值是否一样?15【问题32】请问10.2的工业老单(非BOS),作k3BillTransfer插件的时候,是否可以在BeforHeadLookUp事件中指定基础资料的过滤条件,如:m_BillTransfer.HeadCtl(CtlIndex).Filter = 1=2 。我发现这段代码所指定的过滤条件不起作用。16【问题33】 我们在使用K/3 BOS+VB6为新港湾开发一个完全个性的项目管理系统,是使用一套帐的方式实现的,帐套理面将会创建几十或更多的工程项目,这就涉及到基础资料、项目计划、项目施工记录、项目有关单据等诸多信息要跟具体的项目邦定起来,用户一旦选定当前项目后,所有的数据维护、查询及报表都只针对当前项目操作,现在录入时跟项目邦定的问题我已解决,可查询(主要是序时薄,包括基础资料序时薄与业务单据序时薄如何与当前选定项目邦定,即序时薄只显示属于当前选定项目的数据)的问题还没解决,这就是我提出问题的背景,该问题若解决不了,整个使用K/3 BOS进行开发的解决方案将行不通,面临几十万元退款损失的风险,故十分重要。需求如下(举个例): 如用BOS定义了一个名为项目任务的基础资料,包含工程项目、任务代码、任务名称等字段,如下所示: 工程项目 任务代码 任务名称 - 00000001 01 进场准备 00000001 02 进场 00000002 01 进场准备 00000002 02 进场 . . . 写插件时,请问想要达到进入该基础资料序时薄时只显示某一个工程项目的相关基础资料记录该如何编码 (在那个事件入口处理、怎样处理),同样,如果是业务单据序时薄,又该如何设置过滤条件(在那个事 件入口处理,怎样处理),本人看过开发手册,好象没有合适的事件入口,更没有该方面的例子。17【问题34】怎么找每个字段的索引17【问题35】BOS 开发一张新的单据. 在选单返回时, 希望能在表体自动添加一行分录.18事件测试代码如下: Private Sub m_BillInterface_AfterSelBillBeforeFillData(ByVal dcData As KFO.IDictionary, ByVal dctLink As KFO.IDictionary) Dim CoDict As KFO.Dictionary Set CoDict = dcData(Page2)(1).CloneAll /拷贝第一条分录数据 dcData(Page2).Add CoDict /添加到 dcData dcData(Page2)(dcData(Page2).Count)(_-0001_FIndex2)(FFLD) = dcData(Page2).Count /更改分录号 Stop set CoDict=Nothing End Sub 我用 watch 查看 DcData 的值. DcData(Page) 也有增加一条, 但返回后,新添加的分录并未带到目标单据上? 请问我还要修改哪些地方?18【问题18】BOS单据插件里的BusinessCheck事件有何用途?写在BusinessCheck里面的代码也不执行,不知道这个事件到底是什么时候触发的。在AfterBusinessCheck事件中写的代码在打了10.2SP1之后就不执行了,我把代码放到BusinessCheck事件中也不执行,不知道什么原因,但AfterUnBusinessCheck中的代码却执行了。我只做了一级审核。AfterBusinessCheck事件和BusinessCheck事件触发时点的问题,以查看状态打开单据进行审核时,这两个事件不触发,只有在修改状态打开单据并进行审核,这两个事件才会被触发。之前没有打SP1的时候是没有这个问题的。因为强制审核人必须要打开单据检查后再进行审核,所以我在该单据的序时簿中把审核菜单去掉了,只能打开单据审核。不知道有没有人遇到这个问题。19二、方案篇20【问题1】客户的产品是通过图纸来制造的,图纸有些是客户自己提供标准图纸,有些是客户的需求自己根据需求画出来的,报价单很大的部分是根据图纸来的,而且图纸是公司的机密。现在用户需求是图纸需要有严格的权限控制,最好能够放在数据库里面统一管理,有图纸单据有:报价单,销售定单,合同;现在我们的K/3v10.2的附件的权限不好管理不能满足客户的需求。如何提供解决方案?20【问题2】客户需要开发一张外贸报价单,里面涉及到物料对应表的内容,对应代码具体能实现的功能跟现有的报价单的一致,现在不知道怎么样能够具体的实现这样的功能,因为BOS的基础资料里面没有物料对应表,可以新增BOS基础资料和物料对应表共用一个表名,但是怎么可以做到跟原有的报价单在物料对应这一块的一摸一样的功能。20【问题3】能否在新版BOS中提供一个没有数据,只有工具条及菜单栏的浏览数据窗口,供做插件集成操作窗口用,现在只能用单据窗口实现,打开时还出现过滤窗口,很别扭。20【问题4】新单下推(钩稽)老单时,在新单序时簿里可以选中多张单据下推生成老单,但在老单单据中选取新单是不能选取多张单据,怎样解决?20【问题5】为什么在BOS单据下推到外购入库单时无法选择红字单据,只能是蓝字单据呢?BOS单据下推生成老单的时候,怎样把BOS单据的单据号显示在老单上呢?21【问题6】如何在单据中做一个可以选择,又可以随意录入的字段?客户要在单据上加入一个“送货地点”,送货地点有一部分是固定的,还有一部分是只用一次,所以客户需要当是固定送货地点时的就进行选择,对于选不到的就直接在单据上打字(也就是不录入BOS基础资料中)。21【问题7】如何在把BOS单据的税率携带到下游老单据?BOS新做的单据税率是基础资料属性来做的,但是K/3的老单据的税率不是基础资料属性,所以BOS单据下推生成老单据的时候怎么样携带税率下去呢。21【问题8】客户的车间管理的单据与我们K310.2的差异很大,无法使用K3的车间来满足客户需求。从派工单,到工序汇报,到最后的计时计件工资,都有差异,比如派工单,K3的表头是客户单据的表体,而K3的表体是客户单据的表头。但单据流是基本一致的。请问这样的开发用BOS是否可行?还是单独写程序比较好?哪个综合起来效果最佳?另外,分录是否可以把字段竖着表示?把行变成列,把列变成行?21【问题9】K310.2 委外加工生产任务单-录入界面中,我们的系统中是只能实现录入一个物料进行委外加工,现在客户要求录入多条物料在一个界面内且能实现在原有界面上的所有操作。目前我用BOS新建一个表单做到的情况是可以录入多条物料,但BOM代码数据抓不到,单据能保存。实现不了确认单据后,单据状态由计划状态变为下达状态。请问应该怎么做。22【问题10】在工业单据上定义了“审核日期”字段,需要在审核后将系统日期填充到“审核日期”字段。我想通过工业单据插件来实现,但是不知道在哪个事件中执行?22【问题11】K3/10.2中调用不了Billtransfer,10.2以前版本中更新表ictransactiontype 中字段fcheckpro 成“ReDevClient:RevDev*.cls*”就可以调用 10.2版本是否需要修改其他地方?22三、单据定义篇23【问题1】在单据头要设置一个对应物料的销售出库单编号,要由系统自动填写,是不是可以用单据推啊?还有更好的方法吗?客户要求在单据体下面设置运费,整单折扣和总金额(总金额=运费合计金额整单折扣),合计金额就是单据体中的合计金额,但是在单据体中不能出现运费项,其中整单折扣是在客户资料有的,由系统自动填写我们想的是在单据体中先把运费加进去,等保存时就把运费项给隐藏,其中总金额的计算可以用值更新事件做,如何把单据头里的运费和单据体里的运费关联起来?23【问题2】我做的项目中,80的表单可以通过BOS完成,但有一些表单和报表完全开发,这些表单和报表如何发布到主控台?现在表单上需要加载图形,BOS什么时候能够支持图形?23【问题3】能否对BOS基础资料做过滤,即:在调出基础资料序时簿时,过滤出我需要的基础资料。24【问题4】有关多级审核的问题24【问题5】开发过程中需要从一张BOS单据下推生成一张K/3老单据,其中要从源单据的一个单据体字段推成目的单据的单据头字段,在你拷贝给我们的文档资料中明确说明不能由单据体推成单据头,所以只能通过插件开发来实现。但是在插件开发中我们发现不能对目的单据即K/3老单据进行定位,所以不知道这个功能能否通过插件开发来实现,如果可以,怎么实现?25【问题6】在K/3 BOS单据中,有没有属性可以设置某个项目,审核后可修改?有的话怎么做,没有的话是否有什么变通的方法?25【问题7】在BOS单据单据头中加了源单单据类型和源单单号两个字段,单据关联已设置好。(旧)生产任务单生成 BOS制作的委外加工订单(类似于采购订单)。1,选单后,源单单据类型和源单单号两字段中的数据立即变成空,保存后整个字段被隐藏。2,选单后,单据体中的物料编码可以带过来,但物料名称,规格等没有显示出来,保存后名称、规格等基本资料属性显示出来。请问源单单据类型和源单单号这个地方是BOS设计成这样?还是BUG?源单单据类型和源单单号应该像其他单据选单一样,保留在单据上并一直显示。25【问题8】多级审核的操作。Bos单据多级审核增加的“启动多级审核”具体完成什么功能?客户对原有的F4 、Shift+F4操作比较习惯,对现有的“启动多级审核”、“多级审核”和“驳回审核”操作有比较大的意见。问能否统一设置为这种审核操作方式?25【问题9】K3Bos表体如何设置合计?25【问题10】1、在BOS中,将源单单号(选单)拖入表头,在哪里设置才能可见并选择单据?2、在BOS平台中,我们可以进行单据测试和序时簿测试。请问,我能否用vb程序调起这些单据呢?如何调用?3、我在采购申请单中增加一个插件,希望能够调用我用BOS开发的一张单据。打开这张单据时,在源单单号处将采购申请单单号自动写入,并将一些数据从采购申请单中自动带入。如果申请单已审核,那这张单据将不能修改。如何做到?4、使用BOS平台生成的单据,能否传入一些参数?如果能,怎么传入?26四、其他1【问题1】如何打包应用程序?有一个项目需要发布,如何像开K/3发布补丁一样,自动找到金蝶的安装目录,自动注册组件,在中间层连接帐套,执行SQL语句。是否有类似的InstallShield的脚本参考?1【问题2】是否可以在相关的基础资料的对象中增加通过名字查询功能。目前的基础资料(部门,人员,物料等)是通过F7查询或者输入代码,但是实际业务中很多情况是输入名字,很多客户已经要求使用名字查询,特别是涉及职员、部门等基础资料,不知道BOS能不能先行一步,改掉k/3的这个习惯?即直接在那个文本框中输入名称,然后自动匹配,就像在文本框中输入代码一样,能够自动找到相应的基础资料。1【问题3】BOS中相关单据生成BOS安装包后,在新的账套中安装后不能直接在主控台上体现出来,要在新账套中用BOS重新发布才能在主控台上体现。希望能早日完善这功能。1【问题4】在10.2产品中对合同进行多级审核,在消息提示中,打开后提示需要BOS加密狗,但数据量只有一条,难道,10.2产品中自带的审批流设置也需要BOS狗吗?1【问题5】如何设置通过BOS定义的字段的套打?目前在收款单通过BOS自定义了一个字段,那么在收款的套打设置里面怎么取到这个字段呢?2【问题6】有个客户,需要做接口,用到应收应付模块,但有些要求比较特殊,需要修改应收模板。K/3 版本10.2,因为应收应付是BOS做的,所以我想在现有应收模块基础上进行修改,BOS设计界面可以调出来应收款管理,但不能发布。我想问在现有应收款管理上修改,可行么?2【问题7】对BOS单据中的层处理。如何做到显示或隐藏单据中某一层?2【问题8】销售前台客户端开发是否可以使用Dataflow.dat3【问题9】基础资料数据传输和单据传输用到的组件名称,包括销售前台的客户端和K3的服务器端3【问题10】销售前台零售单组件名称3【问题11】请问用K/3 BOS开发的多种单据后,客户在正式上线使用时,需如何购买站点数?是统一并发的吗?(方案)3【问题12】老单下推生成新单。老单为外购入库单。希望选定老单的某一条分录,通过手工操作能够自动弹出新单据的录入界面,并关联几个字段。每一个分录对应一张新单。每次选定老单一条分录即可。请问有没有办法实现这一功能?如有其他变通方式也可,要求为下推方式。3【问题13】在BOS的单据选单流程中,钩稽后不会自动扣减源单的数量,不能关闭,请问如何解决?从新单到老单建立了一个选单关系,发布以后,老单的源单类型下拉列表中丢失了原来的类型,只有新单。请问如何恢复?3【问题14】Bos钩稽生成旧单据出错。Bos定义单据下推生成销售出库单,关系为钩稽,Bos定义单据下推生成采购入库单,关系为钩稽,在Bos可以完成流程编辑和保存,实际操作中表现为复制,即出入库单不携带源单信息,源单扣减字段无变化。3【问题15】考虑过增加审核和反审核按钮,根据对多级审核的审核和反审核的sql事件跟踪直接修改审核相关表(单据界面还要刷新内容锁定状态),这样的话就越过了“启动多级审核”这一步骤,忽略这一步骤是否会带来其他问题?4【问题16】在K/3 BOS中能否打印一张复杂的单据?需要结合三张单据的内容进行打印。用两个以上的表体。其中一张单据的表头中一部分数据需要和表体的数据合在一起组成一个表体打印。其他部分数据在表头或其他的表体中打印。4【问题17】最近我在网上下了一个不知名的程序安装后随即卸了,可VB6运行时报错,我就重新修复安装了一下,但原来的K/3 BOS插件开发向导菜单按钮不见了,这样开发BOS插件很不方便,我想能否注册一下BOS组件就能解决问题?4viii客户化开发技术资料K/3 BOS开发百问百答一、插件开发篇【问题1】在插件中以新增、修改和查看方式打开另一单据【解答】使用代码调用序时簿*功能:显示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.CreateK3Object(K3ClassTpl.DataSrv) oDataSrv.ClassTypeID = lClassTypeID Set oBill = CreateObject(K3SingleClassBill.ClassInfoManager) 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 Suberr_ctr: Set oDataSrv = Nothing Set oBill = NothingEnd Sub【问题2】我想在投料变更单的菜单上加入一个菜单项,需要插入一个插件,但投料变更单上已经有一个插件了,我想了解一下怎样才可以再插入一个插件呢?【解答】点插件管理中的按钮,可以通过浏览来选择自定义插件,并选择多个插件对象,BOS允许多个插件同时存在。【问题3】如何通过插件代码动态设置基础资料或业务单据序时薄过滤条件【解答】业务场景:在开发BOS单据时,经常需要根据前面录入的字段值来过滤选择的基础资料。例如录入客户后,在选择客户对应客户地址基础资料时,在基础资料F7查询界面只显示当前单据上客户对应地址。根据当前物料,在选择物料对应批次。我们下面就以批次为例说明实现方法:需求:在选择批次前要求必须录入物料,批次查询界面只显示物料对应的批次开发步骤:假设:物料对应FKey=“FItemID”,批次对应FKey=FBatchNo单据类型 200000001只需更新对应元数据即可实现:update ICClassTableinfo set FFilter=(FItemID=GetFldValue(FItemID,1) where FKey=FBatchNo and FClassTypeID=200000001如果不要求先录入物料update ICClassTableinfo set FFilter=(FItemID=GetFldValue(FItemID,0) where FKey=FBatchNo and FClassTypeID=200000001再举个例子根据工艺路线过滤工序名称假设:工艺路线FKey=“FNewRoutingID”,工序名称FKey=FOperID单据类型 200000001update ICClassTableinfo set FFilter=FInterID In (Select FOperID from t_routingoper where FinterID=GetFldValue(FNewRoutingID,1) where FKey=FOperID and FClassTypeID=200000001其中GetFldValue为BOS内部函数,取单据上指定字段值,第一个参数为字段对应FKey,第二个参数为是否要求该字段先录入,1 要求 0 不要求此方法虽能实现,但不是最好方法。希望能在插件接口中提供在函数。【问题4】在插件中调用序时簿并返回选中的数据【回答】请参考下面代码*功能:显示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(K3ClassTpl.DataSrv) oDataSrv.ClassTypeID = lClassTypeID If oDataSrv.showfilter Then Set objLookup = CreateObject(K3ClassLookUp.BillLookUp) objLookup.ClassTypeID = lClassTypeID Set objLookup.DataSrv = oDataSrv objLookup.Lookup Set ShowListByReturn = objLookup.VectReturn End If Set oDataSrv = Nothing Set objLookup = Nothing Exit Functionerr_ctr: Set oDataSrv = Nothing Set objLookup = NothingEnd Function【问题5】在自定义的BOS单据上,通过插件作生成凭证的功能,但是在调用凭证的组件时,需要一个二次登录后才能使用相应的模块。请问:如何处理隐身的二次登录,或者其他的变通处理。【解答】1. 凭证组件的调用是不需要二次登录的,可能你是在VB调试状态下运行,编译后就没事了。2. 请参考下面代码Private Sub m_BillInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean)Dim glvch As Object 中间层凭证对象Dim mvch As KFO.Dictionary 待保存凭证头Dim mvchentry As KFO.Vector 待保存凭证分录集Dim entry As KFO.Dictionary 待保存凭证分录Dim mvchdetail As KFO.Vector 核算项目明细集Dim detail As KFO.Dictionary 核算项目明细Dim i, iCount As LongDim vValue As Variant TODO: 请在此处添加代码响应事件 MenuBarClick Select Case BOSTool.ToolName Case 生成凭证 vValue = m_BillInterface.GetFieldValue(FUser1) If Not (CStr(vValue) = Or CLng(vValue = 0) Then MsgBox 当前合同已经生成凭证!, vbExclamation, 金蝶提示 Exit Sub End If 此处添加处理 生成凭证 菜单对象的 Click 事件 Set mvch = New KFO.Dictionary mvch(FDate) = Now mvch(FGroup) = 金华泰项目 mvch(FReference) = m_BillInterface.GetFieldValue(FID) Set mvchentry = New KFO.Vector vValue = m_BillInterface.GetFieldValue(FInteger) 合同金额 创建凭证分录 Set entry = New KFO.Dictionary entry(FExplanation) = m_BillInterface.GetFieldValue(FNote) entry(FAccountID) = m_BillInterface.GetFieldValue(FBase) entry(FDC) = 1 entry(FAmount) = vValue 数量&单价 entry(FQuantity) = 0 entry(FUnitPrice) = 0 entry(FMeasureUnitID) = 0 创建核算项目明细 Set mvchdetail = New KFO.Vector Set detail = New KFO.Dictionary detail(FItemClassNumber) = 002 detail(FItemNumber) = 02 mvchdetail.Add detail Set entry(_Details) = mvchdetail mvchentry.Add entry Set mvch(_Entries) = mvchentry Set entry = New KFO.Dictionary entry(FExplanation) = m_BillInterface.GetFieldValue(FNote) entry(FAccountID) = m_BillInterface.GetFieldValue(FBase1) entry(FDC) = 0 entry(FAmount) = vValue 数量&单价 entry(FQuantity) = 0 entry(FUnitPrice) = 0 entry(FMeasureUnitID) = 0 创建核算项目明细 Set mvchdetail = New KFO.Vector Set detail = New KFO.Dictionary detail(FItemClassNumber) = 002 detail(FItemNumber) = 02 mvchdetail.Add detail Set entry(_Details) = mvchdetail mvchentry.Add entry Set mvch(_Entries) = mvchentry Dim s As String s = ConnectString=Provider=SQLOLEDB.1;User ID=sa;Password=ahyj;Data Source=JAMES;Initial Catalog=xt_3;UserName=administrator;UserID=16394;DBMS Name=Microsoft SQL Server;DBMS Version=2000;SubID=GL;AcctType=gy;Setuptype=Industry;Language=chs;IP=2;MachineName=JAMES;UUID=800A878D-F574-4877-B79C-D88AB721ECA0 Set glvch = CreateObject(EBSGLVoucher.VoucherUpdate) glvch.Create s, mvchs = Update t_BOS_ht set fUser1= & m_BillInterface.K3Lib.User.UserID & where fid= & m_BillInterface.GetFieldValue(FID) m_BillInterface.K3Lib.UpdateData s m_BillInterface.RefreshBill MsgBox 凭证生成成功!, vbInformation, 金蝶提示 Case 变更 End SelectEnd Sub【问题6】在设计BOS单据的过程中,经常会有关联的下拉列表框操作,如我在客户上选择“建设银行”,那么在客户相对应的地址的下拉列表框中应动态显示“建设银行所对应的地址”。也就是说客户地址是随着客户的变化而变化的。【解答】1. BOS不支持运行时动态修改下拉列表框的列表值,否则序时簿显示有问题。建议通过其它变通方法实现。客户改变时把相关地址取回到字典包中,用户录入后,自动匹配地址并自动回写。保存时判断地址是否正确。2. 可以首先定义一个基础资料(客户地址对应表),将下拉框字段改为基础资料字段,关联到客户地址对应表上,并设置动态过滤条件,条件设置方法为:K/3 BOS 开发秘籍之单据录入时动态改变基础资料过滤条件(:8000/forum/article.asp?id=37977)3. 通过插件的Change事件更新ICClassTableInfo 的FLookUpList字段值,运行正常,但是下拉列表框的数据没有变化,据推测好像是新增BOS单据时将所有的元数据规则加载到单据上,即使在单据操作过程中更改元数据规则单据也不能马上更新。不知道将下拉列表框类型替换为基础资料类型,在Change事件时更新基础资料的过滤条件,是否可行,仅供参考。Private Sub m_BillInterface_Change(ByVal dct As KFO.IDictionary, ByVal dctFld As KFO.IDictionary, ByVal Col As Long, ByVal Row As Long, Cancel As Boolean)Dim iDeptID As IntegerDim rs As ADODB.RecordsetDim sSql As String TODO: 请在此处添加代码响应事件 Change If dct(FKey) = FDept Then iDeptID = m_BillInterface.BillHeads(1).BOSFields(FDept).Value sSql = Update ICClassTableInfo set FLookUpList=SQL SELECT fItemID,fname FROM t_emp where fdepartmentID= & iDeptID & where (FClassTypeID = 200000003) and FID=7265 Set rs = m_BillInterface.K3Lib.GetData(sSql) End IfEnd Sub【问题7】如何可以物料多选?【解答】/* 判断物料是否为为多选If TypeOf ReturnItem.ReturnObject Is KFO.Vector Then /*如物料是多选,返回值是vector For lCount = 1 To ReturnItem.ReturnObject.UBound If ReturnItem.ReturnObject.Item(lCount).ItemID 0 Then Set dicItem = New KFO.Dictionary dicItem(Value) = ReturnItem.ReturnObject.Item(lCount).ItemID dicItem(Number) = ReturnItem.ReturnObject.Item(lCount).Number end if next End If注意目前只有物料能多选,其他核算项目不支持多选。【问题8】在表单分录里需要在第一列中使用F7键或点击菜单调出某一窗体(在插件中自定义Form,上有Spread表单),在Form中选中数据(多条或一条),返回到源单,请问在插件中用什么事件可以完成?在单据中添加一菜单,用MenuBarClick事件,F7不易实现。返回的数据需用赋值方法填写到表体中。是什么样的需求不能用BOS单据或基础资料完成“Spread表单”?【解答】Private Sub m_BillInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean) Dim dct As KFO.Dictionary Dim row As Long Dim col As Long TODO: 请在此处添加代码响应事件 MenuBarClick If BOSTool.ToolName = mnuDataLookUp Then m_BillInterface.GetActiveField dct, col, row If dct(FKey) = 要处理字段FKey Then frm.Show 1 通过frm返回 值 If ok Then m_BillInterface.UpdateNormalFld dct, 值, row End If Cancel = True End If End If End Sub还需要处理下面事件Private Sub m_BillInterface_BeginEdit(ByVal dct As KFO.IDictionary, ByVal Col As Long, ByVal Row As Long) If dct(F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大生态考试题目及答案七
- 车辆工程考试题库及答案
- 经营管理中的新质生产力应用
- 新质生产力的四大主要特点
- 医患关系处理方法
- 民族民间考级课件
- 七夕超市促销活动策划方案
- 民族政策教学课件
- 解读新质生产力核心内涵
- 2025年全科医学常见病诊断治疗能力模拟考试答案及解析
- 小学科学新教科版二年级上册全册教案(2025秋版)
- 《医学美容技术》课件-5强脉冲光美容技术
- TSGD7002-2023-压力管道元件型式试验规则
- GB/T 17614.1-2015工业过程控制系统用变送器第1部分:性能评定方法
- GB/T 14842-2007铌及铌合金棒材
- 《基层社区治理问题研究开题报告(含提纲)3500字》
- 《食品毒理学》教学PPT课件整套电子讲义
- 新闻学概论ppt全套教学课件
- JJF 1318-2011 影像测量仪校准规范-(高清现行)
- 部编人教版九年级上册初中历史全册教案(教学设计)
- 北师大版数学三年级上册第一单元测试卷含答案
评论
0/150
提交评论