上一页

自定义组件交互

自定义组件和NX之间实现了完全的交互融合,可以实现如下功能:

  1. 在NX中调用自定义组件函数.
  2. 在组件中为报表格子赋值.
  3. 在组件中调用报表命令.

因此可以完成如下几种模式:

1)NX请求->组件反馈
Request
Response
NXCELLS
组件
2)NX单向请求->组件
Request
NXCELLS
组件
3)组件单向请求->NX
plg_SetValueChanged
组件
NXCELLS
4)组件单向调用NX报表命令
plg_FireNxAction
组件
NXCELLS
5)混合使用以上模式
Request
Outside Interface
plg_SetValueChanged
plg_FireNxAction
Outside Interface
NXCELLS
组件
外部源

实际操作

在NX中只需要关注两项报表命令:

初始化自定义组件 和 自定义组件赋值

每次使用自定义组件前需要确保已经初始化过组件. 当需要完成模式1和模式2时需要创建 自定义组件赋值 命令.当使用模式2时,创建的命令不需要指定返回值暂存字段.

要完成交互还需要在组件中实现功能.
在组件中,交互涉及三项函数:

  1. Request
  2. plg_SetValueChanged
  3. plg_FireNxAction

其中1函数是IPluginGuest接口实现的函数。
2, 3函数是在初始化时保存的IPluginMaster对象内的函数。因此必须在组件中将IPluginMaster对象赋值到变量。如下图

IPluginMaster对象内的函数如下图

模式一流程为:

  1. NX中定义自定义组件赋值命令,指定传递值和返回值。
  2. 组件中响应Request,根据传入值(content)生成返回值,返回。

模式二流程为:

  1. NX中定义自定义组件赋值命令,指定传递值。
  2. 组件中响应Request,根据传入值(content)执行业务逻辑。

模式三流程为:

  1. 组件中调用赋值函数(plg_SetValueChanged),NX中显示结果
    plg_SetValueChanged(object obj, string tableName, string fieldName, int index)
    • object obj: 传递值,最好是字符串
    • string tableName: 表名称
    • string fieldName: 字段名称
    • int index: 当给明细表赋值时,控制赋值的行。注意: index+1 等于行号

模式四流程为:

  1. 组件中调用报表命令(plg_FireNxAction),NX中显示结果
    plg_FireNxAction(string actionEvent)
    • string actionEvent 事件名称

案例演示

演示库下载

组件演示源码

下一页

作者:小明  创建时间:2022-01-21 17:43
最后编辑:harry  更新时间:2023-10-30 15:52