Hi
I have had a look round the documentation, knowledge base and forum but it looks as thought what I am trying to do is impossible! Any ideas would be appreciated.
So, a patient has medical notes, purchases (plus in some cases medical text that appears on a label associated with a specific product) and lab test results. Each type of data naturally has its own source table. What we need to do is list all of these items, ordered by DateTimeStamp DESCENDING, with a different row layout for each. Now the tricky bit, the user needs to be able to hide or show these rows by type - e.g. they may want to see all the data one time but then just show the notes - ideally without repeating the query or refreshing the grid.
My original thought was to show each set of data in a different band, then hide/show bands as necessary. But, of course, the sequence (date & time DESCENDING) needs to be maintained when they do the hide/show.
Can I achieve this?
Many thanks
Jerry
Hi Jerry,
You are correct. This is impossible - with the WinGrid. WinGrid cannot support non-homogenous data sources. So if each type of child row has different fields and needs to be displayed using a different RowLayout, then the grid cannot do it.
You can do this with the WinTree, however. If you set the WinTree's ViewStyle to FreeForm, each individual node in the tree can use a differnent ColmunSet and a different RowLayout (or I think it's called NodeLayout in the tree). You will probably have to create the ColumnSets yourself, so it's more work. And the tree does not have some of the features of the grid such as filtering or summaries. But if you don't need those features, then the tree might be a good option.
Thanks Mike
I thought that might be the case.
But, then, what is the point of having bands - I thought the idea was that different bands could be bound to different sets of data??
jcrick said:I thought the idea was that different bands could be bound to different sets of data
Yes, that's correct. The point of bands is to show hierarchical data.
But that does not include the ability to mix a set of rows of different type together in a single list.
Mike is right that is probably best done with UltraTree. Possibly could be done with wpf xamlgrid but I've not gotten into that enough yet to say for sure. If that interests you post over there and see what they say.
Nick
Hi Nick, thanks for the input.
Yes, the individual bands as you described would be homogenous.
In fact we would only want to display the Child Bands (Notes/Purchases/Results) since they all apply to a single patient, and we only review one patient at a time. So, ideally we want to show the bands ordered by timestamp - this could mean the rows from each band are not contiguous, e.g:
Patient (hidden band)-- Note 1-- Note 2-- Purchase 1-- Purchase 2-- Purchase 3-- Purchase 4-- Purchase 5-- Note 3-- Result 1-- Result 2-- Purchase 6-- Note 4-- Purchase 7etc
Now, of course, having got this lot in sequence by date time stamp (DESCENDING), the user may choose to exclude a band, then display it again, without messing up the sort sequence.
Hope that describes it more accurately.
Thanks
Does the datasource for each band contain a homogeneous record structure?
Your bands might look something like
Lab
-Patient
--Results
--Notes
--Misc
Where the child bands are ordered by patient and timestamp?