[Aras笔记] 从Excel快速贴上受影响物件并建立变更单

###本文章内容皆由我本人开发撰写与分享

在变更单建立时,经常会花时间编辑受影响物件
经常是为了从Excel档案填写到PLM系统上
此快速贴上并汇入变更单就因此而生

準备如下
1.自订一个表单
2.在表单上的Import新增Click程式
3.在Action新增开启表单程式

如下示意操作
http://img2.58codes.com/2024/20106503psZONLBkhR.png
http://img2.58codes.com/2024/20106503CjpI62BGh6.png
http://img2.58codes.com/2024/20106503HqpJcaNZho.png
http://img2.58codes.com/2024/20106503eFlT6YCMYa.png


1.新增一份表单,并设计出适合的介面,拉出一个按钮且新增click程式,下面程式码可参考自己的系统现况去调整
http://img2.58codes.com/2024/20106503fJkjTIqzOd.png

var inn = new Innovator();var prt = typeof(parent.document.item) == "object" ? parent.document : parent.parent;var tmpThisItem = typeof(parent.document.thisItem) == "object" ? parent.document.thisItem : parent.thisItem;var topWnd = aras.getMostTopWindowWithAras(window);topWnd = topWnd.main || topWnd;//console.log(topWnd.dialogArguments.cur_item);var theItem = topWnd.cur_item;var changesItemtype= theItem.getAttribute("type","");//取得要汇入的文字框var textarea_import = document.getElementsByName("txtBOM")[1];var textarea_log = document.getElementsByName("txtLog")[1];if(textarea_import.value==="" || textarea_import.value===undefined){    aras.AlertError("Parts List is null.");}var logs = "";//解析每一行的编号var rows = textarea_import.value.split("\n");for(var i=0;i<rows.length;i++){    var part_num = rows[i];    if(part_num==="") continue;    //若为D_开头编码为Document或CAD    if(part_num.substring(0,1)=='D'){        var partItem = inn.newItem("Document","get");            partItem.setProperty("item_number",part_num);            partItem.setProperty("is_current","1");            partItem = partItem.apply();        if(partItem.isError()){            partItem = inn.newItem("CAD","get");            partItem.setProperty("item_number",part_num);            partItem.setProperty("is_current","1");            partItem = partItem.apply();        }        if(partItem.isError()==false){            //若是草稿就新增料号            if(partItem.getProperty("state","")==="Preliminary"){                var changeItem = inn.newItem("Affected Item","add");                    changeItem.setProperty("action","Add");                    changeItem.setProperty("new_item_id",partItem.getID());                                    var affectItem = inn.newItem(changesItemtype+" Affected Item","add");                    affectItem.setProperty("source_id",theItem.getID());                    affectItem.setPropertyItem("related_id",changeItem);                    affectItem = affectItem.apply();                    if(affectItem.isError()){                        logs+=part_num +" Error : "+affectItem.getErrorString()+"\n";                    }else{                        logs+=part_num +" OK.\n";                    }            }else{                //反之则变更                var changeItem = inn.newItem("Affected Item","add");                    changeItem.setProperty("action","Change");                    changeItem.setProperty("affected_id",partItem.getID());                var affectItem = inn.newItem(changesItemtype+" Affected Item","add");                    affectItem.setProperty("source_id",theItem.getID());                    affectItem.setPropertyItem("related_id",changeItem);                    affectItem = affectItem.apply();                    if(affectItem.isError()){                        logs+=part_num +" Error : "+affectItem.getErrorString()+"\n";                    }else{                        logs+=part_num +" OK.\n";                    }            }        }else{            logs+=part_num +" Error : "+partItem.getErrorString()+"\n";        }    }else{        //搜寻该料号        var partItem = inn.newItem("Part","get");            partItem.setProperty("item_number",part_num);            partItem.setProperty("is_current","1");            partItem = partItem.apply();        if(partItem.isError()){            logs+=part_num +" Error : "+partItem.getErrorString()+"\n";        }else{            if(partItem.getProperty("state","")==="Preliminary"){                var changeItem = inn.newItem("Affected Item","add");                    changeItem.setProperty("action","Add");                    changeItem.setProperty("new_item_id",partItem.getID());                                    var affectItem = inn.newItem(changesItemtype+" Affected Item","add");                    affectItem.setProperty("source_id",theItem.getID());                    affectItem.setPropertyItem("related_id",changeItem);                    affectItem = affectItem.apply();                    if(affectItem.isError()){                        logs+=part_num +" Error : "+affectItem.getErrorString()+"\n";                    }else{                        logs+=part_num +" OK.\n";                    }            }else{                var changeItem = inn.newItem("Affected Item","add");                    changeItem.setProperty("action","Change");                    changeItem.setProperty("affected_id",partItem.getID());                var affectItem = inn.newItem(changesItemtype+" Affected Item","add");                    affectItem.setProperty("source_id",theItem.getID());                    affectItem.setPropertyItem("related_id",changeItem);                    affectItem = affectItem.apply();                    if(affectItem.isError()){                        logs+=part_num +" Error : "+affectItem.getErrorString()+"\n";                    }else{                        logs+=part_num +" OK.\n";                    }            }        }    }}textarea_log.value = logs;

打开汇入视窗Action程式
http://img2.58codes.com/2024/20106503WZer7li5zn.png
var prt = typeof(parent.document.item) == "object" ? parent.document : parent.parent;var tmpThisItem = typeof(parent.document.thisItem) == "object" ? parent.document.thisItem : parent.thisItem;if(tmpThisItem.isNew()){    aras.AlertError("Please save the item. 请先存档并解锁后再执行。");}if(tmpThisItem.isLocked()===1 || tmpThisItem.isLocked()===2){    aras.AlertError("The item is Lock. 物件已上锁中");    return ;}if(tmpThisItem.getProperty("state","")==="New"){    var topWnd = aras.getMostTopWindowWithAras(window);    topWnd = topWnd.main || topWnd;    // get form    var formName = "JPC_ImportChangeData";    var fetchForm = this.getInnovator().newItem("Form","get");    fetchForm.setProperty("name",formName);    fetchForm = fetchForm.apply("get");     // check form for error    if (fetchForm.isError())        return alert("Can't find a form called " + formName);    // get form params    var params = {        title: 'Parts Change Import',         formId: fetchForm.getID(),       // put your form's id here        aras: aras,        dialogWidth: 600,                // set width int        dialogHeight: 400,               // set height int        content: 'ShowFormAsADialog.html',        cur_item : tmpThisItem    };    topWnd.cur_item = tmpThisItem;    var callback = function(res) {        //Perform logic using dialog result here        var parentID = document.itemID;        var parentAction = 'edit'; // or 'view'        top.aras.uiReShowItem(parentID,parentID,parentAction,'tab view');        return ;    }    // call form in dialog    topWnd.ArasModules.MaximazableDialog.show("iframe", params).promise.then(callback);    return null;}else{    aras.AlertError("Changes is not Preliminary.此非编辑系统状态,不能执行。");}

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章