Quite a few New Functions have been added to FileMaker Pro 12, some are more useful than others but each function serves a purpose for some job or some person. Now I'm going to spend more time on what I think are the more useful or more important functions that have been added to FileMaker Pro 12, but don't let that stop you from trying some of the ones I briefly cover. They maybe very important to you. Now we're going to use this example file called SCRIPTS underscore CALCS, you'll find it inside the Work Files whether you downloaded from the VTC website or find it on the root directory of your CD. You can take a look at everything I've done here and see all the functions and everything and again remember they're not very complicated functions, we're just giving you a brief overview here. So don't get excited, it's not going to show you anything wild and crazy you can do with these functions but I want to introduce you to them and you know plant the seed and get your mind thinking about how these work. Now we're going to use this in two different sections, we'll use it in this section which is going to basically cover the stuff over here and then in another section which covers scripts which will cover how Calculation Functions work with scripts and you know how scripts work and things like that. So we kind of combined them into one file here. So let's start with the functions here but we will cover a couple of scripts down here that really demonstrate how that, those functions work. So the first one is GetHeight and really goes along with GetWidth, they simply allow you to reference a Container Field, I referenced this one over here and it gives you the height in pixels and the width in pixels of the original content. So if you go into Layout Mode and say reduce the size of this, crop it or make it bigger whatever, it's going to give you the original contents size, not what FileMaker has changed it to. And then right below it we have the Thumbnail, you can see this one's smaller here because it allows you to get a thumbnail of a Container Field and it's, in this case, this one right here. Let's take a look at what I've done with this because I've combined GetHeight and GetWidth with GetThumbnail to do something pretty cool. Go into Manage Database, here's our GetHeight, simple calculation that's unstored, just says GetHeight and refers to the Container Field and here's the Container Field that you saw over there on the left. Then we have GetWidth, same idea just refer to the Container Field and both of these are unstored, that doesn't mean that's the only way you can use it but this is a real brief example of how to use it. You can use these functions inside a script and we'll Auto Enter, anywhere you want. Now here is the GetThumbnail, it's a little more complicated so let's go into Options and you'll see that GetThumbnail has three parameters, let's take a look at that. Here's the New Container Functions, you can see all of them here, it has three parameters, the Source or the Container Field, the width that you want it to be and the height. So I've referred to the Container Field then I've referred to the GetWidth Function, that's the function we showed you just earlier and the GetHeight Function and divided them by 3. So now I have a thumbnail that's one third the size, very easy to do, you can combine these functions and make some cool things happen. Now right below it is the VerifyContainer, now this goes a long with the Enhanced Container Fields and specifically the Remote Feature where you can store your references to your files or your pictures whatever it might be on the FileMaker Server. It makes life much easier but we're going to go over that in more depth later, right now I just want to make sure it's understand it's about that New Remote Feature. And what happens is, maybe that file or that picture has been moved or deleted or who knows what happened to it, this will allow you to verify whether it's there or not and it will return. You can see it's got a question mark right now because I'm not using that Remote Feature; it's just a regular Container Field so it can't give us any kind of status. Right below it we have Installed FileMaker Plug-ins, it's a cool function to tell what plug-ins are installed right now, that's on the local machine, not on the server, on the local machine. And you can see I have two, Web Publishing and the Data Access Companion. Now there are some other values here but first notice that their Return separated and then between each one of the values for the two plug-ins I have. You have three parameters, the name, the version and whether it's enabled or disabled. Again the name, the version and enabled or disabled so you can parse this data out maybe in an open script or something like that and see what functions, you know, check to see, maybe use a Pattern Count to see if a particular function is installed and then maybe check the version you have installed and do some things based on that. Right below it we have the PersistentID; this uniquely identifies the machine that you're on right now. So you might be on an iPad or an iPhone or a Windows machine or a Macintosh machine. This will identify that machine, think of it along the lines as account names and user names. Account names identify who's logged on regardless of the computer. A username identifies the computer but only so far as what they've entered on that computer because that can change, this file you will never change so it uniquely identifies that machine so you might Auto Enter this just like you might Auto Enter GetAccountName and get a modification account and get Timestamp and things like that just to identify you know what's happened to that record because it can really help you down the line. And say oh well it was on this machine that it happened, well okay we know that it was this person that was using the machine at that time and then you can find out what happened to the record and talk to them and see what goes on. Right below you have UUID, now this uniquely identifies a record, well let me put it a different way, it allows you to create a Unique Identifier. So if we show the Status Toolbar and go to Record One, you'll see it has a different value but if I come back to Record Two, it's now got a different value. I go back to Record One, it has a different value, that's because it's an unstored calculation that keeps updating. So this would probably be better used as some type of Auto Enter and you might use it in a case you have synchronization going on, maybe you have an iPad or an iPhone or a laptop that doesn't have any WiFi or 3G connection to your main database on your server. You want to create an Unique Identifier for that record but a serial number won't do it because you could have ten salespeople out there all generating serial numbers and they might overlap. This will allow you to create a unique value that you can then use for your related records so you can connect everything and then it will synchronize perfectly with your main database when that salesperson comes back in and says here's all the work I've done. Here's the WindowStyle, now we're going to run a script to demonstrate this because right now it's showing you it has a zero, that's because, there, this is the standard FileMaker Window you're used to. There are two New Window Styles, so if I click on this Button right here, it's going to open up a new window with a Floating Palette essentially. You notice that I can come back here and click into here and start working on this record even though this one's still on top. So that can be handy for maybe some type of menu or something like that where you always want it to be on top, wherever they put it. It could be over here, it could be off to the side, who knows where that window may be. So we'll go ahead and get rid of this one and close it and then this one right here is a dialog. You can't click, you got, until you dismiss this window, it's, it's, it's a dialog, it's mootle, there's nothing you can do about it. And you notice it has a Windows Style of two and I, I kind of breezed over that, let me show you again on this first button. That's a Window Style of one, so this allows you to identify what type of window you have open to determine what you want to do. There's a variety of things you can do and we'll get more into that script on how you work this and see how that actual script works when we cover the next section. And then what you have here is your ConnectionState, this is a function called GetConnectionState and it simply tells you whether you have secure connection to your server or not. Whether you're using SSL or not and there's a variety of different states and you can look that up in Help. It's really not difficult to find and you know, I'm not sure how useful it is but if you're really concerned about your security, then you might want to check it before you send something back to the server, before you commit a record or something like that. You might, you know, have a script that says, hey don't let him commit this record or add this record unless the Connection State is secure.
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.