###本文章内容皆由我本人开发撰写与分享
在变更单建立时,经常会花时间编辑受影响物件
经常是为了从Excel档案填写到PLM系统上
此快速贴上并汇入变更单就因此而生
准备如下
1.自订一个表单
2.在表单上的Import新增Click程序
3.在Action新增开启表单程序
如下示意操作
1.新增一份表单,并设计出适合的介面,拉出一个按钮且新增click程序,下面程序码可参考自己的系统现况去调整
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;
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.此非编辑系统状态,不能执行。");
}
<<: [Aras 笔记] Report报表-多阶BOM+替代料R1R2
>>: OpenCart + Journal 版型 = 地球表面最强的电商版型
结语 不知不觉~来到最後一天了! 来针对Swift与Kotlin开发上做个总结吧! 开发难度 首先谈...
因为公司政策规定,传机密压缩档的时候都要加上密码, 但是收到的档案这麽多,每次都要翻信找密码真的太麻...
资料团队组建 当各行业意识数据带来业务成长新动能时,追求卓越的企业意识到要充分运用企业数据,必须组建...
马可夫决策过程 Markov decision process MDP 在概率论和统计学中,马可夫决...
结语 终於来到尾声了,今天这篇文章,就是本系列文最後一篇了。先恭喜各位读者完成了整个系列,希望本系列...