We will be undergoing scheduled maintenance on May 20th, 2013 at 02:00 GMT.
Visitors to VTC.com will be able to view all introductory videos for each training course.
Free Trial Members will gain access to first three chapters for each training course.
Full Access Members have full access to VTC.com�s entire library of video tutorials.
Currently you can create as many letters as you want. You just can't save a letter template for future use. All you can do is come in here and change this letter to whatever you want and then print it. I'd like to have the ability to save letters and insert them so we're going to start off with the Save Letters Technique and to do that we're going to need a table to save those letters in so we're going to go to Manage Database, go to Tables, type in Letters, create it, go to Fields, we'll take two fields here, Name to identify the letter and the Letter Field to actually identify the letter, to put the letter in. So the name of the letter and the contents of the letter. Then we'll go to Relationships and we're going to move this in here and connect it up to Customers and go Name to whatever, double click on that line and then find the xname. There it is right there. We'll change it and very importantly we're going to put on Allow Creation of Records here. So what this is going to allow us to do is create a record using Set Field across the relationship. Now, previously we've used techniques of putting the value into a variable and creating the record and we could use that here but since we're also going to reuse this relationship for other techniques such as inserting, you might as well use the Relationship Method and push the data across the Set Field here. So you'll see how that works in a second here if you're not clear. So right now we need xname to Name and we need very importantly Allow Creation here; otherwise we can't create records with Set Field. We'll put this up somewhere here and rearrange it later and then we'll go into our script. We're going to create a new script here, call it Letter Save and we'll start off with our Allow User Abort followed by a Set Error Capture and then we're going to show a Custom Dialog. We're going to show a Custom Dialog and say Enter a Name. Enter a Name for your letter. And we'll leave the OK and the Cancel, sounds good but we need an input field here so come down and find xname and then type in Name colon here so it's clear. Now, before we show the Custom Dialog, we probably should put a Set Field initializing that value. So we'll come down and find Set Field. There it is. Woops, I cleared it out. We'll put it back in again, move it right up there just before that, locate xname, put in quote quote and now when we show the Custom Dialog, it'll be blank and then we're going to come after that with a Commit Records and the reason for this is we need to commit the relationship. We need to make sure that we have that relationship updated and this is one way to do it, to commit it so that we can check to see if xname matches any names over in the Letter Table already because we don't want to overwrite letters unless we know we really want to do that. So then we'll follow up with an if statement. We'll say Get Last Message Choice equals 1. That's if they clicked on OK. If that's true, then we're going to do everything that we want to do; otherwise we won't do anything. And what we're going to do when we first come in here is another if statement. We're going to say if, we're going to come over to Customers and look at xname. We're going to see does that equal something over in Letters? So we're going to go down to Letters. Through that relationship we're going to see does xname equal Name? That's how we're going to check this to make sure, to see if we have any existing letters with that same name already so we don't have, overwrite it without telling them and then we'll put it in a Show Custom Dialog that's true. We'll say Name Exists. This name already exists. Would you like to update this letter? There we go, we'll put a space in there. I'll put No as the default and Yes as the secondary choice just to be real safe here and then we'll put another if statement in here. If Get Last Message Choice equals 2, meaning they hit yes, then we're going to want to do our Set Field. That's our push technique. And let's see if we can find Set Field there. We're going to say set across that relationship to Letters. Set the Letter Field to xletter. Let's remind you a little bit about how this works. If FileMaker looks across the relationship, which is based on X Name, what you typed into this Custom Dialog, to Name and finds a related record that matches, what's going to happen is it's going to write that over that record, whatever you put in here, this xletter. If it doesn't find a match, in other words xname doesn't match a name, then it's going to make a new record. It's also going to put xname into Name and then it's finally going to do what you told it to do, which is put xletter into Letter. So that's a little refresher on how that push technique works. Now what we want to do here is put in an else statement here and then duplicate this and move it down there. The reason for this is what if they enter in a name that is not found over in Letters. Well, the we automatically want to go do the Set Field so it creates a record and makes a relationship and then puts xletter in there. Otherwise if they do match, it finds something. Then we want to go ahead and ask them do you want to overwrite it? So it's very important to notice if we have duplicated code here but it's so simple I'm not going to modularize it but you usually think about that when you're doing things. So this looks good. Let's try it out. We'll save it, uncheck it from, we'll go into Layout Mode and we'll click on this button right here. Actually I think I'll click it over here because we're going to have some other buttons in here. So go to Button Setup, Perform Script, come down to the end, Letter Save, click OK. We'll say Save Letter, go to Browse Mode and let's try it out. We have a letter in here. Let's hit Save Letter. It asks us for the name. We'll call it My Letter, click OK, create a new window here, switch over to, I'll go into Layout Mode with the keyboard command, switch to our last layout, which is going to be our Letters, go into Browse Mode and let's see what we have. We have My Letter and it's all in there so that's great. What happens if we go ahead and try to change this to at MacWorld and then save it again. Let's call it My Letter 2. Click OK. Look at this layout. We have two records now; My Letter and My Letter 2 with the appropriate information. So that's great. That's working. What happens if we go ahead and change this to Whatever, then try to save it and type in My Letter 2 again. Now, case isn't important here but I like to be safe that way. We'll click OK. Comes up, says the name already exists. Well, let's hit Yes and see what happens. Go over here, look at My Letter 2 and you can see it says Whatever; it's overwritten that. There's only two records still. So looks like all these features are working great so now I have the ability to save this letter. What we're going to do next is use that same relationship to enable people to insert a letter that they've already saved.
| Course: | FileMaker Pro 11: Advanced |
| Author: | John Mark Osborne |
| SKU: | 34140 |
| ISBN: | 1-936334-36-4 |
| Release Date: | 2010-07-09 |
| Duration: | 14.5 hrs / 159 lessons |
| Work Files: |
Yes |
| Captions: | No |
| Compatibility: |
Vista/XP/2000, OS X, Linux QuickTime 7, Flash 8 |