Displaying rows based on an element's parameter table.
Main Shape
Children - Row
ChildrenSource - DataTable/200
Options - NoSelectionFilters
Child Shape
ChildType - Row
Options - NoAlarmColorFill
Data inside of Child Shape - (issue)
* wildcard
Element: [Param:[This card objectID],208,[ParentDisplayTableIndex]]
Options: AllowInheritance=False
Info: Name
And this doesn't display anything at all
But I can confirm that [ParentDisplayTableIndex], [This card objectID], and parameter 208 separately display the correct things
What am I missing here? I would be grateful for any help! 🙂
Hi Amber,
Based on your extra input where you indicate the information is on a different element (or view in my case), I will share the extra configuration you will need to make.
As you are using [this element], the placeholder by default links to your card, but in our case the card is not the right element to look for when fetching data. Therefore, you have extra options to define where your placeholder should get its reference (i.e. its parent as we had linked the shape to the right element).
More information here: ForcePropertyFromParent Shape
This is a difficult but important topic, and therefore there is a dedicated session available in our Visual Overview Course: Grouping - DataMiner Dojo
Kind Regards,
Jarno
Hi Amber, this is getting challenging ;). I think the issue now is with the seperator of the regexreplace. The parsing is possibly messed up because the seperator (',') is being used by both RegexReplace and RegexMatch. I suggest to change the separator, i.e. [RegexReplace:[Sep:,#]x#y#z]
Perfect! This all works now! Thank you so much! I've marked this as solved!
Hi Amber,
Based on your input, I've made an example. Please let me know if there wouldn't be something clear for you.
I have an element with a table (PID 200). The table has one column (PID 205) having data linked to element ID. In my Visio, I have 2 groups, i.e. one parent group (Sheet.4) to define where to get the data, one subgroup (Sheet.3) to identify the dynamic shape as a Row and in the last group, I have put a simple shape (Sheet.2) with text "[NAME]". You can see the result in the left bottom.
Kind Regards,
Jarno
Hi Jarno! This is much appreciated.
However, I've tried to replicate this on my own Visio, and it didn't work
The only difference is you are generating the dynamic Visio table on the same element as the Generic Dynamic Table
whereas my
MAIN SHAPE
Children – Row
Children Source – DataTable/200
The DataTable is a different element from the element I'm creating a visio file for. Could that make a difference?
Also, I would prefer to use * over a placeholder – as I also need to display a parameter from this element – [param:[this element],208,[tableIndex]] –
Sorry for being such a pain – your help is much needed and appreciated!
Hi Amber, yes that does make a difference. Let me share another screenshot in a new answer.
I'm not sure if I fully get what you mean with your last sentence. The placeholder are typically preferred if you work with different references since at a certain point in time it will be confusing what the asterix really means (tableindex, element, parameter, etc.).
Hi Amber,
Are you sure that you need the ParentDisplayTableIndex? This is typically used in when hierarchical shapes are created dynamically based on rows in a table (ref. Docs: [ParentDisplayTableIndex]). If this is the case, make sure to also use the option 'AllowCustomIndex', as indicated here: Making a shape use a different index than that of the original row.
From what I can see, you have the 'normal' situation where you are creating shapes on just one table. In that case, maybe you can just use this placeholder: [displaytableindex]? I assume you have an element named "DataTable"?
Kind Regards,
Jarno
Hi! When I just do:
Data inside of Child Shape – (issue)
* wildcard
Element: [Param:[This card objectID],208,[DisplayTableIndex]]
Options: AllowInheritance=False
Info: Name
It still doesn't return anything
and when I took out the Options: AllowInheritance=False
It just returns the element name of the current table.
Yes I have an element called "DataTable"
So I have the DataTable element that has a table in it – and the 208 column has a list of ElmentIDs – And I'm trying to generate the name linked to those ElementIDs on each row of the dynmanic shapes I've generated on a different view to the DataTable element.
Hi Amber, Does the column 208 only have one element ID or multiple?
just the one element ID – it should look like this "16613/390"
I have provided a new answer based on your input.
Hi Jarno!
I tested it out today and what you did worked with the Element Shape Data which is amazing! Thank you so much! Do I apply the same logic if I want to show parameter data on the 3rd shape down?
For example:
Text: [Param:16612/1110,1004,[RegexReplace:/,[RegexMatch:^(.*?)-1/, [DisplayTableIndex]],]]
Options: AllowInheritance=False|ForcePropertyFromParent
If the [Param:] is referring to a different Element then the dynamic table and the [DisplayTableIndex] is referring to the parameter table linked to the dynamic table row.
Will I need any more shape options to display the correct parameter? As I've tried this but it doesn't seem to work, although
[Param:16612/1110,1004,xxx] – works if I hard-code the value that the regex displays.
[RegexReplace:/,[RegexMatch:^(.*?)-1/, [DisplayTableIndex]],] – works by itself
Can you not combine them? If that makes sense?