I think if we can get this part to work:
In the context of CONTACTS I want to have a portal for all guests and a portal for all other participants.
You can probably apply the same method to your other portals.
Put a portal to Roles on your Events layout. In portal setup... select the Filter option and enter this expression:
Roles::Role = "guest"
complete the portal, including any needed fields from contacts that you need as fields inside the portal row.
This portal will now list all linked contacts that have a specified role of "guest".
While in layout mode, duplicate this layout and use Portal Setup... from the Format menu to change the filter to be:
Roles::Role ≠ "guest"
and this portal will list all contacts not listed in the first portal.
O wow, I knew there was a much simpler and more elegant solution and you nailed it. It's working perfectly. Instead of having a separate layout for guests and participants, I have the two portals in different tabs all in the same layout.
The only slight issue I have (but the longer I think about it, perhaps it isn't an issue at all), is that when I want to search for a contact, lets say myself, in the portal under the guests tab in the EVENTS context (i.e. I want to find all events I was invited to as guest), the results include all events where I played some kind of role, as guest and otherwise. And of course it's the same on the other side, the CONTACTS context. But again, that's very minor to the issues I've had before, and may not be a problem. Thanks so much!!!
You could eliminate the extra "matches" if your find specifies the role as well as the name.
Yes, of course.... Thanks again, really terrific help.