Take a look at the key fields used to define the relationship to your portal. What you describe is typical if the key field in the portal table is either a calculation field or one that is set to prohibit modification. When you then try to enter data into the bottom "add row" of your portal, FileMaker tries to create the new related record but one of these settings keeps this key field from accepting the needed value from the parent record's key fields.
Excellent help. Yes, the key field is a calculation field.
Here's what I'm trying to do. I have a related file, Projects. I thought I was being clever by setting up two portals in my master file -- one for open projects, and one for completed. That way, I can enter a new project, track them in the Open Project portal, and when they are completed, I would simply enter the completion date, and it would automatically move to the Completed Project portal. I would be able to see both open projects and completed projects side by side. It worked, almost. I had existing data in the Projects file before re-working the portals, so when I set up the new portals I could see the two sets of data as planned. But couldn't enter new data.
I don't know how to make this work now, without a calculation field.
Here's how I set it up:
- The master file has a Universal ID number for each record (client). Typically I use this ID number as the key field for relationships.
- I wanted to have two portals, whose relationships are defined by open/closed status. But the key field also has to be specific to the client record (Universal ID)
- To make my scheme work, I created two global fields -- Open Project, and Complete Project -- and set the words "Open" and "Completed" in each, respectively. I then made a calculation field: Open Project Calc = Open Project & Universal ID. Now Ihave effectively global fields that are based on the global field word and the universal ID.
- In the related filie, I created two calculation fields for each:
Project Status = If(project completion date >0; "Completed"; "Open")
Project Status Calc = Project Status & Universal ID
That way, I can create identical phrases in each file -- Open2457, Open2457. The idea was that all I have to do is enter the completion date in the Open Project portal, and the calculation inside the Project Manager file will change the status to Completed, which changes the key field contents to Completed2457, which switches it to the other relationship.
I can't think of any other way to be able to differentiate the portals by status (open/completed). I have to have the Universal ID in each, or the records don't line up right. But that alone won't do it . . . I need something specific that says "open" or "completed."
Sorry if this is convoluted. It was a pretty cool solution, until it didn't work. :-p
What you describe works to display and edit existing data in portals, but does not permit adding new records in the portal as you have discovered.
You also do not need to define calculation fields to combine match data in a single field unless you are using a very old version of Filemaker Pro. Instead, you can include multiple pairs of fields in a single relationship.
Assuming that you have FileMaker 11, you can use the same relationship for both portals, but define a portal filter expression such as:
Projects::Project Status = "open"
to show only "open" projects and
Projects::Project Status = "closed"
To show only closed projects.
If you are using an older copy of fileMaker, there's another option that can be set up to work here.
You have understood my situation perfectly. Thank you so much. You've taught me about portal filters. That will be useful. Yeah!
Thanks again. Much appreciated!