You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

508 lines
17 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
#pragma warning (disable: 4996)
#pragma warning (disable: 4819)
#pragma warning (disable: 4995)
#include <tc/tc.h>
#include "epm_handler_common.h"
#include <ict/ict_userservice.h>
#include <tccore/custom.h>
#include <epm/epm_toolkit_tc_utils.h>
#include <tccore/aom.h>
#include <tccore/aom_prop.h>
#include <tccore/item.h>
#include <bom/bom.h>
#include "ps/ps.h";
#include "ps/vrule.h"
#include "sstream"
#include <tccore/grm.h>
#include "epm/epm.h"
#include "sa/sa.h"
#include "libxl.h"
#include <map>
#include "epm/signoff.h"
#include <ctime>
#include <vector>
#include <locale>
#include <codecvt>
#include "ae/dataset.h"
#include <iostream>
#include <stdlib.h>
#include <tccore/aom.h>
#include <tc/emh.h>
#include <ict/ict_userservice.h>
#include <tc/tc.h>
#include <tccore/tctype.h>
#include <sa/tcfile.h>
#include <ss/ss_errors.h>
extern "C" int POM_AM__set_application_bypass(logical bypass);
using namespace std;
double stringToNum( string str)
{
istringstream iss(str);
double num;
iss >> num;
return num;
}
char * mem_char(char *x)
{
if(x!=NULL)
{
MEM_free(x);
x=NULL;
}
return x;
}
tag_t * mem_tag(tag_t *x)
{
if(x!=NULL)
{
MEM_free(x);
x=NULL;
}
return x;
}
void insertMap(tag_t targetRev,map<tag_t, string>&targetmap)
{
targetmap.clear();
int ifail=0;
int bom_num=0;
tag_t * bom_tags=NULLTAG;
ITKCALL(ifail=AOM_ask_value_tags(targetRev,"structure_revisions",&bom_num,&bom_tags));
if(bom_num>0)
{
tag_t only_bom=bom_tags[0];
tag_t bom_window_tag = NULLTAG,top_bom_line_tag =NULLTAG,rev_tag = NULLTAG,item_tag =NULLTAG;
ITKCALL(ifail = BOM_create_window(&bom_window_tag));
ITKCALL(ifail = BOM_set_window_top_line_bvr(bom_window_tag,only_bom,&top_bom_line_tag));
int child_count=0;tag_t *child_tags=NULLTAG;
ITKCALL(ifail = BOM_line_ask_all_child_lines(top_bom_line_tag,&child_count,&child_tags));
for(int n=0;n<child_count;n++)
{
char * item_id=NULL;
char *item_rev_id=NULL;
char *bl_sequence_no=NULL;
tag_t map_rev=NULL;
ITKCALL(ifail = AOM_ask_value_string(child_tags[n],"bl_item_item_id",&item_id));
ITKCALL(ifail = AOM_ask_value_string(child_tags[n],"bl_rev_item_revision_id",&item_rev_id));
ITKCALL(ifail = AOM_ask_value_string(child_tags[n],"bl_sequence_no",&bl_sequence_no));
ITKCALL(ifail = ITEM_find_rev(item_id,item_rev_id,&map_rev));
targetmap.insert(pair<tag_t,string>(map_rev,bl_sequence_no));
item_id=mem_char(item_id);
bl_sequence_no=mem_char(bl_sequence_no);
item_rev_id=mem_char(item_rev_id);
}
child_tags=mem_tag(child_tags);
ITKCALL(ifail = BOM_save_window(bom_window_tag));//Ҫ<><D2AA><EFBFBD><EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD>Ժ<EFBFBD>bom<6F><6D>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><E1B1A3>
ITKCALL(ifail = BOM_close_window(bom_window_tag));//<2F>п<EFBFBD><D0BF><EFBFBD><EFBFBD>й<EFBFBD>
}
bom_tags=mem_tag(bom_tags);
}
void setBomlineProperty(tag_t old_line,tag_t new_line,string attribute_name)
{
try
{
char* value=NULL;
AOM_ask_value_string(old_line,attribute_name.c_str(),&value);
cout<<"ֵ"<<value<<endl;
string valueString=value;
int attribute,attr_mode;
BOM_line_look_up_attribute(attribute_name.c_str(),&attribute);
cout<<attribute_name<<"--------attribute-------->"<<attribute<<endl;
BOM_line_ask_attribute_mode(attribute,&attr_mode);
cout<<attribute_name<<"-----attr_mode-------->"<<attr_mode<<endl;
switch (attr_mode)
{
case BOM_attribute_mode_double:
BOM_line_set_attribute_double(new_line,attribute,stringToNum(valueString));
break;
case BOM_attribute_mode_int:
BOM_line_set_attribute_int(new_line,attribute,stringToNum(valueString));
break;
case BOM_attribute_mode_logical:
if(valueString=="true")
{
BOM_line_set_attribute_logical(new_line,attribute,true);
}else
{
BOM_line_set_attribute_logical(new_line,attribute,true);
}
break;
case BOM_attribute_mode_string:
BOM_line_set_attribute_string(new_line,attribute,valueString.c_str());
break;
}}
catch (exception e)
{
cout<<attribute_name<<"<22><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>"<<endl;
}
};
int jk_upgrade_version(EPM_action_message_t msg)
{
cout<<"<22><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-----------"<<endl;
int ifail = ITK_ok, i = 0, att_cnt = 0;
tag_t task_tag = NULLTAG, rootTask_tag = NULLTAG, *attachments = NULL;
char * object_TYPE_1 = NULL;
map<tag_t,string> map1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EBOM<4F><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>BOMLine<6E>Ͳ<EFBFBD><CDB2>ұ<EFBFBD><D2B1><EFBFBD>
map<tag_t,string> map2;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>MBOM<4F><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>BOMLine<6E>Ͳ<EFBFBD><CDB2>ұ<EFBFBD><D2B1><EFBFBD>
map<tag_t,tag_t> map3;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EBOM<4F><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>BOMLine<6E><65><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>MBOM<4F><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>BOMLine
map<tag_t,string> map4;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EBOM<4F><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>BOMLine<6E>Ͷ<EFBFBD>Ӧ<EFBFBD><D3A6>id
//<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
task_tag = msg.task;
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>̽ڵ<CCBD>
ifail = EPM_ask_root_task(task_tag, &rootTask_tag);
//<2F><>ȡĿ<C8A1><C4BF><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6><EFBFBD>
ifail = EPM_ask_attachments(rootTask_tag, EPM_target_attachment, &att_cnt, &attachments);
//ѭ<><D1AD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for (i = 0; i < att_cnt; i++) {
ITKCALL(ifail = AOM_ask_value_string(attachments[i], "object_type", &object_TYPE_1));//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cout << object_TYPE_1<<endl;
if(strcmp("JK8MaterialRevision",object_TYPE_1)==0||strcmp("<22><><EFBFBD>ϰ汾",object_TYPE_1)==0)
{
//<2F><>ȡ<EFBFBD><C8A1>ǰEBOM<4F><4D><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>
cout<<"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ汾<CFB0><E6B1BE><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>"<<endl;
tag_t item;
ITKCALL(ifail=ITEM_ask_item_of_rev(attachments[i],&item));
int rev_num=0;
tag_t *revsTag=NULLTAG;
AOM_ask_value_tags(item,"revision_list",&rev_num,&revsTag);
tag_t targetRev=revsTag[rev_num-2];//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
insertMap(targetRev,map1);
insertMap(attachments[i],map4);
int actualNum=0;
tag_t *actualtags=NULLTAG;
int mbom_num=0;
//<2F><>ȡEBOM<4F><4D>MBOM<4F><4D>ϵ<EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>MBOM<4F><EFBFBD><E6B1BE><EFBFBD><EFBFBD>
ITKCALL(ifail=AOM_ask_value_tags(targetRev,"JK8MBOMRelation",&actualNum,&actualtags));
for (int j=0;j<actualNum;j++)
{
map2.clear();
map3.clear();
tag_t * mbom_tag=NULLTAG;
ITKCALL(ifail = AOM_ask_value_tags(actualtags[j],"structure_revisions",&mbom_num,&mbom_tag));
tag_t only_bom=mbom_tag[0];
tag_t bom_window_tag = NULLTAG,top_bom_line_tag =NULLTAG,rev_tag = NULLTAG,item_tag =NULLTAG;
ITKCALL(ifail = BOM_create_window(&bom_window_tag));
ITKCALL(ifail = BOM_set_window_top_line_bvr(bom_window_tag,only_bom,&top_bom_line_tag));
int child_count=0;tag_t *child_tags=NULLTAG;
ITKCALL(ifail = BOM_line_ask_all_child_lines(top_bom_line_tag,&child_count,&child_tags));
for(int n=0;n<child_count;n++)
{
char * item_id=NULL;
char *item_rev_id=NULL;
char *bl_sequence_no=NULL;
tag_t map2_rev=NULL;
ITKCALL(ifail = AOM_ask_value_string(child_tags[n],"bl_item_item_id",&item_id));
ITKCALL(ifail = AOM_ask_value_string(child_tags[n],"bl_rev_item_revision_id",&item_rev_id));
ITKCALL(ifail = AOM_ask_value_string(child_tags[n],"bl_sequence_no",&bl_sequence_no));
ITKCALL(ifail = ITEM_find_rev(item_id,item_rev_id,&map2_rev));
map2.insert(pair<tag_t,string>(map2_rev,bl_sequence_no));
map<tag_t,string>::iterator rev_it;
for( rev_it = map1.begin(); rev_it != map1.end(); rev_it++ )
{
char *object_string=NULL;
tag_t tag1=rev_it->first;
string map1_sequence_no=rev_it->second;
tag_t tag2=map2_rev;
AOM_ask_value_string(tag1,"object_string",&object_string);
cout<<"map2<70><32>"<<object_string<<endl;
AOM_ask_value_string(tag2,"object_string",&object_string);
cout<<"map2ֵ"<<object_string<<endl;
if(strcmp(map1_sequence_no.c_str(),bl_sequence_no)==0)
{
map3.insert(pair<tag_t,tag_t>(rev_it->first,map2_rev));//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><E6B1BE>ebomline<6E><65>Ӧ<EFBFBD>İ汾<C4B0><E6B1BE>mbom<6F><6D>ϵ<EFBFBD>µ<EFBFBD>mbomline<6E><65>Ӧ<EFBFBD>İ汾
break;
}
}
item_id=mem_char(item_id);
item_rev_id=mem_char(item_rev_id);
bl_sequence_no=mem_char(bl_sequence_no);
}
ITKCALL(ifail = BOM_save_window(bom_window_tag));//Ҫ<><D2AA><EFBFBD><EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD>Ժ<EFBFBD>bom<6F><6D>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><E1B1A3>
ITKCALL(ifail = BOM_close_window(bom_window_tag));//<2F>п<EFBFBD><D0BF><EFBFBD><EFBFBD>й<EFBFBD>
//ITEM_rev_delete_bvr()
tag_t newRev=NULLTAG;
ITKCALL(ifail =ITEM_copy_rev(actualtags[j],NULL,&newRev));//<2F><><EFBFBD><EFBFBD>
//TODO <20><>ȡMBOM<4F><4D><EFBFBD><EFBFBD><EFBFBD>в㼶<D0B2><E3BCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD>
//TODO ɾ<><C9BE>MBOM<4F>µ<EFBFBD>BOM<4F><4D>ͼ<EFBFBD><CDBC><EFBFBD>Ƚ<EFBFBD>EBOM<4F><4D>MBOM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD>
// BOM_line_cut();
tag_t win,top_line;
BOM_create_window(&win);
BOM_set_window_pack_all(win,false);
BOM_set_window_top_line(win, NULL, actualtags[j], NULL, &top_line);
//TODO ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bom<6F><6D>ͼ
/* int cnt=0;
tag_t *tags=NULLTAG;
AOM_ask_value_tags(newRev, "structure_revisions", &cnt, &tags);
ITEM_rev_delete_bvr(newRev,tags[0]);#1#
tag_t win_new,top_line_new;
BOM_create_window(&win_new);
BOM_set_window_pack_all(win_new,false);
BOM_set_window_top_line(win_new, NULL, newRev, NULL, &top_line_new);
int top_line_new_count=0;
tag_t *top_line_new_child_tags=NULLTAG;
BOM_line_ask_all_child_lines(top_line_new,&top_line_new_count,&top_line_new_child_tags);
for (int e=0;e<top_line_new_count;e++)
{
// POM_AM__set_application_bypass(true);
ITKCALL(ifail=BOM_line_cut(top_line_new_child_tags[e]));
BOM_save_window(win_new);
}
if(top_line==NULLTAG)
{
cout<<"cant find structure";
}
tag_t view_type;
PS_ask_bom_view_type(only_bom,&view_type);
cout<<"map4.size()--------->"<<map4.size()<<endl;
map<tag_t,string>::iterator rev_map4;
for( rev_map4 = map4.begin(); rev_map4 != map4.end(); rev_map4++ )
{
tag_t rev=rev_map4->first;
char * newEBOM_id=NULL;
if(rev!=NULL)
{
ITKCALL(ifail = AOM_ask_value_string(rev,"object_string",&newEBOM_id));
cout<<"newEBOM_id-------->"<<newEBOM_id<<endl;
ITKCALL(ifail = AOM_ask_value_string(rev,"item_id",&newEBOM_id));
}else
{
cout<<"wrong"<<endl;
return 0;
}
map<tag_t,tag_t>::iterator rev_map3;
int map3_size=0;
for( rev_map3 = map3.begin(); rev_map3 != map3.end(); rev_map3++ )
{
map3_size++;
tag_t ebom_rev=rev_map3->first;
char * ebom_id=NULL;
char * mbom_id=NULL;
tag_t mbom_rev=rev_map3->second;
ITKCALL(ifail = AOM_ask_value_string(ebom_rev,"item_id",&ebom_id));//TODO bomline<6E>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
ITKCALL(ifail = AOM_ask_value_string(mbom_rev,"item_id",&mbom_id));
cout<<"map3_size------------>"<<map3_size<<endl;
cout<<"<22>Ƚ<EFBFBD>newEBOM_id---------->"<<newEBOM_id<<endl;
cout<<"<22>Ƚ<EFBFBD>ebom_id---------->"<<ebom_id<<endl;
cout<<"<22>Ƚ<EFBFBD>mbom_id---------->"<<mbom_id<<endl;
if(strcmp(newEBOM_id,ebom_id)==0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bomline<6E><65>id<69><64>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӹ<EFBFBD><D3B8>ƻ<EFBFBD><C6BB>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
int mbom_child_count=0;tag_t *mbom_child_tags=NULLTAG;
ITKCALL(ifail = BOM_line_ask_all_child_lines(top_line,&mbom_child_count,&mbom_child_tags));
if(strcmp(ebom_id,mbom_id)==0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><E4A3AC><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD>ebomline
{
for (int n=0;n<mbom_child_count;n++)
{
tag_t mbom_child=mbom_child_tags[n];
char *mbomline_item_id=NULL;
AOM_ask_value_string(mbom_child,"bl_item_item_id",&mbomline_item_id);
if(strcmp(mbomline_item_id,mbom_id)==0)
{
cout<<"mbom<6F>ϴ<EFBFBD><CFB4><EFBFBD>ebomline<6E><65>ֻ<EFBFBD><EFBFBD><E8B8B4>------"<<endl;
//TODO <20><><EFBFBD><EFBFBD>EBOMLINE<4E><45>MBOM<4F><4D>
tag_t win1,top_line1;
BOM_create_window(&win1);
BOM_set_window_pack_all(win1,false);
BOM_set_window_top_line(win1, NULL, attachments[i], NULL, &top_line1);
int top_line1_child_count=0;
tag_t *top_line1_child_tags=NULLTAG;
BOM_line_ask_all_child_lines(top_line1,&top_line1_child_count,&top_line1_child_tags);
// ITKCALL(ifail=BOM_line_cut(mbom_child));
// BOM_save_window(win);
for(int m=0;m<top_line1_child_count;m++)
{
tag_t top_line1_child_tag=top_line1_child_tags[m];
char *top_line1_child_tag_id=NULL;
AOM_ask_value_string(top_line1,"bl_item_item_id",&top_line1_child_tag_id);
cout<<"<22><><EFBFBD><EFBFBD>id----<2D><>"<<top_line1_child_tag_id<<endl;
AOM_ask_value_string(top_line1,"bl_rev_item_revision_id",&top_line1_child_tag_id);
cout<<"<22><><EFBFBD><EFBFBD><EFBFBD>汾----<2D><>"<<top_line1_child_tag_id<<endl;
AOM_ask_value_string(top_line1_child_tag,"bl_quantity",&top_line1_child_tag_id);
cout<<"<22><><EFBFBD><EFBFBD>-----<2D><>"<<top_line1_child_tag_id<<endl;
AOM_ask_value_string(top_line1_child_tag,"bl_item_item_id",&top_line1_child_tag_id);
if(strcmp(top_line1_child_tag_id,mbomline_item_id)==0)
{
cout<<"<22><>ebomline<6E><65><EFBFBD>Ƶ<EFBFBD>mbomline"<<endl;
tag_t new_line;
ITKCALL(ifail=BOM_line_copy(top_line_new,top_line1_child_tag,view_type,&new_line));
// setBomlineProperty(top_line1_child_tag,new_line,"bl_quantity");
BOM_save_window(win_new);
setBomlineProperty(top_line1_child_tag,new_line,"bl_sequence_no");
BOM_save_window(win_new);
BOM_save_window(win);
BOM_save_window(win1);
top_line1_child_tag_id=mem_char(top_line1_child_tag_id);
break;
}
top_line1_child_tag_id=mem_char(top_line1_child_tag_id);
}
top_line1_child_tags=mem_tag(top_line1_child_tags);
BOM_save_window(win1);
BOM_close_window(win1);
BOM_save_window(win_new);
mbomline_item_id=mem_char(mbomline_item_id);
break;
}
mbomline_item_id=mem_char(mbomline_item_id);
}
}else//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>Ͱ<EFBFBD>mbom<6F><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bomline<6E>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD>ٸ<EFBFBD><D9B8><EFBFBD>
{
cout<<"ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>ֻ<EFBFBD><EFBFBD><E8BDAB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><E6B1BE>mbomline<6E><65><EFBFBD>ƹ<EFBFBD><C6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<<endl;
for (int n=0;n<mbom_child_count;n++)
{
tag_t mbom_child=mbom_child_tags[n];
char *mbomline_item_id=NULL;
AOM_ask_value_string(mbom_child,"bl_item_item_id",&mbomline_item_id);
if(strcmp(mbomline_item_id,mbom_id)==0)
{
tag_t new_line;
ITKCALL(ifail=BOM_line_copy(top_line_new,mbom_child,view_type,&new_line));
// setBomlineProperty(mbom_child,new_line,"bl_quantity");
BOM_save_window(win_new);
setBomlineProperty(mbom_child,new_line,"bl_sequence_no");
BOM_save_window(win_new);
// ITKCALL(ifail=BOM_line_cut(mbom_child));
// BOM_save_window(win);
//TODO <20><><EFBFBD><EFBFBD>ebomline<6E><65><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD>mbom<6F><6D>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ұ<EFBFBD><D2B1>ţ<EFBFBD><C5A3><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>⹺)
/* setBomlineProperty(mbom_child,new_line,"bl_quantity");
setBomlineProperty(mbom_child,new_line,"bl_sequence_no");
setBomlineProperty(mbom_child,new_line,"bl_part_source");
setBomlineProperty(mbom_child,new_line,"bl_uom");#1#
BOM_save_window(win_new);
// BOM_line_set_attribute_double
mbomline_item_id=mem_char(mbomline_item_id);
break;
}
mbomline_item_id=mem_char(mbomline_item_id);
}
}
break;
}else//<2F><><EFBFBD><EFBFBD>ebomline<6E>ϵ<EFBFBD>bomline<6E><65>mbom<6F>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD>ھ<EFBFBD>ֱ<EFBFBD>Ӹ<EFBFBD><D3B8>Ƹ<EFBFBD><C6B8>ƹ<EFBFBD><C6B9><EFBFBD>
{
cout<<"mbomline<6E><65><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>line"<<endl;
if(map3_size==map3.size())
{
tag_t win2,top_line2;
BOM_create_window(&win2);
BOM_set_window_pack_all(win2,false);
BOM_set_window_top_line(win2, NULL, attachments[i], NULL, &top_line2);
int top_line2_child_count=0;
tag_t * top_line2_child_tags=NULLTAG;
BOM_line_ask_all_child_lines(top_line2,&top_line2_child_count,&top_line2_child_tags);
for(int d=0;d<top_line2_child_count;d++)
{
tag_t top_line2_child_tag=top_line2_child_tags[d];
char *top_line2_child_tag_id=NULL;
AOM_ask_value_string(top_line2_child_tag,"bl_item_item_id",&top_line2_child_tag_id);
if(strcmp(top_line2_child_tag_id,newEBOM_id)==0)
{
cout<<"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bomline"<<endl;
tag_t new_line;
ITKCALL(ifail=BOM_line_copy(top_line_new,top_line2_child_tag,view_type,&new_line));
// setBomlineProperty(top_line2_child_tag,new_line,"bl_quantity");
BOM_save_window(win_new);
setBomlineProperty(top_line2_child_tag,new_line,"bl_sequence_no");
BOM_save_window(win_new);
top_line2_child_tag_id=mem_char(top_line2_child_tag_id);
break;
}
top_line2_child_tag_id=mem_char(top_line2_child_tag_id);
}
top_line2_child_tags=mem_tag(top_line2_child_tags);
BOM_save_window(win2);
BOM_close_window(win2);
}
}
}
// BOM_line_add(top_line, NULL, l->rev, NULL, &line);
}
BOM_save_window(win);
BOM_save_window(win_new);
cout<<"<22><><EFBFBD><EFBFBD>"<<endl;
BOM_close_window(win);
BOM_close_window(win_new);
cout<<"<22>ر<EFBFBD>"<<endl;
mbom_tag=mem_tag(mbom_tag);
}
revsTag=mem_tag(revsTag);
cout<<"<22><><EFBFBD><EFBFBD>ǰ"<<endl;
actualtags=mem_tag(actualtags);
cout<<"<22><><EFBFBD><EFBFBD>"<<endl;
}else
{
cout<<"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ汾"<<endl;
continue;
}
}
cout<<"<22><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>object_TYPE_1"<<endl;
object_TYPE_1=mem_char(object_TYPE_1);
cout<<"<22><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>reference_attachment"<<endl;
attachments=mem_tag(attachments);
cout<<"ִ<>н<EFBFBD><D0BD><EFBFBD>--------"<<endl;
return 0;
}
*/