这其实是一段VB脚本,将解析PowerDesigner中工作空间里的对象,并生成excel表格
Option Explicit
Dim rowsNum
rowsNum = 0
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
dim beginrow
DIM EXCEL, SHEET
set EXCEL = CREATEOBJECT("Excel.Application" )
EXCEL.workbooks.add(-4167 )
EXCEL.workbooks(1 ).sheets(1 ).name ="test"
set sheet = EXCEL.workbooks(1 ).sheets("test" )
ShowProperties Model, SHEET
EXCEL.visible = true
sheet.Columns(1 ).ColumnWidth = 20
sheet.Columns(2 ).ColumnWidth = 40
sheet.Columns(3 ).ColumnWidth = 30
sheet.Columns(1 ).WrapText =true
sheet.Columns(2 ).WrapText =true
sheet.Columns(4 ).WrapText =true
End If
Sub ShowProperties(mdl, sheet)
rowsNum=0
beginrow = rowsNum+1
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
Sub ShowTable(tab, sheet)
If IsObject(tab) Then
Dim rangFlag
rowsNum = rowsNum + 1
Output "================================"
sheet.cells(rowsNum, 1 ) = "表名"
sheet.cells(rowsNum, 2 ) =tab.name
sheet.Range(sheet.cells(rowsNum, 2 ),sheet.cells(rowsNum, 3 )).Merge
rowsNum = rowsNum + 1
sheet.cells(rowsNum, 1 ) = "属性名"
sheet.cells(rowsNum, 2 ) = "说明"
sheet.cells(rowsNum, 3 ) = "字段类型"
sheet.Range(sheet.cells(rowsNum-1 , 1 ),sheet.cells(rowsNum, 3 )).Borders.LineStyle = "1"
Dim col
Dim colsNum
colsNum = 0
for each col in tab.columns
rowsNum = rowsNum + 1
colsNum = colsNum + 1
sheet.cells(rowsNum, 1 ) = col.name
sheet.cells(rowsNum, 2 ) = col.comment
sheet.cells(rowsNum, 3 ) = col.datatype
next
sheet.Range(sheet.cells(rowsNum-colsNum+1 ,1 ),sheet.cells(rowsNum,3 )).Borders.LineStyle = "1"
rowsNum = rowsNum + 1
Output "FullDescription: " + tab.Name
End If
End Sub