Jump to content
William Slim

Data entry via popover could be more versatile, should it?

Recommended Posts

Hello peeps,

I'm just getting to grips with Filemaker 14, skipped 13 so this is the first time I've had the opportunity to play with the popovers which I've been much looking forward to.  I have to admit that I'm a little surprised that data entry hasn't been made much easier with the advent of popovers.  Creating a data entry interface is certainly easier and looks good too, but the process of entering new record criteria and confirming or cancelling the process is much the same. Currently I use global fields to place on a popover and when data entry is confirmed scripts will:

  1. Copy the entered data to a new record, field by field
  2. Clear all global fields used for entry

or 

  1. Cancel and clear global fields

However this takes more script writing the more fields you have and can be approached in many different ways from a control perspective.  Before I was doing this, I instinctively wanted to do away with the global 'Entry' fields mirroring actual data fields and instead; create a new record when launching a data entry popover, the fields are probably the same as those already on the layout but only the new blank record has focus, and the new procedure be:

  1. Commit record

or 

  1. Cancel and delete record

This would, at least in some scenarios be suitable and requires less development overhead because cancelling requires only that the record is deleted and the committing is already done by the user (as long as the record isn't cancelled or validation fails...).  

    ...Yet you can't do this using popovers.  Creating a record cancels a popover, end of.  The button that launches a popover can't be set to create a record either so I'm stuck with my old methods.  

Does this actually bother many people?  I thought this would be a common functional desire but haven't found much to read on data entry approaches in Filemaker   ...what alternative approaches do other people use?

Lee

Edited by Leelike

Share this post


Link to post
Share on other sites

Wherever did you get that idea? There are in fact, examples of new record creation, in popovers, without using globals. Time to look over the example files more carefully. 

Look in particular at the Invoice example file and the various ways new records (contacts, invoices, products) are created in that file. Also do a web search for FileMaker transactions. Transaction-based editing allows you to create a new record; optionally, create related "child" records; and then save or cancel. If you cancel before committing the new record(s) you do NOT need to delete them because they were never actually stored and saved. The technique does not depend on dummy global data entry fields.

Edited by BruceR

Share this post


Link to post
Share on other sites

Thanks for the research tips BruceR, I did just that and found the 'Invoices' example an interesting learning curve.  I also re-read some Filemaker transactions info, which actually made more sense than it did the first time around so I have plenty to consider and will continue to reference these things as I build.  I'm certainly no guru so readily admit that I have much to learn, but am excited by the prospect!

However I think my initial point still stands, the project I'm working on has perhaps the simplest initial data entry requirement possible, creating records requires several pieces of information with minimal pull/push from/to related tables. Once data is entered correctly the new record will appear in a list view, what happens from there gets more tricky but that's another matter.  Now perhaps I should take the related table route and create a transaction/data entry table solely for creating new records, well I did do this already but then decided it seemed superfluous to have a table and set of fields simply to create a record in another table.  So I switched to the global fields, same table method.  List function values offer an interesting alternative that I haven't tried, but, whats wrong with the idea that hitting a button both creates a new record in the current table and launches a popup listing only the required fields, either quit or commit, quit deletes the record but 'Save' closes the popup with your new record on screen?  The only thing I can see currently wrong with such a simple solution is that Filemaker script triggers don't work on a popup button, so I can't create a record before the popup launches.

I understand that there would be potential integrity problems with this approach yet I should stress this project is limited to one user, no network requirements  ...yet.  So I'm forced to use a relatively creative solution for very basic data entry.

Thanks Mike, will take a look...

Share this post


Link to post
Share on other sites

You keep doing things the same way and then complaining that you are doing things the same way, and claiming that there is no other way.

You do not need to do that. You do not need to use dummy global fields.

Your popover can create the new record when it opens.

I suggest you attach your file or simplified example file which demonstrates what you are trying to accomplish.

Edited by BruceR

Share this post


Link to post
Share on other sites

You may also want to look at "Anatomy of a good post"

Share this post


Link to post
Share on other sites

The only thing I can see currently wrong with such a simple solution is that Filemaker script triggers don't work on a popup button, so I can't create a record before the popup launches.

You are missing the fact that you aren't restricted to the popover button itself to open that popover; you could e.g. use a regular button that launches a script which performs any numbers of actions, then opens the popover …

  • Like 1

Share this post


Link to post
Share on other sites

Ok maybe I'm missing something, when I try and create a record using a script via a popup or popup button in the same table (not via a relationship or portal) the popup cancels before any data can be entered.  If I use a script to make the popup persistent, the 'create new record' script step can't run because it requires moving away from the popup.  But point taken, you guys have given me plenty to read and think about and I don't wish to sound ignorant so I'm cracking on with my build to get some more experience in the new version.  I'll upload a file if I hit a wall later on.

Cheers guys

Ps - I'm not doing things the same way, I'm rebuilding my project in the new version 14 so wanted to explore new data entry methods, hence the post!

You are missing the fact that you aren't restricted to the popover button itself to open that popover; you could e.g. use a regular button that launches a script which performs any numbers of actions, then opens the popover …

Bingo!  I think I came across a create popup script step in the Invoices solution Bruce mentioned. Will give that a go...

Edit, there is no script step to open a popover but it can be done like this:

https://filemakermisc.wordpress.com/2015/03/11/layout-tip-opening-a-popover-with-a-script/

Edited by Leelike

Share this post


Link to post
Share on other sites

Bingo!  I think I came across a create popup script step in the Invoices solution Bruce mentioned. Will give that a go...

There is no such script step; what I meant was to give your popover panel an object name and use Go to Object [ name ], which will open the popover (navigating to a named object on the popover panel will have the same effect).

Share this post


Link to post
Share on other sites

So let's see. For a popup we may want independent control of the button; and the popup panel.

How about a buttonbar with two buttons, one to run the script, one which has the popover. The second button is set to always hide.

See attached example file. Be sure to look at the variations on each of the layouts.

buttonbar popup.png

NewRecordPop.zip

  • Like 2

Share this post


Link to post
Share on other sites

Updated version, new features like more popups on the last layout.

 

 

NewRecordPopv2.zip

Edited by BruceR
Update features; return goes to next field etc.
  • Like 1

Share this post


Link to post
Share on other sites

Many thanks Bruce this is slick, I really like the button bar with hidden buttons solution so that's what I'm currently using in mine.  Thanks to all who contributed here.  I looked further into everything mentioned and for anyone on my level reading this here's some interesting links I ended up reading:

Transaction based data entry:

http://www.modularfilemaker.org/module/transactions/

https://www.geistinteractive.com/filemaker-transactions/

 

Edit dialogs with rollback:

http://www.soliantconsulting.com/blog/2012/08/easy-filemaker-modal-edit-dialogs-full-rollback-support

 

Advanced Filemaker data modelling:

http://www.seedcode.com/filemaker-data-modeling-with-selector-connector/

https://www.geistinteractive.com/2014/11/21/filemaker-selector-connector-video/

http://www.modularfilemaker.org/module/master-detail/

http://www.modularfilemaker.org/module/masterdetail-2-0/

Share this post


Link to post
Share on other sites

There is some interesting behavior of hidden buttonbar buttons that I have not seen mentioned.

Just because a button is hidden does NOT mean that it is not active!

If buttons are in the tab order you can use the space bar to trigger them.

Try this: use the buttons to create or edit a record.

Immediately afterwards, use the space bar. The "Edit" popup will be triggered, because the Edit button is still active.

On the last layout, there is a "Hide" button that lets you show or hide the Edit button. When the button is visible, it is easy to see when the button is active.

 

 

NewRecordPopv3.fmp12.zip

Edited by BruceR

Share this post


Link to post
Share on other sites
On 23 Αυγούστου 2015 at 7:32 PM, BruceR said:

There is some interesting behavior of hidden buttonbar buttons that I have not seen mentioned.

Just because a button is hidden does NOT mean that it is not active!

If buttons are in the tab order you can use the space bar to trigger them.

Try this: use the buttons to create or edit a record.

Immediately afterwards, use the space bar. The "Edit" popup will be triggered, because the Edit button is still active.

On the last layout, there is a "Hide" button that lets you show or hide the Edit button. When the button is visible, it is easy to see when the button is active.

 

 

NewRecordPopv3.fmp12.zip

Hi Bruce!

Al things you mention are quite elegant and works nicely, but, is there a way to keep the popover open and keep adding records until your hand gets tired? Or am i asking a lot :-)

Share this post


Link to post
Share on other sites

Popovers close when navigating between records. There ways to create new records through a global field and auto-create relationship that would not require you to navigate to the new record. Yes, it can be done; and it would be simple enough.

"Or am i asking a lot :-)"

What exactly are you asking? But it's the kind of thing you should puzzle out for yourself.

Share this post


Link to post
Share on other sites
10 hours ago, BruceR said:

Popovers close when navigating between records. There ways to create new records through a global field and auto-create relationship that would not require you to navigate to the new record. Yes, it can be done; and it would be simple enough.

"Or am i asking a lot :-)"

What exactly are you asking? But it's the kind of thing you should puzzle out for yourself.

Thanx Bruce.

I finally did it with the popover and a couple of globals. "New Record/Request" (popover closes) "Go to Object [popover name]" and the popover opens again. And because it doing so fast (and of course without the animation effect) it seems like it never closes.

 

Have a nice day! 

Share this post


Link to post
Share on other sites

Where is your example file?

No need for the pop up to close.

Share this post


Link to post
Share on other sites

It's part of a larger solution. I'll prepare one today and i'll post it here. The thing goes like this:

1. The popover operates with globals of the same layout/table. No portals/self joins or other

2. Click on a button (on the pop) performs script which writes new record with the values of globals ('cause it has to; not to mess with existent records)

3. When "New Record..." executes, the pop closes by default. You can't avoid this.

4. But if you open it again (with go to obj) and NOT perform the "Set Layout Object Animation", it simply not doing any effect and looks like it never close at all.

 

I'll post a sample today.

 

Thanx

icon

Share this post


Link to post
Share on other sites

Sample?

Share this post


Link to post
Share on other sites

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


×

Important Information

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