June 9, 201510 yr I have 24 layouts that are populated with fields from multiple tables present in the relationship graph shown in the image below. (I realize this is not uncommon.) Is it possible to determine which layouts use each table? In other words, is it possible to identify which of the 24 layouts have fields from the table "Contacts", which of the 24 layouts have fields from the table "Contacts 3", which of the 24 layouts have fields from the table "Customers", etc.? Thanks! Joe
June 9, 201510 yr A few ways: 1) You have data viewer so create a new 'watch' with: FieldNames ( Get ( FileName ) ; "List Contacts" ) Replace 'List Contacts' with the name of your layout. 2) Download this - it is free: fmXRaySpecs. It works immediately as it is and provides you a lot more information about the layout, including object names. You can filter by field/table name (upper right). After installation, go to your first layout and, Edit > Select All > Copy which puts it on clipboard. Then open fmXRaySpecs and just refresh the clipboard (upper left). I use this all the time for reviewing layout objects. It can also be exported for use as records and provides a nice dictionary. You can also compare layouts over time to find out what changed (also see http://fmdiff.com) another great tool for comparing everything between two files. I see fmXRaySpecs does not indicate it is for 14 yet but it still works. 3) http://www.goya.com.au Base Elements offers the full package of developer analysis. But still ... most times I want FAST but also IN DEPTH so I reach for fmXRaySpecs. It is instant and tells me everything about a layout. Edited June 9, 201510 yr by LaRetta
June 9, 201510 yr I also wanted to mention that, if in layout mode, you go to Layouts > Layout Setup and look at the popup which says 'show records from' then you will know this is your context (perspective).
June 9, 201510 yr Is it possible to determine which layouts use each table? In other words, is it possible to identify which of the 24 layouts have fields from the table "Contacts", which of the 24 layouts have fields from the table "Contacts 3", which of the 24 layouts have fields from the table "Customers", etc.? Those are two different questions. Each layout "uses" one table only. More precisely, each layout is defined to show records from a specific table occurrence. OTOH, any layout can contain fields from other (related) tables.
June 9, 201510 yr The first, simplest thing you can do is bring up the Layouts list (File > Manage > Layouts or ctrl-shift-L). There you'll see the "Associated Table" column, but it's really the table occurrence. (And I do hope you're talking about table occurrences in your original post, and you don't actually have separate tables called contacts 1, contacts 2, etc. If so you may want to re-think your database design. We can talk about naming conventions later.)
June 10, 201510 yr Author Those are two different questions. Each layout "uses" one table only. More precisely, each layout is defined to show records from a specific table occurrence. OTOH, any layout can contain fields from other (related) tables. Thank you for raising that point! If I understood you correctly and considering I know the specific table occurrence whose records are shown on each of the 24 layouts, I think my question should have been: Without having to go layout-to-layout, is it possible to easily identify which layouts each table occurrence had fields in? Thanks, again!
June 10, 201510 yr Author ... I do hope you're talking about table occurrences in your original post, and you don't actually have separate tables called contacts 1, contacts 2, etc. ... Fitch, Thanks for the concern! I am glad to say the relationship graph is constructed from three tables: CUSTOMERS, CONTACTS and CALLREPORTS. However, I do not think I have anything close to an optimal database design. I also know I tried to implement some functionality that is not functioning as I want it to and I am sure it is directly related to my lack of experience and know-how. That said, I do not want to impose on or burden others. Thanks, again! Joe
June 10, 201510 yr Author LaRetta, comment, and Fitch, A big thank you very much to each of you for sharing your knowledge and insight! My plan forward is to try each of your suggestions regardless of any duplication of effort hoping to be the benefactor of any serendipitous knowledge I might stumble across. Sincerely, Joe
June 10, 201510 yr I think my question should have been: Without having to go layout-to-layout, is it possible to easily identify which layouts each table occurrence had fields in? I don't think so. Why is it important for you to find out?
June 10, 201510 yr By the way, fmXRaySpecs is Mac-only. But another tool you have at your disposal with FileMaker Advanced is the Developer Design Report, under the Tools menu. The HTML version may give you the info you need, but it's most useful when you export the XML instead, then import it into either Inspector or BaseElements. You can definitely view a layout's info in either tool and see a list of every field on the layout and its TO. Also re: LaRetta's good idea to use: FieldNames( Get( FileName ) ; Get( LayoutName ) ) My results only returned the field names, without the associated table occurence.
June 10, 201510 yr Also re: LaRetta's good idea to use: FieldNames( Get( FileName ) ; Get( LayoutName ) ) My results only returned the field names, without the associated table occurence. Oh of course - thanks for the correction, Tom!
June 11, 201510 yr Author I don't think so. Why is it important for you to find out? I had wondered if I should mention why I was asking the question and before making a thoughtful decision, I was off thinking about something else. Why... Before my relationship graph looked as neat and orderly as it does, it was a web of duplicate table occurrences. One had 4 the other two had five plus there were some related and unrelated table occurrences present as well. Knowing that most of the table occurrences were not serving any useful purpose, I went layout-by-layout and view-by-view to determine which table occurrences had field in each layout and view. After identifying those that did not have any fields in any layouts or views, I deleted them. I then consolidated those I could and deleted those serving no purpose. After I completed the project, I came up with the idea of asking my question; in other words, was there a better way to do what I did "manually"? Thanks for asking! Joe
June 11, 201510 yr Why... Before my relationship graph looked as neat and orderly as it does It does, but you should do yourself a favour and give the TOs proper, meaningful names; a name like “Customers 4” doesn't tell you anything about the TO's purpose and/or position in a relationship chain.
June 15, 201510 yr Also re: LaRetta's good idea to use: FieldNames( Get( FileName ) ; Get( LayoutName ) ) My results only returned the field names, without the associated table occurence. But wait, Tom ... I just had the time to consider this again and I was sure it would return the table occurrence name so instead of just assuming I was incorrect, I just created a test file and ... it does return the table occurrence names of related tables (which is exactly what Joe was asking - to know the table occurrence name of the related tables). I wonder then if we have a version/platform difference here. Can you verify for me that you DO get table occurrence names on related tables? Thank you!
June 17, 201510 yr You're right -- when a field is from the same TO as the layout, you don't see the TO name in the calculation's result, but when a field is from a different TO, you do.
Create an account or sign in to comment