Jump to content

Table view shows fields but Form does not


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

Recommended Posts

Ok. So I know to use layouts in form view when I do not want to fetch records.  I read that somewhere.  But I notice I can have fields added in table view and they do not show in form view.  If the layout is kept in form view and only switched to table when i want to view the fields does this mean records will still not be fetched when in form view and the fields do not show?  Same question if in form view but I have fields on a second tab of a tab panel and do not display it?  

as long as I do not switch to table view or display the second tab, no records are fetched?  Do I understand right please?  Is there a way to tell if records are getting fetched and does that mean same thing as records downloading from server?  I think you for any help in understanding this.

Link to comment
Share on other sites

3 hours ago, Charity said:

Same question if in form view but I have fields on a second tab of a tab panel and do not display it?  

 

I was kind of following you until you mention the tabs.

If you just switching between Form and Table Views (using the icons in the menu bar), then all of your fields and their data should be the same. The exception being, you can modify Table View to not show fields, but when you switch back to Form view, they will show.

Lee

  • Like 1
Link to comment
Share on other sites

Hi Charity

FileMaker fetches data as it needs it, and it's beyond the scope of most developers to understand how the internal database engine works, and when data is fetched.

You don't need to tell FileMaker when to fetch data. If you display a field in a tab on a form view, or in a column in a table view, then FileMaker will fetch and show the data. When it does fetch the data, it will be downloading from the server, or wherever the file is physically located.

Usually we don't worry about it too much (as we have little control over it), but if you have very large images stored in the database, or are paying for data transfer (such as when using FileMaker Cloud), or even when using WebDirect where performance is a big consideration, it can be worth considering.

If you could explain why it is important to you, perhaps we could give a bit more detail?

Edited by rwoods
  • Like 1
Link to comment
Share on other sites

Hi Charity,

I think I understand your question.  FileMaker uses lazy loading ... it will not fetch records until it has a reason (fields or references are displayed which require records).  Using a blank form view is very advantageous because a blank form view allows scripted actions on a table without first fetching a set of unasked for records.

If during development you then switch to table view AND in table view you have fields selected for display then records are fetched at that switch.  The same holds true if there is a tab control on a form and the default front tab lacks fields - no records are fetched but when you switch to a tab with fields, records are fetched.  We provide blank layouts of most tables, sometimes place summaries and unstored calculations on second tab panel on the form or only specify fields in table view.  Scripts run faster (be sure the default remains form view) but when a Developer wants to see the data from that context, they can switch to table view.

FileMaker's lazy loading is a really good thing and they have improved it quite a bit since version 12.  As for knowing when records are fetched, it requires expensive software from what I understand, which tracks packets.  But if you understand the theory, you'll be good to go.  If I misunderstood your questions, please explain a bit more.  :-)

9 hours ago, rwoods said:

Usually we don't worry about it too much (as we have little control over it)

Actually, I worry about it a lot and we do have control over it.  When displaying any layout, it is important to know how many records (and from which relationships) will be pre-fetched since that determines speed of load, record scrolling speed, and redraw times which is particularly critical for iOS but in general still very important.  

  • Like 1
Link to comment
Share on other sites

14 hours ago, Charity said:

Is there a way to tell if records are getting fetched and does that mean same thing as records downloading from server? 

I neglected to answer this portion of your question.  Downloading from server and fetching are same thing.

  • Like 1
Link to comment
Share on other sites

To clarify a couple of points:

- When you're on a form view with no fields, no data is fetched.

- If ONE field is present, then ALL data from THAT RECORD is fetched. I.e. ALL FIELDS from that record.

The other big difference in form view is that you're only viewing ONE record. In table or list view you might be looking at many records.

Check out server under the hood for more: https://youtu.be/VCrNP4VZiM4

 

  • Like 2
Link to comment
Share on other sites

Hi Tom, you are only viewing one record in form view but FM pre-fetches 25 doesn't it?  Or has that changed in 16?

GREAT link!  Thanks!  :-)

7 minutes ago, Fitch said:

ALL FIELDS from that record.

Another exception is containers, I believe.

Edited by LaRetta
Link to comment
Share on other sites

Hi Barbara!  Unless they've changed it, list view displays the number of records necessary for the display which could be 50 or more!  Form view used to pre-fetch 25 (not to mention any related child records needed if fields from them are on the layout as well) but that might have changed recently; I've been busy elsewhere lately.

Nice to see you again!  :wink3:  

Link to comment
Share on other sites

I think Barbara is right about List view vs. Form, but I'll have to check.

You're right about containers, they won't download unless they're visible.

Link to comment
Share on other sites

Here is why I say 25 records in form view and unlimited in table/list view, both by Mark Richman:

Design Performance in 14: https://community.filemaker.com/docs/DOC-4168

Page 15 says:

In Form view, up to 25 records of data are moved from the server to the client when a user traverses a record. In List view or Table view, FileMaker moves all the records that are currently displayed in the window, which can easily exceed 40 or 50 records at a time, especially on larger displays.

DevCon on 13, he said and I copied word for word:

If you touch the record you own the record, the whole record, all fields download with exception of container fields.  25 at a time in form view and how many are seen in list or table view.  Summary fields move data when displayed, unstored calcs and containers only download when you see the record ON THE SCREEN.  All fields download – all fields back to server with a single-field change.  Batches … pre-fetch stored in temp so scrolling feels local.

However we've been working entirely in 14 and I've only played a bit in 15 but I've heard that 15 was much faster.  This Jon Thatcher link provided by Tom hits the spot.  I have yet to find where numbers of prefetch is discussed or different from prior but the use of this Master List (?) is intriguing so I suspect I need to review the principles!  

Thanks Barbara!  If you find more about the issue, I'd love to learn it.  I wanted to ask what you meant about client cache - is that the Master List stored on the User system?  Top Call Logging is very exciting!  Only downloading records which have changed is indeed a game changer on network traffic, right?

Edited by LaRetta
  • Like 1
Link to comment
Share on other sites

Not sure if "master list" = client cache. I've not heard that term. However, I've read that some are seeing bad data (outdated) because of cache! Several desperate posts on TechNet. https://community.filemaker.com/thread/168254

But good reviews here: https://blog.beezwax.net/2016/06/15/performance-optimizations-make-compelling-case-for-filemaker-15-upgrade/

Edited by bcooney
added links
  • Like 2
Link to comment
Share on other sites

13 hours ago, bcooney said:

Not sure if "master list" = client cache. I've not heard that term. 

Hi Barbara!  Great links, thank you!  The Master Record List was referenced in the video about Top Call Logging that Tom provided at approx 40:26.  What it (roughly) means, from my first view-through, is that ALL table recordIDs are fetched and stored on User system even after User closes FM (for up to 15 days, if I recall or system reboot).  15 uses this Master Record List and only sends records which have been modified.

That TechNet bug report appears to involve an occasional lack of refresh in this Master Record List (although it isn't really clear what is causing their issues), which is probably why you brought it up.  The reference to using a portal as a list is intriguing!  This is a game-changer and I wonder if it affects prefetching as well.

Charity, I didn't mean to highjack your thread but I got excited! :smile3:

Link to comment
Share on other sites

Hi LaRetta, I am excited as well, hijack anytime. I just finished that video. We are still on 14 also but I think we will move to 16 later this year because this sure seems like a great improvement.  Thank you everyone.  I always get very excited when I come here because I get such great ideas and help.:beertime:

  • Like 1
Link to comment
Share on other sites

This topic is 2491 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.