diff --git a/SanPinPLM/相关操作/4.other/999.Delphi脚本记录.md b/SanPinPLM/相关操作/4.other/999.Delphi脚本记录.md index 19595677..190173ee 100644 --- a/SanPinPLM/相关操作/4.other/999.Delphi脚本记录.md +++ b/SanPinPLM/相关操作/4.other/999.Delphi脚本记录.md @@ -2,3 +2,73 @@ 本笔记用于记录所有编制过的 `Delphi` 脚本,以便于沉淀相关知识 +## 多属性值拼接至另一属性中 + +从 `fedtusr_substrate_id`、`fedtusr_substrate_id2`、`fedtusr_substrate_id3`、`fedtusr_substrate_id4` 控件中获取值,以逗号为分隔符,按顺序进行拼接,结果输出到 `mmmusr_substrate2` 控件中 + +```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. +``` + +## 属性值添加至另一属性中 + +`fedtusr_gys` 控件中的值有多个,采取 `;` 进行分隔,现要验证 `fedtusr_shgys` 控件中的值是否存在于 `fedtusr_gys` 控件中,如果不存在,则将其添加进去,并进行排序 + +```Delphi +uses MyClass,Variables,BaseUtil,CommonFunc,DataConst,CFFrm,CFSimplePropFrm,Forms,StdCtrls,Variants,SysUtils,Classes,Controls,Dialogs, + CHostIntf,ProductClas,DocClas,LoginClas,VirtualTrees,CEntClas,PathClas; + +var + gysList: TStringList; +begin + try + // 初始化 TStringList + gysList := TStringList.Create; + gysList.Delimiter := ';'; + gysList.StrictDelimiter := True; + // 将 fedtusr_gys 按分号分隔成列表 + gysList.DelimitedText := fedtusr_gys.Text; + if gysList.IndexOf(fedtusr_shgys.Text) = -1 then + begin + // 如果不存在,则添加到 fedtusr_gys 中 + gysList.Add(fedtusr_shgys.Text); + gysList.Sort; + // 将列表重新组合成字符串,使用分号分隔 + fedtusr_gys.Text := gysList.DelimitedText; + end; + finally + gysList.Free; + end; +end. +``` + +## 属性值是否被另一属性所包含校验 +