根据excel定义的表机构,导入powerdesigner
2019獨角獸企業重金招聘Python工程師標準>>>
在參考網上一些資料的基礎上,自己整理。
定義的表機構
在powerdesigner調用的過程
工具>execute commands>edit/run script 執行以下代碼
Option Explicit
Dim mdl ' the current model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
?? MsgBox "There is no Active Model"
End If
Dim HaveExcel
Dim RQ
Dim strFileNameForFilter
Dim cti
strFileNameForFilter="文件的位置.xlsm"
RQ = vbYes 'MsgBox("Is Excel Installed on your machine ?", vbYesNo + vbInformation, "Confirmation")
If RQ = vbYes Then
?? HaveExcel = True
?? ' Open & Create Excel Document
?? Dim x1,xlBookFilter,xlSheetsFilter,xlSheetsFilterName? '
?
?? Set x1 = CreateObject("Excel.Application")
?? Set xlBookFilter = x1.Workbooks.Open(strFileNameForFilter)
?? xlBookFilter.Activate
?? Dim i, Count
?? Count = xlBookFilter.Sheets.Count
?? For i = 2 To Count
??????? 'xlSheetsFilter = xlBookFilter.Sheets(i)
??????? 'MsgBox xlSheetsFilter
??????? xlBookFilter.Sheets(i).Activate?? '指定要打開的sheet名稱
??????? cti = i
??????? a x1,mdl,cti
??? Next
Else
?? HaveExcel = False
End If
a x1, mdl, cti
sub a(x1, mdl, cti)
dim rwIndex? ?
dim tableName
dim colname
dim table
dim col
dim count
on error Resume Next
set table = mdl.Tables.CreateNew???? '創建表
For rwIndex = 2 To 4?? '指定要遍歷的Excel行標? 從第二行開始,遍歷表名
??????? With x1.Workbooks(1).Worksheets(i)
??????????? If .Cells(rwIndex, 2).Value = "" Then '如果遍歷到第二列為空,則退出
?????????????? Exit For
??????????? End If
??????????? If .Cells(rwIndex, 2).Value = "表ID" Then ?
?????????????? table.Name = .Cells(rwIndex , 3).Value '指定表名,第三列的值? ?
?????????????? count = count + 1 ?
??????????? elseIf .Cells(rwIndex, 2).Value = "表名" Then
???????????????? table.Code = .Cells(rwIndex , 3).Value '指定表中文名,第三列的值 ?
??????????? else
???????????????? table.Comment = .Cells(rwIndex , 3).Value '指定表注釋,第三列的值
??????????? End If?? ?
??????? End With
Next
For rwIndex = 7 To 100?? '指定要遍歷的Excel行標? 由于第1行是表頭,從第2行開始
??????? With x1.Workbooks(1).Worksheets(i)
??????????? If .Cells(rwIndex, 3).Value = "" Then '如果遍歷到第三列為空,則退出
?????????????? Exit For
??????????? End If
?????????? ?
???????????
??????????? set col = table.Columns.CreateNew?? '創建一列/字段
??????????? col.Name = .Cells(rwIndex, 3).Value?? '指定列說明
??????????? col.Code = .Cells(rwIndex, 4).Value?? '指定列名
??????????? col.DataType = .Cells(rwIndex, 7).Value '指定列數據類型并且指定長度?
??????????? col.Length = .Cells(rwIndex, 6).Value? '指定列長度,這一列沒用上
??????????? col.Comment = .Cells(rwIndex, 17).Value? '指定列長度
??????????? If .Cells(rwIndex, 9).Value ="Y" then
????????????? col.Mandatory? = True???????????????? '指定列是否可空,true不可為空
??????????? End If
??????????? If .Cells(rwIndex, 10).Value ="1" then
????????????? col.Primary = True???????????????????? '指定主鍵
??????????? End If
??????? End With
Next
'MsgBox "生成數據表結構共計 " + CStr(count), vbOK + vbInformation, "表"
Exit Sub
End sub
注意:在PD中執行腳本的時候,如果提示:no Active Model,是因為沒創建物理模型( Physical Data Model ),因為 不同的pd模型在使用時 是不同的編碼-所以這里測試使用Physical Data Model
導入成功后,再生成可執行的ORA-sql的可執行語句,步驟:
菜單欄database->generation Database選擇database-generation,導出可執行sql
轉載于:https://my.oschina.net/maojindaoGG/blog/745848
總結
以上是生活随笔為你收集整理的根据excel定义的表机构,导入powerdesigner的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么软件可以改照片的尺寸和大小
- 下一篇: LOL云顶之弈千钰怎么出装 永猎双子千钰