日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

修改Project中的表名及字段名

發(fā)布時(shí)間:2025/6/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 修改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來完成,在這里記錄一下:

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();

????}

}

轉(zhuǎn)載于:https://www.cnblogs.com/Farseer1215/archive/2008/04/10/1146583.html

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。