要求:新增一个按钮“外购入库拆分”

第一步:增加元数据按钮菜单名“FMenuPC”,新增一个不存在的FToolID(先select查询一下,编一个不存在的FToolID)

insert into t_MenuToolBar ( FToolID,FName,FCaption,FCaption_CHT,FCaption_EN,FImageName,FToolTip,FToolTip_CHT,FToolTip_EN,FControlType,
FVisible,FEnable,FChecked,FShortCut,FCBList,FCBList_CHT,FCBList_EN,FCBStyle,FCBWidth,FIndex,FToolCaption,FToolCaption_CHT,FToolCaption_EN)
values (10002,'FMenuPC','外购入库拆分','外购入库拆分','外购入库拆分','39','外购入库拆分','外购入库拆分','外购入库拆分',
0,0,1,0,0,'','','',0,0,0,'外购入库拆分','外购入库拆分','外购入库拆分')

第二步:将上面的按钮插入到菜单栏或者工具栏

在t_BandToolMapping中的FComName填入需要调入组件的名称(也就是对应插件DLL工程名+类名如:ProListBill.ListBill)注意:不要覆盖原有内容,要在原有内容上用"| "分割后加入的组件,可以

加多个组件。第一个插件前面一定要加"| ",因为之前的部分是记录了其他的信息。

fid对应IclistTemplate里的FMenuID,FBandID表示放在哪个菜单下(对应t_BandToolMapping。FSubBandID),可以通过以下语句关联得到哪个菜单

select a.*,b.fname,b.FCaption From t_BandToolMapping a, t_MenuToolBar b where  a.FID = 82 and a.ftoolid=b.ftoolid

备注:通过自己测试整理:FBandID=53菜单栏,FBandID=1--工具栏,FBandID=2--文件,FBandID=3--编辑,FBandID=4--查看,FBandID=5--格式;FIndex--放置的位置顺序

按钮插入菜单栏:

insert into t_BandToolMapping (FID,FBandID,FToolID,FSubBandID,FIndex,FComName,FBeginGroup)
values (82,53,10002,0,8,'|ProListBill.ListBill',0)

第三步:在外购入库序时簿显示按钮(如果里面有“|V”,则只能在后面加菜单项)

select * from IclistTemplate where FName like '%外购%'--取对应FID

Update IclistTemplate set FLogicStr=FLogicStr+ Case When Right(FLogicStr,1)='|' then 'V:FMenuPC' else '|V:FMenuPC' end
where FID =1 and not FLogicStr like '%FMenuPC%'

第四步:数据元建好后,再新建一个工程文件。这边:新建一个VB工程,命名为:ProListBill,在工程中新建一个类命名为:ListBill

 

第五步:序时簿插件注册

在插件代码编写完成及编译成DLL组件后,需要挂接到对应的老单序时薄上去
挂接时需要根据【工程名.类名】去更新后台数据库对应序时薄的模板,SQL脚本如下,请参考:
--先根据序时薄的名称,查询出对应的序时薄模板ID,例如查询外购入库的序时模板ID为:1
--后面的SQL语句需要根据这个FID(1)作为WHERE条件

DECLARE @FComponentExt AS VARCHAR(100)
SELECT @FComponentExt=FComponentExt FROM ICListTemplate WHERE FID=1
--此例中的【工程名.类名】为:ProListBill.ListBill 具体根据你的命名更改即可
IF CHARINDEX('ProListBill.ListBill', @FComponentExt) = 0
BEGIN
IF LEN(@FComponentExt)>0
SET @FComponentExt=@FComponentExt+';ProListBill.ListBill'
ELSE
SET @FComponentExt=';ProListBill.ListBill'
UPDATE ICListTemplate SET FComponentExt=@FComponentExt WHERE FID=1
END
GO

第六步:测试新增按钮是否运行成功。