金蝶K3 BOS插件开发常见技巧_第1页
金蝶K3 BOS插件开发常见技巧_第2页
金蝶K3 BOS插件开发常见技巧_第3页
金蝶K3 BOS插件开发常见技巧_第4页
金蝶K3 BOS插件开发常见技巧_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、 如何在工具栏上添加多级审核的按钮?在m_billinterface_menubarinitialize事件里添加如下代码即可。set otool = m_billinterface.menubar.bostools(mnueditmulticheck)with otool .caption = 多级审核 .tooltiptext = 多级审核 .description = 多级审核 .begingroup = false .toolpicture = app.path + checker.bmp .setpicture 0, vbbuttonfaceend withset oband =

2、 omenubar.bosbands(bandtoolbar)oband.bostools.insertbefore mnufileprint, otool 将菜单对象插入指定工具栏2、 如何在显示一张bos单据的同时给它赋值?要想在显示bos单据的同时给它赋值,关键是在显示前要购建m_billinterface的data包,这样在显示这张同据的时候,程序会解析data包,并将里面的值赋到单据界面上来。 dim dctdata as kfo.dictionary dim datasrv as object dim otableinfo as object set datasrv = m_bil

3、linterface.k3lib.createk3object(k3classtpl.datasrv) datasrv.classtypeid = lclasstypeid lclasstypeid 需要弹出单据的id set otableinfo = datasrv.tableinfo set dctdata = datasrv.getemptybill 然后将当前单据数据包中需要的数据填充到dctdata的对应字段 在以上语句执行后,dctdata(“page2”)里只有一行表结构(即表体只有一行) 赋表头的值 dctdata(page1)(otableinfo(map)(ftext)(f

4、fld) = m_billinterface.getfieldvalue(ftext) dctdata(page1)(otableinfo(map)(fdeptid)(ffld) = m_billinterface.getfieldvalue(fdeptid, -1, enu_valuetype_ffld) dctdata(page1)(otableinfo(map)(fdeptid)(ffnd) = m_billinterface.getfieldvalue(fdeptid, -1, enu_valuetype_ffnd) dctdata(page1)(otableinfo(map)(fde

5、ptid)(fdsp) = m_billinterface.getfieldvalue(fdeptid, -1, enu_valuetype_fdsp) 赋表体的值 dim opage2 as object for i = 1 to m_billinterface.data(page2).ubound - 1 set opage2 = dctdata(page2)(1).cloneall dctdata(page2).add opage2 添加到 dcdata dctdata(page2)(i + 1)(otableinfo(map)(findex2)(ffld) = i + 1 更改分录号

6、next for i = 1 to m_billinterface.data(page2).ubound 物料 fitemid dctdata(page2)(i)(otableinfo(map)( fitemid )(ffld) = m_billinterface.getfieldvalue(fitemid , i, enu_valuetype_ffld) dctdata(page2)(i)(otableinfo(map)( fitemid )(fdsp) = m_billinterface.getfieldvalue(fitemid , i, enu_valuetype_fdsp) dctd

7、ata(page2)(i)(otableinfo(map)( fitemid )(ffnd) = m_billinterface.getfieldvalue(fitemid , i, enu_valuetype_ffnd) 物料名称 fbaseproperty dctdata(page2)(i)(otableinfo(map)(fbaseproperty)(ffld) = m_billinterface.getfieldvalue(fbaseproperty, i, enu_valuetype_ffld) dctdata(page2)(i)(otableinfo(map)(fbaseprope

8、rty)(fdsp) = m_billinterface.getfieldvalue(fbaseproperty, i, enu_valuetype_fdsp) dctdata(page2)(i)(otableinfo(map)(fbaseproperty)(ffnd) = m_billinterface.getfieldvalue(fbaseproperty, i, enu_valuetype_ffnd) 计量单位 funitid dctdata(page2)(i)(otableinfo(map)( funitid )(ffld) = m_billinterface.getfieldvalu

9、e(funitid , i, enu_valuetype_ffld) dctdata(page2)(i)(otableinfo(map)( funitid )(fdsp) = m_billinterface.getfieldvalue(funitid , i, enu_valuetype_fdsp) dctdata(page2)(i)(otableinfo(map)( funitid )(ffnd) = m_billinterface.getfieldvalue(funitid , i, enu_valuetype_ffnd) 数量 fqty dctdata(page2)(i)(otablei

10、nfo(map)(fqty)(ffld) = m_billinterface.getfieldvalue(fqty, i, enu_valuetype_ffld) next set obj = createobject(k3singleclassbill.classinfomanager) with obj .datasrv = datasrv .ischeckright = true .show , , , dctdata end with3、 如何在插件中实现选单的功能?调用bos单据m_billinterface.billctl.doselbill lclasstypeid (原单的cl

11、asstypeid)调用工业单据m_billinterface.billctl.doseloldbill lclasstypeid (原单的classtypeid)4、 在插件中以新增、修改和查看方式打开另一单据 * 功能:显示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_billinte

12、rface.k3lib.createk/3object(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

13、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

14、sub5、 显示bos序时簿并返回选中的值* 功能:显示bos序时簿并返回选中的值参数:lclasstypeid显示bos单据的id* private function showlistbyreturn(byval lclasstypeid as long) as object dim odatasrv as objectdim objlookup as objecton error goto err_ctrset odatasrv = m_billinterface.k3lib.createk3object(k3classtpl.datasrv)odatasrv.classtypeid =

15、lclasstypeidif odatasrv.showfilter then set objlookup = createobject(k3classlookup.billlookup) objlookup.classtypeid = lclasstypeid set objlookup.datasrv = odatasrv objlookup.lookup set showlistbyreturn = objlookup.vectreturn end ifset odatasrv = nothingset objlookup = nothingexit functionerr_ctr:se

16、t odatasrv = nothingset objlookup = nothingend function6、 如何在序事簿中得到选中行的记录集值?dim vectselect as kfo.vectordim rs as adodb.recordsetset vectselect=m_listinterface. getselectedbillinfoset rs=m_listinterface.datasrv. getbilldetail(vectselect(1)(fid)7、 将当前单据转化为另一单据,并无界面保存数据 *功能:将当前单据转化为另一单据,并无界面保存数据参数:lcl

17、asstypeid显示bos单据的id* private sub nouisavebill(byval lclasstypeid as long) dim odatasrv as objectdim otableinfo as objectdim obill as objectdim odata as objectdim osrv as objectdim opage2 as objectdim i as longon error goto err_ctrset odatasrv = m_billinterface.k3lib.createk3object(k3classtpl.datasrv

18、)odatasrv.classtypeid = lclasstypeidset otableinfo = odatasrv.tableinfoset odata = odatasrv.getemptybillfor i = 1 to m_billinterface.data(page2).ubound - 1 set opage2 = odata(page2)(1).cloneall odata(page2).add opage2 添加到 dcdata odata(page2)(i + 1)(_-0001_findex2)(ffld) = i + 1 更改分录号nextfor i = 1 to

19、 m_billinterface.data(page2).ubound odata(page2)(i)(otableinfo(map)(fitemid)(ffld) = m_billinterface.getfieldvalue(fitemid, i, enu_valuetype_ffld) odata(page2)(i)(otableinfo(map)(fitemid)(ffnd) = m_billinterface.getfieldvalue(fitemid, i, enu_valuetype_ffnd) odata(page2)(i)(otableinfo(map)(fitemid)(f

20、dsp) = m_billinterface.getfieldvalue(fitemid, i, enu_valuetype_fdsp) next set osrv = createobject(k3mclass.billupdate) i = osrv.save(mmts.propsstring, odatasrv.classtype, odatasrv.classtypeentry, odatasrv.tableinfo, odata, odatasrv.dctlink)set odatasrv = nothingset obill = nothing exit suberr_ctr: m

21、sgbox err.descriptionset odatasrv = nothingset obill = nothingend sub【备注】1、k/3 bos保存方法save的参数描述:public function save(byval sdsn as string, _ byval dctclasstype as kfo.dictionary, _ byval vctclasstypeentry as kfo.vector, _ byval dcttableinfo as kfo.dictionary, _ byref dctdata as kfo.dictionary, _ byval dctlinks as kfo.dictionary) as long/*/*描述

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论