diff --git a/SanPinPLM/相关操作/1.5-EDM-CAD/15.AutoCAD图纸模板制作.md b/SanPinPLM/相关操作/1.5-EDM-CAD/15.AutoCAD图纸模板制作.md index eb6c9ca3..ee7db841 100644 --- a/SanPinPLM/相关操作/1.5-EDM-CAD/15.AutoCAD图纸模板制作.md +++ b/SanPinPLM/相关操作/1.5-EDM-CAD/15.AutoCAD图纸模板制作.md @@ -14,11 +14,11 @@ ![Snipaste_2024-03-16_22-08-31](../1.0-EDM/assets/IMG-20240507121118806.png) -选中左下方标题栏,使用`x`命令将其打散 +选中左下方标题栏,使用 `x` 命令将其打散(定义标题栏必须将块打散后重新定义块进行定义,即便已有标题栏,也不可通过在位编辑块功能调整块中属性,必须打散后重新定义) ![Snipaste_2024-03-16_22-11-42](../1.0-EDM/assets/IMG-20240507121118847.png) -打散后,需要为标题栏各栏信息定义属性。 +打散后,需要为标题栏各栏信息定义属性 ## 属性定义 diff --git a/SanPinPLM/相关操作/2.0-PDM/27.删除已有物料分类.md b/SanPinPLM/相关操作/2.0-PDM/27.删除已有物料分类.md index 3e9e2747..88f130a9 100644 --- a/SanPinPLM/相关操作/2.0-PDM/27.删除已有物料分类.md +++ b/SanPinPLM/相关操作/2.0-PDM/27.删除已有物料分类.md @@ -1,6 +1,4 @@ -# 介绍 - -删除已有的物料分类 +# 删除已有物料分类 在 **企业配置** 的 **对象分类** 中,可以对物料的分类进行管理,选择要删除的物料分类即可 diff --git a/SanPinPLM/相关操作/4.0-other/999.Delphi脚本记录.md b/SanPinPLM/相关操作/4.0-other/999.Delphi脚本记录.md index bbcb8aef..fc3758d9 100644 --- a/SanPinPLM/相关操作/4.0-other/999.Delphi脚本记录.md +++ b/SanPinPLM/相关操作/4.0-other/999.Delphi脚本记录.md @@ -894,4 +894,57 @@ begin chiExecuteSqlNoResultRec('update cfdoc set code = ''' + ResultText + ''' where docid = ' + IntToStr(CurBizObj.objid)); end; end. +``` + +## 执行流程归档文件 + +将过程设置为普通过程,在提交后的事件里写入归档文件脚本,实现该过程提交后,文件归档的操作 + +> 思路说明: +> 1. 通过 `shiCurBizObj` 获取当前业务对象 +> 2. 从业务对象中提取工作流ID( `WFId`) +> 3. 构建动态 `SQL` 语句,将指定工作流相关的文档状态更新为"已归档"(`stat=4`) +> 4. 同时记录归档时间(使用系统当前时间) +> 5. 通过 `shiExeSql` 执行数据库更新操作,将文件标记为归档,并写入归档时间 + +```delphi +uses + Classes, SHostIntf, ThreadContextMan, IntfKernel, EntClas, CommonFunc, DataConst, DBIntf, + Data.Win.ADODB, Data.DB, SysUtils; + +var + strSql: string; // 声明SQL命令字符串变量 + iWFId: integer; // 声明工作流ID整型变量 + CurBizObj: TEntClas; // 声明当前业务对象变量 +begin + // 获取当前线程的业务对象实例 + CurBizObj := shiCurBizObj; + + // 如果当前业务对象不存在则退出程序 + if CurBizObj = nil then + exit; + + // 从业务对象中获取WFId字段的整数值 + iWFId := CurBizObj.I['WFId']; + + // 构建SQL更新语句: + // 1. 将cfdoc表中符合条件记录的stat字段更新为4(归档状态) + // 2. 同时更新archivedtime字段为当前时间 + // 3. 通过关联cfwfobj表确定需要更新的记录(要求wfid匹配且objtypeid=10) + strSql := Format( + 'update cfdoc set stat = 4, archivedtime = ''%s'' ' + + 'from cfwfobj a, cfdoc b ' + + 'where a.wfid = %d and a.objtypeid = 10 and a.objid = b.docid', + [GetCurTimeStr, iWFId] // 参数1:当前时间字符串,参数2:工作流ID + ); + + // 执行生成的SQL语句 + shiExeSql(strSql); +end. +``` + +如果是对物料进行操作,则用如下语句: + +```delphi +update pdmitem set stat = 4,archivedtime = ''%s'' from cfwfobj a,pdmitem b where a.wfid = %d and a.objtypeid = 21 and a.objid = b.itemid; ``` \ No newline at end of file