博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pdm中批量添加字段
阅读量:5962 次
发布时间:2019-06-19

本文共 5504 字,大约阅读时间需要 18 分钟。

hot3.png

'******************************************************************************

'* File:     pdm_addcolumn_vbs.txt

'* Purpose:  批量新增列,常用于增加公共字段。

'* Title:    Add Column

'* Category: Add Column

'* Version:  1.0

'* Company:  ffcs. 

'******************************************************************************

 

Option Explicit

 

Dim mdl ' the current model   

Set mdl = ActiveModel

Dim Tab 'running table   

Dim col 'running table col

 

Dim col_status_cd, col_create_date,col_status_date,col_update_date,col_sharding_id,col_create_staff,col_update_staff,col_tenant_id

' 定义列变量

 

ProcessFolder mdl  '调用ProcessFolder函数

ProcessTables mdl  '调用ProcessTables函数

    

 '--------------------------------------------------------------------------------

 '功能函数 针对pdm下有多个package的表,增加列操作。

 '--------------------------------------------------------------------------------

 Private Sub ProcessFolder(folder)

    Dim ent '定义实体

    Dim pack '定义实体

    for each pack in folder.packages

    for each Tab in pack.tables

      if not Tab.isShortcut then

      

' 新增列前,删除已经存在的列,防止出现冲突

for each col in Tab.Columns

  '根据列code属性,删除列

if instr(col.code,"status_cd")>0  then col.Delete()  end if 

if instr(col.code,"create_date")>0  then col.Delete()  end if 

if instr(col.code,"status_date")>0  then col.Delete()  end if 

if instr(col.code,"update_date")>0  then col.Delete()  end if 

if instr(col.code,"sharding_id")>0  then col.Delete()  end if 

if instr(col.code,"create_staff")>0  then col.Delete()  end if 

if instr(col.code,"update_staff")>0  then col.Delete()  end if 

if instr(col.code,"tenant_id")>0  then col.Delete()  end if 

next

 

'新增列

Set col_status_cd = Tab.Columns.CreateNew

set col_create_date = Tab.Columns.CreateNew

set col_status_date = Tab.Columns.CreateNew

set col_update_date = Tab.Columns.CreateNew

set col_sharding_id = Tab.Columns.CreateNew

set col_create_staff = Tab.Columns.CreateNew

set col_update_staff = Tab.Columns.CreateNew

set col_tenant_id = Tab.Columns.CreateNew

 

'设置新增列的属性,如name,code,datatype等      

col_status_cd.name = "状态"

col_status_cd.code = "status_cd"

col_status_cd.DataType = "varchar(6)"

col_status_cd.comment ="状态"

 

col_create_date.name = "创建时间"

col_create_date.code = "create_date"

col_create_date.DataType = "datetime"

col_create_date.comment ="描述记录创建的时间"

 

col_status_date.name = "状态时间"

col_status_date.code = "status_date"

col_status_date.DataType = "datetime"

col_status_date.comment ="描述记录被应用程序更新的时间"

 

col_update_date.name = "更新时间"

col_update_date.code = "update_date"

col_update_date.DataType = "datetime"

col_update_date.comment ="描述记录物理更新的时间"

 

col_sharding_id.name = "分片键"

col_sharding_id.code = "sharding_id"

col_sharding_id.DataType = "bigint(12)"

col_sharding_id.comment ="描述记录的分片键"

 

col_create_staff.name = "创建员工"

col_create_staff.code = "create_staff"

col_create_staff.DataType = "bigint(12)"

col_create_staff.comment ="描述创建记录的员工标识"

 

col_update_staff.name = "更新员工"

col_update_staff.code = "update_staff"

col_update_staff.DataType = "bigint(12)"

col_update_staff.comment ="描述更新记录的员工标识"

 

 

col_tenant_id.name = "租户标识"

col_tenant_id.code = "tenant_id"

col_tenant_id.DataType = "bigint(12)"

col_tenant_id.comment ="描述租户标识"

        

      end if

    next

    next

    

    '对子包进行递归,如果不使用递归只能取到第一个模型图内的表

    dim subfolder

    for each subfolder in folder.Packages

       ProcessFolder subfolder

    next

 

End Sub

 

 

 '--------------------------------------------------------------------------------

 '功能函数 针对直接挂在pdm下的表,增加列操作。

 '--------------------------------------------------------------------------------

 Private Sub ProcessTables(folder)

for each Tab in folder.Tables

 

 ' 删除已经存在的列

 for each col in Tab.Columns

 if instr(col.code,"status_cd")>0  then col.Delete()  end if 

 if instr(col.code,"create_date")>0  then col.Delete()  end if 

 if instr(col.code,"status_date")>0  then col.Delete()  end if 

 if instr(col.code,"update_date")>0  then col.Delete()  end if 

 if instr(col.code,"sharding_id")>0  then col.Delete()  end if 

 if instr(col.code,"create_staff")>0  then col.Delete()  end if 

 if instr(col.code,"update_staff")>0  then col.Delete()  end if 

 if instr(col.code,"tenant_id")>0  then col.Delete()  end if 

 

next

 

 '新增列

 Set col_status_cd = Tab.Columns.CreateNew

 set col_create_date = Tab.Columns.CreateNew

 set col_status_date = Tab.Columns.CreateNew

 set col_update_date = Tab.Columns.CreateNew

 set col_sharding_id = Tab.Columns.CreateNew

 set col_create_staff = Tab.Columns.CreateNew

 set col_update_staff = Tab.Columns.CreateNew

 set col_tenant_id = Tab.Columns.CreateNew

      

 col_status_cd.name = "状态"

 col_status_cd.code = "status_cd"

 col_status_cd.DataType = "varchar(6)"

 col_status_cd.comment ="状态"

 

 col_create_date.name = "创建时间"

 col_create_date.code = "create_date"

 col_create_date.DataType = "datetime"

 col_create_date.comment ="描述记录创建的时间"

 

 col_status_date.name = "状态时间"

 col_status_date.code = "status_date"

 col_status_date.DataType = "datetime"

 col_status_date.comment ="描述记录被应用程序更新的时间"

 

 col_update_date.name = "更新时间"

 col_update_date.code = "update_date"

 col_update_date.DataType = "datetime"

 col_update_date.comment ="描述记录物理更新的时间"

 

 col_sharding_id.name = "分片键"

 col_sharding_id.code = "sharding_id"

 col_sharding_id.DataType = "bigint(12)"

 col_sharding_id.comment ="描述记录的分片键"

 

 col_create_staff.name = "创建员工"

 col_create_staff.code = "create_staff"

 col_create_staff.DataType = "bigint(12)"

 col_create_staff.comment ="描述创建记录的员工标识"

 

 col_update_staff.name = "更新员工"

 col_update_staff.code = "update_staff"

 col_update_staff.DataType = "bigint(12)"

 col_update_staff.comment ="描述更新记录的员工标识"

 

 

 col_tenant_id.name = "租户标识"

 col_tenant_id.code = "tenant_id"

 col_tenant_id.DataType = "bigint(12)"

 col_tenant_id.comment ="描述租户标识"

 

 

next

End Sub

 

转载于:https://my.oschina.net/u/1986568/blog/600777

你可能感兴趣的文章
苹果在国贸改造了一套房 智能家居圈都慌了!
查看>>
一年400元,监控APP让你知道对方的所有隐私
查看>>
《VMware Virtual SAN权威指南(原书第2版)》一1.2 软件定义的存储
查看>>
《UNIXLinux程序设计教程》一3.3 设置描述字的文件位置
查看>>
云服务器 ECS 建站教程:部署RabbitMQ
查看>>
微软承诺2018年前数据中心将使用50%可再生能源
查看>>
互联网+新生活:智慧城市建设的亳州样本
查看>>
这是一个国内只有寥寥数人懂得的云计算技术
查看>>
告别“看家护院” 银行安防需树立“大安全”观
查看>>
物联网崛起,新技术如雨后春笋般
查看>>
用户为中心:华为消费者云服务背后揭示了啥?
查看>>
太阳能2017年首季业绩“预喜”
查看>>
火爆:Snapchat成App Store搜索量/频率最高应用
查看>>
People Power 公司入选中国移动数字家庭联盟,共同推进智能家居战略
查看>>
CYQ.Data 轻量数据层之路 V4.5 版本发布[更好的使用体验,更优的缓存机制]
查看>>
NetApp针对其集群化方案“不值得升级”言论回击Wikibon
查看>>
QQ把游戏放进聊天框,这一点Facebook和微信都没做到
查看>>
在线匿名之父意欲终结“加密战争”
查看>>
WLAN市场销量逐步逼近有线网络
查看>>
SDN市场或许进入了慢热期
查看>>