# 工艺视图（首选项不完整）

## 1. 工道编辑

相关首选项列表：

1. Connor_AVIC_GXBZ_Bomline: 配置界面上方的表格
2. Connor_AVIC_GXBZ_[对象类型]: 配置界面下方的表格，对象类型是选择bom行对应item的真实类型名称
3. Connor_AVIC_GXBZ_Property_[对象类型]：配置界面中间属性表
4. Connor_AVIC_GXBZ_Common_Folder: 配置通用文件夹或Excel的uid
5. Connor_AVIC_GXBZ_Personal_Folder：配置个人文件夹或Excel的uid

### 1.1 表格首选项配置

涉及首选项：

1. Connor_AVIC_GXBZ_Bomline

2. Connor_AVIC_GXBZ_[对象类型]

首选项格式说明：

```text
第一行配置：指定的对象类型
指定对象类型后，该表格只加载指定类型的子行，如存在新建功能，则使用该类型新建对象
如不需要指定类型，首行需配置"bomline"，此表格仅支持读取和修改bom行属性

第二行开始配置属性映射
格式：[列宽][$每行最大字符数量][属性位置.][#]属性真实名称[=属性值(按该值进行过滤)]

列宽：选配，直接在前面加数字
每行最大字符数量：手动输入时，如果某行超过此数量则自动添加换行符
属性位置：如不写即默认bomline属性（位置包含：bomline, item, rev, itemmaster, revmaster）
属性位置（工步）：如不写默认为文件夹属性（位置包含：bomline，item）
#：属性名称前加#表示改列为手动序号列，用于重排序功能，支持多列
##：属性名称前加##表示改列为自动序号列，不跟随上下移动，删除行时也会自动调整，支持多列
属性真实名称：定义的属性名称，如要支持换行，请务必配置“bl_sequence_no”属性
属性值：配置后，只显示属性匹配的行（如配置指定的事例类型）

20210119更新: 下方表格支持GDT编辑器,属性名称配置到GDT_properties首选项即可

特殊配置：
sequence_step=工步号递增数值：配置工步号递增大小，不配置默认为10
```

示例：

```text
bomline
bl_indented_title
bl_occ_type=MEAssemble
200bl_item_object_name
```

```text
Item
bomline.##bl_sequence_no
bomline.bl_indented_title
rev.#object_desc
item.#object_desc
150item.object_name
sequence_step=2
```

### 1.2 属性首选项配置

涉及首选项：

1. Connor_AVIC_GXBZ_Property_[对象类型]

格式：

```text
多值，格式：[*]属性真实名称[=下拉值1;下拉值2;下拉值3]

*：表示属性在版本上，不添加*表示属性在版本表单
下拉值：配置后，若属性上未定义下拉值，则变更属性控件为下拉框，下拉内容为分号分隔后的配置内容；若定义下拉值，以bmide中定义的lov为准。
```

示例：

```text
object_name
*object_name=名称1;名称2;名称3
object_type
creation_date
```

### 1.3 特殊文本树

涉及首选项：

1. Connor_AVIC_GXBZ_Common_Folder: 配置通用文件夹或Excel的uid
2. Connor_AVIC_GXBZ_Personal_Folder：配置个人文件夹或Excel的uid

Excel 格式说明

> 从左上角开始写入内容，单元格排列保持树形即可，注意不要在内容之间插入空列

真实值说明：真实值有多种配置方式

> 1. 在真实值单元格内容前加“#RV#”
> 2. 在配置的uid后添加“#RealValue#列号”，配置后，对应文件夹内所有excel或指定uid的excel的对应列作为真实值列

### 1.4 TC兼容性修改

> 由于工序编制界面基于javafx开发，TC的文本检测未进行兼容，所以在文本框中进行复制粘贴和剪切时存在问题。
>
> 需要修改 com.teamcenter.rac.common.xxxx.jar 中的 plugin.xml

```xml
<definition id="com.teamcenter.rac.common.textActive">
    <with variable="activeContexts">
        <iterate operator="or" ifEmpty="false">
            <or>
                <equals value="com.teamcenter.rac.aifrcp.swingtext"/>
                <equals value="com.teamcenter.rac.aifrcp.swttext"/>
            </or>
        </iterate>
    </with>
</definition>
```

修改为

```xml
<definition id="com.teamcenter.rac.common.textActive">
	<or>
		<with variable="activeContexts">
			<iterate operator="or" ifEmpty="false">
				<or>
					<equals value="com.teamcenter.rac.aifrcp.swingtext"/>
					<equals value="com.teamcenter.rac.aifrcp.swttext"/>
				</or>
			</iterate>
		</with>
		<with variable="activePartId">
			<equals value="cn.net.connor.process.meopview.MEOPEditView"/>
		</with>
	</or>
</definition>
```

## 2. 工艺工序编辑

配置工艺视图中选择对应[对象真实类型]时，要在界面中显示的属性

```text
格式：“[*][#][$]显示名称=属性位置.属性名称[=附加lov的名称[=从工艺提取属性的属性位置.属性名称[=属性是否显示配置]]]”（属性位置包含 item, rev, itemmaster, revmaster）
注意：此处增加[$]符号的配置，表示控件是文本域，可多行输入。[*][#]同上，分别表示必填和只读

属性是否显示配置格式：“属性位置.属性名称:配置文本”。当属性真实值等于配置文本时，这条配置为有效配置，控件可见；否则忽略该行配置。
示例：“版本描述=rev.object_desc=BillCodes==rev.object_desc:1”

20210112: 附加lov名称配置可以替换为用英文分号分隔的下拉值列表

20201117 增加额外配置：某个下拉框(控制属性)选择指定的值时，隐藏指定的控件(隐藏属性)
格式：“HIDE_LISTENER:控制属性位置.控制属性名称=指定值:隐藏属性位置1.隐藏属性名称1;隐藏属性位置2.隐藏属性名称2”
示例：“HIDE_LISTENER:rev.object_desc=Civi:item.object_desc;item.object_name”
```

## 3. 选择原材料配置

**从Excel选择**

Connor_AVIC_MEOPEXCEL_[属性真实名称]

配置**创建工序**和**工艺编辑**视图界面中对应[属性真实名称]的选择按钮逻辑

```text
第一行：配置excel数据集的uid，可按照创建界面选择的类型区分。首先查找类型对应uid，未找到时查找默认uid。
格式：“默认uid;真实类型名称1:类型1使用的uid;真实类型名称2:类型2使用的uid;...”
第二行开始：配置表格显示和属性映射信息
格式：“[#]界面列名=excel列名[=属性位置.属性名称[=默认列宽]]”
#：表示添加该列的查询
```

## 3. 修改工序号

1. 首选项：Connor_AVIC_SQGXH_GXLX，多值，配置工序对象类型真实名称
2. 首选项：Connor_AVIC_SQGXH_SXBJ，多值，格式："表头名称=属性位置.属性名称"，属性位置包含：item,rev,itemmaster,revmaster,bomline

## 4. 安全说明

首选项：connor_process_aqtb_zsjm，多值

格式：

```text
第一行：安全图标文件夹UID
第二行：安全图标和选择版本的关系
第三行：安全说明属性名称（版本属性）
第四行：图标数据集类型，多个类型用英文分号分隔
第五行：需要添加安全图标的对象（Item）类型
```

示例：

```text
BkvJiCugJ5xHGD
IMAN_reference
object_desc
JPEG;Image
SF6_GMEP;Item
```

仅保留安全说明的配置方式

```text
第一行：安全说明属性名称（版本属性）
```

示例：

```text
object_desc
```

## 5. DWG 略图

首选项

```text
Connor_AVIC_BZGXLT：配置标准工序略图
Connor_AVIC_XLGXLT：配置下料工序略图
```

格式：

```text
select=选择的对象类型名称，多个用英文分号分隔
relation=新数据集和选择对象的关系
name=数据集名称和文件引用名称配置，支持拼接和属性路径，路径从bom行开始
success=（选配）成功提示，不配置则不提示
exist=（选配）根据名称、类型、关系检查数据集是否存在，已存在则不进行操作，不配置则不检查
dataset=模板数据集uid
```

示例：

```text
select=ItemRevision
relation=IMAN_reference
name=bl_sequence_no+_+bl_revision.IMAN_master_form_rev.object_desc+标准工序略图
success=成功了
exist=已经有了，不准上传
dataset=R0kJyb3IJ5xHGD
```

# 6. 新建工艺

首选项：Connor_AVIC_[版本类型]

配置创建工艺界面，对齐使用空格对齐（shift+space切换中英空格）

```text
格式：“[*][#][@]标题名称=写入属性配置[=提取属性配置[+GY][=下拉内容1;下拉内容2;下拉内容3]]”
*：必填
#：不可编辑
@: 不可见
属性配置格式：属性位置.属性名称（属性位置包含 item, rev, itemmaster, revmaster）
--------------------------------------------
特殊写入属性配置：
object_type：必配，指定新建对象的类型，如有下拉值，配置“真实类型名称[-新对象版本(父)与用户选择版本(子)的关联关系名称[-用户选择版本(父)与新对象(子)的关联关系名称]]”
```

## 7. 更改说明

首选项：connor_process_ggjl

配置工艺工序编辑界面中的更改记录，属性定义在版本表单

```text
第一行：表格行对象类型
第二行：版本表单中表格属性名称
第三号开始配置表格行属性，格式“[列宽]标题名称=属性名称”，仅字符串属性

首选项：connor_process_ggjl_editable

单值，逻辑类型，配置更改记录是否可编辑，默认不可编辑，配置true为可编辑
```

示例：

```text
SF6_TableRow
sf6_tablerow
50第1列=sf6_col1
第2列=sf6_col2
第3列=sf6_col3
第4列=sf6_col4
第5列=sf6_col5
第6列=sf6_col6
```

## 8. 工作中心选择

首选项：Connor_AVIC_MEOP_WorkCenter_Class

单值，配置工作中心分类ID

# 更新记录

20220224

1. 工道编辑，序号特殊配置

   更新配置：序号属性名称前加#

   属性位置（工步）：如不写默认为文件夹属性（位置包含：bomline，item）

   ```text
   [列宽][$每行最大字符数量][属性位置.][#]属性真实名称[=属性值(按该值进行过滤)]
   ```

   示例

   ```text
   首选项名称：Connor_AVIC_GXBZ_MEOP
   值：
   SF6_CheckActivity
   object_name
   sf6_checkType
   #sf6_checkTool
   bomline.me_cl_display_string
   object_desc
   ```

2. 工艺工序编辑，选择原材料

   **从数据库查询选择**

   `Connor_AVIC_MEOPSQL_[对象类型]_[属性真实名称]`

   配置**工艺编辑**视图界面中对应[属性真实名称]的选择按钮逻辑

   ```text
   配置sql查询语句，配置信息写到自定义表头中，注意表头需要加双引号
   表头格式：“[#]界面列名[=属性位置.属性名称[=默认列宽]]”
   #：表示添加该列的查询
   注意存在查询条件时需要在末尾准备好where关键字
   
   添加单个对象到选择版本的关系下：
   1. 通过UID添加，格式“UID=关系名称=默认列宽”，需要查询出需要添加的对象的UID，列宽设置为零则不会在界面中显示
   2. 通过ID添加，格式“ID=关系名称=默认列宽”，需要查询出需要添加的对象的ID，列宽设置为零则不会在界面中显示，添加对象的最新版本
   ```

   示例

   ```text
   首选项名称：Connor_AVIC_MEOPSQL_SF6_GMEP_object_name
   值：
   select
   pobject_name "#名称=item.object_name=200",
   puid "UID=NHL8_MaterialRlation=0"
   from pworkspaceobject
   where 1=1
   ```
   
3. 工步编辑从数据表选择

   **从数据库查询选择**

   `Connor_AVIC_GXBZ_SelectSql_[当前视图选择的对象类型]`

   ```text
   配置sql查询语句，配置信息写到自定义表头中，注意表头需要加双引号
   表头格式：“[#]界面列名[=反写属性名称[=默认列宽]]”
   #：表示添加该列的查询
   注意存在查询条件时需要在末尾准备好where关键字
   ```

   示例

   ```text
   首选项名称：Connor_AVIC_GXBZ_SelectSql_MEOP
   值：
   select
   pobject_name "#名称=object_name=200",
   puid "UID=object_desc"
   from pworkspaceobject
   where 1=1
   ```

