When you are finished renamed the Item number Jobs
When you are finished renamed the Item number, you must record original Item number, related configure and so on!
static void Jimmy_ItemRenamedAfterUpdate(Args _args) { InventTableCompany ITCompany,delITCompany; InventTable IT,ITUpdateOrg; ConfigTable ConfigTable; InventDimCombination Combination; Dialog dlg = new Dialog( "updated to comoany Items infomation" ); DialogField dlgItem = dlg.addField(types::String, 'after rename Items:' , "Format such as :Items + ',' + Items + ',' + items" ); ListEnumerator le; ItemId ItemConfig; InventTrans InventTrans; int ITCompanys,Combinations,NoConfig; SysDataBaseLog SysDataBaseLog; Container Con; fieldId fieldId; List datalist; ListEnumerator enumerator; ; dlgItem.displayHeight(20); dlgItem.displayLength(50); dlg.doInit(); if (!dlg.run()) return ; le = global::strSplit(dlgItem.value(), ',' ).getEnumerator(); while (le.moveNext()) { ttsbegin ; ITUpdateOrg = InventTable::find(le.current(), true ); if (ITUpdateOrg) { select firstonly SysDataBaseLog where SysDataBaseLog.table == tablenum (InventTable) && SysDataBaseLog.LogType == DatabaseLogType::RenameKey && SysDataBaseLog.Description like ITUpdateOrg.ItemId + '*' ; if (SysDataBaseLog) { datalist = SysDataBaseLog.getDataAslist(); enumerator = datalist.getEnumerator(); while (enumerator.moveNext()) { Con = enumerator.current(); fieldId = conpeek(Con, 1); ITUpdateOrg.OrgItemId = sysdatabaselog.contents2Str(conpeek(Con, 3), fieldId); break ; } } if (!ITUpdateOrg.OrgItemId) ITUpdateOrg.OrgItemId = ITUpdateOrg.ItemId; ITUpdateOrg.Update(); } ttscommit ; select firstonly forupdate IT where IT.ItemId == le.current(); if (IT) { /* select firstonly InventTrans where InventTrans.ItemId == le.current(); if(InventTrans) throw Error(StrFmt("The ItemId %1 Exists InventTrans,do not rename of Items!",le.current())); */ select firstonly ConfigTable where ConfigTable.ItemId == IT.ItemId; //Have Configuration ItemConfig = '' ; if (ConfigTable) { ConfigTable.clear(); while select ConfigTable where ConfigTable.ItemId == IT.ItemId { ItemConfig = IT.ItemId + '_' + ConfigTable.ConfigId; ttsbegin ; select firstonly forupdate ITCompany where ITCompany.ItemId == ItemConfig; if (!ITCompany) { ITCompany.initValue(); ITCompany.ItemId = ItemConfig; ITCompany.Name = IT.itemName; ITCompany.OrgItemId = IT.OrgItemId; ITCompany.NormalItemId = IT.ItemId; ITCompany.insert(); ITCompanys++; } else { ITCompany.ItemId = ItemConfig; ITCompany.Name = IT.itemName; ITCompany.OrgItemId = IT.OrgItemId; ITCompany.NormalItemId = IT.ItemId; ITCompany.update(); } ttscommit ; ttsbegin ; delete_from delITCompany where delITCompany.ItemId == IT.OrgItemId + '_' + ConfigTable.ConfigId && delITCompany.OrgItemId == '' && delITCompany.NormalItemId == '' ; ttscommit ; ttsbegin ; select firstonly forupdate Combination where Combination.ItemId == ConfigTable.ItemId && Combination.ConfigId == ConfigTable.ConfigId; if (Combination) { Combination.ItemIdCompany = ItemConfig; Combination.update(); Combinations++; } ttscommit ; } } else //Have not Configuration { ttsbegin ; select firstonly forupdate ITCompany where ITCompany.ItemId == IT.ItemId; if (!ITCompany) { ITCompany.initValue(); ITCompany.ItemId = IT.ItemId; ITCompany.Name = IT.itemName; ITCompany.OrgItemId = IT.OrgItemId; ITCompany.NormalItemId = IT.ItemId; ITCompany.insert(); } else { ITCompany.ItemId = IT.ItemId; ITCompany.Name = IT.itemName; ITCompany.OrgItemId = IT.OrgItemId; ITCompany.NormalItemId = IT.ItemId; ITCompany.update(); } ttscommit ; ttsbegin ; IT.ItemIdCompany = it.ItemId; IT.update(); ttscommit ; NoConfig ++; info(IT.ItemId); } } ELSE info( "Not exists Item detail " + le.current()); } info(strfmt( "NoConfig : %1,Combinations : %2,ITCompanys : %3" ,NoConfig,Combinations,ITCompanys)); } |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步