Let's say I need to print the full name of a person. What I originally did was to separate the first name and last name into two elements and placed them side by side since they needed different styling (this is just an example):
Lastname, Firstname
However, I found out after that I can't actually make their width dynamic because the developers made an effort not to allow it. So now I'm wondering if I can present the name with two different styles inside one element. Is this possible? How would I accomplish that? I hope you can help, thanks!
Okay so apparently you can. All you need to do is setup the markup attribute on the text field.
Refer here for more details: http://jasperreports.sourceforge.net/sample.reference/markup/
I have two Shape Data rows for a Shape's ShapeSheet:
Shape Data Label Prompt Type Format Value Invisible
Prop.Type "Type" "" 4 "Alpha;Beta;Gamma;Delta;Epsilon;Zeta;Eta;Theta;Iota;Kappa" INDEX(4,Prop.Type.Format) False
Prop.Abbrev "Abbrev" No Formula 4 "A;B;G;D;E;Z;E;T;I;K" INDEX(4,Prop.Abbrev.Format) True
The way I intent to use this is to have the user select the Type, say Epsilon, and then have the Abbrev automatically switch to the corresponding value in the Prop.Abbrev.Format.
Note: the values used here are placeholders for the actual values for my application, which are not shown here so they don't distract from the real answer I need, how to keep the selections in sync when the first one is chosen or changed.
Thanks for any help you can give!
I don't have Visio on this machine, so I am unable to copy and paste a working solution. The approach gets a little complicated, but extremely flexible.
Save your lists in the User section, rather than Prop - this then becomes underlying data for use in properties. If you are using a master stencil then this also helps with managing the fields.
You can now store an index in your data as well - this index points to the appropriate values in your arrays. You can use Actions and side menus to set the index which, when referenced properly, means you can have the full name and/or abbreviation in the side menu and the ShapeSheet does all the work underneath.
The functions you want to look at are:
Index (e.g. INDEX(1,User.Type) will return "Beta". (0-based)
Lookup (e.g. LOOKUP("D", User.Abbrev) will return "3". (0-based)
GetAtRef
SetAtRef
SetAtRefExpr
SetF
I had a similar business problem which relied on setting a background colour based on the value of shape data. Your final solution could end up including formulas like this: =SETF(GetRef(Prop.Type),"GUARD(INDEX(LOOKUP(Prop.X,Prop.X.Format),User.Type))").
For more in-depth discussion - check out https://superuser.com/questions/1277331/fillforegnd-in-shapesheet-using-wrong-data and the extended discussion at http://visguy.com/vgforum/index.php?topic=8205.15 - the latter link also includes an example file with working shapesheets (well, working to the extent that they exposed my problem).
I'm working with some database models in EA Sparx, and when I click on a table sometimes it shows up in EA Sparx Enterprise Architect 12 as
Type='Class', Stereotype='table'
and other times as
Type='Table', Stereotype='table'
If I try to change the Element Type, the ones marked Class are changeable but the ones marked Table (notice Table never appears in the element types) are not changeable.
When I query the database behind the scenes I see that
object.Object_Type = 'Class'
Why does the user interface have this inconsistency? I can't for the life of me see why they are different and where this difference is recorded in the EA repository.
Thank you,
Juraj
select
t_object.Object_id,
t_xref.Description
from
t_object inner join
t_xref on t_object.ea_guid = t_xref.Client
where
t_object.Object_Type = 'Class'
and t_object.Stereotype = 'table'
;
There's a lot of magic going on here.
There were two different kinds of values being captured, some are Fully-Qualified-Name of EAUI::table while others are EAUML::table. (Probably depends on which tool you reverse engineer from.)
#STEREO;Name=table;GUID={57EF048F-695B-467b-8120-15C6CB6DA398};FQName=EAUI::table;#ENDSTEREO;
#STEREO;Name=table;FQName=EAUML::table;#ENDSTEREO;
The shorter string, with EAUML is the Table/table and the other is the Class/table.
The confusion comes like this:
EA has a toolbox with an element Table. If you create that, it will produce an EAUML::table stereotype.
Further you can create a simple class and enter table in the stereotype. This will render the same as the above. But now you have a stereotype EAUI::table
The left has been created with the toolbox. The right with manual stereotyping.
Funny I coined the acronym EAUI after Paolo's EA Unique Interface. Now this has a new facet.
I'm trying to create a "Quicklink" document for customizing the allowed connector types between elements. Our UML Profile already exists like below:
Big version here: http://i.stack.imgur.com/kcKQT.png
And this imports as an MDG Technology just fine.
However, when I add a "Quicklink" document to the profile and import it as an MDG Technology, I get the error "Encountered an improper argument". Those of you familiar with MDG Technologies in Sparx EA knows that there is no logging of any sort as to why it failed. Unfortunately, the documentation is just as unhelpful.
Here is my Quicklink document:
//Source Element Type,Source Stereotype Filter,Target Element Type,Target Stereotype Filter,Diagram Filter,New Element Type,New Element Stereotype,New Link Type,New Link Stereotype,New Link Direction,New Link Caption,New Link & Element Caption,Create Link,Create Element,Disallow Self Connector,Exclusive Stereotype Filter + No Inherit from Metatype,Menu Group,Complexity Level,Target Must be Parent,Embed Element,Precedes Separator LEAF,Precedes Separator GROUP,Dummy Column,
Feature,ChiFeature,Requirement,ChiRequirement,,,,Realization,,to,satisfies,,TRUE,,TRUE,TRUE,Requirement,0,,,,,,
My question is, is there any way for me to find out why the Quicklink document is invalid. Alternatively, is there someone more experienced with this that can see the issue?
In answer to your first question: no, I'm afraid not. As you note, EA is not very user-friendly when it comes to debugging extensions.
Happily, I've spotted the problem: you've got too many columns. Instead of filling in a dummy value at the end you've added an additional comma, which means an extra column. Replace that with a 0 and you should be OK. (Plus, of course, there shouldn't be a comma at the end of the comment line either.)
So try
//Source Element Type,Source Stereotype Filter,Target Element Type,Target Stereotype Filter,Diagram Filter,New Element Type,New Element Stereotype,New Link Type,New Link Stereotype,New Link Direction,New Link Caption,New Link & Element Caption,Create Link,Create Element,Disallow Self Connector,Exclusive Stereotype Filter + No Inherit from Metatype,Menu Group,Complexity Level,Target Must be Parent,Embed Element,Precedes Separator LEAF,Precedes Separator GROUP,Dummy Column
Feature,ChiFeature,Requirement,ChiRequirement,,,,Realization,,to,satisfies,,TRUE,,TRUE,TRUE,Requirement,0,,,,,0
i am not able to discover how to use the alt/combined fragment correctly in starUML,as in there is no way that i am able to provide the condition after the alt fragment appears.can any1 just list down the procedure as to how to do it or a link to some good tutorial.
If you are using StarUML 2 (Beta), you can go through these simple steps:
Add Combined fragment to your sequence diagram:
If you try to add operand(alt partition) through context menu, you'll see that there's no option to add new operand:
3.To achieve this, you can simple copy the already defined operand and paste it under Combined Fragment:
After that, simply add condition clauses in "guard" property of operands and adjust operand heights:
I had just found the steps as following.
Please refer how to set "alt combinedFragment at starUML due to I have no 10 reputation to post image.
1.create a sequence diagram.
2.add a CombinedFragment1 into diagram.
3.change the "seq CombinedFragment1 " to "alt CombinedFragment1 "
4.select the "Interaction Operand"
5.left-click at the "atl CombinedFragment1 ",you will found the one "InteractionOperand1" added into the "alt CombinedFragment1 ".
6.add the 2nd "InteractionOperand", same with step 4,step5, there will a parting line like the following.
7.set the InteractionOperand's Guard data,my is "isInit",you will found it at the alt frame.
8.add the 2nd Guard data,same with the step7.
9.move the diagram to the proper location.
while,I still have something unknown, for example, how to make the frame located at the top front and add a relationship with the "B method".
Wish it helpful to u.
Add an Interaction Operand to a Combined Fragment. When you select the Interaction Operand you should see in the Properties Inspector a 'Guard' field. You can type your condition just there.
Many thanks for your posts.
By the way, I noticed when adding a Combined Fragment from the left Pane,
that the alt keyword could be displayed as shown below,
after selecting the interactionOperator from the right pane,
NB: other useful keywords such as the "loop" one are also available from the above list
When you add a 'Combined Fragment' double click on the name on the diagram
Then you get a small icon with 3 horizontal lines to the left of the name
When you click on that you can get as much interaction operands as you wish