# 介绍 无论是 [自定义对象常规属性](../4.0-other/20.自定义对象常规属性.md) 还是 [窗体表单](175.窗体表单.md) 的设计,都离不开 **自定义控件页面** 其进入 **自定义控件页面** 的方式,基本统一为在常规属性页面右键 → 在菜单中选择 **自定义界面** ![image-20240615201756319](assets/image-20240615201756319.png) # 界面布局 自定义界面是对 **对象分类** 的 **常规属性** 页面进行设计,其界面设计器界面由 [树结构区](#树结构区) 、 [控件区](#控件区) 、 [属性界面区](#属性界面区) 、 [控件对齐区](#控件对齐区) 、 [控件属性设置区](#控件属性设置区) 组成 ![img](assets/clip_image002-17184539339761.jpg) ## 树结构区 由对象属性、主表、主表属性、明细表、明细表属性节点构成树结构(不同的对象类型,可见的节点也不同)。在 [树结构区](#树结构区) ,如果表节点或属性节点在 [属性界面区](#属性界面区) 中有对应的控件存在,选中节点时将选中 [属性界面区](#属性界面区) 对应的编辑控件 对其右键可进行相应操作 - **对象属性**:对象属性、主表节点或主表属性节点有效,右键选择 **对象属性** 弹出界面维护主表属性 - **复制名称**:对象属性、主表属性节点或明细表属性节点有效,复制的属性名称用于设计表单导出模板 - **复制描述**:对象属性、主表属性节点或明细表属性节点有效,复制的属性描述用于设计表单导出模板 ![image-20240615202023772](assets/image-20240615202023772.png) ## 控件区 **控件类型如下** ![image-20240616084343323](assets/image-20240616084343323.png) - **标签**:属性节点有效,用来显示属性描述 - **编辑框**:文本类型、整数类型、小数类型属性节点有效,用来编辑属性值 - **下拉框**:枚举类型属性节点有效 - **是否**:布尔类型属性节点有效 - **多行文本**:文本类型属性节点有效 - **时间**:时间类型属性节点有效 - **图片**:图片类型属性节点有效 - **时间段**:时间类型、时间段类型属性节点有效,时间类型时,该控件做查询条件输入控件使用 - **数值段**:整数类型、小数类型属性节点有效,设置数值范围 - **复选组合框**:枚举类型且设置了多选的属性节点有效 - **单选组合框**:枚举类型且没有设置多选的属性节点有效 - **扫描件信息**:文档类型属性节点且启用了 “ 启用与打印机互交接口 ” 参数时有效 - **明细单行**:明细表节点有效 - **明细多行**:明细表节点有效 - **ERP信息**:同步ERP信息到表单界面(需定制开发) - **静态文本**:任何时候有效,设置静态文本 - **按钮**:任何时候有效;增加按钮控件 - **组合框**:界面排版用,将某些字段集中于一个框选界面 - **行政区域**:行政区域类型属性节点有效,设置省、市、区地域名称 ## 属性界面区 窗体表单属性窗体中的常规属性界面,做表单展示界面的排版 ![img](assets/clip_image002-17184986687981.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) 在窗体表单实例窗体中, 可以通过右键菜单来操作网格控件中的数据行,可操作命令有:新增行、删除行、上移、 下移、导入数据 ## 控件对齐区 按住 “ Ctrl ” 键不放,用鼠标单击 [属性界面区](#属性界面区) 的不同控件,单击的控件将被选中,单击 **控件对齐区** 的对齐按钮,被标记的控件根据单击的按钮类型做相关操作 ![img](assets/clip_image002-17184995081342.jpg) **对齐按钮类型** - **第一排**:左对齐、右对齐、上对齐、下对齐(以选择的第一个标签为准) - **第二排**:垂直居中,水平居中,水平最长宽对齐,水平最窄宽对齐 - **第三排**:垂直长高对齐、垂直短高对齐、水平指定宽间距、垂直指定高间距 - **第四排**:宽增加、高减小、宽减小、高增加 ## 控件属性设置区 显示在 [属性界面区](#属性界面区) 选中的控件的属性,并可以对其属性值进行修改 ![img](assets/clip_image002-17184996194623.jpg) ![img](assets/clip_image002-17184996241534.jpg) **常规属性** - **文本对齐**:设置文本的对齐方式。可设置值:左对齐、右对齐、居中 - **左边距**:设置左边距 - **高度**:设置控件高 - **宽度**:设置控件款 - **不能为空**:设置控件取值不能为空,保存数据时校验 - **提示**:设置控件提示信息 - **默认图片**:图片类型控件,设置默认图片 - **标题**:设置控件显示文本 - **样式**:按钮类型控件设置单击类型。可设置值:正常、搜索物料 - **按钮类型**:编辑框控件设置按钮的类型,可设置值:正常、选择、下拉、只读选择 - **数据类型**:控件设置取值类型,可设置值:文本、整数、小数、日期、日期时间、字母 - **使用初始值**:编辑框控件设置是否使用初始值 - **初始值类型**:编辑框控件设置初始值类型,“使用初始值”启用时属性设置才有效,可设置值:用户输入、当前用户 ID、当前用户岗位、当前用户部门、当前日期时间、当前日期、当前时间、当前年、当前月、当前日、编码、创建时间、修改时间 - **初始值文本**:编辑框控件设置输入文本类型初始值,“使用初始值”启用且“初始值类 型”为“用户输入”时属性设置才有效 - **字体颜色**:设置字体大小及样式颜色 - **脚本**:编写脚本内容 - **按钮单击执行**:设置 [窗体表单脚本](../4.0-other/200.Delphi脚本.md) ,窗体表单实例或编辑对象常规属性时,脚本在单击按钮时执行 - **值改变时执行**:设置 [窗体表单脚本](../4.0-other/200.Delphi脚本.md) ,窗体表单实例或编辑对象常规属性时,脚本在属性值改变时执行 - **单击执行**:设置 [窗体表单脚本](../4.0-other/200.Delphi脚本.md) ,窗体表单实例或编辑对象常规属性时,脚本在单击控件时执行 - **双击执行**:设置 [窗体表单脚本](../4.0-other/200.Delphi脚本.md) ,窗体表单实例或编辑对象常规属性时,脚本在双击控件时执行 - **获得焦点执行**:设置 [窗体表单脚本](../4.0-other/200.Delphi脚本.md) ,窗体表单实例或编辑对象常规属性时,脚本在控件获取焦点时执行 - **失去焦点执行**:设置 [窗体表单脚本](../4.0-other/200.Delphi脚本.md) ,窗体表单实例或编辑对象常规属性时,脚本在控件失去焦点时执行