pdm中批量添加字段

'******************************************************************************函數

'* File:     pdm_addcolumn_vbs.txtcode

'* Purpose:  批量新增列,經常使用於增長公共字段。遞歸

'* Title:    Add Columnci

'* Category: Add Columnit

'* Version:  1.0io

'* Company:  ffcs. table

'******************************************************************************變量

 

Option Explicitdate

 

Dim mdl ' the current model   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

相關文章
相關標籤/搜索