# 介绍 窗体表单能够根据用户需求定制属性界面;绑定流程实现数据流转和自动签名;绑定流程过程用户控制属性操作权限; 为属性控件编辑事件脚本来实现个性化的操作 # 窗体表单模板制作 ## 前提要求 创建窗体表单模板的用户必须具备 **企业配置** 中的 **对象分类** 权限 ![image-20240615112007122](assets/image-20240615112007122.png) ## 基础操作 选择 **企业配置** 模块的 **对象分类** 选项,在其结构树下选择 **窗体表单** 节点 对 **窗体表单** 或其下分类右键,可弹出菜单。对其下分类双击可打开 **对象分类属性** 窗体 ![image-20240615112216551](assets/image-20240615112216551.png) ## 创建分类 > 在三品PLM中,**分类** 其实就是窗体表单对象 > > 如果希望创建的窗体表单只需要作为容器包含其他的窗体表单,那么对其勾选 “ 抽象类 ” 即可,系统会将其视为“仅包含其他分类的容器分类”(可以理解为文件夹,详细可查阅[物料分类中详细介绍的抽象类](../2.PDM/25.物料分类设置.md#抽象类)) 对 **窗体表单** 进行右键或对其下的分类进行右键,在菜单栏中选择 **新建** 并选择 **分类** 即可进行新建分类操作 ![image-20240615112423689](assets/image-20240615112423689.png) 在弹出的窗口中可对窗体表单的分类对象进行设置 在 **对象分类属性** 窗体的 **规则定义** 页,分别设置 **名称**、**流程模板**、**名称编码器**、**编码器** 和 **导出模板** 对相关属性完成设定后,点击确定即可创建对应分类,但该分类的窗体表单仍是初始状态,无法满足使用,需要进行相应的 [属性配置](#窗体表单配置) 与布局设置 ![img](assets/clip_image002.jpg) **参数说明** - **名称**:窗体表单模板名称,如果没有绑定名称编码器,它作为窗体表单实例的名称 - **流程模板**:对窗体表单实例执行创建工作流时使用的流程模板 - **名称编码器**:为窗体表单实例绑定名称规则 - **编码器**:为窗体表单实例绑定编码规则 - **导出模板**:为窗体表单实例绑定导出模板 ## 移动端属性设置 在 “ 对象分类属性 ” 窗体的 “ 移动端属性 ” 页面可对移动端表单显示图标、审批方式进行配置 ![img](assets/clip_image002-17184222660001.jpg) **参数说明** - **审批**:在移动端提交表单时自动执行该表单所绑定的流程 - **报告**:在移动端提交表单时需选择接收人 - **APP图标**:在移动端该表单显示的图标 - **备注**:表单说明性的内容 ## 窗体表单配置 通过 **窗体表单配置** 能够对该窗体表单要使用的属性字段进行配置,在该页面中,分有 **主表配置** 与 **明细表配置** ![image-20240615115932296](assets/image-20240615115932296.png) ### 主表配置 使用一个字段,需要先勾选字段名称前的复选框,勾选后可输入字段描述,选择字段类型 ![img](assets/clip_image002-17184245362021.jpg) **参数说明** - **字段名称**:属性名称 - **字段描述**:属性显示名称 - **字段类型**:数据类型,定义界面时将根据类型来设置可创建控件 - **必填**:是否必填 - **枚举选项**:如果字段类型是枚举类型,指定枚举对应选项 - **多选**:如果字段类型是枚举类型,设置枚举项是否可多选 - **创建者权限**:创建者是否可以编辑及是否可见 - **表单来源**:该行字段值来源于哪个表单(配合项目管理中创建的表单使用) - **保密/系统角色权限**:勾选保密项后再配置保密所对应的系统角色,当不勾选保密选项,直接配置系统角色,则该项属性对此角色不保密 - **移动端排版**:表单在移动端列表中显示的顺序 - **移动端拍照**:在移动端执行时,该字段可做拍照上传图片 - **文本前缀**:如果字段是文本类型,为属性设置显示前缀,在自定义界面中使用 “ 编辑框 ” 控件时,此设置才有效 - **文本后缀**:如果字段是文本类型,为属性设置显示后缀,在自定义界面中使用 “ 编辑控件 ” 控件时,此设置才有效 ### 明细表配置 单击 **新增** 按钮,弹出明细表配置界面,与主表配置相似,要使用某一字段需要先勾选字段名称前的复选框,然后输入字段描述,选择字段类型 ![img](assets/clip_image002-17184246970592.jpg) **参数说明** - **表名称**:明细表名 - **映射表**:映射表名,表单实例中导入明细表数据时的数据源表 - **映射主键**:映射物料到该表时,物料内码ID存储的字段位置(建议选择duf_50) - **移动端排版**:当多个明细表时,在移动端明细报显示的顺序 - **隐藏序列号**:在表单显示界面不显示序号列 - **复制序号列名称**:配置表单导出模板时复制序号所对应的字段名 - **字段名称**:属性名称 - **字段描述**:显示名称 - **字段类型**:数据类型 - **枚举选项**:如果数据类型是枚举类型,指定枚举对应选项 - **多选**:如果数据类型是枚举类型,设置枚举项是否可多选 - **默认值**:该字段的初始值 - **创建者权限**:创建者是否可以编辑及是否可见 - **保密/系统角色权限**:勾选保密项后再配置保密所对应的系统角色,当不勾选保密选项,直接配置系统角色,则该项属性对此角色不保密 - **移动端排版**:表单在移动端列表中显示的顺序 - **必填**:是否必填 - **映射字段**:映射物料的哪一个属性值 - **合并单元格**:当初始明细某一列设置的默认值连续相同时,该列中的行合并 - **反写**:将表单中映射过来的物料属性值反写回物料属性界面 在 “ 初始明细 ” 页面,能够设置表单明细初始显示行,并配合合并单元格功能使用 ![img](assets/clip_image002-17184258509513.jpg) ## 界面设计 界面设计是对窗体表单的 “ 常规属性 ” 页面进行设计,在该页面右键即可在菜单中选择 “ 自定义界面 ”,进入到界面设计器当中 ![image-20240615201756319](assets/image-20240615201756319.png) 界面设计器界面由 “ [树结构区](#树结构区) ”、“ [控件区](#控件区) ”、“ [属性界面区](#属性界面区) ”、“ [控件对齐区](#控件对齐区) ”、“ [控件属性设置区](#控件属性设置区) ” 组成 ![img](assets/clip_image002-17184539339761.jpg) ### 主表属性设计 主表属性来源于窗体表单的 [主表配置](#主表配置) **主表属性添加到界面操作步骤** 1. 在 “ [树结构区](#树结构区) ”,选择 “ 主表属性 ” 节点下的属性节点 2. 单击 “ [控件区](#控件区) ” 的 “ 标签 ” 按钮,“ 标签 ” 按钮进入标记状态 3. 单击 “ [属性界面区](#属性界面区) ”,则在单击的位置创建 “ 标签 ” 控件,并取消 “ 标签 ” 按钮的标记 4. 单击 “ [控件区](#控件区) ” 的 “ 编辑框 ” 按钮,“ 编辑框 ” 按钮进入标记状态 5. 类似方法增加其它主表属性 ![img](assets/clip_image002-17185000857011.jpg) ### 明细表属性设计 明细表属性来源于窗体表单的 [明细表配置](#明细表配置),分单行明细表和多行明细表 单行明细表在属性界面上由 “ 明细单行 ” 容器控件 及在容器控件中的标签控件、编辑框控件及按钮控件组成 多行明细表在属性界面上由网格控件来显示及操作数据 #### 单行明细表属性设计 单行明细表下的属性对应的编辑控件必须创建在单行明细表对应的容器控件中,如此,控件对应的属性值才能正确的保存和显示 ![img](assets/clip_image001.gif) **单行明细表属性添加到界面操作步骤** 1. 在 “ [树结构区](#树结构区) ”,选择作为单行明细表的明细表节 2. 单击 “ [控件区](#控件区) ” 的 “ 明细单行 ” 按钮,“ 明细单行 ” 按钮进入标记状态 3. 单击 “ [属性界面区](#属性界面区) ”,则在单击位置创建一个容器控件并取消 “ 明细单行 ” 按钮的标记 4. 在 “ [树结构区](#树结构区) ”,选择明细表下的属性节点 5. 单击 “ [控件区](#控件区) ” 的 “ 标签 ” 按钮,“ 标签 ” 按钮进入标记状态 6. 单击 “ [属性界面区](#属性界面区) ” 中的容器控件,则在容器控件中创建 “ 标签 ” 控件,并取消 “ 标签 ” 按钮的标记 7. 单击 “ [控件区](#控件区) ” 的 “ 编辑框 ” 按钮,“ 编辑框 ” 按钮进入标记状态 8. 单击 “ [属性界面区](#属性界面区) ” 中的容器控件,则在容器控件中创建 “ 编辑框 ” 控件,并取消 “ 编辑框 ” 按钮的标记 类似方法增加其它明细表属性 如果要在表单实例中为单行明细表导入数据,且在明细表属性配置窗体中做好了属性映射,则可以在容器中创建一个 “ 按钮 ” 控件,用它来导入数据 1. 在 “ [控件区](#控件区) ” 单击 “ 按钮 ” 控件,在容器中单击,则在容器控件中创建 “ 按钮 ” 控件; 2. 选择容器中的 “ 按钮 ” 控件,在 “ 控件属性设置区 ” 设置 “ 标题 ” 和 “ 样式 ” ![img](assets/clip_image001-17185004101162.gif) #### 多行明细表属性设计 **多行明细表属性添加到界面操作步骤** 1. 在 “ [树结构区](#树结构区) ”,单击作为多层明细表的表节点 2. 单击 “ [控件区](#控件区) ” 的 “ 明细多行 ” 按钮 3. 单击 “ [属性界面区](#属性界面区) ”,则在单击位置创建一个 “ 网格 ” 控件 ![img](assets/clip_image002-17185005828653.jpg) 在窗体表单实例窗体中, 可以通过右键菜单来操作网格控件中的数据行,可操作命令有:新增行、删除行、上移、 下移、导入数据 ## 自定义界面布局 ### 树结构区 由主表、主表属性、明细表、明细表属性节点构成树结构。在 “ 树结构区 ”,如果表节点或属性节点在 “ 属性界面区 ” 中有对应的控件存在,选中节点时将选中 “ 属性界面区 ” 对应的编辑控件 对其右键可进行相应操作 - **对象属性**:主表节点或主表属性节点有效,右键选择“对象属性”弹出界面维护主表属性 - **复制名称**:主表属性节点或明细表属性节点有效,复制的属性名称用于设计表单导出模板 - **复制描述**:主表属性节点或明细表属性节点有效,复制的属性描述用于设计表单导出模板 ![image-20240615202023772](assets/image-20240615202023772.png) ### 控件区 显示所有系统支持的控件,根据 “ 树结构区 ” 中选中的表节点或属性节点的类型来决定哪些控件可以创建。单击控件按钮,控件按钮进入标记状态,在 “ 属性界面区 ” 再次单击,则在相应的位置创建对应的控件 ![image-20240616084343323](assets/image-20240616084343323.png) **控件类型** - **标签**:属性节点有效,用来显示属性描述 - **编辑框**:文本类型、整数类型、小数类型属性节点有效,用来编辑属性值 - **下拉框**:枚举类型属性节点有效 - **是否**:布尔类型属性节点有效 - **多行文本**:文本类型属性节点有效 - **时间**:时间类型属性节点有效 - **图片**:图片类型属性节点有效 - **时间段**:时间类型、时间段类型属性节点有效,时间类型时,该控件做查询条件输入控件使用 - **数值段**:整数类型、小数类型属性节点有效,设置数值范围 - **复选组合框**:枚举类型且设置了多选的属性节点有效 - **单选组合框**:枚举类型且没有设置多选的属性节点有效 - **扫描件信息**:文档类型属性节点且启用了 “ 启用与打印机互交接口 ” 参数时有效 - **明细单行**:明细表节点有效 - **明细多行**:明细表节点有效 - **ERP信息**:同步ERP信息到表单界面(需定制开发) - **静态文本**:任何时候有效,设置静态文本 - **按钮**:任何时候有效;增加按钮控件 - **组合框**:界面排版用,将某些字段集中于一个框选界面 - **行政区域**:行政区域类型属性节点有效,设置省、市、区地域名称 ### 属性界面区 窗体表单属性窗体中的常规属性界面,做表单展示界面的排版 ![img](assets/clip_image002-17184986687981.jpg) ### 控件对齐区 按住 “ Ctrl ” 键不放,用鼠标单击 “ [属性界面区](#属性界面区) ” 的不同控件,单击的控件将被选中,单击 “ 控件对齐区 ” 的对齐按钮,被标记的控件根据单击的按钮类型做相关操作 ![img](assets/clip_image002-17184995081342.jpg) **对齐按钮类型** - **第一排**:左对齐、右对齐、上对齐、下对齐(以选择的第一个标签为准) - **第二排**:垂直居中,水平居中,水平最长宽对齐,水平最窄宽对齐 - **第三排**:垂直长高对齐、垂直短高对齐、水平指定宽间距、垂直指定高间距 - **第四排**:宽增加、高减小、宽减小、高增加 ### 控件属性设置区 显示在 “ [属性界面区](#属性界面区) ” 选中的控件的属性,并可以对其属性值进行修改 ![img](assets/clip_image002-17184996194623.jpg) ![img](assets/clip_image002-17184996241534.jpg) **常规属性** - **文本对齐**:设置文本的对齐方式。可设置值:左对齐、右对齐、居中 - **左边距**:设置左边距 - **高度**:设置控件高 - **宽度**:设置控件款 - **不能为空**:设置控件取值不能为空,保存数据时校验 - **提示**:设置控件提示信息 - **默认图片**:图片类型控件,设置默认图片 - **标题**:设置控件显示文本 - **样式**:按钮类型控件设置单击类型。可设置值:正常、搜索物料 - **按钮类型**:编辑框控件设置按钮的类型,可设置值:正常、选择、下拉、只读选择 - **数据类型**:控件设置取值类型,可设置值:文本、整数、小数、日期、日期时间、字母 - **使用初始值**:编辑框控件设置是否使用初始值 - **初始值类型**:编辑框控件设置初始值类型,“使用初始值”启用时属性设置才有效,可设置值:用户输入、当前用户 ID、当前用户岗位、当前用户部门、当前日期时间、当前日期、当前 时间、当前年、当前月、当前日、编码、创建时间、修改时间 - **初始值文本**:编辑框控件设置输入文本类型初始值,“使用初始值”启用且“初始值类 型”为“用户输入”时属性设置才有效 - **字体颜色**:设置字体大小及样式颜色 - **脚本**:编写脚本内容 - **按钮单击执行**:设置脚本,窗体表单实例中,脚本在单击按钮时执行 - **值改变时执行**:设置脚本,窗体表单实例中,脚本在属性值改变时执行 - **单击执行**:设置脚本,窗体表单实例中,脚本在单击控件时执行 - **双击执行**:设置脚本,窗体表单实例中,脚本在双击控件时执行 - **获得焦点执行**:设置脚本,窗体表单实例中,脚本在控件获取焦点时执行 - **失去焦点执行**:设置脚本,窗体表单实例中,脚本在控件失去焦点时执行