本文將教您如何使用PowerDesigner批量修改實體、關係等對象屬性。
一、選擇要修改的對象
首先需要打開PowerDesigner,並選擇要修改屬性的對象。可以通過以下兩種方式選擇:
1、使用快捷鍵Ctrl+A,選擇所有對象;
<pre><code>Keyboard.press(Key.Ctrl+"a")</code></pre>
2、手動選定要修改的對象。
二、批量修改對象屬性
選擇好要修改的對象後,就可以批量修改屬性了。具體方法如下:
1、右鍵選定的對象,選擇「屬性」;
2、在彈出的屬性窗口中,對要修改的屬性進行修改;
3、點擊「應用」按鈕,將修改應用到所有選定的對象中。
<pre><code>for obj in ActiveDiagram.SelectedObjects:
obj.Properties[0].Value = "NewValue"
Diagram.Redraw()</code></pre>
三、快捷鍵修改對象屬性
PowerDesigner還提供了一些快捷鍵,可以幫助快速修改對象屬性。常用的快捷鍵有:
1、F2:對選定對象進行重命名;
<pre><code>for obj in ActiveDiagram.SelectedObjects:
obj.Name = "NewName"
Diagram.Redraw()</code></pre>
2、Ctrl+D:複製選定對象;
<pre><code>for obj in ActiveDiagram.SelectedObjects:
newObj = obj.Clone(Diagram)
Diagram.Redraw()</code></pre>
3、Ctrl+L:鎖定/解鎖選定對象。
<pre><code>for obj in ActiveDiagram.SelectedObjects:
obj.Locked = True # or False
Diagram.Redraw()</code></pre>
四、插件批量修改對象屬性
除了使用PowerDesigner自帶的功能進行批量修改屬性外,還可以使用插件進行批量修改。常用的插件有:
1、Object Tree: 可以查找並批量修改對象的屬性。詳見插件目錄中的「Object Tree.html」;
<pre><code>for obj in ObjectTree.Find("Entity"):
obj.Properties[0].Value = "NewValue"
Diagram.Redraw()</code></pre>
2、Batch Modify Attributes: 可以批量修改多個對象的屬性。詳見插件目錄中的「Batch Modify Attributes.html」。
<pre><code>import io
from java.io import File
from javax.xml.parsers import DocumentBuilderFactory, DocumentBuilder
def modifyValue(node, attrName, attrValue, newValue):
if node.getAttribute(attrName) == attrValue:
node.setAttribute(attrName, newValue)
def traverse(node):
for c in node.childNodes:
if c.nodeType == Node.ELEMENT_NODE:
modifyValue(c, "Name", "Entity1", "NewName")
traverse(c)
xmlFile = "test.xml"
xmlInput = io.StringIO()
with open(xmlFile, "r") as f:
xmlInput.write(f.read())
xmlInput.seek(0)
xmlDocBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder()
xmlDoc = xmlDocBuilder.parse(xmlInput)
root = xmlDoc.getDocumentElement()
traverse(root)
xmlOutput = io.StringIO()
xmlTransformer = TransformerFactory.newInstance().newTransformer()
xmlTransformer.transform(DOMSource(root), StreamResult(xmlOutput))
with open(xmlFile, "w") as f:
f.write(xmlOutput.getvalue())
Diagram.Redraw()</code></pre>
五、總結
以上就是PowerDesigner批量修改屬性的幾種方法。無論是使用自帶的功能,還是插件,都可以幫助我們快速、準確地修改對象屬性。
原創文章,作者:YZYBL,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/374387.html