MarkH
lists at theopg.com
Wed Jul 21 19:49:10 CDT 2004
Taking into account I'm on my third glass of wine and its real late... Not sure if I took it all in but I have a similar situation where for each node at a given level I want to create child nodes for all possible parameters etc. I make the index (key of the node) unique by combining the parameters (child) primary key with the parent nodes key. If I need to create relationships where none exist (i.e. to get all records etc.) I just create a dummy column in each query with the same value, e.g. "'asd' AS theKey" and join on that... Hth... Mark -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller Sent: 22 July 2004 00:48 To: AccessD Subject: [AccessD] Treeview Problems Some of you may have read my stuff about data-driven treeviews. Lately I have run into a problem using my own code, and am looking for a graceful way out. If you've read or at least run the code, then you know that it reduces the population of any given level to a simple select statement, using a query, a table, a view or a UDF. However, my current problem is this: Let's suppose that you have parent table P and child table C, which references an FK F (i.e. OrderDetailType.... Assuming that there can be several types of OrderDetail, say CarRental, CampGroundSite, CanoeRental, etc. ((hey, it's summer and I need to revisit Killarney Park, one of the most beautiful places in the world, so forgive my examples)). Assume that Treeview level 1 is Customer. TV level 2 is Orders. Treeview Level 3 is all the possible order detail types. TV 4 is the detail types arranged under TV3. I.e. 1: ABC Company DEF Company 2: Order 123 from ABC Order 125 from ABC Order 126 from DEF Order 139 from DEF 3: CarRental CampGroundSite CanoeRental Etc. 4: Specific instances of CarRental, CampGroundSite, CanoeRental, etc. My code so far can handle levels 1 and 2 easily, one statement per level. The problem is at level 3. I want to populate the treeview at level 3 with all the order detail types (CarRental, CampGroundSite, CanoeRental, etc.) for each Order. It's a simple UNION query to do this, but where do I get the unique key? Generalizing my problem, I have a simple (and dare I say it pretty cool) way of populating the data-driven levels of a treeview. But that's insufficient for my current problem. I need to populate the OrderDetailTypes level with all possible order detail types and then sub-populate level 4 with the corresponding children. I'm at a loss how to achieve this. One way to do it, which would fall conveniently into my current scheme, is to populate a bridge table (OrderDetailTypes) with one of each OrderDetailType... But that sucks, IMO. It stores a bunch of data that is most of the time unnecessary. I HATE unnecessary detail! I'll go there if I have to, but it makes me gag. Generalizing the problem.... Given: code that can populate any tree-level with a simple select How to insert a level that is not data-driven or alternatively is data-driven but not with related FKs Treeview nodes insist upon unique keys (understandably so). But how should I manufacture said unique keys given that no physical rows correspond to them. Maybe the generalization is: how to relate a grandchild to a parent in the absence of parental data? That might be an incorrect phrasing, but that's what I mean. I hope that I have stated the problem clearly enough for you to follow the logic. If not, please reply for further clarification. Any suggestions much appreciated. TIA, Arthur -- _______________________________________________ AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com