I have been working on a standard display header GEM that is intended to be used on all of our process graphic displays. The header GEM lists the display title and description in the upper left corner, a few standard display links such as the main plant overview and I'm also adding a trend selection using a combo box to launch PHV and open the selected trend file. I found an issue that is limiting the usefulness of this GEM class. The trends need to be defined at the instance level. I can change the default entry display name, display string and value. I cannot change the number of entries at the instance level. This makes the desire to have a standard, single GEM class for all displays difficult. I can include additional, blank, entries in the GEM class which works, however the drop down menu still displays the blank entries. This works but isn't as clean as being able to dynamically adjust at the instance level. Based on what I have found I do not believe the number of entries is configurable, other than at the GEM class level. I'm curious if anyone else has a recommendation on how to accomplish the same end goal with a more elegant solution. I do not like the appearance of extra blank spaces in the trend drop down.
Example display header with the desired trend selection drop down. The above example has 10 entries allowed with only 3 populated. The ideal function of this combo box would be the ability at the instance level to determine how many entries are required. This could be either accomplished via directly selecting the embedded combo box, or preferably via a GEM configuration property. Unfortunately neither of these are options.
Number of entries cannot be changed at the instance level. Also not available for dynamic assignment via a GEM configuration property. This definitely limits the usefulness of combo boxes when added to GEM classes.
- Jesse
Andre Dicaire
In reply to Andre Dicaire:
Hi Guys, We had a similar requirement where we need to manage the dynamic drop-down list in a ComboBox for a NamedSet Parameter. The drop-down excludes the used options from the NamedSet . We have a prototype for both DeltaV Opearte and DeltaV Live.Refer attached file. Let me know if this helps!
Thanks!
Mangesh Phatale
Dynamic Combobox.docx
Instead of ComboBox you could use Contextual Menu and combined with what Andre was talking about you could limit what is actually shown for Gem configuration based on the Number of Trends selected (This has to be configured with 2 parameters for each trend: Multilanguage Description and String Trend name). Below is what this would look like at runtime.
A quick Gem configuration to produce the above has configuration that would look like below (where only the selected number of trends are visible to configure and button only active if configured trends exist):
Here is the quick Gem showing all these options for Gem configuration and Contextual Menu for viewing/testing.
Library_btnTrends.zip
This probably isn't ideal but just a method to attempt to address your requested functionality.
In reply to Matt Stoner:
Matt thanks for the reply. I was not familiar with the ShowContextualMenuAsync function. I reviewed the example you put together and played around with it a little. I think this option will work well. I added a triangle shape to the button to make it look more like a drop down menu the operators are familiar with. The only complaint I have with this option is the contextual menu text and background color do not change with the theme and do not appear to be configurable. Really a minor issue, but something I would've changed if possible.
In reply to Jesse Delanoy: