您的位置:首页 > 职场人生

如何面试PHPer-1

2015-10-12 10:39 519 查看
pd 反向

 

1. )首先新建一个“PhysicalDataModel”类型的文件,然后点击“Database”->"Configure  Connections",弹出窗口“Configure Data Connections”, 并选择"Connection Profiles

2.) 填写相关信息

3.) 点击“Database”->"Update Model from  Database(快捷键为:CTRL_R)",弹出窗口“Database Reverse Engineering Options”

4.)选择需要进行反向工程的数据库或数据库中的某些表,然后点击“OK”即可完成数据库的反向工程操作。(注意:默认是所有数据库全部选中的,所以在进行选择需要进行反向工程的数据库之前,先点击

使得数据库全部未选中。)
到目前为止,powerdesigner的反向工程的连接环境全部配置完成,此时只需选中需要进行反向工程的数据库或表,点击“OK”便可导出数据的PhysicalDataModel图。

 

注意:java 64位版本不支持 报 Could not Initialize JavaVM 错误,需要在java32位版本下运行

 

=====================================

pd 反向完成以后 显示问题

 

 

 



 不是很直观:我们需要显示成:



 

 

 

在 反向完成的 工作区域 点击 ctrl+shift+X  或者(Tools-->Execute Commands-->Edit/Run Script)

输入:

Option Explicit

ValidationMode = True

InteractiveMode = im_Batch

Dim system, file
Set system = CreateObject("Scripting.FileSystemObject")
Dim ForReading, ForWriting, ForAppending   '打开文件选项
ForReading   = 1 ' 只读
ForWriting   = 2 ' 可写
ForAppending = 8 ' 可写并追加
'打开文本文件
Set file = system.OpenTextFile("d:\temp\pdcomment.txt", ForWriting, true)

'判断当前model是否物理数据模型
Dim mdl
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "处理对象无模型"
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "当前模型不是物理数据模型"
Else
ProcessFolder mdl,file
End If
file.Close

'******************************************************************************
Private sub ProcessFolder(folder,file)

Dim i,j,k
i=0:j=0:k=0
'列数组,记录字段里不重复的comment
Dim ColumnComment()
Dim ColumnCommentNumber()
ReDim Preserve ColumnComment(i)
ReDim Preserve ColumnCommentNumber(i)

Dim tbl   '当前表
Dim col   '当前字段
dim curComment '当前字段comment
Dim regex '正则表达式
Set regex=New RegExp
'处理模型中的表
for each tbl in folder.tables
if not tbl.isShortcut then
if len(trim(tbl.comment))<>0 then
'可以在这里显示table的comment
regex.Pattern="\[.*\]"
If regex.Test(tbl.name) then
else
tbl.name = tbl.name+"["+trim(tbl.comment)+"]"
end if
end if

'处理表中的列
for each col in tbl.columns
k = 0
curComment = trim(col.comment)
if len(curComment)<>0 then
'遍历相异的comment数组
for j = 0 to i
if ColumnComment(j) = curComment then
'如果找到相同的comment,则相关计数器加1
ColumnCommentNumber(j) = ColumnCommentNumber(j) + 1
k = j
end if
Next
'如果没有相同的comment,则k=0,此时ColumnCommentNumber(0)也为0
'否则ColumnCommentNumber(k)不为0
if ColumnCommentNumber(k) <> 0 Then

regex.Pattern="\[.*\]"
If regex.Test(col.name) Then
else
col.name =col.name+"["+curComment & cstr(ColumnCommentNumber(k))+"]"
End if
Else
regex.Pattern="\[.*\]"
If regex.Test(col.name) Then
else
col.name = col.name+"["+curComment+"]"
End if
'ColumnComment(0)、ColumnCommentNumber(0)永远为空
'将相异的comment记录添加到数组中
i = i + 1
ReDim Preserve ColumnComment(i)
ReDim Preserve ColumnCommentNumber(i)
ColumnComment(i) = curComment
ColumnCommentNumber(i) = 0
end if
else
'写入文件中
file.WriteLine "comment on column "+ tbl.name+"."+col.code+" is '';"
end if
next
end if
'由于不同表的name允许相同,因此此时重新初始化。
'因为ColumnComment(0)、ColumnCommentNumber(0)为空,可以保留
ReDim Preserve ColumnComment(0)
ReDim Preserve ColumnCommentNumber(0)
i=0:j=0:k=0

next

Dim view '当前视图
for each view in folder.Views
if not view.isShortcut then
'可以在这里显示view的comment
regex.Pattern="\[.*\]"
If regex.Test(view.name) Then
Else
view.name = view.name+"["+view.comment+"]"
End if
end if
next

'对子目录进行递归
Dim subpackage 'folder
For Each subpackage In folder.Packages
if not subpackage.IsShortcut then
ProcessFolder subpackage , file
end if
Next

end sub

 

点击 run  , 执行完成以后 就ok了

 

http://hi.baidu.com/lushaojin/item/8d5e2ee1529a96266dabb8b4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: