二开表单插件注册与自动更新问题
金蝶云社区-云社区用户l6231922
云社区用户l6231922
1人赞赏了该文章 1,049次浏览 未经作者许可,禁止转载编辑于2016年09月05日 10:42:03

采购订单取价目表的系统功能不能满足要求,我们希望价目表不区分CG/VMICG,跟总部提了很多次,总部不改,只好自己研究做二开。
基本思路就是做一个表单插件,界面增加一个菜单,然后单击菜单后调用这个插件,通过sql获取价格,然后填写到采购订单上。不太熟,一边开发一边调试发现一个问题,这个插件放到服务器的什么地方才能实现自动更新和客户端调用啊。以下是全部操作流程。
1、BOS扩展采购订单,打开批量编辑,然后注册表单插件 qc_cloud_客户端插件.dll 。


2、注册一个空操作(更新价目表qc)


3、增加一个菜单(更新价目表qc),并在菜单的单击时间里面调用操作(更新价目表qc),保存之后,客户端就看到新菜单(更新价目表qc)了


4、把做好的插件放到服务器上,并做成kdz,服务器路径 C:/Program Files (x86)/Kingdee/K3Cloud/WebSite/ClientBin/ClientTools/qc_cloud_客户端插件.dll.kdz,把服务器的MainDownloadList.xml也建好,用服务器上的工具 C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\ClientBin\ClientTools\Kingdee.BOS.XPF.Updater.exe 自动创建的。


5、可是客户端启动的时候,显示更新不成功。而且客户端单击菜单(更新价目表qc),明显没有成功调用我的插件,我的插件在客户端的目录里面都搜不到。。。。。


到底哪点不对啊?没个正经的资料和教材,全靠自己摸索,好难啊。
服客户端插件的源代码:

namespace qc_cloud_客户端插件
{
public class 采购订单取价格 : AbstractBillPlugIn //单据插件抽象基类
{
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
switch (e.BarItemKey.ToLower())
{
case "更新价目表qc":
EntryEntity entry = this.View.BillBusinessInfo.GetEntryEntity("FPOOrderEntry");//获取单据体元数据
DynamicObjectCollection objs = this.View.Model.GetEntityDataObject(entry);//根据单据体获得数据集
foreach (DynamicObject obj in objs)
{
//具体代码略。。。。。
}
break;
}
}

}
}