![]() |
#8 |
Участник
|
Написал такой джоб:
X++: static void ChangeRegionCodes(Args _args) { UtilElements e; TreeNode treeNode; Dialog dialog; DialogField _level; DialogField _from; DialogField _to; UtilEntryLevel utilLevel; str _fromVal; str _toVal; str value; int i; ; dialog = new Dialog("Change locale"); _level = dialog.AddField(enumStr(UtilEntryLevel)); _from = dialog.AddField(extendedTypeStr(Region)); _to = dialog.AddField(extendedTypeStr(Region)); if(dialog.run()) { utilLevel = _level.value(); _fromVal = _from.value(); _toVal = _to.value(); } while select e where e.utilLevel == utilLevel && !(e.recordType == 37) //SharedProjects { treeNode = xUtilElements::getNodeInTree(xUtilElements::parentElement(e)); try { if(treeNode.AOTtypeStr() != "WMU" && treeNode.AOTtypeStr() != "PRN" && treeNode.AOTtypeStr() != "JOB") value = treeNode.AOTgetProperty("CountryRegionCodes"); if(value && strContains(value, _fromVal) && !strContains(value, _toVal)) { treeNode.AOTsetProperty("CountryRegionCodes", value + strFmt(",",_toVal)); treeNode.AOTsave(); i++; } If(treeNode.TreeNodeType().isConsumingMemory()) treeNode.treeNodeRelease(); } catch { info(treeNode.AOTtypeStr()); } } info(strFmt("Count of objects changed: %1", i)); } Есть еще варианты? |
|
|
|