Skip to content
赞助合作

本站右侧赞助位长期招租

联系我投放

关系数据可视化 (Query Builder & Tree Grid View)

在企业 PLM 系统中,数据往往呈现高度关联的网状或树状结构(例如多级物料清单 BOM、变更受控对象树、项目任务分解树等)。为了直观地展示这些多级关联关系,Aras Innovator 提供了 Query Builder(查询构建器)Tree Grid View(树形网格视图,简称 TGV) 组合工具,允许开发人员在免写代码的情况下,快速构建交互式多级树状表格。


1. 技术架构:QB 与 TGV 的解耦设计

Aras 的关系数据可视化采用“数据定义与界面渲染分离”的经典架构:

  • Query Builder (QB):负责定义“数据如何查”。它构建了一个逻辑视图,描述从主 Item 开始,应该如何沿着关系键(relationship)或外键(item 属性)递归、深度遍历查询相关的子项及关联项。
  • Tree Grid View (TGV):负责定义“数据如何显”。基于 QB 提供的数据流,定义哪些节点应该渲染为树节点,每一列显示什么属性,各层级使用什么图标,以及节点双击跳转、单元格渲染控制等交互。

2. 第一步:构建 Query Builder (QB)

  1. 进入管理端 -> Query Definitions,新建一个查询定义。
  2. 选择根节点 (Root Query Item):这是查询的起始点,即主对象(如 Part)。
  3. 添加子节点 (Add Related Item)
    • 右键根节点,选择 Add Related Item
    • 选择关联类型:可以是通过关系类关联(如 Part BOM 关系),也可以是直连属性关联(如创建者 Created ByUser 记录)。
  4. 递归定义 (Recursion)
    • 对于物料清单 BOM 这种深度未知的树结构,可以对子节点配置递归(Recursion Reference)。例如,设置 Part BOM 关系下的 Related Item (Part) 递归关联回 Part 本身。
  5. 选择输出属性 (Selected Properties)
    • 勾选在展示中需要用到的各级对象的字段(如 item_number, name, state, quantity 等)。

查询性能优化

在 Query Definition 中,尽量只勾选需要的属性字段,避免加载大文本或不必要的关联字段,以优化大数据量多级树的检索加载速度。


3. 第二步:配置 Tree Grid View (TGV)

数据源 QB 构建好后,进入管理端 -> Tree Grid Views 创建展示界面。

3.1 创建与映射 (Mapping Elements)

  1. 新建 TGV,将刚才创建的 Query Definition 绑定为数据源。
  2. 进入 TGV 编辑画布(Graph Editor)。画布上会以图形化方式显示 QB 中定义的多级结构。
  3. 映射节点 (Map Elements)
    • 勾选你需要作为树形层级展开的节点。只有映射后的节点才会作为行展示在树状网格中。
    • 可以通过 Combine Rows 按钮,将“关系类”和“关联子类”合并在同一行展示,从而使树形结构更加紧凑。

3.2 界面样式定制 (Grid Formatting)

  • 列配置 (Columns):定义列名称、列宽度、文字对齐方式(左/中/右)。
  • 节点图标 (Icons):为不同类型或不同分类(Classification)的节点配置个性化图标,使界面更加美观。
  • 单元格渲染 (Cell Settings)
    • 超链接映射 (Item Links):将特定的单元格绑定为 Hyperlink,使用户在点击时能直接弹窗打开对应的物理对象表单。
    • 值变换 (Cell Display):可以将原始的 state 等系统英文值映射为直观的中文显示。

3.3 带参数的动态查询 (TGV Parameters)

在很多场景下,我们希望树形网格中的子项过滤与某些动态变量关联。

  1. 在 Query Definition 中定义 Query Parameter(例如:Target_Environment)。
  2. 在查询条件中引用该参数:[Target_Environment] = 'Production'
  3. 在 TGV 中,系统会自动感知此参数,并可以在用户打开页面时提供输入框,或者从主表单的属性字段中动态提取该参数传递给后台。

4. 第三步:发布与应用 (Usage)

TGV 配置完成后,需要通过 Tree Grid View Usage 关联到系统中,常见的使用方式有:

  1. 作为关系 Tab 页 (Relationship Tab)

    • 在目标 ItemType(如 Part)的 Relationships 中,新增一个关系。
    • 将该关系的渲染方式改为自定义的 TGV 视图。
    • 用户在打开 Part 表单时,底部 Tab 会直接渲染为多级 BOM 展开网格,支持懒加载展开。
  2. 作为 TOC 独立导航视图 (TOC Item)

    • 将 TGV 配置到目录树中。
    • 用户从 TOC 菜单点击,会打开一个全局的树形查询网格(支持在顶部输入过滤参数)。

5. 最佳实践与避坑指南

循环引用检测

如果在配置递归查询(如 BOM 结构)时,数据库物理数据中存在循环引用(例如 A 零件的子项是 B,B 的子项又是 A),查询引擎会报堆栈溢出。在向系统录入数据或 Method 开发时,必须做环路检测。

权限继承问题

TGV 中展示 of 各级子节点的数据严格遵循 Aras 的 Permissions (权限配置)。如果用户对某个子零件没有 Get 权限,该节点在 TGV 中会被自动隐藏,其子节点也不会被拉取,以保障企业数据安全。

本站内容仅供学习与参考

本站总访问量