Form 表单
表单(Form)是用户与 Item 交互的直接界面。每个 ItemType 可以绑定多个表单,通过不同的视图(View)为不同角色或不同场景提供差异化的界面呈现。
Form 与 View 的关系
- Form:界面布局的实体,通过 Form Editor 设计并保存在数据库中,运行时动态渲染
- View:ItemType 与 Form 之间的绑定关系,定义"打开某个 ItemType 时使用哪个 Form"
同一个 ItemType 可以配置多个 View,针对不同场景显示不同 Form:
| View 类型 | 用途 |
|---|---|
| Default View | 默认打开时使用的表单 |
| Print View | 执行"导出 PDF"时使用的打印版表单 |
| Classification View | 当 Item 的 Classification 字段为特定值时,自动切换到该表单 |
表单类型
Aras 支持两种表单布局模式:
Classic Form(经典表单)
字段采用绝对定位布局,通过 X / Y 坐标精确控制每个字段的位置。
- 优点:布局精确,适合打印场景
- 缺点:不响应屏幕尺寸变化,在不同分辨率下可能出现布局错位
Responsive Form(响应式表单)
字段采用流式布局,宽度和位置会根据用户屏幕尺寸自动调整。
- 优点:适配多种屏幕尺寸,适合现代浏览器
- 缺点:需要手动拖拽添加所有字段(RebuildViewAction 不适用于响应式表单)
创建与再生表单
新建 ItemType 并保存后,系统会自动创建一个与 ItemType 同名的 Classic Form。后续为 ItemType 新增的自定义属性,需要通过 RebuildViewAction 操作将其自动加入表单:
- 打开 ItemType → Views 标签页
- 右键点击目标 Form → Actions → RebuildViewAction
RebuildViewAction 会重置表单
该操作会移除 Form 上所有已配置的字段,然后根据 ItemType 的非隐藏属性重新生成。仅对新的 Classic Form 使用,不要在已手动调整过的表单上执行。
Form Editor 界面
经典表单的 Form Editor 分为四个区域:
| 区域 | 说明 |
|---|---|
| Properties | 当前 ItemType 的所有属性列表 |
| Field and Form Definitions | 选中字段或表单整体时的详细配置面板 |
| Empty Fields | 工具栏,包含各种空白控件(文本框、下拉框、按钮等)以及 Unused Properties 下拉 |
| Form Layout | 可视化的拖拽排版区域,运行时所见即所得 |
字段工具栏可用控件
| 控件 | 说明 |
|---|---|
| Text Field | 单行文本输入 |
| Password Field | 密码输入(掩码显示) |
| Text Area | 多行文本输入 |
| Date Field | 日期选择器 |
| Dropdown | 下拉列表 |
| Checkbox | 复选框 |
| Radio Button | 单选按钮 |
| Single Select List Box | 单选列表框 |
| Multi Select List Box | 多选列表框 |
| Color Field | 颜色选择器 |
| HTML Field | HTML 容器 |
| Button | 按钮(需绑定 Method) |
| Group Box | 分组容器 |
| Nested Form | 嵌套表单 |
| xClassification Control | 扩展分类树控件 |
字段配置
Field Type 配置
| 配置项 | 说明 |
|---|---|
| Field Type | 控件类型(Text、Dropdown、Checkbox、Item 等) |
| Data Source | 绑定的属性名 |
| Display Length | 控件显示长度 |
| Display Length Unit | 长度单位:px / em / % / cm 等 |
| Label | 字段标签文本 |
| Label Position | 标签位置:Top / Bottom / Left / Right |
| Text Alignment | 文本对齐:Left / Center / Right |
| Font Information | 标签字体样式 |
Field Physical 配置(经典表单)
| 配置项 | 说明 |
|---|---|
| Positioning | Absolute(绝对定位)或 Static(静态流式) |
| X / Y | 字段左上角坐标(像素) |
| Tab Index | Tab 键跳转顺序 |
| Tab Stop | 是否允许 Tab 键聚焦到该字段 |
| Z Index | 层叠顺序,数值大的显示在上层 |
| Visible | 是否可见 |
| Disabled | 是否为只读状态 |
List 类型字段特殊配置
当字段类型为 Dropdown 时,额外注意:
- List No Blank:勾选后,下拉列表不允许选择空值。对于 Filter List 类型属性,建议开启此项以避免过滤结果异常。
多视图与分类表单
同一个 ItemType 可以通过 Views 标签页绑定多个 Form。系统按以下优先级选择要渲染的表单:
- Classification 条件:如果 Item 的
classification字段匹配某个 View 的条件,优先使用该 View 绑定的 Form - Default View:无分类匹配时,使用标记为默认的 View
- Print View:执行导出操作时使用标记为打印的 View
这个机制允许对同一类数据,按分类(如 Internal / External)提供不同的输入界面。
表单设计建议
- 使用 Group Box 对相关字段进行逻辑分组,提升可读性
- 必填字段的 Label 建议添加醒目标记,配合 Required 属性的校验提示
- Sequence 类型的属性不要设为 Required,其值由服务端自动生成
- 响应式表单中,所有字段默认隐藏,需要逐个从 Properties 列表手动拖入布局区域
- 如果编辑过程中字段消失并显示 "undefined",保存表单后字段会恢复到原位
