Jump to content
Claris Engage 2025 - March 25-26 Austin Texas ×

This topic is 3458 days old. Please don't post here. Open a new topic instead.

Recommended Posts

Posted

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

RelCRMDB.png

Posted (edited)

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 by LaRetta
  • Like 1
Posted

 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).

  • Like 1
Posted

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.

  • Like 2
Posted

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.)

  • Like 1
Posted

​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!

 

Posted

... 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

 

Posted

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

 

Posted

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?

  • Like 1
Posted

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.

  • Like 1
Posted

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!

  • Like 1
Posted

​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

 

Posted

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.

  • Like 1
Posted

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!

 

 

 

 

 

 

  • Like 1
Posted

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.

  • Like 1

This topic is 3458 days old. Please don't post here. Open a new topic instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.