PDM转成tablist字段清单的工具

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

'* File:     pdm2excel.txt

'* Title:    pdm export to excel

'* Purpose:  To export the tables and columns to Excel

'* Model:    Physical Data Model

'* Objects:  Table, Column, View

'* Author:   David

'* Created:  2019-3-18

'* Version:  1.0

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

Option Explicit

   Dim rowsNum

   rowsNum = 0

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

' Main function

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

' Get the current active model

Dim Model

Set Model = ActiveModel

If (Model Is Nothing) Or (Not Model.IsKindOf(PdPDM.cls_Model)) Then

  MsgBox "The current model is not an PDM model."

Else

 ' Get the tables collection

 '创建EXCEL APP

 dim beginrow

 DIM EXCEL, SHEET

 set EXCEL = CREATEOBJECT("Excel.Application")

 EXCEL.workbooks.add(-4167)'添加工作表

 EXCEL.workbooks(1).sheets(1).name ="一体化数据库表清单"

 set sheet = EXCEL.workbooks(1).sheets("一体化数据库表清单")

 ShowProperties Model, SHEET

 EXCEL.visible = true

 '设置列宽和自动换行

 sheet.Columns(1).ColumnWidth = 30 

 sheet.Columns(2).ColumnWidth = 30 

 sheet.Columns(3).ColumnWidth = 15 

 sheet.Columns(4).ColumnWidth = 15

 sheet.Columns(5).ColumnWidth = 15 

' sheet.Columns(1).WrapText =true

 'sheet.Columns(2).WrapText =true
 
 sheet.Columns(3).HorizontalAlignment = 3 
 sheet.Columns(4).HorizontalAlignment = 3 

 End If

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

' Show properties of tables

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

Sub ShowProperties(mdl, sheet)

   ' Show tables of the current model/package

   rowsNum=1

   beginrow = rowsNum+1

   ' For each table

   output "begin"

   Dim tab

   For Each tab In mdl.tables

      ShowTable tab,sheet

   Next

   '*if mdl.tables.count > 0 then

   '*     sheet.Range("A" & beginrow + 1 & ":A" & rowsNum).Rows.Group

   '*end if

   output "end"

End Sub

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

' Show table properties

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

Sub ShowTable(tab, sheet)
   sheet.cells(1, 1) = "表名"
   sheet.cells(1, 2) = "表说明"
   sheet.cells(1, 3) = "模块"
   sheet.cells(1, 4) = "所属开发组"
   
   sheet.Range(sheet.cells(1, 1),sheet.cells(1, 4)).Interior.Color = RGB(205,201,201)
   
   If IsObject(tab) Then
     
     Dim rangFlag

     rowsNum = rowsNum + 1

      ' Show properties

      Output "================================"

      sheet.cells(rowsNum, 1) = tab.code 
      sheet.cells(rowsNum, 2) =tab.name
      sheet.cells(rowsNum, 3) =Model.name
 
      
      
      sheet.Range(sheet.cells(1, 1),sheet.cells(1, 4)).Font.Bold = True           
      
      '*sheet.Range(sheet.cells(rowsNum-1, 4),sheet.cells(rowsNum, 15)).Borders.LineStyle = "1"

Dim col ' running column


      Output "FullDescription: "       + tab.Name

   End If

End Sub
 

猜你喜欢

转载自blog.csdn.net/qq_31806719/article/details/88633570
PDM