The first step to creating a Back Button is creating a script that stores each layout we visit. For example, if you switch from Form to Notes, we need to store that we were just at Form and if we switch from Notes to List, we need to store the Notes Layout in addition to the form so we need to store it in some kind of list in and a return-separated list is the best because it's really easy to parse the data with the value function. So that's how we're going to do that. We're going to start with writing this portion of the script, which will be storing the results of our history of, you know, going through the database. So we'll go into Manage Scripts and we'll make a new script. We'll call it Back Store. Now, we're not going to start with our Standard Perform Script Allow User Abort and Perform Script Set Error Capture because this is going to be a Subscript of other scripts and those will all have that feature on it and it will flow through, that Allow User Abort and Set Error Capture will flow through all the Subscripts. So we're just going to go with our Set Variable. Now, you can also use a Global Field here in Set Field if you want but definitely use a variable if you can because it's going to be much faster. You know, it's, you don't have to clutter up Manage Database with it. And we're going to have use a double dollar sign here because we need this to persist beyond the script. So we're going to use the double dollar sign so it doesn't go away after the script is gone. We're going to just simply call this dollar sign dollar sign Back and then our formula's pretty simple. We're going to use Get Layout Number. Now, we could have used Get Layout Name but Get Layout Number stores less information and it really gets the same results in this situation. Then we're going to concatenate this with a Pilcrow character as well as whatever's in dollar sign dollar sign Back. Now, the order of this is extremely important. You want each new layout number to go at the top of the stack or the return-separated list rather than at the end. That's just the way I'm designing it. I'm sure you could design it the other way around but you'll find out it's much easier to get it off the top of the stack in my opinion. And then what we want to do is prevent that extra return that happens when we first, you know, navigate; when we just open it up and this is blank and we don't want to have a return and then the value. We want to have a true return-separated list so we've shown you a couple ways with left words how to get rid of that return. We've also showed you with the Length Function and Left Function. We're going to show you another way. I think it works out pretty well here. We're going to put a case statement in here and say Not Is Empty and we'll say dollar sign dollar sign Back close paren semicolon. So if there's something in dollar sign dollar sign Back, then use the return. Otherwise use the Null or the default result of the case statement. So that's it. That's your whole formula. It's not very complex. Don't need anything else so we'll save that and we'll take this off and move it up into our navigation area. Let's see if we can find that real quick. Put it right in there. Duplicate this and move it up into the right spot. There we go. That looks pretty good and now we need to go to all the places where we navigate. All of, you can see this behind here, every time we switch from Form to List and Notes or use the Menu Button or the Custom Menus to navigate around, we need to store this. I'm not going to store it when you hit the Find Button or when you print and things like that. That seems unnecessary; just the typical navigation. So we have to go to all those places and we can start with our Menu Button. We'll open it up and what we're going to do is put in a Perform Script here. We want it before we go to that layout so we can store the layout we're on and then go to the new layout. So we'll say Perform the Back Store and then we'll copy that. If you have FileMaker Advanced you can copy that and we'll just paste this in all the places where we need it. Now, we don't need it here because this is printing daily invoices so we're not going to store that in our Back, you know, scenario. So we'll save this and then we need to go to all our Go To Layouts that we use for our List View, our Form View, Invoices, Customers. These are all for the Custom Menus. We need to make sure all these are done so we're just going to come in here and we're going to get in here and paste. So we'll paste that in there, put it at the top, save it and close it. Paste it in there, move it to the top. I'm using the keyboard command to save it and then the keyboard command to close it because this is much faster and you do this so much, it's really a good idea to get those keyboard commands down. So save it, close it, paste, save and close, paste, move it to the top, save and close and did I get this one at the top? Yup, I did. Good. And then the last one. We'll paste this in there, save and close and then we're going to need one more so let's duplicate this one right here. We'll call this one Go to Layout Notes because remember we had that Notes Layout and it doesn't have any script on it already so we'll have to make one. And we'll change that to Go to Layout, move to Customers Notes, there we go, click OK and so what we need to do is go on to all the layouts that call Notes and add that in there or it's already got a script step but we need the Perform Script so we'll change that real quick. There we go and it's probably going to be easier to find it with Go to. There we go. Close that, go to the next set of layouts, Perform Script, cursor up there, Go to Notes and then we'll go to the next layout. That one doesn't need it because we're already on Notes. There we go. And then this last one, double click on it, Perform Script, type in Go, Go to Layout Notes and if you've noticed, I've renamed all of my Standard Go to Layouts. Some of them were called Invoices Layout and Customers Layout. I named them all Go to Layout just for consistency if you're just noticing that. So there we go. We got that all done. Now let's test it out. We'll go into Browse Mode and I'll tighten that up. There we go. I think I'll turn on the Data Viewer here real quick so we can see what's going on, make it a little bit smaller. There we go and you'll see as soon as we go to Notes, then it'll put a value in there and then we got to List, it puts a second value in there. And if you double click on it, you'll see it's a return-separated list. So now we're adding these up as we go through them and so what we're going to do in the next section is show you how to create that Back Button, how to parse off the most-recent value and go back to it.
TERMS & CONDITIONS OF USE
BY SUBSCRIBING TO THIS SERVICE, YOU ARE CONSENTING TO BE BOUND BY AND ARE BECOMING A PARTY TO THIS AGREEMENT, THE TERMS AND CONDITIONS OF WHICH SHALL PREVAIL IN GOVERNING YOUR RIGHTS OF USE. BY CLICKING THE "BECOME A MEMBER" BUTTON, THE INDIVIDUAL OR ENTITY LICENSING THE PRODUCT ("YOU") IS CONSENTING TO BE BOUND BY AND IS BECOMING A PARTY TO THIS AGREEMENT. IF LICENSEE DOES NOT AGREE TO ALL OF THE TERMS OF THIS AGREEMENT, THE BUTTON INDICATING "BECOME A MEMBER" MUST NOT BE SELECTED, AND LICENSEE MUST NOT INSTALL OR USE THE SOFTWARE.
"VTC" refers to Virtual Training Company,
"You" refers to the user or subscriber.
"Software" refers to the VTC training content and software.
2. LICENSE: VTC hereby grants to You a worldwide, non-royalty bearing, non-exclusive license to use the Software according to the provisions contained herein and subject to payment of the applicable subscription fees.
3. RESTRICTIONS: You may not do any of the following:
Save the Software to Your hard disk or other storage
medium; permit others to use the Software except as specified by addendum;
modify, reverse engineer, decompile, or disassemble the Software; make
derivative works based on the Software; publish or otherwise disseminate
the Software. VTC, Inc., VTC Online University, and the Virtual Training
Company site is owned and operated by VTC, Inc. as a corporation of
All materials on this site are the property of VTC unless otherwise specified. No material from these pages may be copied, reproduced, republished, downloaded, uploaded, posted, transmitted, or distributed in any way. Modification of the materials or use of the materials for any other purpose is a violation of U.S. copyright law and other proprietary rights. For purposes of this Agreement, the use of any such material on any other web site or networked computer environment is prohibited.
4. FEES: The rights granted under this Agreement
are effective only upon payment of the subscription fees, which are
strictly non-refundable other than as expressly provided herein. The
term "monthly subscription" is defined as any 30 day period.
The term "yearly subscription" is defined as one 365 day
period. A yearly subscription ends on the same numerical date as it
began (example July 28, 2004 to July 28, 2005).
The VTC Online University is access to every VTC training tutorial in our library. You pay a flat fee for access to these titles. You are billed according to your renewal selection below, and can renew monthly, yearly, or in any other increment offered. If you choose to be billed monthly, you will be billed every 30 days for the subscription until you request the subscription be cancelled. Our terms of service state that you must cancel a monthly subscription at least two business days before your renewal date. These two days give us enough time to ensure that you will not be charged again.
5. LIMITED WARRANTY: VTC warrants that the Software, if operated as directed, will substantially achieve the functionality described. VTC does not warrant, however, that Your use of the Software will be uninterrupted or that the operation of the Software will be error-free or secure. In addition, the security mechanisms implemented by the Software have inherent limitations, and You must determine that the Software sufficiently meets Your requirements. VTC also warrants that the media containing the Software, if provided by VTC, is free from defects in material from the date You acquired the Software. VTC's sole liability for any breach of this warranty shall be, in VTC's sole discretion: (i) to replace Your defective media or Software; or (ii) to advise You how to achieve substantially the same functionality with the Software as described; or (iii) if the above remedies are impracticable, to refund the subscription fee You paid for the Software. Only if You inform VTC of Your problem with the Software during the applicable subscription period will VTC be obligated to honor this warranty. VTC will use reasonable commercial efforts to repair, replace, advise, or refund pursuant to the foregoing warranty within thirty (30) days of being so notified. If any modifications are made to the Software by You during the warranty period; if the medium is subjected to accident, abuse, or improper use; or if You violate the terms of this Agreement, then this warranty shall immediately terminate. This warranty shall not apply if the Software is used on or in conjunction with hardware or software other than the unmodified version of hardware and software with which the Software was designed to be used as described.
THIS IS A LIMITED WARRANTY, AND IT IS THE ONLY WARRANTY MADE BY VTC OR ITS SUPPLIERS. VTC MAKES NO OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTIES' RIGHTS. YOU MAY HAVE OTHER STATUTORY RIGHTS. HOWEVER, TO THE FULL EXTENT PERMITTED BY LAW, THE DURATION OF STATUTORILY REQUIRED WARRANTIES, IF ANY, SHALL BE LIMITED TO THE ABOVE LIMITED WARRANTY PERIOD. MOREOVER, IN NO EVENT WILL WARRANTIES PROVIDED BY LAW, IF ANY, APPLY UNLESS THEY ARE REQUIRED TO APPLY BY STATUTE NOTWITHSTANDING THEIR EXCLUSION BY CONTRACT. NO DEALER, AGENT, OR EMPLOYEE OF VTC IS AUTHORIZED TO MAKE ANY MODIFICATIONS, EXTENSIONS, OR ADDITIONS TO THIS LIMITED WARRANTY.
6. PROPRIETARY RIGHTS: VTC reserves all proprietary rights in and to the Software, is protected by copyright and other intellectual property laws and by international treaties. VTC, Inc.
Trademark Notice: VTC, Virtual Training Company,
Inc., The VTC Logo, and VTC Online University, are trademarks of VTC,
Inc. All other company and product names may be trademarks of their
The information contained herein is subject to change without notice. Copyright © 1995 - 2005 VTC, Inc. All rights reserved.
7. TERMINATION: This Agreement shall automatically terminate if You fail to comply with the restrictions described herein. Your obligations to pay outstanding subscription fees shall survive any termination of this Agreement.
8. LIMITATION OF LIABILITY: UNDER NO CIRCUMSTANCES
AND UNDER NO LEGAL THEORY, TORT, CONTRACT, OR OTHERWISE, SHALL VTC
OR ITS SUPPLIERS OR RESELLERS BE LIABLE TO YOU OR ANY OTHER PERSON
FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF
ANY CHARACTER, INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
COMMERCIAL DAMAGES OR LOSSES. IN NO EVENT WILL VTC BE LIABLE FOR ANY
DAMAGES IN EXCESS OF THE AMOUNT VTC RECEIVED FROM YOU FOR A LICENSE
TO THE SOFTWARE, EVEN IF VTC SHALL HAVE BEEN INFORMED OF THE POSSIBILITY
DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM VTC'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
9. Links To Other Materials: Linked sites found at the VTC site are not under the control of VTC, and we are not responsible for the content of any linked site or any link contained in a linked site. VTC may change links based solely on our discretion, and we reserve the right to terminate any link or linking program at any time. VTC does not, by linking to sites, endorse companies or products to which it links and reserves the right to note as such on its web pages. If you decide to access any of the third party sites linked to this site, you do this entirely at your own risk.
Forums, and Chat are not always screened by VTC, and we are not responsible for the content of any public or open forum content at the site. VTC may change these public forums based solely on our discretion, and we reserve the right to terminate any forum at any time. VTC does not, by allowing these forums, endorse companies or products which may be mentioned in these forums, and reserves the right to note as such on its web pages. If you decide to access any of the public forums in this site, or linked to this site, you do this entirely at your own risk.
9. GOVERNING LAW & DISPUTE RESOLUTION: This Agreement is governed by Virginia law. All disputes between You and VTC shall be finally resolved through arbitration in Winchester, Virginia. This site is controlled by VTC from its offices within the United States of America. VTC makes no representation that materials in the site are appropriate or available for use in other locations, and access to them from territories where their content is illegal is prohibited. Those who choose to access this site from other locations do so on their own initiative and are responsible for compliance with applicable local laws. You may not use or export the Materials in violation of U.S. export laws and regulations. Any claim relating to the Materials shall be governed by the internal substantive laws of the Commonwealth of Virginia, USA.
VTC may revise these Terms at any time by updating this posting. You should visit this page from time to time to review the then-current Terms because they are binding on you. Certain provisions of these Terms may be superseded by expressly designated legal notices or terms located on particular pages at this Site.
If you have any questions regarding this policy,
or your information specifically,
you may email us at:firstname.lastname@example.org.