K - 3开发积累 联系客服

发布时间 : 星期一 文章K - 3开发积累更新完毕开始阅读d3a77c3067ec102de3bd8905

2. 引用相关的类文件

7. 如何在工业单据中添加自定义的工具栏按钮及相应相关操作?

在为客户进行二次开发的过程中有时会遇到需要在在工业单据中添加自定义的工具栏按钮及相应相关操作的问题,以下将以一个实例来讲解如何进行达到这个目标。

例如,我希望在生产任务单的工具栏中增加一个名称为“测试”的按钮,点击此按钮后弹出消息框显示“Hello,World!”的信息,下面我们一步一步来实现。

1.首先需要为生产任务单增加一个新的二次开发插件,因此需要在VB中新建一个ActiveX 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 k3BillTransfer.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_BillTransfer.BillForm.tlbTool.Buttons .Add .Count + 1, \测试\ End With End Sub

这样当单据加载完成时将在工具栏的最后位置增加一个名称为“测试”的按钮。

7.下面我们还要能够相应此按钮的动作,在m_BillTransfer对象的RetEvents事件中进行处理:

Private Sub m_BillTransfer_RetEvents(ByVal Para As KFO.IDictionary) If Para(\ If Para(\ MsgBox \ End If End If

End Sub

现在我们已经完成了所有的编码,编译后注册即可在生产任务单中看到结果。如果希望获得单据界面上更多的数据可以访问m_BillTransfer对象来获得,具体说明可以参见设计部发放的二次开发说明书,如果你已经感兴趣了就赶快动手试一试吧:)

运行结果:

8. 如何在工业单据插件中控制工具条、单据头、单据体的Enable、Visible、Lock等属性?

有珠海分公司的同事询问如何在工业单据插件中控制工具条、单据头、单据体的enable、

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(\ .Buttons(\ End With

'菜单按钮隐藏或禁用

With m_BillTransfer.BillForm .mnuEEE.Visible = False .mnuFFF.Enabled = False End With

其中AAA、BBB是单据模版中具体字段的FCtlOrder字段的值;CCC,DDD是工具栏按钮的Key,可以监视m_BillTransfer.BillForm.tlbTool.Buttons并找到需要的按钮Key;mnuEEE、mnuFFF是菜单按钮对象的Name,可以监视m_BillTransfer.BillForm并找到需要的菜单按钮Name。

9. 如何在工业单据中调用报表进行查询?

上一篇文章中介绍了在工业单据中添加自定义的工具栏按钮的方法(参见《如何在工业单据中添加自定义的工具栏按钮及相应相关操作?》),这次我们在这个基础上来学习如何在工业单据中调用报表进行查询。

我们准备在生产任务单新增加的“测试”按钮点击时调用显示“生产任务单执行明细表”。 首先在MyButton类中增加一个私有方法CallRpt: