DeltaV Live - GEM Class Dynamic Combo Box Number of Entries

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

5 Replies

  • I feel your pain. I tried to see if the number of entries could be accessed from a property via the on open script and make a dynamic adjustment that way. I don't see how.

    I noticed that in the OOB EDC Faceplate, the factory decided to use visibility and animated position to dynamically adjust the number of buttons for SP_D. I changed this gem to use a Button control because the button shows a blue highlight when to click so you know you've done something. But the button doesn't have an animated Text. So I went into the On Open script and write the text of the button at the same time I animate them for the number of setpoints.

    This is not pretty, but if you stacked a number of buttons to create your drop down list, then you could set the number of entries to show, hiding the buttons above this number. In the button script you would set the Trend name you want to call up. The button shows a highlight when you scroll over them. you would set a visibility Boolean variable that you toggle to show the list (click on Trends Button) and clear it when you select a trend, or toggle it from the TRENDS button.

    Not fun if you vary a lot on number of trends in your list.

    In the properties, you likely have a property for the applicable Trend names that get defined in each instance. Create a Selection property for number of entries and the Presence feature to show/hide the properties in the instance. If you need five entries, set to five and you only see the five properties for the first five trend names. You can also use this condition to animate "Present on Line", which means the runtime published display will only have the buttons you enabled, rather than all of them with some invisible.

    The combo box supports up to 50 entries. A manual selection list of buttons that I'm describing will not be as slick as an adjustable combo box, but it's all I can think of right now..

    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

  • In reply to Andre Dicaire:

    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:

    The menu is presented from the click so it isn't ideal but you could make them click the triangle instead to make it look better.