日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

修改Project中的表名及字段名

發布時間:2025/6/17 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 修改Project中的表名及字段名 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開發了大半,遇到這樣一個需求:
1.自己創建的表,要加上公司的簡稱做為前綴;
2.自己創建的表的字段不需要添加公司的簡稱做為前綴;
3.在系統原有的表上添加的字段要添加公司的簡稱做為前綴。
創建的表太多了,一個個修改是重體力活,于是寫了個Job來完成,在這里記錄一下:

static?void?ModifyTableAndFieldNameOfSomeProject(Args?_args)
{
????#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();

????}

}

轉載于:https://www.cnblogs.com/Farseer1215/archive/2008/04/10/1146583.html

總結

以上是生活随笔為你收集整理的修改Project中的表名及字段名的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。