class
recursion
...
{
treeNode childNode,menuitemNode;
treeNode fields,tables,LastTree,items;
treenodeIterator it, itFld,itlast,itmenu,menuFld;
real layer,_count;
ktl_formName ktl_formName;
label label_gb,label_us,label_gb1,label_us1;
public static void main(args _args)...{
recursion1 recursion=new recursion1();
recursion.init();
}
public void init()...{
Str _name;
xInfo xInfo = new xInfo();
treeNode t = xInfo.rootNode().AOTfindChild("Menus");
it = t.AOTiterator();
childnode=it.next();
layer=1;
//delete_from ktl_formname;
while(childnode) ...{
_name= findProperty(childnode.AOTgetProperties(),'label');
// print childnode.treeNodeName(), "***";
// print num2str(layer,1,0,0,0);
// print _name;pause;
itfld=childnode.AOTiterator();
itlast = t.AOTfindChild(childnode.treeNodeName()).AOTiterator();
// this.recursion2(layer,childnode,itlast,childnode.treeNodeName(),childnode.AOTchildNodeCount());
this.recursion(_name,layer,childnode,itlast,childnode.treeNodeName(),childnode.AOTchildNodeCount());
layer++;
childnode=it.next();
}
}
public void recursion(Str _label,real _layer,treeNode _ChildNode,treeNodeIterator _itfld,Str nodeName,int countNode)
...{
int mark;
int i;
str formtype;
str formname;
str formlabel;
str menu_label ;
xInfo Info2;
info2 = new xInfo();
childnode=_childnode;
i=_layer*10;
//print int2str(_layer)+nodename+'---'; //主菜单
ktl_FormName.clear();
ktl_formname.ID= num2str(layer,1,0,0,0);
ktl_formname.ID_str=num2str(_layer,1,0,0,0)+'*';
ktl_FormName.Menu_class='***';
label_gb=new label('en-gb');
ktl_FormName.Form_cn=label_gb.extractString(_label);
label_us=new label('en-us');
ktl_FormName.Form_us=label_us.extractString(_label);
//print ktl_FormName.Form_cn,'--',ktl_FormName.Form_us; pause;
ktl_FormName.insert();
_count=countNode;
fields=_itfld.next();
while(fields)...{
--_count;
i++;
mark=fields.AOTchildNodeCount();
if(mark)...{
this.recursion(findProperty(fields.AOTgetProperties(),"label"),i,childNode,fields.AOTiterator(),fields.treeNodeName(),fields.AOTchildNodeCount());
} else ...{
// print int2str(i)+fields.treeNodeName(); //Form 显示名称
formtype=findProperty(fields.AOTgetProperties(),"menuitemtype"); //Form 类型
// print formtype;
formname=findProperty(fields.AOTgetProperties(),"menuitemName"); //Form 名称
// print formname; //pause;
this.findForm1(formtype,formname,i,fields.treeNodeName());
if(_count==0)
i=(i-(i mod 10))/10;
}
fields=_itfld.next();
}
}
void findForm1(Str _type,Str _name,real _layer,Str NodeName)
...{
Str menu_class;
Str menu_object;
str menu_label;
Info xInfo1;
treeNode t1;
;
xInfo1 = new xInfo();
ttsbegin;
if(!_type || !_name)...{
ktl_FormName.clear();
ktl_FormName.Form_cn=NodeName;
ktl_formname.ID= num2str(layer,1,0,0,0);
ktl_formname.ID_str=num2str(_layer,1,0,0,0);
ktl_FormName.MenuItemName=_name;
ktl_FormName.MenuItemType=_type;
ktl_FormName.Menu_class=menu_class;
ktl_FormName.Menu_object=menu_object;
ktl_FormName.insert();
return;
} else ...{
t1 = xInfo1.rootNode().AOTfindChild("Menu Items");
itMenu = t1.AOTiterator();
menuitemNode=itmenu.next();
// print menuitemnode.treeNodeName();
menufld=t1.AOTfindChild(_type).AOTiterator();
items=menufld.next();
while(items)...{
if(items.treeNodeName()==_name) ...{
menu_class= findProperty(items.AOTgetProperties(),"Class");
menu_object= findProperty(items.AOTgetProperties(),"Object");
ktl_FormName.clear();
//ktl_FormName.Form_cn=NodeName;
ktl_formname.ID= num2str(layer,1,0,0,0);
ktl_formname.ID_str=num2str(_layer,1,0,0,0);
ktl_FormName.MenuItemName=_name;
ktl_FormName.MenuItemType=_type;
ktl_FormName.Menu_class=menu_class;
ktl_FormName.Menu_object=menu_object;
menu_label=findProperty(items.AOTgetProperties(),"label") ;
//print formlabel;
label_gb1=new label('en-gb');
ktl_FormName.Form_cn=label_gb1.extractString(menu_label);
label_us1=new label('en-us');
ktl_FormName.Form_us=label_us1.extractString(menu_label);
ktl_FormName.insert();
// print menu_class;
// print menu_object; pause;
return;
}
items=menufld.next();
}
}
ttscommit;
}
}
treeNode childNode,menuitemNode;
treeNode fields,tables,LastTree,items;
treenodeIterator it, itFld,itlast,itmenu,menuFld;
real layer,_count;
ktl_formName ktl_formName;
label label_gb,label_us,label_gb1,label_us1;
public static void main(args _args)...{
recursion1 recursion=new recursion1();
recursion.init();
}
public void init()...{
Str _name;
xInfo xInfo = new xInfo();
treeNode t = xInfo.rootNode().AOTfindChild("Menus");
it = t.AOTiterator();
childnode=it.next();
layer=1;
//delete_from ktl_formname;
while(childnode) ...{
_name= findProperty(childnode.AOTgetProperties(),'label');
// print childnode.treeNodeName(), "***";
// print num2str(layer,1,0,0,0);
// print _name;pause;
itfld=childnode.AOTiterator();
itlast = t.AOTfindChild(childnode.treeNodeName()).AOTiterator();
// this.recursion2(layer,childnode,itlast,childnode.treeNodeName(),childnode.AOTchildNodeCount());
this.recursion(_name,layer,childnode,itlast,childnode.treeNodeName(),childnode.AOTchildNodeCount());
layer++;
childnode=it.next();
}
}
public void recursion(Str _label,real _layer,treeNode _ChildNode,treeNodeIterator _itfld,Str nodeName,int countNode)
...{
int mark;
int i;
str formtype;
str formname;
str formlabel;
str menu_label ;
xInfo Info2;
info2 = new xInfo();
childnode=_childnode;
i=_layer*10;
//print int2str(_layer)+nodename+'---'; //主菜单
ktl_FormName.clear();
ktl_formname.ID= num2str(layer,1,0,0,0);
ktl_formname.ID_str=num2str(_layer,1,0,0,0)+'*';
ktl_FormName.Menu_class='***';
label_gb=new label('en-gb');
ktl_FormName.Form_cn=label_gb.extractString(_label);
label_us=new label('en-us');
ktl_FormName.Form_us=label_us.extractString(_label);
//print ktl_FormName.Form_cn,'--',ktl_FormName.Form_us; pause;
ktl_FormName.insert();
_count=countNode;
fields=_itfld.next();
while(fields)...{
--_count;
i++;
mark=fields.AOTchildNodeCount();
if(mark)...{
this.recursion(findProperty(fields.AOTgetProperties(),"label"),i,childNode,fields.AOTiterator(),fields.treeNodeName(),fields.AOTchildNodeCount());
} else ...{
// print int2str(i)+fields.treeNodeName(); //Form 显示名称
formtype=findProperty(fields.AOTgetProperties(),"menuitemtype"); //Form 类型
// print formtype;
formname=findProperty(fields.AOTgetProperties(),"menuitemName"); //Form 名称
// print formname; //pause;
this.findForm1(formtype,formname,i,fields.treeNodeName());
if(_count==0)
i=(i-(i mod 10))/10;
}
fields=_itfld.next();
}
}
void findForm1(Str _type,Str _name,real _layer,Str NodeName)
...{
Str menu_class;
Str menu_object;
str menu_label;
Info xInfo1;
treeNode t1;
;
xInfo1 = new xInfo();
ttsbegin;
if(!_type || !_name)...{
ktl_FormName.clear();
ktl_FormName.Form_cn=NodeName;
ktl_formname.ID= num2str(layer,1,0,0,0);
ktl_formname.ID_str=num2str(_layer,1,0,0,0);
ktl_FormName.MenuItemName=_name;
ktl_FormName.MenuItemType=_type;
ktl_FormName.Menu_class=menu_class;
ktl_FormName.Menu_object=menu_object;
ktl_FormName.insert();
return;
} else ...{
t1 = xInfo1.rootNode().AOTfindChild("Menu Items");
itMenu = t1.AOTiterator();
menuitemNode=itmenu.next();
// print menuitemnode.treeNodeName();
menufld=t1.AOTfindChild(_type).AOTiterator();
items=menufld.next();
while(items)...{
if(items.treeNodeName()==_name) ...{
menu_class= findProperty(items.AOTgetProperties(),"Class");
menu_object= findProperty(items.AOTgetProperties(),"Object");
ktl_FormName.clear();
//ktl_FormName.Form_cn=NodeName;
ktl_formname.ID= num2str(layer,1,0,0,0);
ktl_formname.ID_str=num2str(_layer,1,0,0,0);
ktl_FormName.MenuItemName=_name;
ktl_FormName.MenuItemType=_type;
ktl_FormName.Menu_class=menu_class;
ktl_FormName.Menu_object=menu_object;
menu_label=findProperty(items.AOTgetProperties(),"label") ;
//print formlabel;
label_gb1=new label('en-gb');
ktl_FormName.Form_cn=label_gb1.extractString(menu_label);
label_us1=new label('en-us');
ktl_FormName.Form_us=label_us1.extractString(menu_label);
ktl_FormName.insert();
// print menu_class;
// print menu_object; pause;
return;
}
items=menufld.next();
}
}
ttscommit;
}
}