UD100 | List All Parent Records in Tree View

When I pull multiple parent records into UD100 the tree view only displays the first record selected in the search. In order to view the other records I have to use the navControl on the toolbar and either select from the dropdown or use the arrow buttons.

Is there some way to make the tree view list all of the records I select similar to how Resource Group Maintenance works?
UD100%20Tree%20View%2002

1 Like

Did you find a solution to this? I would like to see if I can get this to work as well.

I haven’t yet. If I find a solution outside of this thread I will make sure to post it here.

Bind to the epidataview called List - look in the object explorer.

I tried that initially, but the List dataview does not include the UD fields for some reason.

Very true - and sad unfortunately. You could maintain your own table (link the UD’s) whenever the List edv changes.

Could you expand on this a little? Not sure I understand what you mean by maintaining my own table.

I found this little gem from @josecgomez, but I don’t know how to add/bind the UD columns from UD100 to the view. Mike, Peter, and Molly weren’t able to explain it to me unfortunately. :confused:

Lol - those useless punks.

So Jose’s article is very relevant. It’s basically about making the underlying table that will be the holder of the EDV’s data. Add all the columns (and their types) for the data you need - since you are going to manually build this table, I would only grab the stuff I really needed. There is the possibility you could CLONE the data structure of the existing UDxxx (not the list) edv table. This would effectively give you EVERY column in a UD record (since the non-list version also shows UD).

Once the table is built, then you use the snippet from Jose to make an EDV for it - making it bindable to controls.

All done. Haha just kidding - that’s just the setup. Now you have to maintain the data in the table.

I envision placing an event on the LIST edv so that when it’s data changes, we update our table accordingly. Pseudo-code to follow:

One potential method - copy rows from the list

OnChangeOfList()
{
   myTable.Clear();
  foreach (DataRow drtableOld in ListTable.Rows)
  {  
      myTable.ImportRow(drtableOld);
       //now here you'd grab your UD fields manually - perhaps a DB lookup, or just looking in the adapter  
  }

}

Now that I’ve written that down - it seems like you might as well just look at all of the SysRowID of each record of the LIST, then just DB lookup those entire records while you’re at it and use that to populate your table. I am unsure of the efficiency.

Creating your own EpiDataView for this seems like a bad idea. This specific screen the UD100 is based on an EpiTransaction style called Multi-View vs Single View. Like the UD01 (which do allow multiple parents)
You could create your own EpiDataView but I think the form itself won’t let you pull in more than one UD100 record at a time.
You are going to have to write it all yourself which seems like a lot of work… It’s doable… but yuck

Dang, I wanted to do this too…

So @josecgomez post isn’t super clear to me - is it possible to do this if you start from a UD form other than UD100?

Yes that should be fine, outside of UD1XX Parent / Child tables.

I already have all my Data in UD100, UD100A, UD40, UD39, and UD38. I customized the form for UD100 as it is the parent table and all the other tables are child tables.

I imagine if I customize a different form the open/search command won’t display the right key fields… and there probably isn’t an easy way of getting all my controls to a new customization. Might not be worth it, I wish I had known that when I started.