Tap Forms – Organizer Database App for Mac, iPhone, and iPad › Forums › Using Tap Forms › Calculated Field with Join
Tagged: Calculations, join
- This topic has 2 replies, 3 voices, and was last updated 5 years ago by Sam Moffatt.
-
AuthorPosts
-
November 30, 2019 at 11:08 AM #38405
Gary BebermanParticipantI’m testing Tap Forms now, trying to use it to update an email list. I have two sources:
– A master list of people
– A related list with a smaller number of email addresses. Members of this list should be sent a specific kind of email. So, this relationship would be one-to-one, right? That is, if Tap Forms had that as an option. Many addresses in the master list, though would not have related records here. I coded it as a JOIN with “Show Inverse Relationship” checked.
– In the future, there will likely be more of these lists for different email types. So, the same address could be linked to multiple times. But each relationship would still be one-to-one.The objective is to export the master list along with that additional field showing a person should receive that kind of email.
I coded a calculation field in the master file as:
IFNOTEMPTY(Still::Email;”Y”;””)
I can see related records. But, the calculated field is blank. Any advice? Do I have to do this with scripts?
Thanks!
Gary
November 30, 2019 at 12:57 PM #38406
Daniel LeuParticipantI think you can do everything in your master form. In the master form, add a tag field of type text. Then you can add tags for the different member groups. Use commas or spaces to separate them. Then have filters for the different groups. This way, a member can take part of several groups.
I use something very similar with a custom layout. To assign a tag, I use a script with a
Prompter
where I use a pre-populated list.November 30, 2019 at 1:07 PM #38407
Sam MoffattParticipantIt sounds like you have two main data structures:
- A master list of all of your people/contacts, presumably with their email address.
- A set of email types or ‘campaigns’ that you want to send to a subset of your contacts.
There are a few ways I’d model this: a really simple way with a single form, a way with two forms and a slightly more complicated way with three forms.
The base are your people or ‘Contacts’ and you say you’ll have multiple email types/campaigns. You’re wanting to see all of the types/campaigns that the contact is available for as a property of the contact so you could model this as a single form with a lot of checkboxes at the end. Not the worlds most elegant solution but if there isn’t any more data than if they should get this email or not, then keep it simple.
Now if there are more details about the email type or campaign, then this would bring us to the two form solution. The second becomes your ‘Campaigns’ form and stores the campaign details. I’d model it so that you use a
Link to Form
field type set to Many to Many with the Show Inverse and then for each contact you add them to the campaign. Then the campaign can give you a list of all of the people who are supposed to be targeted to it. The campaign could also contain the body of the email you wish to send as well.The challenge with this is exporting the list out to a CSV/Excel file means that the linked structure is flattened. You could work around this by putting fields in the contact form for each of the email types/campaigns but at that point you might as well just have a single form. For export purposes you could use a script field to automatically export a list of which campaigns the person is a member of but that’d require you to use Excel to expand the contents of the exported data as a post processing step.
This brings me to the third option which is using three forms. We keep our “Contacts” form for the contact details and we keep the “Campaigns” form for the campaign detail and then we create a third form for targets of the campaign, let’s call it “Campaign Targets”. In the “Contacts” form we create a
Link to Form
1:M field pointing to our “Campaign Targets” field with show inverse relationship ticked and in “Campaigns” we do a similarLink to Form
1:M field to “Campaign Targets”.Now to link a person to the campaign, we can create a new campaign target from the contact record and then select the campaign we want to use or vice versa we can create new campaign targets from the campaign and pick the people to include.
There are a few advantages of taking this approach:
- You can get either all campaigns a person is in or all people that a campaign is targeting by going from their respective forms creating a natural export filter.
- You can add calculation or script fields into the link form with content from either parent form (contact or campaign).
- You can export a flat list of contact to campaign easily and do filtering in third party tooling.
The first and third options achieve what I think you’re after without requiring a script field though you might want to use a calculation field to pull in the data you care about from the other two forms.
Hopefully this helps :)
-
AuthorPosts
You must be logged in to reply to this topic.