diff --git a/.obsidian/graph.json b/.obsidian/graph.json index b10b3ab7..376d9819 100644 --- a/.obsidian/graph.json +++ b/.obsidian/graph.json @@ -1,6 +1,6 @@ { "collapse-filter": false, - "search": "", + "search": "path:SanPinPLM ", "showTags": false, "showAttachments": false, "hideUnresolved": false, @@ -32,6 +32,6 @@ "repelStrength": 10, "linkStrength": 1, "linkDistance": 250, - "scale": 0.7132754626224458, + "scale": 0.508761885579262, "close": true } \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 93c63e75..526701ac 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,30 +13,29 @@ "state": { "type": "markdown", "state": { - "file": "SanPinPLM/相关操作/4.other/15.自定义控件页面.md", + "file": "SanPinPLM/相关操作/1.EDM/210.文件变更管理.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "15.自定义控件页面" + "title": "210.文件变更管理" } }, { - "id": "99ccea48d5cfc1fe", + "id": "b83390a7bbd3816a", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "SanPinPLM/相关操作/1.EDM/175.窗体表单.md", + "file": "SanPinPLM/相关操作/1.EDM/170.自定义控件页面.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "175.窗体表单" + "title": "170.自定义控件页面" } } - ], - "currentTab": 1 + ] } ], "direction": "vertical" @@ -108,10 +107,10 @@ "state": { "type": "outline", "state": { - "file": "SanPinPLM/相关操作/1.EDM/175.窗体表单.md" + "file": "SanPinPLM/相关操作/1.EDM/210.文件变更管理.md" }, "icon": "lucide-list", - "title": "175.窗体表单 的大纲" + "title": "210.文件变更管理 的大纲" } }, { @@ -177,14 +176,14 @@ "hidden-folder-obsidian:显示文件夹": false } }, - "active": "99ccea48d5cfc1fe", + "active": "fb8302348d233a69", "lastOpenFiles": [ - "SanPinPLM/相关操作/4.other/15.自定义控件页面.md", "SanPinPLM/相关操作/1.EDM/175.窗体表单.md", + "SanPinPLM/相关操作/1.EDM/170.自定义控件页面.md", + "SanPinPLM/相关操作/1.EDM/200.Delphi脚本.md", + "SanPinPLM/相关操作/4.other/20.自定义对象常规属性.md", "SanPinPLM/相关操作/1.EDM/190.窗体表单实例.md", "SanPinPLM/相关操作/4.other/10.并发用户管理.md", - "SanPinPLM/相关操作/1.EDM/200.窗体表单脚本.md", - "SanPinPLM/相关操作/4.other/20.自定义对象常规属性.md", "SanPinPLM/相关操作/1.EDM/210.文件变更管理.md", "SanPinPLM/相关操作/1.EDM/205.窗体表单查询.md", "SanPinPLM/相关操作/1.EDM/195.窗体表单实例导出.md", diff --git a/SanPinPLM/相关操作/1.EDM/170.自定义控件页面.md b/SanPinPLM/相关操作/1.EDM/170.自定义控件页面.md new file mode 100644 index 00000000..ca714318 --- /dev/null +++ b/SanPinPLM/相关操作/1.EDM/170.自定义控件页面.md @@ -0,0 +1,159 @@ +# 介绍 + +无论是 [自定义对象常规属性](../4.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、当前用户岗位、当前用户部门、当前日期时间、当前日期、当前 时间、当前年、当前月、当前日、编码、创建时间、修改时间 +- **初始值文本**:编辑框控件设置输入文本类型初始值,“使用初始值”启用且“初始值类 型”为“用户输入”时属性设置才有效 +- **字体颜色**:设置字体大小及样式颜色 +- **脚本**:编写脚本内容 +- **按钮单击执行**:设置 [窗体表单脚本](200.Delphi脚本.md) ,窗体表单实例或编辑对象常规属性时,脚本在单击按钮时执行 +- **值改变时执行**:设置 [窗体表单脚本](200.Delphi脚本.md) ,窗体表单实例或编辑对象常规属性时,脚本在属性值改变时执行 +- **单击执行**:设置 [窗体表单脚本](200.Delphi脚本.md) ,窗体表单实例或编辑对象常规属性时,脚本在单击控件时执行 +- **双击执行**:设置 [窗体表单脚本](200.Delphi脚本.md) ,窗体表单实例或编辑对象常规属性时,脚本在双击控件时执行 +- **获得焦点执行**:设置 [窗体表单脚本](200.Delphi脚本.md) ,窗体表单实例或编辑对象常规属性时,脚本在控件获取焦点时执行 +- **失去焦点执行**:设置脚 [窗体表单脚本](200.Delphi脚本.md) ,窗体表单实例或编辑对象常规属性时,脚本在控件失去焦点时执行 \ No newline at end of file diff --git a/SanPinPLM/相关操作/1.EDM/175.窗体表单.md b/SanPinPLM/相关操作/1.EDM/175.窗体表单.md index e8fa1148..86446da9 100644 --- a/SanPinPLM/相关操作/1.EDM/175.窗体表单.md +++ b/SanPinPLM/相关操作/1.EDM/175.窗体表单.md @@ -22,7 +22,7 @@ > 在三品PLM中,**分类** 其实就是窗体表单对象 > -> 如果希望创建的窗体表单只需要作为容器包含其他的窗体表单,那么对其勾选 “ 抽象类 ” 即可,系统会将其视为“仅包含其他分类的容器分类”(可以理解为文件夹,详细可查阅[物料分类中详细介绍的抽象类](../2.PDM/25.物料分类设置.md#抽象类)) +> 如果希望创建的窗体表单只需要作为容器包含其他的窗体表单,那么对其勾选 **抽象类** 即可,系统会将其视为“仅包含其他分类的容器分类”(可以理解为文件夹,详细可查阅 [物料分类中详细介绍的抽象类](../2.PDM/25.物料分类设置.md#抽象类) ) 对 **窗体表单** 进行右键或对其下的分类进行右键,在菜单栏中选择 **新建** 并选择 **分类** 即可进行新建分类操作 @@ -46,7 +46,7 @@ ## 移动端属性设置 -在 “ 对象分类属性 ” 窗体的 “ 移动端属性 ” 页面可对移动端表单显示图标、审批方式进行配置 +在 **对象分类属性** 窗体的 **移动端属性** 页面可对移动端表单显示图标、审批方式进行配置 ![img](assets/clip_image002-17184222660001.jpg) @@ -117,171 +117,12 @@ - **合并单元格**:当初始明细某一列设置的默认值连续相同时,该列中的行合并 - **反写**:将表单中映射过来的物料属性值反写回物料属性界面 -在 “ 初始明细 ” 页面,能够设置表单明细初始显示行,并配合合并单元格功能使用 +在 **初始明细** 页面,能够设置表单明细初始显示行,并配合合并单元格功能使用 ![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、当前用户岗位、当前用户部门、当前日期时间、当前日期、当前 时间、当前年、当前月、当前日、编码、创建时间、修改时间 -- **初始值文本**:编辑框控件设置输入文本类型初始值,“使用初始值”启用且“初始值类 型”为“用户输入”时属性设置才有效 -- **字体颜色**:设置字体大小及样式颜色 -- **脚本**:编写脚本内容 -- **按钮单击执行**:设置脚本,窗体表单实例中,脚本在单击按钮时执行 -- **值改变时执行**:设置脚本,窗体表单实例中,脚本在属性值改变时执行 -- **单击执行**:设置脚本,窗体表单实例中,脚本在单击控件时执行 -- **双击执行**:设置脚本,窗体表单实例中,脚本在双击控件时执行 -- **获得焦点执行**:设置脚本,窗体表单实例中,脚本在控件获取焦点时执行 -- **失去焦点执行**:设置脚本,窗体表单实例中,脚本在控件失去焦点时执行 +界面设计是对窗体表单的 **常规属性** 页面进行设计,在该页面右键即可在菜单中选择 **自定义界面**,进入到 [自定义控件页面](170.自定义控件页面.md) 当中 +![image-20240615201756319](assets/image-20240615201756319.png) \ No newline at end of file diff --git a/SanPinPLM/相关操作/1.EDM/200.Delphi脚本.md b/SanPinPLM/相关操作/1.EDM/200.Delphi脚本.md new file mode 100644 index 00000000..e50cdf98 --- /dev/null +++ b/SanPinPLM/相关操作/1.EDM/200.Delphi脚本.md @@ -0,0 +1,85 @@ +# 介绍 + +在窗体表单或对象常规属性中支持 `Delphi` 脚本来实现一些特性化操作 + +# 脚本编辑器 + +这是一个编辑、检查脚本的窗体 + +由主菜单、工具栏、 [控件区](#控件区) 、 [脚本编辑区](#脚本编辑区) 、 [函数/变量区](#函数/变量区) 、 [错误提示区](#错误提示区) 组成,界面如下图: + +![image-20240621100850228](assets/image-20240621100850228.png) + +## 布局介绍 + +### 文件 + +保存或者关闭脚本编辑器 + +操作:检查语法正确性 + +查找/替换/查找下一个:TXT文本功能 + +设置: + +1. 修改 Tab 键跳转列数:设置缩进列数 +2. 工具栏:显示脚本编辑器常用操作 + +### 控件区 + +显示源窗体中的编辑控件,双击控件节点时,在 [脚本编辑器](#脚本编辑器) 的当前光标位置增加控件名称,支持节点拖动 + +### 脚本编辑区 + +编辑脚本的地方。 编辑时支持模糊匹 **配控件区** 的控件名和 **函数/变量区** 的函数或变量名; + +如果文本是控件名,输入 “ . ” 将提示控件支持的属性或方法 + +按 “ Tab ” 键支持选择文本的定长缩进 + +按 “ Shift + Tab ” 键支持选择文本的定长反缩进 + +支持文本搜索、搜索替换功能 + +使用的脚本为 `Delphi` 脚本,参考代码如下所示: + +```Delphi +uses MyClass,Variables,BaseUtil,CommonFunc,DataConst,CFFrm,CFSimplePropFrm,Forms,StdCtrls,Variants,SysUtils,Classes,Controls,Dialogs, + CHostIntf,ProductClas,DocClas,LoginClas,VirtualTrees,CEntClas,PathClas; +var + StringList: TStringList; + +begin + // 创建和初始化TStringList + StringList := TStringList.Create; + try + // 如果fedtusr_substrate_id的值不为空,则将值添加到StringList中 + if fedtusr_substrate_id.Text <> '' then + StringList.Add(fedtusr_substrate_id.Text); + if fedtusr_substrate_id2.Text <> '' then + StringList.Add(fedtusr_substrate_id2.Text); + if fedtusr_substrate_id3.Text <> '' then + StringList.Add(fedtusr_substrate_id3.Text); + if fedtusr_substrate_id4.Text <> '' then + StringList.Add(fedtusr_substrate_id4.Text); + + // 转换为逗号分隔的字符串 + mmmusr_substrate2.Text := StringList.DelimitedText; // 默认使用逗号作为分隔符 + + // 如果需要指定其他分隔符,可以设置Delimiter属性 + // StringList.Delimiter := ';'; // 设置分隔符为分号 + // Result := StringList.DelimitedText; + finally + StringList.Free; + end; +end. + +``` + +### 函数/变量区 + +显示系统支持的变量和函数,双击节点时,在 **脚本编辑区** 的当前光标位置增加变量或函数名称,鼠标移到树节点时,提示信息窗显示变量类型或函数原型,支持节点拖动 + +### 错误提示区 + +执行 **保存** 或 **检查语法正确性** 命令时,如果脚本存在错误,则错误信息被显示在 **错误提示区**,双击错信息行时,在 **脚本编辑区** 中对于的错误行用红色背景标记 \ No newline at end of file diff --git a/SanPinPLM/相关操作/1.EDM/200.窗体表单脚本.md b/SanPinPLM/相关操作/1.EDM/200.窗体表单脚本.md deleted file mode 100644 index bcbed096..00000000 --- a/SanPinPLM/相关操作/1.EDM/200.窗体表单脚本.md +++ /dev/null @@ -1,56 +0,0 @@ -# 介绍 - -在窗体表单中支持 `Delphi` 脚本来实现一些特性化操作 - -# 脚本编辑器 - -这是一个编辑、检查脚本的窗体 - -由主菜单、工具栏、控件区、脚本编辑区、变量/函数区、错误提示区组成,界面如下图: - -![image-20240621100850228](assets/image-20240621100850228.png) - -## 布局介绍 - -### 文件 - -保存或者关闭脚本编辑器 - -操作:检查语法正确性 - -查找/替换/查找下一个:TXT文本功能 - -设置: - -1. 修改 Tab 键跳转列数:设置缩进列数 -2. 工具栏:显示脚本编辑器常用操作 - -### 控件区 - -显示源窗体中的编辑控件,双击控件节点时,在“脚本编辑区”的当前光标位置 增加控件名称,支持节点拖动 - -### 脚本编辑区 - -编辑脚本的地方。 编辑时支持模糊匹 **配控件区** 的控件名和 **函数/变量区** 的函数或变量名; - -如果文本是控件名,输入 “ . ” 将提示控件支持的属性或方法 - -按 “ Tab ” 键支持选择文本的定长缩进 - -按 “ Shift + Tab ” 键支持选择文本的定长反缩进 - -支持文本搜索、搜索替换功能 - -### 函数/变量区 - -显示系统支持的变量和函数,双击节点时,在 **脚本编辑区** 的当前光标位置增加变量或函数名称,鼠标移到树节点时,提示信息窗显示变量类型或函数原型,支持节点拖动 - -### 错误提示区 - -执行 **保存** 或 **检查语法正确性** 命令时,如果脚本存在错误,则错误信息被显示在 **错误提示区**,双击错信息行时,在 **脚本编辑区** 中对于的错误行用红色背景标记 - -# 脚本配置 - -在窗体表单自定义界面进行脚本内容的配置 - -![img](assets/clip_image002-17189360595462.jpg) \ No newline at end of file diff --git a/SanPinPLM/相关操作/1.EDM/210.文件变更管理.md b/SanPinPLM/相关操作/1.EDM/210.文件变更管理.md index ec627ce6..6f444d62 100644 --- a/SanPinPLM/相关操作/1.EDM/210.文件变更管理.md +++ b/SanPinPLM/相关操作/1.EDM/210.文件变更管理.md @@ -8,7 +8,7 @@ ### 前置要求 -进行参数设置的用户角色必须具备 “ 系统设置 ” 中的 “ 参数配置 ” 权限 +进行参数设置的用户角色必须具备 **系统设置** 中的 **参数配置** 权限 ![image-20240614153619837](assets/image-20240614153619837.png) diff --git a/SanPinPLM/相关操作/4.other/15.自定义控件页面.md b/SanPinPLM/相关操作/4.other/15.自定义控件页面.md deleted file mode 100644 index bcb36251..00000000 --- a/SanPinPLM/相关操作/4.other/15.自定义控件页面.md +++ /dev/null @@ -1,145 +0,0 @@ -# 介绍 - -无论是 [自定义对象常规属性](20.自定义对象常规属性.md) 还是 [窗体表单](../1.EDM/175.窗体表单.md) 的设计,都离不开 **自定义控件页面** - -其进入 **自定义控件页面** 的方式,基本统一为在常规属性页面右键 → 在菜单中选择 **自定义界面** - -![image-20240615201756319](../1.EDM/assets/image-20240615201756319.png) - -# 界面布局 - -自定义界面是对 **对象分类** 的 **常规属性** 页面进行设计,其界面设计器界面由 [树结构区](#树结构区) 、 [控件区](#控件区) 、 [属性界面区](#属性界面区) 、 [控件对齐区](#控件对齐区) 、 [控件属性设置区](#控件属性设置区) 组成 - -![img](assets/clip_image002-17184539339761.jpg) - -## 树结构区 - -由对象属性、主表、主表属性、明细表、明细表属性节点构成树结构。在 [树结构区](#树结构区),如果表节点或属性节点在 [属性界面区](#属性界面区) 中有对应的控件存在,选中节点时将选中 [属性界面区](#属性界面区) 对应的编辑控件 - -对其右键可进行相应操作 - -- **对象属性**:对象属性、主表节点或主表属性节点有效,右键选择 **对象属性** 弹出界面维护主表属性 -- **复制名称**:对象属性、主表属性节点或明细表属性节点有效,复制的属性名称用于设计表单导出模板 -- **复制描述**:对象属性、主表属性节点或明细表属性节点有效,复制的属性描述用于设计表单导出模板 - -![image-20240615202023772](../1.EDM/assets/image-20240615202023772.png) - -## 控件区 - -显示所有系统支持的控件,根据 [树结构区](#树结构区) 中选中的表节点或属性节点的类型来决定哪些控件可以创建。单击控件按钮,控件按钮进入标记状态,在 [属性界面区](#属性界面区) 再次单击,则在相应的位置创建对应的控件 - -![image-20240616084343323](../1.EDM/assets/image-20240616084343323.png) - -**控件类型** - -- **标签**:属性节点有效,用来显示属性描述 -- **编辑框**:文本类型、整数类型、小数类型属性节点有效,用来编辑属性值 -- **下拉框**:枚举类型属性节点有效 -- **是否**:布尔类型属性节点有效 -- **多行文本**:文本类型属性节点有效 -- **时间**:时间类型属性节点有效 -- **图片**:图片类型属性节点有效 -- **时间段**:时间类型、时间段类型属性节点有效,时间类型时,该控件做查询条件输入控件使用 -- **数值段**:整数类型、小数类型属性节点有效,设置数值范围 -- **复选组合框**:枚举类型且设置了多选的属性节点有效 -- **单选组合框**:枚举类型且没有设置多选的属性节点有效 -- **扫描件信息**:文档类型属性节点且启用了 “ 启用与打印机互交接口 ” 参数时有效 -- **明细单行**:明细表节点有效 -- **明细多行**:明细表节点有效 -- **ERP信息**:同步ERP信息到表单界面(需定制开发) -- **静态文本**:任何时候有效,设置静态文本 -- **按钮**:任何时候有效;增加按钮控件 -- **组合框**:界面排版用,将某些字段集中于一个框选界面 -- **行政区域**:行政区域类型属性节点有效,设置省、市、区地域名称 - -## 属性界面区 - -窗体表单属性窗体中的常规属性界面,做表单展示界面的排版 - -![img](../1.EDM/assets/clip_image002-17184986687981.jpg) - -## 控件对齐区 - -按住 “ Ctrl ” 键不放,用鼠标单击 [属性界面区](#属性界面区) 的不同控件,单击的控件将被选中,单击 “ 控件对齐区 ” 的对齐按钮,被标记的控件根据单击的按钮类型做相关操作 - -![img](../1.EDM/assets/clip_image002-17184995081342.jpg) - -**对齐按钮类型** - -- **第一排**:左对齐、右对齐、上对齐、下对齐(以选择的第一个标签为准) -- **第二排**:垂直居中,水平居中,水平最长宽对齐,水平最窄宽对齐 -- **第三排**:垂直长高对齐、垂直短高对齐、水平指定宽间距、垂直指定高间距 -- **第四排**:宽增加、高减小、宽减小、高增加 - -## 控件属性设置区 - -显示在 [属性界面区](#属性界面区) 选中的控件的属性,并可以对其属性值进行修改 - -![img](../1.EDM/assets/clip_image002-17184996194623.jpg) - -![img](../1.EDM/assets/clip_image002-17184996241534.jpg) - -**常规属性** - -- **文本对齐**:设置文本的对齐方式。可设置值:左对齐、右对齐、居中 -- **左边距**:设置左边距 -- **高度**:设置控件高 -- **宽度**:设置控件款 -- **不能为空**:设置控件取值不能为空,保存数据时校验 -- **提示**:设置控件提示信息 -- **默认图片**:图片类型控件,设置默认图片 -- **标题**:设置控件显示文本 -- **样式**:按钮类型控件设置单击类型。可设置值:正常、搜索物料 -- **按钮类型**:编辑框控件设置按钮的类型,可设置值:正常、选择、下拉、只读选择 -- **数据类型**:控件设置取值类型,可设置值:文本、整数、小数、日期、日期时间、字母 -- **使用初始值**:编辑框控件设置是否使用初始值 -- **初始值类型**:编辑框控件设置初始值类型,“使用初始值”启用时属性设置才有效,可设置值:用户输入、当前用户 ID、当前用户岗位、当前用户部门、当前日期时间、当前日期、当前 时间、当前年、当前月、当前日、编码、创建时间、修改时间 -- **初始值文本**:编辑框控件设置输入文本类型初始值,“使用初始值”启用且“初始值类 型”为“用户输入”时属性设置才有效 -- **字体颜色**:设置字体大小及样式颜色 -- **脚本**:编写脚本内容 -- **按钮单击执行**:设置脚本,窗体表单实例中,脚本在单击按钮时执行 -- **值改变时执行**:设置脚本,窗体表单实例中,脚本在属性值改变时执行 -- **单击执行**:设置脚本,窗体表单实例中,脚本在单击控件时执行 -- **双击执行**:设置脚本,窗体表单实例中,脚本在双击控件时执行 -- **获得焦点执行**:设置脚本,窗体表单实例中,脚本在控件获取焦点时执行 -- **失去焦点执行**:设置脚本,窗体表单实例中,脚本在控件失去焦点时执行 - -### 脚本配置 - -根据操作的不同,为对应的事件配置脚本 - -其脚本格式为`Delphi`,参考代码如下: - -```Delphi -uses MyClass,Variables,BaseUtil,CommonFunc,DataConst,CFFrm,CFSimplePropFrm,Forms,StdCtrls,Variants,SysUtils,Classes,Controls,Dialogs, - CHostIntf,ProductClas,DocClas,LoginClas,VirtualTrees,CEntClas,PathClas; -var - StringList: TStringList; - -begin - // 创建和初始化TStringList - StringList := TStringList.Create; - try - // 如果fedtusr_substrate_id的值不为空,则将值添加到StringList中 - if fedtusr_substrate_id.Text <> '' then - StringList.Add(fedtusr_substrate_id.Text); - if fedtusr_substrate_id2.Text <> '' then - StringList.Add(fedtusr_substrate_id2.Text); - if fedtusr_substrate_id3.Text <> '' then - StringList.Add(fedtusr_substrate_id3.Text); - if fedtusr_substrate_id4.Text <> '' then - StringList.Add(fedtusr_substrate_id4.Text); - - // 转换为逗号分隔的字符串 - mmmusr_substrate2.Text := StringList.DelimitedText; // 默认使用逗号作为分隔符 - - // 如果需要指定其他分隔符,可以设置Delimiter属性 - // StringList.Delimiter := ';'; // 设置分隔符为分号 - // Result := StringList.DelimitedText; - finally - StringList.Free; - end; -end. - -``` - diff --git a/SanPinPLM/相关操作/4.other/20.自定义对象常规属性.md b/SanPinPLM/相关操作/4.other/20.自定义对象常规属性.md index 2082373f..f9ea9a69 100644 --- a/SanPinPLM/相关操作/4.other/20.自定义对象常规属性.md +++ b/SanPinPLM/相关操作/4.other/20.自定义对象常规属性.md @@ -87,7 +87,7 @@ ![image-20250121151417460](assets/image-20250121151417460.png) -相较于 **属性数值计算** 更建议采用 [窗体表单脚本](../1.EDM/200.窗体表单脚本.md) 来实现属性值的计算 +相较于 **属性数值计算** 更建议采用 [窗体表单脚本](../1.EDM/200.Delphi脚本.md) 来实现属性值的计算 # 操作步骤 @@ -101,7 +101,7 @@ ![image-20240606120757997](../2.PDM/assets/image-20240606120757997.png) -弹出的新窗口即为 [自定义控件页面](15.自定义控件页面.md),左侧的 [树结构区](../1.EDM/175.窗体表单.md#树结构区) 即为系统中对象的所有属性,与 [前置条件](#前置条件) 中的设置对应 +弹出的新窗口即为 [自定义控件页面](../1.EDM/170.自定义控件页面.md),左侧的 [树结构区](../1.EDM/175.窗体表单.md#树结构区) 即为系统中对象的所有属性,与 [前置条件](#前置条件) 中的设置对应 选择要添加的属性,在 [控件区](../1.EDM/175.窗体表单.md#控件区) 中选择标签,然后在 [属性界面区](../1.EDM/175.窗体表单.md#属性界面区) 的空白位置上点击,即可将该属性的标签名添加在页面中。然后再选择输入栏并将其添加到页面中