Wayne Irvine

Change field in portal row

8 posts in this topic

I have a FileMaker layout with a portal to another table. The relationship shows all unassigned records (related < 1). On each portal row I have a button which runs a script. The idea is that when you press the button the a value from the main record is copied and pasted into a field in the portal row (and as a result the portal record becomes 'assigned' and is removed from the portal.

I have the button running a script and pasting the value from the main record but it is pasting it in the first portal record, not the one whose button was clicked.

Is there a simple way of having the value pasted into the portal record where the button was clicked or do I have to store the record number (or something) and paste back to that record?

Screen Shot 2017-01-10 at 6.29.19 pm.png

Share this post


Link to post
Share on other sites

Why don't you post your script, so we can see? Offhand, I would say that a simple:

Set Field [ Related::SomeField ; Main::SomeValue ]

should suffice; as long as the button is in the portal, this will operate on the related record shown in the portal row where you clicked.

Share this post


Link to post
Share on other sites

I was doing a bunch of copy and pasting etc but Set Field works first go. Thanks.

Share this post


Link to post
Share on other sites

On a further issue, how do I get the page to refresh? One portal is showing available records and the other, liked records. When I Set Field to the value of the main record it is no longer Available but is now related. If I remove the focus (click somewhere else) it updates. There must be a fucntion for this. I have tried 'Refresh Window'.

Share this post


Link to post
Share on other sites

 A button can either be set up to make an immediate, single-step action.

Or it can be set up to call a script, which takes that action plus does some other things.

Set the button to call a script, which uses the set field action you're already performing, followed by:

Commit Record

Refresh Window [ flush cached join results]

Note that it may also help to put a Freeze Window statement as the first line of the script.

Share this post


Link to post
Share on other sites

Brilliant! Thanks for that.

It's been decades since I played with scripting in Filemaker and a lot has changed.

Share this post


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

I was doing a bunch of copy and pasting

Copy and paste is in the province of the users. You (the developer) shouldn't use it, unless the script is meant to assist the user in data entry.

 

10 hours ago, Wayne Irvine said:

If I remove the focus (click somewhere else) it updates.

Clicking on the background commits the record, and that's what your script needs to do too - sorry for not making that clear. I don't think you need to do anything beyond that, unless you run into refresh issues.

Share this post


Link to post
Share on other sites
17 minutes ago, comment said:

Copy and paste is in the province of the users. You (the developer) shouldn't use it, unless the script is meant to assist the user in data entry.

Hi Wayne, to explain a bit more ... not only does copy destroy a User's clipboard contents (usually needlessly, as Comment explains) but paste requires that the field being set exists on the current layout.  Down the road, you may remove that field and cause your script to fail, forgetting that it is dependent upon that field.  No such issues exist using Set Field[].

And welcome to FMForums!  :-)

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

  • Similar Content

    • By BCA
      I have a database that keeps track of computer system information. I have a record for each system (one per room). Within this system there are a number of different computer devices and I want to track settings such as IP addresses subnet masks and other network type information.
      I have a table called “Systems” and I’m using tabs to separate the different devices within a system. Within each separate tab do I need to create a unique field for each piece of information or is there a more efficient way to do this? For example:
      the first field would be device one IP address
      the second field would be device one subnet mask
      The third field would be device one preferred DNS
      The fourth field would be device one IP address
      The fifth field would be device one subnet mask
      The sixth field would be device one preferred DNS
      Etc.
      Seems like I’m missing something and there might be a more efficient way. Thank you for any help.
    • By Johstrom
      Hi,
      I hope that someone on this community is able to assist me in a rather complex dynamical filtering of portals... I am working on a pretty complex CRM based on this demo for dynamical filtering of portals by Sara Severson: http://www.soliantconsulting.com/blog/2013/03/dynamically-filtering-filtered-portals
      But I have an issue when trying to dynamically filter the portal based on several relationships, that someone here maybe can answer... This is my situation:
      Filemaker file A (the CRM) contains a portal which I filter. The portal show posts from file B (Contact database) with the use of a relationship X. The relationship match fields in the two files are global fields containing just "1" - which matches all posts. 
      The filtering of the portal here is working great. I can filter posts from the Contact database without any issues. But I would like a second dynamical filter field in relationship with a file C (an Order database) so I can narrow down the contacts in regards to what they ordered.
      So I made, in file A, another relationship between file B (relationship X) and file C (Order database). Here I match a client ID in file B with a client ID in file C. And adjusted the portal filter criterias accordingly, so it took notice of this second filter field.
      And yes, now it seemed that I could filter out specific orders, to find, for example, only clients in city X (from the file B, the contact database) which has bought item A (from the file C, the order database). But I noticed it didn't find every client with a particular order - after some debugging I found out that this procedure did only find the latest order a client made, in file C. 
      In other words: 
      If client A (from contact database) ordered item A and then later item B (posts in the order database), the filter did only find the client's order of item B. If I try to filter for item A, it found other clients that ordered this item, but not the client which ordered both A and B. 
      It seems that the relationship between file B and C only matches the latest match, which seems a little odd. 
      If I put a portal in file B (the contact database), with relationship of Client ID with file C (the order database), Filemaker found all orders, but only the first row in this unsorted portal here is found by the filter in file A.
      Any ideas? How can I make the relationship between file B and C in file A to find all orders? 
      Here an image of the tables in file A, with some complementary information: https://postorder-hstrom.tinytake.com/sf/MTUxODk5N181Mjg2NDAz
      With kind regards,
       - Johan.
    • By wattmhite
      Hi All,
      I have filmmaker server 15 deployed at my office with high speed TWC Static IP address. I've opened up all the ports per filmmaker instructions but I cannot connect from my home network and all of my 8 employees on their own home networks cannot connect either. Any thoughts or possible solutions to try?
      Thank you!

    • By dkey
      Hello
      Is there a way to reduce the speed of a voice reading a text field using the
      SPEAK script?
      I'm using the 
      Daniel
      UK ENGLISH voice
       
      Thanks
    • By Wayne Irvine
      I want to start at 1 for the next quarter, but it is currently 13 days before the end of this quarter. Logically I could start auto-enter serial at -13 and incrememtn by 1. So the first record would be -13, then -12 etc.
      Doesn't seem to like it. First record is -13, second is -14.
      Is this a bug, a feature, or known behaviour?