最新K-3开发积累.doc
《最新K-3开发积累.doc》由会员分享,可在线阅读,更多相关《最新K-3开发积累.doc(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateK-3开发积累1、删除已发布的功能1. 删除已发布的功能Delete from t_DataFlowDetailFunc where fSubfuncid in (select FSubFuncID from t_DataFlowSubFunc where fFuncName=子功能名称) Delete t_DataFlowSubFunc where fFuncNam
2、e=子功能名称 Update t_DataFlowTimeStamp set FName=FName 2. 计算公式Select * from icTemplate where fID = s01修改其中的fAction其中的 fDefaultCtrl为1时不能改,为0时可以修改公式。3. 在基础资料中增加列3.1增加相应的表结构如(物料、客户等),增加自己列(fOperCode)3.2往表 ItemPropDesc 中增加相应数据3.3在t_IcItemCustom中增加相应列(t_Item)3.4更新t_IcItemCustom中数据,如:Update t_ICItemCustom Set
3、fOperCode = b.fOperCodeFromt_ICItemCustom a , t_Item bwhere a.fItemID = b.fItemID3.5执行exec SP_CREATE_ICItem_VIEWexec SP_CREATE_ICItem_TRIGGER-Select * from t_ItemClass-客户Alter Table t_Organization Add fOperCode varchar(30)INSERT INTO t_ItemPropDesc (FItemClassID,FPropID,FName,FName_en,FName_cht,FSQL
4、ColumnName,FDataType,FPrecision,FScale,FActualType,FActualSize,FBehavior,FSearch,FSrcTable,FSrcField,FDisplayField,FDefaultValue,FPageName,FPageName_en,FPageName_cht,FComCall,FIsShownList,FViewMask) VALUES (1, 102, 业务系统代码, 业务系统代码, 业务系统代码, fOperCode, 200, 30, 0, 200, 30, NULL, 0, NULL, NULL, NULL, NU
5、LL, 1.基本资料, 1. Basic Data, 1.基本資料, NULL, 0, 0)-部门Alter Table t_Department Add fOperCode varchar(30)INSERT INTO t_ItemPropDesc (FItemClassID,FPropID,FName,FName_en,FName_cht,FSQLColumnName,FDataType,FPrecision,FScale,FActualType,FActualSize,FBehavior,FSearch,FSrcTable,FSrcField,FDisplayField,FDefault
6、Value,FPageName,FPageName_en,FPageName_cht,FComCall,FIsShownList,FViewMask) VALUES (2, 102, 业务系统代码, 业务系统代码, 业务系统代码, fOperCode, 200, 30, 0, 200, 30, NULL, 0, NULL, NULL, NULL, NULL, 1.基本资料, 1. Basic Data, 1.基本資料, NULL, 0, 0)-职员Alter Table t_Emp Add fOperCode varchar(30)INSERT INTO t_ItemPropDesc (FIt
7、emClassID,FPropID,FName,FName_en,FName_cht,FSQLColumnName,FDataType,FPrecision,FScale,FActualType,FActualSize,FBehavior,FSearch,FSrcTable,FSrcField,FDisplayField,FDefaultValue,FPageName,FPageName_en,FPageName_cht,FComCall,FIsShownList,FViewMask) VALUES (3, 102, 业务系统代码, 业务系统代码, 业务系统代码, fOperCode, 200
8、, 30, 0, 200, 30, NULL, 0, NULL, NULL, NULL, NULL, 1.基本资料, 1. Basic Data, 1.基本資料, NULL, 0, 0)-物料Alter Table t_Item Add fOperCode varchar(30)INSERT INTO t_ItemPropDesc (FItemClassID,FPropID,FName,FName_en,FName_cht,FSQLColumnName,FDataType,FPrecision,FScale,FActualType,FActualSize,FBehavior,FSearch,F
9、SrcTable,FSrcField,FDisplayField,FDefaultValue,FPageName,FPageName_en,FPageName_cht,FComCall,FIsShownList,FViewMask) VALUES (4, 102, 业务系统代码, 业务系统代码, 业务系统代码, fOperCode, 200, 30, 0, 200, 30, NULL, 0, NULL, NULL, NULL, NULL, 1.基本资料, 1. Basic Data, 1.基本資料, NULL, 0, 0)exec SP_CREATE_ICItem_VIEWexec SP_CR
10、EATE_ICItem_TRIGGER4. 客户希望在销售订单的审核事件中加入一些控制条件,由于是老单据,在插件中抓不到审核事件,请高手指教!审核需要在中间层插件去做。做一个中间层Dll,如MidSample.dll,有一个类如clsMid.cls。在这个类中加入下面的代码:Public Function HookInvoke(ByVal pEventID As Long, Para As KFO.Dictionary) As Boolean On Error GoTo e If pEventID = 200003 Then 200004取自t_ThirdPartyComponent表Ftyp
11、edetailID字段 增加自己的代码 If Para(OperateCode) = 1 Then 1审核 2反审核 If Para(TranType) = 81 Then 销售订单 If (CanCheck = False) Then CanCheck可以是自己判断审核条件的函数 Para(ErrCode) = 33 可以自定义 Para(ErrSource) = XX审核判断组件 Para(ErrDescription) = XX提示:不能审核 HookInvoke = False Exit Function Else HookInvoke = True Exit Function End
12、 If End If End If End If HookInvoke = True Exit Functione: HookInvoke = FalseEnd Function这个类要在t_ThirdPartyComponent中注册,注册的SQL如下:insert t_ThirdPartyComponent (FTypeID,FTypeDetailID,FIndex,FComponentName,FComponentSrv,FDescription) values ( 2,200003,-2, MidSample.clsMid,)5. 辅助属性Select * from t_ItemCla
13、ss where fType in (3, 4)Select FAuxClassID from t_IcItem where FAuxClassID 06. 老单插件SQL-有关老单的插件注册-FTypeDetailID为单据类型21是销售出库单-有关fTypeDetailID 在ICTransactionType表中查询Delete FROM t_ThirdPartyComponent WHERE (FTypeDetailID = 21)insert t_ThirdPartyComponent (FTypeID,FTypeDetailID,FIndex,FComponentName,FCom
14、ponentSrv,FDescription) values ( 0,21,-2,K3Serial.CSerialInput,K3MSerial.WriteData,单据序列号客户端组件)insert t_ThirdPartyComponent (FTypeID,FTypeDetailID,FIndex,FComponentName,FComponentSrv,FDescription) values ( 0,21,-1,SettlePlugInForICBill.RetailSettles,POSORMapping.RetailBillWSvr,销售出库单多种结算方式)insert t_Th
15、irdPartyComponent (FTypeID,FTypeDetailID,FIndex,FComponentName,FComponentSrv,FDescription) values ( 0,21,-3,OutPlus.clsOut,南通港口销售出库单插件(提取装卸作业单相关成本)insert t_ThirdPartyComponent (FTypeID,FTypeDetailID,FIndex,FComponentName,FComponentSrv,FDescription) values ( 0,21,0, , , )GoCode1. 插件引用 位置: D:Kingdee项目
16、保华集团OrdComponentsClienta) K3BBI.tlbb) K3BillTransfer.dllc) KFO10.dll2. 引用相关的类文件7. 如何在工业单据中添加自定义的工具栏按钮及相应相关操作? 在为客户进行二次开发的过程中有时会遇到需要在在工业单据中添加自定义的工具栏按钮及相应相关操作的问题,以下将以一个实例来讲解如何进行达到这个目标。 例如,我希望在生产任务单的工具栏中增加一个名称为“测试”的按钮,点击此按钮后弹出消息框显示“Hello,World!”的信息,下面我们一步一步来实现。 1.首先需要为生产任务单增加一个新的二次开发插件,因此需要在VB中新建一个Acti
17、veX DLL工程,我们在这为此工程命名为:MyTester,然后在此工程中增加一个类,我们命名为MyButton。 2.为了让K/3识别此工程编译的组件是生产任务单的二次开发插件,必须在帐套中执行以下SQL语句: Insert t_ThirdPartyComponent(FTypeid,FTypeDetailID,FIndex,FComponentName) Values(0,85,1,MyTester.MyButton) 3.在工程中增加以下必须或常用的引用: 4.在类MyButton中增加一个私有对象: Private WithEvents m_BillTransfer As k3Bil
18、lTransfer.Bill 此对象是单据的事务代理对象,后续所有单据事件或单据数据都将从此对象中获得。 5.在类MyButton中增加一个公开方法: Public Sub Show(ByVal o As Object) Set m_BillTransfer = o End Sub 此方法将被单据调用,并对m_BillTransfer对象进行初始化。 6.在m_BillTransfer对象的LoadBillEnd事件中增加一个按钮: Private Sub m_BillTransfer_LoadBillEnd(ByVal ShowType As Long) With m_BillTransfe
19、r.BillForm.tlbTool.Buttons .Add .Count + 1, mnuTest, 测试, , 21 End With End Sub 这样当单据加载完成时将在工具栏的最后位置增加一个名称为“测试”的按钮。 7.下面我们还要能够相应此按钮的动作,在m_BillTransfer对象的RetEvents事件中进行处理: Private Sub m_BillTransfer_RetEvents(ByVal Para As KFO.IDictionary) If Para(EventID) = Bill_ButtonClick And Para(EventIDProp) = 1
20、Then If Para(Para)(Button).Key = mnuTest Then MsgBox Hello,World! End If End If End Sub 现在我们已经完成了所有的编码,编译后注册即可在生产任务单中看到结果。如果希望获得单据界面上更多的数据可以访问m_BillTransfer对象来获得,具体说明可以参见设计部发放的二次开发说明书,如果你已经感兴趣了就赶快动手试一试吧:) 运行结果: 8. 如何在工业单据插件中控制工具条、单据头、单据体的Enable、Visible、Lock等属性? 有珠海分公司的同事询问如何在工业单据插件中控制工具条、单据头、单据体的ena
21、ble、visible、lock等属性?具体实现有如下方式: 单据体锁住 With m_BillTransfer.Grid .Col = AAA .Row =2 .Lock = False End With 单据头锁住和禁用 With m_BillTransfer.Head(BBB) .Enabled = False .Locked = True End With工具条按钮隐藏或禁用 With m_BillTransfer.BillForm.tlbTool .Buttons(CCC).Visible = False .Buttons(DDD).Enabled = False End With菜
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 开发 积累
限制150内