修改Project中的表名及字段名
生活随笔
收集整理的這篇文章主要介紹了
修改Project中的表名及字段名
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
開發(fā)了大半,遇到這樣一個(gè)需求:
1.自己創(chuàng)建的表,要加上公司的簡(jiǎn)稱做為前綴;
2.自己創(chuàng)建的表的字段不需要添加公司的簡(jiǎn)稱做為前綴;
3.在系統(tǒng)原有的表上添加的字段要添加公司的簡(jiǎn)稱做為前綴。
創(chuàng)建的表太多了,一個(gè)個(gè)修改是重體力活,于是寫了個(gè)Job來完成,在這里記錄一下:
{
????#TreeNodeSysNodeType
????#define.prefix('PF')
????#define.ProjectName('ProjectName')
????TreeNode????????????????projectListNode?????????=?SysTreeNode::getPrivateProject();
????ProjectGroupNode????????pNode;
????//TreeNode????????????????projectSuperNode,projectGroupNode;
????TreeNodeIterator????????projectIt;//,projectGroupIt;
????ProjectNode?????????????projectNode?????????????=?projectListNode.AOTfindChild(#ProjectName);
????//Only?has?current?Layers?
????Boolean???onlyCurrentLayer(TreeNode?_treeNode)
????{
????????int?????????????layers?=?_treeNode.applObjectLayerMask();
????????UtilEntryLevel??level;
????????UtilEntryLevel??currentLevel;
????????int?????????????i,j=0;
????;
????????for(i=0;i<enumcnt(UtilEntryLevel);i++)
????????{
????????????if?(layers?&?(1?<<?i))
????????????{
????????????????currentLevel?=?i;
????????????????j++;
????????????}
????????}
????????if(j?==?1?&&?currentLevel?==?infolog.currentAOLayer())
????????????return?true;
????????return?false;
????}
????//Modify?Classes?and?Tables
????void?modify(TreeNode?_treeNode)
????{
????????str?????????????property;
????????TreeNode????????childTreeNode;
????????;
????????switch(_treeNode.sysNodeType())
????????{
????????????case?#NT_DBTABLE:
????????????{
????????????????//Modify?TableName
????????????????if(onlyCurrentLayer(_treeNode))
????????????????{
????????????????????if(substr(tableId2Name(_treeNode.applObjectId()),1,2)!=#prefix)
????????????????????{
???????????????????????_treeNode.AOTsetProperty("Name",#Prefix+tableId2Name(_treeNode.applObjectId()));
????????????????????}
????????????????}
????????????????//Modify?field?Name
????????????????childTreeNode?=?_treeNode.AOTfirstChild().AOTfirstChild();
????????????????while(childTreeNode)
????????????????{
????????????????????if(!onlyCurrentLayer(_treeNode)?&&?onlyCurrentLayer(childTreeNode))
????????????????????{
????????????????????????if(substr(fieldId2Name(_treeNode.applObjectId(),childTreeNode.applObjectId()),1,2)!=#prefix)
????????????????????????{
????????????????????????????childTreeNode.AOTsetProperty("Name",#Prefix+fieldId2Name(_treeNode.applObjectId(),childTreeNode.applObjectId()));
????????????????????????????childTreeNode.AOTcompile(1);
????????????????????????????childTreeNode.AOTsave();
????????????????????????}
????????????????????}
????????????????????childTreeNode?=?childTreeNode.AOTnextSibling();
????????????????}
????????????????//Save
????????????????_treeNode.AOTcompile(1);
????????????????_treeNode.AOTsave();
????????????????//Synchronize?Table
????????????????appl.dbSynchronize(SysDictTable::newTreeNode(_treeNode).id());
????????????????break;
????????????}
????????????default:
????????????????break;
????????}
????}
????//Get?the?classes?and?tables?to?be?modify
????void??getElementsToBeModified(TreeNode?_treeNode)
????{
????????TreeNodeIterator????????projectGroupIt;
????????TreeNode????????????????projectSuperNode,projectGroupNode;
????????if(!_treeNode)
????????????return;
????????//Project?Group
????????if(_treeNode.sysNodeType()?==?#NT_PROJECT_GROUP)
????????{
????????????projectGroupIt??????=?_treeNode.AOTiterator();
????????????projectGroupNode????=?projectGroupIt.next();
????????????while(projectGroupNode?!=?null)
????????????{
????????????????getElementsToBeModified(projectGroupNode);
????????????????projectGroupNode?=?projectGroupIt.next();
????????????}
????????}
????????????info(_treeNode.AOTname());
????????????modify(_treeNode);
????}
????;
????projectNode?????=??projectNode.getRunNode();
????projectIt???????=??projectNode.AOTiterator();
????pNode???????????=??projectIt.next();
????while(pNode)
????{
????????//info(pNode.AOTname());
????????getElementsToBeModified(pNode);
????????pNode?=?projectIt.next();
????}
}
轉(zhuǎn)載于:https://www.cnblogs.com/Farseer1215/archive/2008/04/10/1146583.html
總結(jié)
以上是生活随笔為你收集整理的修改Project中的表名及字段名的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xml xslt中的空格输出处理
- 下一篇: B-Trees Concepts B-树