Skip to Content
0

subtype inheritance in powerdesigner

Apr 23 at 03:09 PM

51

avatar image
Former Member

Is it possible to switch off the displayed inheritance of supertype attributes into subtypes entities? I don't need the supertype attributes displayed over and over in all the subtypes. I am using logical model Entity-Relationship notation.

(Erwin by default does not carry down supertype attributes into the subtypes so its easier to read the variant attributes in the subtypes).

Powerdesigner version 16.1.

Thanks

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

1 Answer

Ondrej Divis Apr 24 at 09:24 AM
0

Hi,

yes, it is. But since the display of inherited attributes in subtypes is a feature and not a bug, there is no single&easy switch to turn it off. Anyway, each entity attribute (even the inherited one) has a property called Displayed (you can find it in entity properties on the Attributes tab. If you don`t see it there, it will be necessary to display it first through "Customize Columns and Filter" button. Once you have it available, you can switch off any single attribute you wish to.

In case your model is quite large, you can use script like this:

For each ent in activemodel.entities
For each entAttr in ent.Attributes
If not (entAttr.InheritedFrom is Nothing) then
entAttr.Displayed = false
End if
Next
Next

to switch it off for all of them. You can very easily incorporate this small function into the context menu of your LDM and here you go. With small modification, you can call it repeatedly to switch it off and on again.

Regards,

Ondrej


hide.jpg (128.9 kB)
Show 1 Share
10 |10000 characters needed characters left characters exceeded

Nice solution, Ondrej. You'll also need a method to display the inherited attributes, like this one:

Sub %Method%(obj)
' Implement your method on <obj> here
dim ent, entAttr
For each ent in activemodel.entities
For each entAttr in ent.Attributes
If not (entAttr.InheritedFrom is Nothing) then
entAttr.Displayed = true
End if
Next
Next
End Sub

0