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.
Let's finally take a look at the script that parses our Save Found Set return separated list back into Find Mode so we can actually restore that found set. And, so as you remember, we have the Save or Restore script, which is attached to each of the buttons in each of the layouts and then if we choose to restore it's going to run this new script: Restore Find Criteria. So, let's take a look at that, it's right down here and you'll see a lot of stuff you've seen already, so we're going to go over very quickly. When we get to the piece that's new, which is the calculation, we're going to spend a lot of time on that. So, of course, we do our Allow User Abort and our Set Error Capture, always a good idea. We're going to create a New Window, Restore Find Criteria is what we're going to call it and offset it by 30 pixels. We've done this all before. Then we're going to go to our Criteria Restore, that new layout that has that pop-up menu on it. We're going to Resize to Fit because, remember, it's a smaller window so we can have it look like it's floating on top of whatever window we click the button in to restore. So, it'll be this floating thing that will ask us what do you want to restore? It'll give us that Pop-up menu, which is the xname field, which is why we initialize it here. We'll initialize that Pop-up menu so there's no choice there. Then pause it in Browse Mode because you can't make a selection from a Global field in Find Mode so we need to make sure we do that in Browse Mode, then we enter Find Mode without the pause. We then set the criteria, remember we're in that context right there, we set the Name field in Criteria to equals equals INVOICES xname, whatever they chose you want to find exactly that, so if we're looking for John we don't find Johnny or Jonathan, we want to have an exact match here. We Perform that Find, we know we'll find something because we chose, you know, from a Global field that was showing all the values so we don't have to check for any type of errors that can occur, such as No Records Found. Then I offset this section with two comments with nothing in them just because I want these to be special here and they're special because this is where, once we find the record, we put the values into here and I just, for some reason, it felt like it needed to stand out a little to me and that's why I did this. So we set the Global Variable to the Criteria field and this Global Variable, TableName, to the table name. Simple as that. Just get them right off of that record that we just found. Then we Close the Current Window, so that floating window goes away and then in the window behind it we say, Go to the table name, which is also going to be part of the layout name, to that table name with, concatenated with underscore Find, something we've done quite a few times. So, if we're on INVOICES it'll go to Invoices Find. If we're in CUSTOMERS we'll go to Customers Find. That's so we're in the right context so we can do this find. We'll enter the Find Mode, we'll set our Start field, remember we did this before when we were gathering all the Find Criteria, we had to set the Start field to the active field name so we could exit it down here. Same thing. So we enter that Loop so we can go through all of those fields on that layout. Remember we were on that, we want to go back to that Find Layout so we're just going through the fields that we have inside of our Save Find Criteria, that's why we changed this layout so we could be on the right layout so we could just run through the fields that we need to. OK, so, this is all pretty standard. Go to Next Field, Exit Loop, go through all the fields. Here's where the difference is. The first difference is we don't specify a target field. Now you might have thought with Set Field you have to have a target field and you don't. Most of the time you do but you don't have to because if you don't specify it, it's going to go to the field where your cursor is, the calculated result will go there. So, as we're looping through each field we're making this Set field dynamic. It adjusts itself to the correct field, so if we're on the Company Name it's going to go ahead and put the result in the Company field. If we're in the First Name field it's going to put the result in the First Name field, and so on and so on. So, this calculation actually refers back to the active field name as well, as you'll see. It's quite complicated so we're going to spend the most time on this. First of all you have this Let function that declares three values and then a result right here. And then down here we have a comment where we have some sample data here, what it might look like, you know, something that we have saved in our Find Criteria and we use this different type of comment here because we have returns and the/slash, it has a comment until you get to the return character and I had to put returns in here so I need this type with the beginning and ending. So we'll come back up here and the first thing we do is we take whatever we have inside our dollar sign dollar sign FindCriteria and add two returns to it. That's represented down here in our example. We added this return and that return to our standard return separated list. So, once we do that then we have to figure out our Start and our End. The Start and the End would be this point right here, this D in Database Pros and then would be the S in Database Pros. We want to find everything between it: J in John, N in John. That's the Starting and Ending. We need to find those points so we can parse them out, so we've separated them into different Variables here that we declared inside our Let function. So, here's the first one, the Position function, it goes from here all the way to here. Forget about this part right here for right now. What we're doing is we have four parameters. We have this parameter right here, the Criteria, then we have the next parameter which is this one and then we have the last two. So we're searching inside of that criteria, we're looking for and let's forget about the rest of the stuff here, let's just look at this. We're looking for the Active Field Name. So, if this is At Criteria we're saying, OK, let's, over in the Company field, it's going to find this right here. And, remember, what it's going to return, the Position function is not going to return the position of the Y, it's going to return the position of the C in Company. It always returns the beginning of that string that it finds.
| 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 |