navigate site menu

Start learning with our library of video tutorials taught by experts. Get started

FileMaker Pro 9 Essential Training
Bruce Heavin

FileMaker Pro 9 Essential Training

with Cris Ippolite

 


FileMaker Pro 9 represents a significant upgrade over previous versions, with many new and enhanced features. These include support for external SQL (ODBC) data sources with supplemental fields, an enhanced Web Viewer, toolbar improvements, multiple script editing windows, and new calculation functions. In FileMaker Pro 9 Essential Training, instructor Cris Ippolite covers each of FileMaker 9's features in detail. He demonstrates how to build a database from scratch for a thorough understanding of FileMaker from start to finish. Exercise files accompany the tutorials.

show more

author
Cris Ippolite
subject
Business, Databases
software
FileMaker Pro 9
level
Beginner
duration
10h 52m
released
Jul 10, 2007

Share this course

Ready to join? get started


Keep up with news, tips, and latest courses.

submit Course details submit clicked more info

Please wait...

Search the closed captioning text for this course by entering the keyword you’d like to search, or browse the closed captioning text by selecting the chapter name below and choosing the video title you’d like to review.



Introduction
Welcome
00:00Hi! My name is Cris Ippolite and I'm going to be guide for the FileMaker 9
00:04Essential Training title. I'm going to show you all the details that you'll
00:07need to know to build your first FileMaker Pro application, or introduce you
00:10just some new things if you have worked with FileMaker before. So, enjoy the
00:14title and we'll see at the end.
Collapse this transcript
Using the exercise files
00:00Just a quick note here on the exercise files. If you're a premium member of the
00:04lynda.com Online Training Library or if you're watching this tutorial on a
00:07disc, then you have access to the exercise files that I'm using throughout this title.
00:11The exercise files for this title are arranged by each chapter. So, there's 21
00:16chapters in this title, and you will need to follow along,starting with the
00:19first lesson and within each lesson you'll notice that there are files
00:23organized in some of these cases in a serial fashion. For example, in chapter
00:2803, we have got 03_01 all the way up to 03_08.
00:30Now, the best way to use these files is to begin each chapter by copying all
00:34the files from that chapter onto your local drive. And also, if you jump to a
00:38movie in the middle of the chapters, be aware that the exercise file might be
00:42slightly different than the one shown on screen, since the one on screen won't
00:45reflect changes that have been made in the preceding movies.
00:47Although I have done my best effort to make sure that if you do jump to one of
00:52the files in the middle of a chapter, that it will reflect all of the changes
00:55in the files that precede that. So, with that being said, I hope you'll enjoy
01:00the training and let's get started.
Collapse this transcript
1. Getting Started
What is a database?
00:00Before working with the database, it's important to understand what a database
00:04actually is. A definition of what a database is is a collection of like
00:08information with underlying attributes.
00:11You are actually already familiar with databases, and you may not even know it.
00:15You have probably seen databases in the form of things like address books on
00:17your computer, where one record equals an individual whose information you are
00:22trying to store, and in this case, the like information that you are storing
00:25are different individuals and different contacts, and the underlying attributes
00:29themselves are actually things like phone number, e-mail, instant message
00:34address, street address, that type of thing.
00:36You are also probably familiar with databases from your web experiences. For
00:41example, Amazon.com is just a huge database system. All it is is a database of
00:46products that allows the user to search on those databases to give them
00:50information that they might find necessary. There are also databases that
00:53manage the shopping card experience as well.
00:55The role of a database are two-fold; first, the database itself physically
01:00stores the data, so you can have tons and tons of data on a particular item,
01:05and store it within the database files, so all that data lives together. But in
01:09addition to storing the data itself, it also contains the information on how to
01:13identify that data within the storage mechanism.
01:16A good example of that is a spreadsheet. If we take a look at the spreadsheet
01:19here, we see that this particular one stores individuals or customers, in this
01:24case, and each piece of information that's stored in the spreadsheet is an
01:28attribute, for instance, First Name, Last Name, and Title, they are all
01:31attributes of a customer or a person.
01:34You will also notice when we actually look at a true spreadsheet itself that in
01:38a spreadsheet information is organized in columns and rows. You'll see columns,
01:43for example, A, B, C, and D, and E, in this particular example, and rows 1
01:48through 5. Now, the spreadsheet itself stores the data. So, as I move this
01:54spreadsheet around, this data will travel along with it. But in addition, it
01:58also explains what the information is. You see that the first row is really the
02:03description of what data is being stored in each column.
02:07So we know, by simply looking at this particular piece of information,
02:11Estrella, we know that that's a last name and we don't even know who Dennis
02:15Estrella is, but we can tell intuitively by looking at this spreadsheet that
02:19Estrella is in fact the last name, because it comes under the column, with the
02:22heading. Now, when it comes to FileMaker databases, the rows themselves are
02:27actually represented as database records, and that's the terminology used
02:31within FileMaker.
02:33So, record is a grouping of a bunch of different pieces of information that all
02:36describe one particular iteration. In this case, this iteration is a customer,
02:42and all of these different pieces of information describe that customer. The
02:46columns, in FileMaker, we call these Attributes fields, and each particular
02:50piece of data describes one of the records. So, at any intersection, we see
02:56that Estrella is actually the last name of the fourth record in this particular database.
Collapse this transcript
Flat files vs. relational databases
00:00So, you may be wondering, what makes an application like FileMaker different
00:04than a spreadsheet itself? Well, there isn't much difference. A spreadsheet is
00:08a simple form of the database with just one data table. In this case, we see a
00:12table for customers. The distinction actually becomes important when you want
00:16to interlink multiple tables, for example, if we have not only the Customers
00:20table, but the Order table as well, and we want to link the two of these, or if
00:26you want to start building systems around this data.
00:28There's actually many ways to store this data on a computer and word processing
00:32documents or Excel spreadsheets like this are types of data storage, but a
00:36relational database system is different. These are examples of what are called
00:41in the database circles, flat files, where it's just one single table that
00:45stores particular information and it's independent for many other tables that
00:49even may have related data. But a true relational database is designed to make
00:54it easy to enter and retrieve general purpose data.
00:57The key is here; imagine if this Customer spreadsheet here had more than just
01:01five records; imagine if it had five million, it wouldn't be very easy for us
01:05to manipulate the data, extract the data, work with the data, turn it into
01:09reports in just the spreadsheet form. Another one of the main goals of the
01:12relational database is to eliminate redundant data entry in data storage. For
01:17example, if I enter in this Dennis Copley's information, I want to enter into
01:21this system once, so if I have to go back and write a letter to each individual
01:25customer in the Database. I don't want to have to type in Dennis Copley's
01:28information, all over again
01:30That's one of the advantages of what's called relational database systems.
01:33FileMaker Pro is a relational database system; it's an application that allows
01:38you to create these relational database systems as well. Now that we understand
01:42what a database is and the type of database application that FileMaker actually
01:46is, let's now take a look at FileMaker Pro and start working with some
01:49databases themselves.
Collapse this transcript
How FileMaker works
00:00Here, you see on screen, an example of a FileMaker database. We just took a
00:05look at how we can store data in spreadsheets and how they represent, what's
00:09called, flat files. Since FileMaker is a related database, let me show you some
00:13of the advantages that having your data in a related database verses flat files
00:18gives you, and then also, why FileMaker is such a great application for
00:21developing relational databases.
00:23First off, you can see we can store new information within our application; we
00:27can create records, delete records, find and locate different records, just the
00:32same thing that we can do in any kind of storage mechanism. But, what's nice
00:35about FileMaker or a related database is that we can store related values. So,
00:41for example, if this contact in this case here has a relationship to other
00:46contacts within our system, we can link them. If the contact has multiple
00:50addresses, we can link one contact to multiple addresses, which is the essence
00:54of having one table related to another.
00:57And what's key about that is all of those different tables can fit right into
01:00one FileMaker file. So, you don't have to manage multiple different files, you
01:04don't have to create a new spreadsheet, let's say, every time that the new
01:08quarter starts or something like that, you can just tag the records
01:11appropriately quarter by quarter and not have to worry with multiple different
01:14files and all sorts of different things that we have to organize. Every thing
01:17can be compact right into one FileMaker database.
01:20In addition, FileMaker has all sorts of cool functionality, like being able to
01:23publish to the web, being able to create all sorts of different kinds of
01:26layouts, work with your data in many different ways. You'll notice here is
01:30another example. You can develop an interface from scratch if you'd like. You
01:34can use some of the templates that are provided, which we will cover in the
01:37next chapter. But the idea of FileMaker here is that it provides you the
01:41ability to create a database very easily, probably one of the easiest database
01:47creation environments around, work with different tables, have multiple tables
01:51built into one file, so they can all be managed appropriately. Build the
01:54relationships with those different tables and then once your application is
01:58created, allow it to be deployed to multiple users to use concurrently.
02:02Up to 250 different users can share a FileMaker database, all having their own
02:07session and being logged into the server. You can publish a database to the
02:11web, using a litany of different technologies that FileMaker is compatible
02:15with. You can share a data from other applications, so you have got here a
02:19people management database, but if you want to link this over to a payroll
02:22system, you can link it through what's called ODBC through the server.
02:26All sorts of different things that FileMaker allows you to do, and we are going
02:29to cover a lot of those in this title, but for those of you that have never
02:33worked with FileMaker before, and you are thinking, okay what is this? I get
02:35that it's a database. What you have got here is the ability to really not know
02:40anything about computer science and still create a fully functional and
02:43powerful robust database application, using FileMaker Pro. And by the time, you
02:48are done with this title, I assure you that you'll be able to create FileMaker
02:50Pro databases, deploy them, share them with people, understand the limitations,
02:56build reports, and all sorts of different things like that in scripts.
02:59We have a whole section that we are going to cover on automating certain tasks
03:03and assigning them the buttons. So, all of this is at your disposable when you
03:06are working with FileMaker Pro, and it's targeted as being one of the easiest
03:11applications to use in the database world. So, let me prove that to you by
03:15getting a little bit more familiar with the application itself, some of the
03:17preferences and such and then we will dive right in, in the next chapter to
03:21creating your very own database
Collapse this transcript
Activation
00:00After you have installed your copy of FileMaker 9 on to your computer, you'll
00:05notice that the first time that you have launched the application, you'll be
00:08presented with the FileMaker Activation dialog.
00:11This Activation dialog is new in FileMaker 9. So, if you have been using a
00:14previous version, this is probably not too familiar, because you will enter in
00:18the license key when you do the installation. But now on FileMaker 9, just to
00:21bring your attention, you'll have to activate your copy. You'll notice here you
00:25put in the User Name and the Organization, just like on your license. Type in
00:28your license key and hit the Activate button. You will need to be online while
00:33you are doing the activation, and when you are done, you will see FileMaker Pro
00:37activation successful. Now, in FileMaker 9, FileMaker allows you to activate
00:42your copy of FileMaker Pro within 30 days of the original installation.
00:46So, if you decide to bypass activation on the first launch of the application,
00:49instead activate later, you'll find under the Help menu, by choosing Activate,
00:54it will allow you to activate within that 30-day period. Also, this menu will
00:58help you transfer activation, so if you'd like to update the license key in
01:01your currently installed version of FileMaker with a new license key, you are
01:04going to the Help menu, choose Activate, enter in your new license key, and hit
01:08the Activate button, thus updating the activation of your copy of FileMaker 9.
01:12Now, let's move on to taking a look at the application itself.
Collapse this transcript
Essential preferences
00:01As with any other application, after you have installed it, and before you
00:03start working with it, you are probably going to want to take a look at the
00:06Application Preferences. If you are a Mac user, you will find the Application
00:10Preference panel underneath the FileMaker Pro menu, and if you are a Windows
00:14user, you will find it at the very bottom of the Edit menu.
00:17Once you have selected the Preferences, you'll see the Preference pane open up
00:21to the General tab. A lot of these are optional items that you can set based on
00:25your development style, but in some cases, I'm going to make a couple
00:28recommendations for you. First I'd say, if you are a beginner user, you might
00:31want to keep the Show FileMaker Quick Start Screen on. This allow you to work
00:35with templates, or open up other files or even access the learning center and
00:40also, you might want to keep the Show recently opened files at pretty decent
00:44numbers, so that way you don't have to keep digging around on your computer to
00:46find some of the files that you have been working with.
00:48Of course, once the Quick Starts Screen starts to get a little bothersome, you
00:52can just go into the Preferences panel, like we have here, and uncheck that
00:56dialog and then you won't see that Quick Start Screen again, till you turn it
00:59back on. The other thing that I would mention is you'll notice that the User
01:02Name is set to the name of your computer; in this case, it's got my name on
01:06here. One tip that I would give you is to select other, which allows you to
01:10overwrite the name of the user, which is the user name that automatically gets
01:14put up into the User Name, and Password dialog, when a FileMaker file is open.
01:18Since every converted or brand new FileMaker file, all have a user name set for
01:23Admin, I think it's a pretty good idea to choose Other and type in Admin,
01:28because in the majority of the files that you are opening, this will be the
01:31name that we are going to type in anyways. And now, something new to FileMaker
01:35is if you check this box, you will see that it automatically checks for
01:38FileMaker updates, every seven days.
01:40Now, it won't automatically download or updated in the FileMaker, but it will
01:43take you over to the Product Downloads page to allow you to download the most
01:47recent updater. It's always a good idea to make sure that both your client
01:51applications and your servers, if you have them, are always the most up-to-date
01:55as possible. The next section, in Layout, really a couple of different items
02:00here that are based on whatever your personal preference would be, but I would
02:03know that if you are going to be publishing to the web, or using Instant Web
02:06Publishing, you might want to go with the Web palettes. So before you start
02:09designing layouts, you are going to know what they are going to look like using
02:12the palette of colors available to you on the web.
02:14Secondly, Memory, you can really leave these as is. That won't completely
02:18effect the user experience by that much, but you can always double check here
02:22to see what your current size is versus the default cache size. Finally, if you
02:26have any plug-ins that you have purchased from third parties, you will see them
02:29listed here after installation, and when you click on one of them, you'll also
02:33the Configure button so that you can go in and make whatever configurations
02:37necessary. But you'll have to see the documentation from all of the third party
02:40developers to see how to install and configure any plug-ins.
02:44And lastly, you will see the fonts. You can leave these as is. Although you
02:48might want to check the Synchronize input method with font on field entry. This
02:52means that if you copy a value into the FileMaker field, it's going to adopt
02:57the font style and type and point of the field itself, rather than of the
03:03source data where you originally copied that data. So, once all you preferences
03:07are set, you can hit OK, and now we are going to take a look at the interface
03:11inside the FileMaker application, so we see what tools you have available in
03:14order to start creating FileMaker databases.
Collapse this transcript
Interface tour
00:00Now that we have installed, activated and registered our copy of FileMaker Pro
00:04and on a quick little tour of the preferences that are available to you, it's
00:09time to start working with the application.
00:11And the first step is to get familiar with your environment or the interface
00:16that's provided to you as part of working with FileMaker Pro. So I would like
00:20to give you a quick tour on some of the things that we are going to be working
00:22with throughout all the different chapters and also get you a little bit
00:26familiar with some of the tools that are at your disposal.
00:28So first, let's start with, just like any other application, you will see that
00:32FileMaker runs most of the commands, actually all the commands that you can
00:36perform, through it's menu system and you will notice that again, like other
00:40applications, you can either choose to select something from a menu or use the quick keys.
00:46And you will notice here that I happen to be using a Mac so that you see that
00:50we have got, for example, the quick key Print is Apple+P. If you are working
00:54with FileMaker on Windows, it would Ctrl+P. So the same is for true for
00:58anything that you will see me demonstrate here in this tour.
01:01So all of the different actions and we are going to through most of these
01:04throughout this title, all these actions can be performed through the menus and
01:08also through quick keys. But also there is another option and that's this
01:11toolbar here and the toolbar is something that, by default, shows up on the top
01:16of your screen and it's optional.
01:18So for example, you can either move it around or pull it down as you see, you
01:23save yourself about 50 or so pixels of screen real estate if you need it and
01:28again everything that's on here are all, different options that are available
01:32through the menu system or through quick keys. So what a lot of users do is
01:37they keep the toolbar up there so they can do, sort of, an icon-driven action
01:41when necessary. What most of developers do is they get familiar to the toolbar
01:45first and then through the menus and after while you start to learn with the
01:48quick keys are in and you can use those as you are working with the system.
01:52The toolbar, though, if it is in your way up on the top, you can pull it down
01:56like I have done. You can reposition it like a palette, which is probably
02:00familiar to a lot of users; put it back up in the toolbar, if necessary; or you
02:04can just delete it completely. We will leave it up here just for the sake of
02:07this demonstration but those of you that have worked with previous versions of
02:11FileMaker can see that there has been something new added to the toolbar and
02:15that is the Save Records as Excel and Save Records as PDF, which we will cover
02:19in later chapters, but you will see that also those are available through the
02:24File menu and in this case they don't have quick keys associated with them and
02:27some of these don't so in some cases you will be forced to either go through
02:31the toolbar or the menu itself.
02:33The other element that you will notice is what FileMaker calls the Status Area.
02:38And that is the area over here on the left on your screen. What it allows you
02:42to do is navigate from layout to layout or request a request, depending on what
02:46mode you are in. Now I just mentioned modes and it's important to know that
02:50FileMaker is a modal application, which means that it has, in FileMaker's case,
02:55four different modes in which you can use to operate the application.
02:58The mode that we are in right now is what's called Browse mode. And Browse mode
03:01is what's used for editing and adding data, creating records, modifying
03:06records, deleting them. It's really meant for the person who is using the
03:09database that has been created to interface with the data, and again any one of
03:13those actions adding, editing, deleting records can all be accomplished through
03:18Browse mode and that' the default mode when you open up a file and you will
03:21notice here there is a couple of different ways that you can get to Browse mode.
03:24The first of which is, you will see this pencil icon in the upper left-hand
03:27corner and also it's indicated here on the top that we are in Browse mode. The
03:32second way that you can access, anyone of the modes or toggle between them, is
03:36under the View menu and you will see that we are in Browse mode right now so
03:39that is the one that has the checkmark but we can get to any of the three other
03:43modes that I'm about to show it you by selecting them in the View menu and also
03:47on the bottom left-hand corner, you will see that there is a little pull-down
03:50menu which is kind of hidden.
03:50But when you are in the environment if you wanted to just click on any one of
03:55these options to toggle between the modes, you are more than welcome and again,
03:58after sometime you will get familiar with the quick keys and the quick key for
04:02Browse mode is Apple+B or Ctrl+B.
04:05The Status Area will actually change and you will see briefly here as I toggle
04:09between the modes, it changes and it has different roles depending on what a
04:13mode that you are in. In Browse mode, you will notice that we have got three
04:17different components. We have got the Layout dropdown, we have got the, what's
04:21called the Rolodex which allows us to navigate from record to record and then
04:25we have got information or status information on the Records themselves.
04:29Now starting first with the Layout mode, you will see that this allows us to
04:33navigate from layout to layout and all the different layouts in the system. And
04:37these layouts could be either hidden or not hidden and that's something that
04:41you can control in Layout mode, which we will cover a little bit later on in
04:45the Layout chapter.
04:47So you will notice that we can get to anyone of the layouts that the developer
04:51has allowed us to access here and when we want to get from record to record, if
04:55we are manually searching through records, we would just hit this button here,
04:59you see that we can go back and forth within all the different records within
05:02the system.
05:03And if we want to find one record that we want to work with and we know which
05:06record it is within the found set, let's say it happens to be record 20, I can
05:10type that into this area and hit Enter, Return and it will take me right to
05:15that record and you see it did the same thing as if I would manually navigated
05:18to that record.
05:20Down here you will see that, this says the total number of records and when we
05:23start working with things like Found sets later in the Finding Data chapter,
05:28you will notice that this is going to change and I will discuss a little bit
05:31more about that and also on the Sorting chapter you will see that the Sort
05:34Status of all the records that we are working with is displayed here also.
05:37Next, I would like to show the next mode which is Find mode and in Find mode
05:42and we can access that again either by clicking on this magnifying glass or
05:46going under the View or going down under this menu or hitting an Apple+F or
05:50Ctrl+F as in Find but the first thing that you notice, not only did the Status
05:54Area changed but on screen it appears that all of our records have been
05:57deleted. That's not actually the case.
06:00But for those of you that have worked with FileMaker before, you will know that
06:03this is actually just the mode in which we are supposed to enter in criteria.
06:07So we can pick any one of the layouts when we are in Find mode, whichever one
06:10is more appropriate to task at hand or which ever table that we actually want
06:13to search upon.
06:14So all that it's doing is allowing you a blank slate to enter in criteria and
06:19we will talk about that in the Finding chapter. We can enter criteria into any
06:24one of the fields and once we are done entering in the criteria that we want
06:29to, go isolate within the entire record set, we will hit the Find button. So
06:33you will notice in the Status Area, couple of different things change.
06:36First of which is we can still get to all the different layouts. We notice now
06:39that Rolodex is grayed out right now and instead of saying Records, it's
06:43changed to say Requests and Requests, you will also notice that the File menus
06:48change a little bit. Instead of the Record menu, you will see that it has
06:51changed to Request and what this allows us to do is add new requests.
06:54Again, we will cover that in the Finding Data section but what we are doing
07:00here is adding another set of criteria that will allow us to do an end search.
07:05I will talk a little bit more about that, but in this demonstration, you see I
07:08have added a request and I can navigate between the two requests by using the
07:13Rolodex icon and also I can navigate to the very first request if I like.
07:17Also there are two other things here. You will notice a Omit checkbox and that
07:22means that whatever criteria I put in, for example, I put the word text in
07:26Title here that means if I click on Omit that it's actually going to find
07:30everything that does not have text in it or it's going to go into the entire
07:34record set and omit all the records that match my criteria and display the
07:39others instead.
07:40Something helpful for FileMaker is a search symbols dropdown. These are the
07:44things the FileMaker have built in, that they are sort of wild card characters.
07:48You have to keep in mind also if you are putting in search criteria that if
07:52they contain any of these that you might get some results that might not match
07:55what you expected.
07:56We will cover these in details, but real quickly the idea here is if I put in
08:00to a date field, if I put in a / /, it's just going to find every records that
08:06has today's date in those records. So we will talk little bit about that in the
08:10Find chapter as well.
08:11Moving down to Layout mode, this is the mode where all of the layouts are
08:15created, any kind of interface is developed, where the real programming
08:19actually happens within an application. And when you are developing in
08:23FileMaker, after you enter in some fields, you are going to look at your first
08:26layout, it's going to be a blank layout and you will look at it in Layout mode.
08:30You will notice that things are the same to some degree here. You will see that
08:34you can still navigate from layout to layout and in the case of Layout mode,
08:38every layout that's been developed in this file will be available in the
08:43dropdown menu. You will notice that the menus have changed a little bit. So
08:48instead of records we have a layout, which allows us to create new layouts. You
08:52go to Layouts, allows us to navigate to other layouts, Setup, do our setup.
08:57All of these things we'll cover in the upcoming chapter on Layouts.
09:01But notice also that this will navigate us from layout to layout through the
09:04Rolodex. So the Rolodex takes on a different role depending on which mode you
09:07are in. Also there is lot of tools. They are not the same tools that are
09:11available here on the header of your application. These are tools that are
09:14specific to layouts and we going to cover each one of these in this title, also
09:18the ability to drop fields and parts and some of your colors and affect tools
09:24that allow you to apply colors to text and fields and different elements that
09:27are on screen.
09:29One other thing to know is the Info palette and this Info palette, by default,
09:34will show as a floating palette when you are in Layout mode but only in Layout
09:37mode. And it allows you to do things like name objects and size objects based
09:43on whether it's the width or height or how far from the left or right these
09:47different fields are whatever if it's a box or something that you have drawn
09:51but also something new to FileMaker 9 which is really kind of exciting. We will
09:55cover this in the Resizing Layouts chapter.
09:58This palette is also used not only for object naming and sizing elements but
10:01also for controlling the resizing of the layouts and again more on that coming
10:07in future chapters.
10:08And finally we have the file mode which is the Preview mode and Preview mode is
10:14here so that you can see what a layout is going to look like when it's printed.
10:19It also lets you preview the printing before you print something and it has
10:23some special roles as well. We are going to talk in a Report section about
10:27creating sub-summary reports and a sub-summary report is something that
10:30actually needs to be trigged by the Preview mode
10:32So in the example of a sub-summary report, we will require that Preview mode is
10:39entered just so it triggers certain summary values, but really the main role
10:43for previewing is to preview something that you are about to print. So if you
10:46want to see what something looks like when it prints, before wasting any paper,
10:49you can just go into the Preview mode and you will get an accurate view on not
10:54only what we will print but also your margins as well so it gives you a way to
10:58size out margins which might not be visible when you are in Layout mode or
11:01Browse mode.
11:02So these four modes combined, make up the development in user environment for
11:06FileMaker. So before we start using them, let's discuss another important and
11:10updated resource in FileMaker 9 and that is the Help menu.
Collapse this transcript
Using the Help system
00:01So a quick tour here of what could be a very important menu and that's the Help
00:05menu. For those advanced developers, this is a good thing to take a look at
00:09because there has been some changes and enhancements in FileMaker 9 and for the
00:13developers that are new to FileMaker, this could be your best friend. This is
00:16where all the different information on how to work with FileMaker Pro and any
00:20of your support issues, your questions or if you want some additional training,
00:24all of that can be accessed through this Help menu. So no matter what level of
00:27developer you are, it's important to take a look at this.
00:29First you will see that there is a link to FileMaker Help, which will launch
00:34your internal application help system. That can also be reached by doing either
00:38Apple+? or Ctrl+?. You will also notice that there is a directory of Keyboard
00:44Shortcuts. So if you are interested in learning about the Keyboard Shortcuts,
00:47for example, in the case of the FileMaker Pro Help, you can do Ctrl or Apple+?.
00:53All of those are documented here by just pulling down and opening up the
00:56Keyboard Shortcuts.
00:57Now the Learning Center, which is really the best location for learning more
01:02about FileMaker Pro and getting all of your resources into one spot. They have
01:05done a really good job with this. But that's been in the application since 8
01:10and it's still here in version 9.
01:13Also Product Documentation, this is interesting. They added this to the Help
01:17menu and lot of users didn't know that when they install FileMaker Pro, they
01:20are actually installing all of this documentation. So FileMaker made the wise
01:24decision to add a navigation component here to the Help system that allows
01:28people to get to any of these different tutorial or user guides or information
01:33on all of the different functionality that you might be interested in learning
01:37a little more about.
01:38This allows you to activate or transfer activation. If you have already
01:42activated your copy of FileMaker, this will allow you to transfer it, for
01:45example, if you want to move it to another computer or update your license
01:49because someone else is using a license elsewhere, that type of thing.
01:52FileMaker in 9 has also added the link to Downloads and Updates. Now this won't
01:57directly download a new update to FileMaker and it is always recommended that
02:01you operate with the most current version, the most updated patch for your copy
02:06of FileMaker both on the client and server.
02:08And this will take you directly to the website and also if you turn that on and
02:13your Preferences as we discussed in Preference section, you know that it will
02:16alert you when there is an update available, but this will allow you to first
02:19check to see if you needed and then also provide you a link to that page.
02:23And also you can register you product. If you decided to register later after
02:27installation, you can register your product to the Help menu and a neat
02:31feature, the sending the feedback. This is something they had in FileMaker 7
02:36but they brought this back to allow users if they have some feedback on how the
02:40products works or a new feature that they would like to see, you can click in
02:44the Help menu, choose Send Us your Feedback and it will allow you to
02:47communicate back to FileMaker and back to the developers and engineers whatever
02:52your concern might be and these are things that FileMaker pays a lot of
02:55attention to as a matter of fact every new version, it has new features that
02:59are added. They are really stemmed from whatever the most amount of feedback
03:02that they can get. So it encourages you and FileMaker encourages you to add
03:05your feedback.
03:06So now that we have gotten familiar with all of the tools available on this
03:09application, it's time to jump into starting to develop our FileMaker Database.
Collapse this transcript
2. Database Creation Essentials
Creating databases from templates
00:01So we have looked at the application and how to set up the application and
00:04really what FileMaker does. So now it's time for us to start building our own
00:07databases. There is a couple of different ways that you can do it. You can
00:10create a database from one of the templates that FileMaker provides or you can
00:14create a database from scratch. Now if you are new to FileMaker, you will
00:18probably going to want to see some of the things that FileMaker can do or you
00:21might find a template here as we are about to review that may serve all of your
00:25purposes and you won't to need to do any development at all.
00:27So what I would like to show you here is how you would create a database using
00:31one of FileMaker's built-in templates? First is the starting point. You will
00:35notice that when you launch FileMaker that you see something called the
00:38FileMaker Quick Start screen and this has been updated for FileMaker 9 and you
00:42will notice that there are a lot of things here that we can find under the Help menu.
00:46You will see that we can find the Learning Center, some information to link to
00:50some web pages that will show you what's new in FileMaker 9 in case you want to
00:54get started learning that, search the FileMaker Knowledge Base which is an
00:57online support and troubleshooting website. A database of every reported issue
01:01that they have ever solved and also some links to joining the FileMaker
01:05Community and more information on how you can talk and interact with other
01:08developers and some of the options available to you there.
01:10Sign up for the FileMaker Newsletter, send Feedback and then register your
01:14software. All of that is available when you click on the Learn More and if you
01:18are not interested in seeing the Quick Start view again, you can just click
01:21here and click Do Not Show Quick Start and next time in FileMaker, you are not
01:26going to see the screen. So we have got a couple of other options, we can
01:29either Open a Database which is already being created either on our Desktop or
01:32on a remote server somewhere or in this case what we are going to do is create
01:36a new database.
01:36We are going to choose the Create Database option and those of you that have
01:40worked with versions of FileMaker prior to 9 will notice that this is changed a
01:44little bit and put this -- what are called starter solutions for FileMaker at
01:49your finger tips here or we can create a new or empty database but in this
01:54chapter we are going to talk about using the starter solutions as a template
01:57for building a FileMaker solution right away.
02:01So you see here that FileMaker has all sorts of different solutions and these
02:04are actually quite helpful. You can look at the entire list of wide open
02:09databases that you can choose from and they have got things that are range from
02:12Asset Management to Contact Management some of the more popular ones and a lot
02:17that are built for family uses or for instance field trips, for schools and
02:22different things like that. If you are looking for certain type of template or
02:25starter solution to work with you can type in the Filter and see that the list
02:29of filter down and show you which ones might match the criteria, just based on
02:32the file name. Otherwise you can go in and they have organized them logically
02:37here in the different groups.
02:38For example, there is Business and Finances related things. You will that there
02:42is an expense report or the ability to create Purchase Orders or Time Billing
02:46or Time Cards. Any organization could use one of those four files. So this
02:50allows you to browse through all the different options. So you can see what are
02:54available to you. Now, if just the name in the file isn't too helpful, click on
02:57this button down here called Solution Info and what this brings up is a very
03:02detailed description of what each one of these of starter solutions will do for
03:06you. So you can organize them in the same way the FileMaker does on the Quick
03:10Start screen.
03:12So let's say in the case of expense report, I want to know little but more
03:14about what that's used for. You see that it gives a description how to use it,
03:19tips for customizing it. These are all specific to this actual starter
03:23solution, so things about printing reports and any reports that are added and
03:27you see that this change is based on which ever one of these that you select,
03:32so really great resource and really great way to get familiar with all the
03:34different starter solutions available.
03:37So back at the Quick Start screen, you will see here all are different files. I
03:40have learned little bit about a file and I want to select the file and you will
03:45see after you choose one of the starter solutions in order to create it or have
03:49it available for your use, you select it, we click on OK and we choose where we
03:55want to save this report in FileMaker. For Mac, you see that it appends an
04:00extension at the end and if you are saving this in Windows, you are going to
04:03choose the Save File As a FileMaker file, so it can append the correct .fp7
04:09extension. By the way all FileMaker files in 9 have an .fp7 extension. It's not
04:15something that is significant for the file version itself, it just have to be
04:19the extension that FileMaker uses.
04:21So we will chose the location for a Desktop and you will note that it's
04:24actually creating a new version of this file for our own use and you see it
04:29show up here on our Desktop and what it is, it's a fully functioning file, you
04:34go in here and notice that all of the tables are already defined for you. There
04:38are 66 different fields that are defined and you don't have to keep them as is,
04:42you can just use these if you want as is, or you can go in and change the name
04:47of different fields or modify them to customize your specific needs.
04:52Also, all of the relations are setup. So even if you are not going to use one
04:56of these starter solutions or templates, if you want to use it as a sort of a
05:00starting point for learning things like relationships or how to work with
05:02reports or all the things that we are going to discuss in this title, this is a
05:06great template for you where you are not going to destroy any solutions that
05:10you are using for production or anything like that, you can just open up a
05:12template or you can just use the template as is. The template that is fully
05:17functioning has all sorts of features already assigned, not only to get you
05:20familiar with them, but to actually start using it.
05:22Here is a perfect example of an Expense Report, that's all ready to go. So if
05:26you have some salespeople on your team and they need an expense report, here is
05:30a way that you can allow them to add this information in, you can put this up
05:34on your server. It's all ready to be shared on the network, allowing people to
05:38do a number of different things with the use of these templates without having
05:42to develop any scripts.
05:45You will see that scripts are already created for you; you don't have to
05:48develop any of the layouts, all the layouts are already developed and there are
05:52some pretty complex ones in here in this example and the reports are already
05:56done for you and all the fields are defined.
05:59It really is the best way to get started. But if you have a specific use for
06:04FileMaker and you would like to just develop a solution by yourself, the other
06:08option that's available to you is to create a FileMaker database from scratch.
Collapse this transcript
Creating databases from scratch
00:00So creating a FileMaker database from scratch starts in one location; it starts
00:06with the New Database. Of course we can get here from the Quick Start, if you
00:12recall from the Quick Start screen. That might still be showing up when you log
00:15in depending on whether or not you have opted to not show it again. But when we
00:19choose the Create Database option or if we go under the File menu to New
00:23Database, you will see that we can create, as we discussed in the previous
00:27chapter, a Starter Solution or Create an Empty Database and that's what we are
00:31going to do here.
00:32So just go ahead and hit the Create Empty Database and hit OK and of course it
00:37asks us to name our database and we will call this database New and we will
00:43just save it to our Desktop and you see the first thing on screen is what's
00:47called the Manage Database window. This allows you to create Fields and tables
00:52and relationships and this is something that you are going to access when you
00:55are developing your database further all the time and you will notice it
00:58doesn't asks us to create any layouts or anything like that because what it
01:01wants to start off with is the tables and of course FileMaker like lot of other
01:06database applications as presented to the database developer a collections of
01:10tables that are all worked together in a series of layouts and relationships.
01:14So we have to start by creating a table and you will notice something first
01:17that if we go into tables, FileMaker even though we haven't actually done
01:21anything yet, FileMaker has created a table that's called New. Well, what it
01:25does it mimics the name of the file that you created. Now you don't have to
01:29keep it that way. For example, we can change this table Name to table One and
01:34you will see we can either create a new one called table One or just change the
01:38original name.
01:39The idea here is that when FileMaker creates a new database, it has to start
01:43off with at least one table so that you can start defining things upon it like
01:46Fields and such. So we have got our one table already and if we click in the
01:51Fields we will see that our one table is listed here and it doesn't have any
01:55Fields yet defined, and we are going to cover defining Fields extensively in
01:58the Managing Fields chapter that's coming up.
02:00But for right now, creating tables being the very first starting point, you can
02:05go ahead and create these manually or here is a couple of other ways that you
02:08can create FileMaker tables and sometimes even databases in a data of right out
02:13of the gate.
02:14The first of which is through source files of Excel and the next one I'm going
02:19to show you is through Text files. In the case of Excel, it's a little known
02:23tip but FileMaker can convert an Excel spreadsheet into a FileMaker database by
02:28simply dragging an Excel spreadsheet on top of the FileMaker icon or pointing
02:33to it when you are opening up a file. FileMaker will automatically launch and
02:36convert that spreadsheet into a FileMaker database. So if you are moving from
02:39working with spreadsheets, all you have to do to define the database to get
02:43started is to just drag your old spreadsheet on to a FileMaker icon and voila!
02:48You are working with FileMaker database.
02:50The other way to do it is through creating a table or importing the table and
02:55we will cover importing in the import, export chapter as well, but here is the
02:59tip on how to create a FileMaker database from scratch. If you go into the Open
03:05File dialog as you see here and select, let's say, the Adventures.txt file and
03:11hit Open, you will see that FileMaker launches the Import Field Mapping dialog
03:15and we will talk more about this in import, export but the feature that I
03:18wanted to show you here is how to create a new table by importing.
03:22So if you are starting off creating a FileMaker database with an Excel
03:25spreadsheet we know that you can drag it on to an icon and create a database to
03:29begin your FileMaker developing from there or you can import a text file if you
03:34just have some data that you have exported from another system or from whatever
03:38resource and you want to turn into a database, here is one way to do that.
03:42You by the way can drag the text file on to the icon of the FileMaker, it will
03:46perform in the same way as the spreadsheet does or you can select New table and
03:50you will see all the different fields or columns that are defined within the
03:55text file and some target field that it's going to create for us by simply
04:00hitting the Import button. It goes through an import and it gives us the
04:04summary, and you will notice that it brought in all the data but also we go
04:10back under File to manage database which is where we do all of our defining
04:15tables and fields and relationships, you will see that it added that table.
04:19So I didn't have to define a table and now I can actually go in and even change
04:24the name if need be or go in and select the Adventure table and change some of
04:29these Field names or Add New Fields which we will cover in the next chapter,
04:34but you will also notice that it brought in the data.
04:37So there is couple of ways that you can create new database, is simply go under
04:40New Database and selecting Create Empty Database and creating one that way, you
04:46can drag a spreadsheet on top of the FileMaker icon or drag a text file on to
04:50an icon or import in a text file to create new tables for you
Collapse this transcript
Ramifications of deleting tables
00:00So, before we proceed into defining field and scripts and layouts, and all of
00:05the fun part of developing a FileMaker database, one quick note here on
00:08deleting tables. Since we just create the tables for the first and in this
00:12example, I imported a table in. You'll notice that importing a table or
00:18creating a table shows up in a lot of places.
00:20First off, it shows up here within our table list. Also, you'll see that there
00:24are fields defined and by the way, as we get into the defining fields, you'll
00:28notice that you can use fields from one table in defining fields for another
00:34and I just mentioned that because you can see how these tables get intertwined.
00:37Also, you see that each time that you create a new table or import a table in,
00:42it creates something on the Relationship Graph, which we'll talk more about in
00:45the relationship section. Creates something called the table occurence, which
00:49is a representation of that base table that you've just created.
00:52Not only that, but it also creates a new layout. You see that a layout was
00:57automatically created for our table. These tables, once you start getting into
01:02the defining and managing every database, you'll see that you can get them
01:05involved in scripts, some of the fields can be used in other tables'
01:09calculations, and layouts could be created based on those. So, the note here is
01:13just simply be cautious when you are going to the delete a table and you can do
01:17that in a couple of different ways.
01:19You can select the table from this dialog and simply hit Delete. You can go
01:23into the Relationship Graph and remove the table as well. What it indicates
01:29here, it's telling you, it's giving you a warning and this is what I wanted to
01:31bring your attention. If you delete a table, keep in mind that it could be used
01:36in layouts, scripts, calculations, a lot of other areas.
01:40So, you need to understand before you delete a table-- in this case, it's
01:43really safe for us to delete that when you delete these-- that it could have
01:47some ramifications when you are trying to work with other systems or other
01:52tables that you might end up with some errors. And you'll notice here that some
01:56of the errors that you'll get. If I deleted this table, you'll see things like
02:03table Missing.
02:04So, if you notice this on a layout, and you see that there is a bunch of tables
02:08Missing and all your data is gone or something like that, you'll know what
02:11happened is either accidentally or unbeknownst to another developer, a table
02:15has been deleted.
02:17So, keep these things in mind when you are working with tables. We've defined
02:20them, but we keep in mind before you start deleting any of them that it could
02:22have a cascading effect on your development environment when you delete those
02:26tables. So now on to working with defining fields, which is the first step
02:32after you've created your tables in creating your FileMaker solution.
Collapse this transcript
3. Managing Fields
Managing fields
00:01We've discussed how each physical FileMaker file can hold an effectively
00:05limitless number of tables, and each one of those tables can have an
00:08effectively limitless number of fields defined, and fields and table
00:13definitions are handled in something that's called the Manage Database dialog.
00:17Let's take a look at that. Let's first open up a file and we can just use the
00:24Lucky_You_Tours file. And you'll notice under the File menu in both Mac and
00:29Windows, you'll see that anyone familiar with the version of FileMaker before 9
00:33knows that this used to be called the Define menu, now it's called the Manage
00:37menu, and in order to work with tables and scripts and relationships, we do
00:42that through the Manage Database.
00:44So, here you see we've the Manage Database and in this example, we've got a
00:49series of different tables, and each one of those tables has fields defined,
00:52and before I talk to you about the different types of fields that you can
00:56define, you should know that you define all of those, and work with those, and
00:59manage those under the Fields tab. And just to give you a little idea of what a
01:04field is: a field in FileMaker is a slot inside of a database table that can be
01:09used to hold information specific to this single database record, and we'll
01:13talk more about records in the next chapter.
01:15For a database table in which your record, let's say, represents in this case,
01:19we've got a customer or a particular person, you'd need to define fields for a
01:24first name and a last name, birth date or a billing address, home, phone
01:29number, notes, different contact information.
01:32The tables represent entities or groups of like information and the fields are
01:37attributes of those entities. So, for example, we've got customers and in
01:40fields, these are all the different attributes of a customer. My best advice is
01:44all of this should be inspect out before you start building your FileMaker
01:47database. If you have that luxury, it's highly recommended for various numbers of reasons.
01:52What you'll have to determine is, what tables are going to be necessary, what
01:55the attributes of those tables are going to be. So, those attributes are
01:59defined as fields, and each field in a FileMaker database must have a specific
02:03field type. Choosing the proper field type for a field will allow FileMaker to
02:07decide how to best store the data in the field because there are all sorts of
02:10different things that it has to do with these types of data. It also helps to
02:14define how it retrieves, and uses the data in certain Calculation functions you
02:18are asking it to perform.
02:19So, although FileMaker has lot of flexibility as to what kind of data can be
02:22stored inside fields of specific types, it is essential to choose the
02:26appropriate field type based on your database design. So, we are going to
02:31continue on in the next series of movies here with an overview of each one of
02:34these, but to give you an idea of the different field types that we've
02:37available to us are Text, Number, Date, Time, Timestamp, Container, and
02:43Calculation, and Summary fields. So, let's go ahead and look at the field type
02:48of Text field types.
Collapse this transcript
Using text fields
00:01So, when defining fields inside of a FileMaker database, you are going to have
00:04to choose a type. The first type of field that we are going to look at is what
00:08really is the default type of field; the most commonly used one, which is
00:12called the Text field.
00:14Now a bit of information on a Text field, a Text field is a field type that's
00:18actually appropriate for any sort of data that can be stored as text but it can
00:22actually store numbers or characters or whatever. You can really throw anything
00:26into a Text field. But the text itself where it's just like a name or address
00:32or something like that is what's most commonly stored in these types of things
00:35and it doesn't need any really more specific handling than that.
00:38Numbers and dates, like I mentioned, can be stored in a Text field but they
00:41lose their numberness or dateness and can only be addressed as plain text. So,
00:46for example, if you want to add the value in one field to the value of another,
00:50you can't have it be text because it's not recognized as an actual number.
00:54A Text field, there are some limitations, although they are pretty much off the
00:59charts. Text field may hold up to about two gigabytes of information in one
01:03Text field which is really the equivalent of about a billion characters or
01:06roughly 500,000 pages of English text. So, you can conceivably insert into one
01:14single Text field the entire copy of Moby Dick or War and Peace, Just to give you an idea.
01:19Now, I would contend that if you have that much information in one field,
01:23you've got some other data management issues to deal with in the first place.
01:26But just to give you an idea, you really have the limitless number of tables
01:30that you can define in a limitless number of fields. There are essentially a
01:32limitless number of characters that you can put into a Text field. And also,
01:36FileMaker stores these as what's called Unicode values, which actually each
01:40require up to two bytes of information per character. But it helps with
01:44indexing and a lot of the other things that are happening internally and it
01:47also recognizes special characters and some foreign language characters as
01:51well, which is a real improvement for FileMaker development. But it does have
01:56the impact of having about two bytes of info. So, that's why two gigabytes of
01:59storage actually results in about a billion storable characters.
02:03So, somewhere in there I think you should be able to find enough room to store
02:07a text data. Now, Text fields in FileMaker can also store formatted
02:11information. So, things like character styling or color or typeface and point
02:16size and basic paragraph level formatting such as indents and like tab stops
02:21and things like that. But most commonly, what you'll see is you could bold the
02:24field or bold the text inside of a field and all of that stored along with the
02:27data itself. So, it's kind of has sort of style information and data
02:31information in there as well.
02:32So, you'll see in this file, we've got a lot of examples of Text fields; we've
02:36got phone numbers, birthdays or a date as you can see the difference between
02:41what would be a date in a text, although we could make this text. E-mail is a
02:45good example of text, and again, this is you'll see as in these examples,
02:51FileMaker developers do use Text fields more often than anything else, but
02:54there are other field types that we should take a look at. So, let's take a
02:57look now at Number fields.
Collapse this transcript
Using number fields
00:02The next type of field that we are going to be using in this title is called
00:05the Number field. You would use a Number field in any case where a data needs
00:09to be treated as a number. So, for example, if the field data needs to be
00:13sorted in numeric order or involved in part of a mathematical calculation,
00:17number fields can store up to 800 digits of numeric precession and that's 400
00:22on either side of the decimal point.
00:24Now, FileMaker is not going to prevent you from entering any non-numeric data
00:27into a Number field unless, of course, you have what's called Strict Numeric
00:31Validation enabled and we will talk about that in the chapter on validation.
00:36But any text characters, for example, that are entered into a Number field will
00:39simply be ignored for almost all purposes. So, in general, if you need to enter
00:44any mixed numeric and alphanumeric data into a field, you should probably just
00:48consider using the Text field that we just talked about instead.
00:50Now the next type of field we are going to look at is called the Date field.
Collapse this transcript
Using date fields
00:01Another very commonly used type of field in FileMaker is the Date field and
00:06Date fields store date information and can be used for defining fields like,
00:10for example, you will see if you look into the Trip table in this example database.
00:15We have got a field in here defined as the Start Date. So these are used when
00:19you want to be able to have an elapsed time or if you need to reference whether
00:24today's date is greater than a certain date and there are some important things
00:28to understand when you are working with Date fields.
00:30The first of which is that no matter how you actually enter in a date. So, for
00:35example, if we go into Trip Detail, you will notice that the user has entered
00:45in the values 7/11/2006. Well, as we will cover in the Layout section, you can
00:52format the way that dates appear in your file to make it look anyway that you
00:56would like and that's actually really just a layout mechanism that transfers
01:00the data inside a field into a certain a way that you want it to look, it's
01:03really still the same data.
01:05But the other thing to notice though, even though the user has typed in
01:087/11/2006 into this field, the FileMaker is actually internally storing this
01:14data as an integer or a whole number that represents the number of days that
01:19have elapsed from the date 11/00/01 up to the specified date. So in this case
01:26it would be however many days have elapsed in the calendar from the very first
01:30day of 001 all the way to 7/11/2006.
01:35So that value is actually a long string of a number and the region that
01:39FileMaker does that is so that you can subtract certain dates from others to
01:43determine the number of days that have elapsed or use these things in a sort of
01:47calculation type functions. Those are important to note.
01:50The only other thing, which you need to remember when you're entering dates in
01:52here, is that the date must be a value between 11001 and 1231 in the year 4000.
02:01So your database systems that you are creating are going to be good to go
02:04without any real impact on dates until the year 4000. FileMaker supports a wide
02:10variety of date entry and display formats, which we are going to talk about in
02:14the Layout section.
02:15So the next ones to take a look at are the Time fields.
Collapse this transcript
Using time/timestamp fields
00:01So let's take a look now at fields that are defined as Time fields. These have
00:05some similarities in the way that they are handle to, for example, the fields
00:10that we looked at inside the Date field, but you see here it's just another one
00:13of the types. We have got Time and we are going to look at Timestamp as well.
00:17So Time fields will allow you to put in values, for example, 1:15 pm or am or
00:23something like that and the way that FileMaker is actually handling those is
00:28that it stores a value that represents either a time of duration or a specific
00:32time of day within the 24-hour period. Internally, FileMaker stores the time
00:37value as an integer, which represents the duration of seconds from 12 o'clock
00:42this morning.
00:43So much like the Date fields start by counting the number of days since
00:4701/01/0001, the Time fields count the number of seconds from the moment that
00:53today started, so 12 o'clock am even. Those will be internally managed as a
00:59number of seconds, which allow you to again determine duration, so you can have
01:02a start time and an end time.
01:04You just subtract the seconds from the end time from the start time, which
01:07leaves you duration or an hour and 15 minutes or whatever it is. That gets
01:12reflected inside the field. We can also format the Time fields inside the
01:16layouts as well and we will look at that when we are working with layouts.
01:20A Timestamp field which is nearly a couple of versions ago and seven is a
01:26different type of the field. When you will see that we have got a couple of
01:28those here and the Timestamp field combines the functions from both the Date
01:33and the Time data types. So a Timestamp is a combination of Date and Time
01:37separated by a space and then are stored as the number of seconds from midnight
01:42on 01/01/0001.
01:44So this is helpful if you want to just have every record that's created, have a
01:49stamp on it on exactly when it was created, so you don't have to define a Date
01:53field and a Time field, pretty common in other database applications as well.
01:57So the way they will actually look would be, for example, you would have date,
02:00space, the hours, minutes, seconds and that stored as a number from the moment
02:06the clock struck midnight on 01/01/ 0001 all the way up until the present day.
02:11So you can actually use these Timestamps in calculations and duration
02:15calculations as well.
02:17The Timestamps are pretty helpful in what's called the housekeeping field. As
02:20you see we have got some examples here, for every record that's created you can
02:24automatically assign different values. We will talk more about those when we
02:28get into the auto entry section.
02:30The next type of field that we are going to talk about is the Container fields.
Collapse this transcript
Using container fields
00:01Container fields are a really interesting type of field. There's a lot of
00:04different uses for a Container field, but just to introduce you to them, it's
00:08FileMaker's most versatile data type that can store any sort of binary data and
00:12that binary, this is a generic term for data that cannot meaningfully be
00:17represented as text. So, for example, if you accidentally opened up a photo
00:21that someone sends you an email inside a viewer that's not compatible, it turns
00:25into a bunch of garbled text and that's kind of the idea behind the binary.
00:28But really, a Container field in FileMaker Pro can be used to hold binary data
00:34in four broad classes. Defining these classes should help you understand this a
00:38little bit better. The first of which are Images, which I will show you an
00:41example of in a moment. Any kind of QuickTime file, now keep in mind that
00:45FileMaker uses the QuickTime engine inside these Container fields. So, really
00:49that means any movie, sound or other file that's capable of display or playing
00:54inside of QuickTime. Although, that sounds real Mac friendly, I mean it
00:59actually works across platform and for the Windows platform, any OLE object can
01:03actually play or be stored inside of a Container field as well.
01:06Then something that was added a couple of versions ago which people have been
01:09pretty excited about is the ability to store a file type. So, this means you
01:13can store a PDF file, an Excel file, a Word document, any kind of proprietary
01:19file type like a whole Flash file or Final Cut Pro Project, all of those can be
01:24stored inside the file. Now, it's going to be recommended that if you are going
01:28to insert any packaged files, like for example, a keynote files or something
01:31like that into a Container field, just archive them, zip them before you put
01:35them in there, so it's just one single file.
01:37Many of these binary objects such as the movies and sounds that I just
01:40mentioned can be opened or played directly from within FileMaker. So, you can
01:45insert QuickTime, it can be played or viewed directly within the Container
01:49field. For example, if we look here, we have got a field that's defined inside
01:53the adventure table that is a Container field and it's just one of the
01:57container types. When we place that field on a layout and if we look into the
02:03Adventure Detail and go into Layout mode, we will see that we have got a field
02:09here that is the photo field and we will see that that has been assigned as the
02:13photo field.
02:14So when we go back in the Browse mode, we can now insert something into this
02:19field. Now, if I had copied, let's say, an image, let's work with an image in
02:23this example, if I had copied an image from another source like Photoshop or
02:28something like that, I could just simply paste it right in here and when you'll
02:31click inside the Container field, you will notice that the fields are
02:34highlighted in a black box. Once highlighted, I can under the Insert dialog and
02:40insert either a picture, a QuickTime, Sound or a File. So, you'll see that we
02:44can insert a file. Let's say we go back into our creation and I can insert a
02:49text file there and I can right click or Ctrl-click if you are on Mac to remove
02:57the value. Or I can insert a picture. In this case, we are on the Mount
03:03Everest. So, let's look into our Exercise Files and pull in this gorgeous
03:07picture of Mount Everest.
03:08It can be displayed inside the Container field and if I like, I can even import
03:13in a movie and it will play just like QuickTime player, we play the movie. Now,
03:18there's also ways that you can work with getting the information out of the
03:21field. So, if I right click into a container, you will notice that there is
03:26this value here that's called Export Field Contents. What that does is allow me
03:31to export this image out, if we hide FileMaker, we can just see that we've got
03:38a Mount Everest image. Now still exists inside of our database but we can, if
03:44we go back into FileMaker, we'll see it's still in our record and the reason
03:48that it is still in the record is because I have embedded this right into the
03:51record itself. So, let's say, this image is about 100k. The moment that I
03:55embedded into a record, the overall size of the FileMaker file is going to
03:59increase by 100k.
04:00So, there is another way that we can avoid doing that if we do Insert Picture.
04:05Notice down here we have got something that's called Store only a reference to
04:08the file. Now, binary objects can be embedded directly into the Container field
04:11like I showed you here or stored by this reference. An embedded objects are
04:16physically stored within the database which takes up a little bit more space
04:18but the embedded object is always going to be available that's the plus part of that.
04:22But storing an object by a reference leaves the object on some external storage
04:26device such as the server hard drive by creating a link or a path to that
04:30storage location. So, if I store Mount Everest, I still have the same image,
04:37but if I happen to move that location, remember it's inside of an exercise file
04:42on my desktop, if I move that folder somewhere, I won't see the container image
04:46anymore because the path has been broken.
04:48So, although this can save considerable space, it necessitates the extra volume
04:53where it's been stored. It must always be accessible to all users of the system
04:57and that the file's location cannot be changed without updating the reference.
05:01So, you may have stored references to a file that you think is stored in a
05:06directory on the network server somewhere that you think every user has access
05:10to, but if someone opens up their FileMaker client and they don't have
05:12permissions or access to that directory on the server, they are not going to
05:17see the image. So, those are things that you need to take into account that are
05:19outside of the FileMaker realm when working with the Container field.
05:24We are also going to look at some uses of Container fields when we talk about
05:28working with layouts. But now, I'd like to just quickly introduce you to
05:32Calculation fields.
Collapse this transcript
Using calculation fields
00:00Calculation fields are another type of field that can be created within
00:04FileMaker. You will notice that they are kind of separated down here, because
00:07these fields are going aggregate or use either functions from the FileMaker
00:13system or user environment or other fields that are going to be aggregated
00:17together in summary to summarize as those.
00:19Calculation fields are really popular and we are going to be talking in great
00:22depth about calculation fields in a later chapter, but you can see here that in
00:26the Customer table there is a field called full name and it's defined as a
00:31calculation. You will see there is a Calculation dialog, which again, we'll
00:34talk about in the Calculation chapter.
00:36But what's in here is the first name and the last name field and they are
00:40concatenated together using some special characters. So the value that will
00:44show inside this field is going to be the value from first name field combined
00:48together with the value from last name field.
00:50We will talk a little bit more about those because they really are the heart of
00:53developing within FileMaker. But the tip here is, usually your calculation
00:58fields are going to be created after all the other field types are created. So
01:01again, going back to the concept of don't start to find in FileMaker files
01:05until you sketched it all out on paper.
01:07Once you have all your entities or the tables or groups of information you want
01:11to store and all their attributes, you are going to then want to be able to go
01:15in and define different combinations of those attributes as Calculation and/or
01:19Summary fields which we are going to take a look at next.
Collapse this transcript
Using summary fields
00:00The final field type that we are going to review is the Summary field. Now
00:05Summary fields are simply made to aggregate data that already exist within your
00:10FileMaker tables. In this case it works only with Number fields. So if we look
00:15at, for example, a table that has a Number field, if we look at adventure we
00:20see we have got a couple of number fields here. We have got ratings and so on.
00:26The Summary field dialog, much like the Calculation dialog, has a different
00:29looking field; there are actually some options available. So if you look at
00:32Summary and we hit Create, you will see that the options for Summary field,
00:38which I called Summary in this case pops up.
00:40What you can do inside of a Summary field-- it's a special type that allows you
00:44to aggregate values like across a found set of records and possibly for each
00:48subgroup within a sorted found set and the Summary fields are the basis for an
00:52important area of FileMaker reporting, which we are going to cover in reporting
00:55called Subsummary fields.
00:57But also if you just create a Summary field and thrown it on a layout, it will do
01:01one of the following things. It will either total up whatever Number field you
01:05tell it to total, average, count, which means the total number of actual
01:09records; give you the minimum value in a number, the maximum value in a number
01:14or a date, give you Standard Deviation or a Fraction of the total.
01:18You will see here that some of the fields are grade out and that's because they
01:22are not Number fields. But here I can say total number of days and define this
01:26field and drop it onto one of my layouts. If I drop this Summary field on a
01:30layout and if I do Find All and I have 100 records in my database and each one
01:34has one day, I'm going to get the value of 100 days.
01:38But if I do a found set and I get a smaller group of 25 of those records, even
01:43though I'm on the same layout and at the same field it's going to dynamically
01:46only count the found set. We will talk more about this in finding records. But
01:51the idea is that Summary fields are triggered off of whatever the active found
01:54set is and they can only be applied towards Number fields, and in these cases,
01:58the Date fields too for minimum and maximum, which is also something that's
02:02commonly used.
02:03Now that we have looked at all the different field types what we are going to
02:07do now is look at how we can organize these fields within the Manage Database dialog window.
Collapse this transcript
Organizing fields
00:01Now that you are familiar with defining the different field types, couple of
00:05things I wanted to show you about how to work with the fields inside the Manage
00:08Database dialog window.
00:10Let's first open up a separate file in your exercise folders,
00:18Lucky_You_Tours_03_08 and we will go under File to Manage > Database and we
00:25will click into the Fields tab, and in this layout there is a couple of things
00:28that I wanted to show you.
00:29The first of which is that we have the ability to sort all the fields. The
00:34default field sort order is going to be the order in which you created the
00:37field, which is sometimes useful, but you can control how they are listed or
00:42the sort order inside each one of these windows by this toggle up here at the
00:47View by. You can show them in creation order, which is the default. Sort it
00:53alpha by Field Name, by Field Type, in case you just want to work with certain
00:57types at a time it groups them altogether as you see here, or by a Custom Order
01:02and the custom order is determined you noticed to the left of each one of these
01:06fields. I can actually click on the up and down arrows and move them around.
01:10If I'm working with a certain set of fields and I just want to group them
01:14altogether, so I can easily make modifications. I can move those down and
01:18indicate custom order and any time I can revert back to the Field Name, for example.
01:24You also see that clicking on the field headers, Type, and Field Name will sort
01:28them appropriately, and you will notice, so that there is an Options/Comments
01:33field. The Options is the default, which indicates things like indexing and
01:38what kind of storage values, or if its calculation will actually list the
01:41calculation or they will enter other validation rules, we will cover more of
01:46those in upcoming chapters. But also if you click on it, right now they are
01:50blank, but it will show Comments.
01:52If you look down here into this field and we click on it you notice that in
01:56addition to naming a field then selecting its type and later we'll talk about
01:59the Options, you can also comment it.
02:02A tip here is, the more you can comment out all of your fields and you can
02:06comment other things like scripts and table occurences, which we will discuss
02:10in later chapters, but the more you can comment these things out if you are
02:13working with other people or if you just are working on a solution and you
02:17don't get an opportunity to work on it again or a year or so you might not know
02:22what these fields were based on the names that you came up with. So if you are
02:24not using the naming convention you can always use the comments, and then you
02:28can see all these comments by just clicking and toggling the Option/Comments layout.
02:32So in addition to organizing all the fields, you can click on a field and you
02:37can also make changes to that field name at any time. So for example, here, we
02:42can change this from maximum to max, if we'd like or we can change the Field
02:47Type or Date or Time. We can click on a field and duplicate it or delete the
02:52field of course, understanding that if it's used in a calculation field or on
02:55layout it's going to show up as field missing.
02:59We can also print all of our fields by clicking on the button below and you
03:03will notice, in this case I had one field selected, which gives me that field.
03:07This is helpful if you have really long complex calculations or if-- I don't
03:13have a field we won't select that change. But if I just want to look at all the
03:17different fields here I can select all of them by Shift-clicking and selecting
03:23all the values hitting Print, and you will see that all the different printed
03:27information shows up. This is really helpful for documenting your solution and
03:31sharing this with other developers or if you are passing on a file or even
03:35selling a package solution you might want to document all these things so that
03:38users can have a hard copy version of all the different values that are stored here.
03:43Now in addition to manipulating the fields, adding fields, changing them, or
03:49manipulating the way, which are revealing these fields in this dialog, you will
03:52also notice that each field carries with it a field option. So in the next
03:56chapter we are going to talk about some of the different field options and
04:00things like validation and storage, which you can control through that dialog.
Collapse this transcript
4. Auto-Enter Field Options
Creating auto-entry fields
00:01In addition to defining your attributes as Fields within a FileMaker file, you
00:06also have several options for each one of those fields that you can work with.
00:09The first of which is the ability to create auto-entry fields and FileMaker Pro
00:15allows developers to specify a range of different options for automatically
00:18populating the contents of a field and what you'll have to do is first go to
00:22what's called the Auto-entry Tab of the Options for Field dialog.
00:27Let's first open up a file. If we go into autoenter and we open up the 04_01
00:33file and we will go into Manage - Database and we see all of our fields listed
00:41there and we can pick any one of these fields, and you'll notice when you
00:44select a field there after a field has been defined, regardless of Type you
00:48will see that the Options button is available to you. Clicking on the Options
00:51gives you Options for the field, which we will cover in the next series of
00:56chapters. We've got the ability to control Auto-Enter values, Validation,
01:00Storage, etcetera, but here we are going to concentrate on Auto-Enter values.
01:06The first ones that we are going to look at are the ability to Auto-Enter,
01:09Creation and Modification values and the FileMaker fields can automatically
01:13track information about when a record was created or modified with some
01:17limitations, and this is really helpful because this is a field which you don't
01:20necessarily have to put on a layout or you could just put it on an
01:23administrative layout and it helps you see certain time period. Let's say you
01:26are having a problem with your database and you want to track, okay, what
01:30fields were created between Friday at 4: 30 and Saturday morning at 8:00, so you
01:35can see isolate those to see if there is any further issues, just as an
01:38example. Both of those use Creation and Modifications options, and these
01:43options have a couple of different choices here for you.
01:47First off, some of them related to the values that you have defined within your
01:52table. So if you have let's say a Date field, you will notice your options that
01:57you've got are only going to be Date. By checking this box, anything that is
02:01defined in the Auto-Enter options dialog will show up in the field every time a
02:06new record is created, and it sometimes committed in the case of the serial,
02:11which we will talk about in the next video.
02:13But in the case of Creation and Modifications, in some cases they are specific
02:17to the field type. So for example, if you define a field as a Date or define a
02:22field as a Time, you will have limited options, however, if you select a Text
02:28field and hit Options you will notice that any one of the Date, Time,
02:32Timestamp, Name, or Account Name values will be added inside this field. So to
02:37talk about what will actually appear in the field if we select Creation, Date;
02:43in this Text field the date, let's say it happens to be 04/15/2010 that date
02:5004/15/2010 will appear inside in this case a Text field or if it's a Date field
02:57that will automatically put the date in there and then since it's a date it can
03:00handled as a date and used to determine range or any kind of calculation that
03:05might require Date field.
03:07But in the case of Text, you can have the Date or the Time put in there, of
03:10course, it will be a Text field so it can't be handled as Date or Time, but it
03:13will reflect the data, and also you can put a Timestamp in it, this is actually
03:17quite common. A lot of developers will make sure that every table that they
03:22have has a Creation and Modifications field setup and these are commonly called
03:27Housekeeping Fields.
03:28Actually we have a couple already defined in one of these tables if you want to
03:32take a look at what that looks like. We go into the Adventure table. You will
03:37see how these housekeeping fields can be used. They are commonly not put onto
03:42layouts that users are going to see, they can be created and just put onto
03:47administrative layout, and you will notice that the Options, in this case there
03:51is a Text field for Creation account. This is going to show us the Account Name
03:55and we will cover Account Name when we talk about security in accounts and
03:58privileges, but this is what the user used when they logged into the file.
04:02If you're interested not only in when a record was created, either by Date or
04:06Time, you can also find out who created a record. So the name of the computer
04:12if you chose Name, it would actually show up in the field, if you just chose
04:16Creation and then the Name option, but the name that the user used to log into
04:21the system so they could be logging in from any remote location or any
04:24workstation, it would be independent of the name of the computer. You can
04:28gather all this information by choosing the Creation and then Account Name.
04:32So in this case what we are doing is we are pulling in the Account Name or the
04:36account of the creator. I can also put in the computer name and choose just
04:40Name, and you see here that we are other options too. So the Creation,
04:45Timestamp which means that the combination of the Date and the Time when this
04:49record was created is also very helpful, in addition to creation information,
04:53we can also choose to define a field, again a Text field or a Date and Time or
04:58handle them in the same manner, that will give us the modification. So anytime
05:02somebody goes in and changes values -- any one of the values inside of a field
05:07that's within in a record. So if there are ten fields defined within a record,
05:12any one of those that get changed will trigger the modification, and the same
05:16rules apply here. You can have the Account Name, the Name or just simply put in
05:20the Date and Time.
05:21So in this case we have the Modification Account, which tells us that anytime a
05:25record was modified we can see who modified that record and this is really
05:28helpful for administrating your databases. A lot of people take full advantage
05:32of this; same thing is true here with the timestamps as well.
05:35So you can create a field that will automatically enter in Date, Time,
05:40Timestamp, Name, or Account Name into any of these fields and those are
05:45available all in the Text fields, but in the Dates and Times you only have the
05:49options to put in timestamps, dates or times respectively in there. Again, it
05:53is recommended that every table that you create that you create these
05:57housekeeping fields. It might not seem like something that you need now, but it
06:00certainly becomes very valuable when you are trying to diagnose a problem or
06:04see who modified or added a bunch of strange records to help you troubleshoot
06:08your FileMaker solution.
06:10The next type of option that we are going to look at is what's called
06:12Auto-entering a serial value.
Collapse this transcript
Creating serial fields
00:00FileMaker Pro has the ability to insert a serial number value into a field
00:06every time a new record is either created or committed, and I will talk about
00:10the difference between creating a record and committed in just a moment, and
00:13this is really of interest when you want to create a primary key field for a
00:17database table or otherwise known as a value that will uniquely identify each
00:21row or in the case of FileMaker each record inside the table. This is really
00:26important when it comes to creating relationships, as a matter of fact, setting
00:29up an id in Auto-Enter Serial mode is critical for defining what's called a
00:35Primary Key in a relationship. We will talk more about that when we discuss
00:39relationships, but for right now I'm going to show you how you set up these
00:42fields and how they behave and perform.
00:44You will notice inside the database file, Lucky_You_Tours_04_01 in the
00:50Adventure table, we have got a field already defined that's called the id
00:54field, and of course in order to access our Auto-Enter Options, we hit Options
00:59and we get the Options for Field id. Notice that Serial number is selected and
01:04it's got on creation and the next value 1153. The serial number for a field can
01:10start at any value and it can proceed in increments of either 1 or 2 or really
01:14any value that the developer chooses. So in this case I'm saying start at 1153,
01:18and increment by 1.
01:19But when you first define a field, you can just put next value is number 1,
01:23increment by number 1 and what this will do is really, sincerely, uniquely
01:28identify each record that gets created from all the other ones. So a lot of
01:31people like to use names or some sort of fancy concatenation of last name and
01:36city and zip code or something. But the only way to absolutely guarantee that
01:40no records will ever have the same value is to have FileMaker store the tally
01:45for you and you will notice here, if we go into Browse mode that, first, all
01:51the different records that have been created have a single increment all the
01:54way up to 1152, and when I go into create a New Record, notice that it says
02:001153, on my new record that I have created, so it's got a unique value.
02:05When I go back into manage my database, the next value is now indicated as
02:101154. So you see that FileMaker has this internal counter that will make sure
02:15that it doesn't dole out the same number twice.
02:18Now there is somewhat of an exception to that and that involves the difference
02:22between creating and committing. Now the definition here is when you create a
02:26record, it just simply means I have hit New Record and the record is created
02:30inside my table, and the committing of a record is actually saving that record.
02:35So in versions of FileMaker prior to 7.0, keep in mind that anytime you created
02:40a record, hit New Record or indicated through a script or some other action
02:45that you were going to create a record.
02:46Once that record is created, it's automatically saved within the database
02:50table. Now in more of the current versions, there are some advantages to this.
02:54One of them is here; you'll at least see it demonstrated here in a second. It
02:58won't save the record until it's committed and we will take a look at what that means.
03:03We back out of this again and we again say New Record. Notice that I have got
03:07another record, where at 46 records instead of 45 a moment ago, but there is no
03:12id field here but the moment that I click into an area, and I just clicked my
03:17cursor into the space and you notice that everything got activated for a
03:20moment. Then it designs the serial number, and I have committed the record
03:25which means now I have officially saved it, and what advantage that gives us is
03:30you will notice if we go in and we see what the next record value is, is 1155,
03:35I will create a New Record and I haven't yet committed the record. Even though
03:42there are now 47 records, the internal counter should be on 1155; but instead
03:47I'm going to delete the record, before I can commit it and let's see, back in
03:53id, you will notice that it's still waiting to dole out that number 1155. But
03:59if we do that on creation, let me say, New Record, it gives me 1155. I haven't
04:05yet committed it. I delete the record. And in this case, you will notice that
04:13it still advances it to 1156, because in fact, it advanced to the next value on
04:18creation instead of on commit.
04:21So that's an important thing, again we will talk more about it when we talk
04:23about the values of Foreign key fields and such. And this is commonly a text
04:29field, and one of the reasons is because, it's also possible to create a serial
04:33number that has a prefix of some kind.
04:34So for example, this is inside of our Adventure table, so maybe we want to say,
04:41in order to identify which table this is coming from or another common practice
04:45with some kind of sophisticated programming just to determine what client of
04:48the application, whether it was Web or FileMaker Server or Server Advance or
04:52something like that, to determine where it was created and then put that value
04:56in here. Well, let's just say we want to append it with an A.
04:58So I hit OK. And now you will notice when I create a new record, it gives me
05:03A1156. Now that's really completely up to you, if for whatever reason you want
05:08to use this value, it will have to be a numerical field and in that case you
05:12won't be able to do a prefix, but a lot of developers prefer to introduce a
05:16prefix to better distinguish records from different tables, but if you are
05:20going to do this, you should define this field as a Text field first.
05:24The other thing that you will notice is FileMaker is really good about managing
05:28these. So if we say, our next value, let's just revert this back is 1157 and
05:36we've got 47 records, but let's say we want to go, import some records into our
05:39file, if you look in the Auto-Enter folder, 04_autoenter in your exercise
05:44files, you will see that I have got a text file in here. I'm going to use this
05:47as an import source. And we can do a little bit of mapping these fields. We
05:54will talk more about this in Import, Export. But this is what I want to show
05:58you. This dialog window here, the Import Options, you always, no matter what
06:02you are doing when you are importing, you have the option to perform auto-enter
06:05options while importing.
06:07So remember we talked about a housekeeping field of modification date. That
06:10means that it will automatically stamp into any field that you have set as an
06:15auto-enter to show the modification date. On the import of the record it will
06:19assign a date for each one of those. The same is true for serial numbers and
06:23more look-ups in the next couple of movies, and you will see that these can be
06:25updated instead of being imported as if they were created one at a time during
06:30the import which is kind of what's going on anyways, but let's take a look at
06:33what happens.
06:34So we have added 16 records, we see we have got a total of 63, it gives us
06:38found set of 16, and it starts with 1157 which was the next number in our
06:43increment and notice that it will automatically update these values, and not
06:49only that, but it will go into database. And now see we are on 1173 instead of
06:561157, so it updates it automatically, and that's really important to check that
07:01box when -- let's say, you are working on a FileMaker file and you want to make
07:06some changes, you grabbed a version of the file where let's say it was at
07:09number 1000, and then some one goes on and continues, or let's say, you've got
07:14a file that's in production and it ultimately increases up to the number 1200.
07:18Well, the file you are working on still has 1000. If you don't select that
07:23checkbox when you import this in, the danger is that you are going to assign
07:28serial ids on imported values from 1000-1200, and really the client who has
07:36been creating new data, that's of course, which you would be using as your
07:39import source, because a lot of times you work on a FileMaker database and
07:42someone will be working on an old copy and then you will migrate the data over.
07:46The problem is you will have 200 or up to 200 duplicate ids. So it's always,
07:51always important when you are developing a system and you are going to have a
07:56lot of importing and you are going to have the ids automatically incremented
08:00which is going to be really any database table.
08:02Make sure that you either script or you have the user's manually check that
08:07checkbox for perform auto-entry on these fields.
08:10So now let's take a look at auto- entering value from either the last visited
08:14record or auto-entering some data value.
Collapse this transcript
Auto-entering previous values or data
00:01The next auto-enter option that we are going to look at is called Auto-Enter a
00:05value from last visited record. Now this option, which is really not used that
00:11often, allows for situations where it's expected that a field will likely have
00:15the same value for many records entered in a sequence.
00:19So for example, let's say you are entering a data into a database application
00:22that's used to enter data from voter polls. So if the raw data itself that's
00:27presented to the user is always sorted by City and State, so, for example, you
00:32are going to enter in a thousand records from Los Angeles, California in a row,
00:36and then in the next one, you switch to Beverly Hills, California and do
00:39another thousand of those. It would save you some keystrokes from having to
00:44enter into the City field, let's say, the name Los Angeles, every time you
00:48create a new record, at the name Beverly Hills every time you create a new record.
00:52Of course, when you switch from the last record for Los Angeles into the new
00:56record for Beverly Hills, like with any other auto-entered value, simply
01:00overwrite the Text value. Changes it to Beverly Hills and now every record
01:04created after that will have Beverly Hills in that field.
01:07Now again, it's not that popular, but just in case this might be applicable to
01:10you. It might make a sense for you to use this in an example like the ones that
01:14I mentioned, on the grounds that a user would typically enter in a dozen or so
01:18records at a time, the same in this example, the City name. So what you would
01:22do there is just click on Value from last visited record.
01:25Now if we take a look at the next option, this one is similar but it's going to
01:30be something where the values don't change in datasets. This option is to fill
01:36in a field with a default piece of data, when a record is created. So a really
01:40good example here is, let's say you have a customer database and you have most
01:45of your customers are in the State of California.
01:47Well, it might not always be the case but it's most often the case, you can
01:51save the user some keystrokes by selecting Auto-Enter data into this field so
01:56that means each time a record is created, it will automatically put CA in that
02:00field. And of course, since it is an auto-enter value, it can't be overwritten,
02:04let's say one or two times a year, you have a customer that's outside of the
02:07State of California. Then in those one or two times, you would just overwrite
02:11the default value of CA and type in whatever the appropriate State would be.
02:16So another idea would be, you could have a Status field let's say, that would
02:20need to be automatically marked Pending until let's say a Loan Officer approve
02:24them. And in this case you could enter in the value of Pending into this Data
02:28box here, and each new record would have a data inserted into the Status field
02:32on creation, and since it's a Status field, and it is an Auto-Enter text,
02:34instead of a calculation let's say, you can overwrite that or have some script
02:40go and modify that value from Pending to whatever the next Status value might be.
02:46Now let's go take a look at one of the more powerful Auto-Enter options to be
02:49auto-entered by calculated value.
Collapse this transcript
Auto-entering calculated values
00:00FileMaker Pro also has the ability to auto-enter a value that's determined by a
00:05calculation. Now we are going to talk a little bit more about calculations, but
00:09I will just give you a brief overview here.
00:12If you open up in the autoenter folder inside your exercise files and choose
00:18Lucky_You_04_02, go into File menu, Manage Database, let's go into the booking
00:26table, you will notice that we have an example here in the Amount Due field
00:31that if we click on Options. Or by the way you can get to Options by
00:36double-clicking on the field. You will see that the only one that we have
00:39checked is calculated value. So in order to see what the calculated value is we
00:43hit Specify, but what's interesting here is, auto-enter a Value from last
00:47visited record, if you remember when we talked about this, its finding what the
00:51value was in the previous record and entering it into this one. So it's
00:54communicating with the different record, and in the case of calculation, we've
00:59got this entire dialog here and we will talk more about the dialog when we get
01:02into working with calculations.
01:04We have got this entire dialog that allows us to take fields from all related
01:08tables, apply functions and operators and all sorts of stuff but before we get
01:13into that section, the example that I will use is that, in the field amount
01:17due, we will show the value of amount billed minus amount paid. So we will
01:23subtract whatever the value is inside amount paid from the value in amount
01:28billed. And that will give us whatever value shows up inside amount due.
01:33Let's actually look at how that works. If we go under the booking detail layout
01:41and we will create a new record, by the way, you see that our booking id, which
01:46is clearly an auto-enter serial value on the creation of a record, has already
01:50populated, so we know we have a new record. All our fields are active and my
01:54cursor is blinking.
01:56So in amount billed, I'm going to put, let's say $200, so you see right now,
02:03200 - 0 = 200. So you see on the creation of the record, it's automatically
02:08putting in this value, actually on the commit of the record. But I will put 100
02:12in here and it shows that the total amount due is $100.
02:15Now we didn't tell it to put the value 100, we just told it to do some math
02:20between a couple of different fields and it could be a ton of different fields,
02:23and once you get more familiar with the calculation dialog, you will see all
02:26the different things you can do by putting a calculated value in an auto-enter.
02:30But why wouldn't we just have amount due be a calculation? That simply says
02:34amount billed minus amount paid. Well, it's because we might want the ability
02:39to go in and manually change this. Remember that auto-enter values that are
02:45entered into a newly created record are snap-shot values, which means that at
02:49the moment that record is created, here's what the value is, it can be
02:52overwritten at any time. So you see here, even though the rule is that it
02:56should be the amount billed minus the amount paid gives us amount due. Well,
03:00there could be some business rules involved allowing you to manually overwrite
03:04this value, like for instance, a light charge or something like that.
03:07A better example of the difference when you would use auto-enter calculated
03:11value versus just a calculated field that would have the same calculation.
03:15It is for example; let's say you have a database where you put in how much a
03:20sale. Let's say you are selling an item, this product was sold on this date for
03:24X number of dollars.
03:26Well, if you put the total sale price = product unit cost? quantity and that's
03:33a calculation field. What happens if the product unit cost value changes in the
03:38future? Well, if that's the case, then it's going to automatically update every
03:42single one of your records retroactively, and you don't want that to happen.
03:46So in the case of having a sale, let's say, reflect the value for unit price?
03:54quantity at the time of sale, a great idea would be to use this auto-enter
04:00calculated value that we are talking about here.
04:03Now there is another interesting thing, if you combine this with the ability to
04:07replace an existing field value down here, it turns into a very powerful feature.
04:12We are going to talk about that in the next movie.
Collapse this transcript
Field filtering
00:01Previously we discussed the auto-enter by calculated value. Now this combined
00:06with the ability you see here to either replace an existing field value or not
00:10replace an existing field value, in the Auto-entry Option dialog, allows for
00:15some very powerful effects, such as a feature that's called Filtering. Let me
00:20show you an example of Filtering, if we close out of the 04_02 file, and if we
00:27go into autoenter, and choose Contact_ 02_10, you will see that we have a file
00:35here and notice that we have got a Phone Number field. Now watch as I enter in
00:42some values, and now when I commit the record and of course that means clicking
00:50outside of a field, you will notice that the just simple numeric values that I
00:55entered in were automatically changed into an uniform data format and this is
01:01true if I create a new record or import records into the database, and this is
01:06actually quite commonly phone numbers. Because some people might put area code
01:10in parenthesis, they might put dashes in between, they might lump them all
01:13together, that type of thing.
01:15Well let me show you how this works. In the past you would create a Phone
01:20Number field and then you create another calculated field behind it that would
01:24then transform all the values and display them, but now you can do this all in
01:28just on field. Let's take a look at how this works. We will go into Manage,
01:33Database, and look under the Phone Number field and you will see that what we
01:38have is auto-enter calculated value and if we look in here, now don't worry too much about this.
01:44After we cover the calculation section and possibly in the Beyond the Basics
01:48title, this will make a lot more sense to you, but basically what's going on
01:51here is it's pulling in the left three values from the Phone Number field that
01:56I type in. You will notice here we have got some parenthesis, it's putting
02:00parenthesis in there and then a little bit of a space, and then it's taking the
02:05next three values starting at position number 4 and then putting a dash in
02:10there and then putting the rest of the values here at the end. So what happens
02:14here is you will notice, if I check Do not replace existing value (if any),
02:19when that is checked what that really means is do not apply this calculation to
02:24the user entered value. If I un- check that field, that means apply the
02:30calculation to any user entered value.
02:32Let's look at how this behaves a little bit differently, if I were to go in
02:36now, and commit, it stays exactly the same. But if I go into the phone number,
02:44un-check, which this really means is apply this calculation to whatever values
02:50I enter inside the field. And again it's a snapshot, so it's not a calculation
02:55field. So it doesn't retroactively go and update this. It's on the entry of the
02:59data, you will notice that this can also be used for Social Security Number, if
03:07I go in here and I say 123456789, I click outside of the field, and it
03:14automatically formats that data. I could do 12345678 and it will still apply
03:21everything necessary to format this properly.
03:24So you can really save yourself a lot of data-entry errors by using the
03:28combination of Auto-enter by calculated value combined with not checking the Do
03:32not replace existing values if any. And it can just put your calculation
03:37whatever it may be and feel free to use the calculation you see here. This
03:41PhonuNumber calc is quite popular and the formatting of the Social Security
03:45Number value is also quite popular. You're welcome to use any of this code and
03:50just change the name of the field in here. If you want to use that to learn a
03:54little bit more about this. And keep in mind that calculations are explored
03:57fully in the upcoming sections of this training title.
Collapse this transcript
Looking up values from other fields
00:00The last auto-entry option that we are going to work with is called
00:03auto-entered by a Looked-up value. I have got a file set up here if you want to
00:07play along here, we go into Auto-Enter and open up the 04, Luck_You_Tours_04_03
00:14file and we will look into the booking table, similar to what we worked with
00:21before. And you will see that the amount billed has something under options and
00:25comments that says Looked-up and what that means is that when a record is
00:29created, the value that it's going to show up in the field unlike a serial
00:32number or the data from the last record or data in this field or some kind of
00:36calculated value, it's going to look up a value from a related table. Now we
00:41are going to cover relating tables and how these things get related through ids
00:45in the relationship section, but the idea here is that once you have we are in
00:50the booking table, we have got here are all the different relationships that
00:53are set up from the booking table and booking happens to have a relationship
00:56with the adventure table.
00:58So what I'm saying here by checking on the Auto-Enter by Looked-up values, I'm
01:02saying when a new record is created, look up the value, place the value of
01:07price from the related adventure record into this field, so without knowing that
01:13much right now, because you haven't been exposed to the relationship part, so
01:16let's take a look at this, we will back out of those calculations and let's go
01:20into the Trip Detail and so what we are saying is we are booking a trip, so in
01:25this case we have got the Irish Adventure and the current price for the Irish
01:29Adventure is $1,235. So if we go back into the booking detail, let's say when a
01:35record is created, we want the amount billed to be whatever the trip value is.
01:41Now in the relationship section, we are going to talk about different methods
01:44that we can populate this trip id and how we can create the relationships, but
01:48for now, know that if the id and that's the id field here, the Auto-Enter
01:55serial value, the unique primary key value, if we copy that key, and we are
02:00assuming here that there is a relationship between trips and booking, we go
02:04back into booking detail, if I -- on the record what at the moment that the
02:09record is created, and I'm pasting in this value, 1001 which was the Irish
02:14Adventure, but if at the moment that this record is created, the amount billed
02:19will pull in a related value based on whatever trip id is here, we will see
02:23that simulated here by me, now going in actually, I will create a New Record, I
02:28will give it the trip Id and we will talk again about some other methods that
02:33this could be done, rather than pasting this in. But by committing the record
02:37you see that it automatically pulls in $1,235 from the booking detail through a Look up.
02:46And if I say the amount paid here, we know that, that automatically adjusts,
02:51but the idea here is that, upon the creation of a record, based on a
02:54relationship that you have from the table where the record is being created in
02:58one of the many tables it could be related to, it can pull any value in from
03:02any one of those fields and taking a look at that again, if we go back into the
03:09Manage, Database, you just click on this value and you say Starting and it
03:17knows what table you are in.
03:18So starting with booking, let's look at all the different ones I have got,
03:22adventure, customer, trip and so on. I can pull in the value, from the
03:29adventure table because and we will talk about this in the relationship
03:32section, a trip is related to an adventure and then the booking happens on an
03:36actual trip but I can pull in the price from the adventure table anytime I'm
03:42creating a record that's related. So again, we will talk more about this in the
03:46section on relationships. But what this is doing is the auto-entry option is
03:51often referred to as a Look up, is instructing FileMaker to copy the data from
03:56a record in a related table, in this case the related table of adventure. It
04:00will pull that value in or copy that value in from a record in a related table
04:04when a trigger field is modified and that trigger field is the trip Id, as we
04:11see here. If we go into Trip Detail and find let's see -- that's oh, that's
04:18another Irish Adventure, let's say Grizzly Adventure.
04:21Now we go into Booking Detail, we create a New Record and I have got my 1004
04:28value in here. We notice that the value 1481 shows up and that's how much this
04:33cost. So you see it could be helpful once your relationships are set up to have
04:38some fields populated with Looked- up values when they are created.
04:40Now you might ask yourself, why not just have this be a calculation that is,
04:45amount billed is 1481? Well, imagine in this scenario that after you have
04:49booked a bunch of tours at a certain price range, you decide that you are going
04:54to up this to $1,500. Well, you don't want all the past bookings from years
04:59gone by to all update with the new price. It will really kind of mess up your
05:03books. So that's where an Auto-Enter Looked-up value is really helpful, because
05:06not only does it look up that value, but if need be, I can manually override
05:10this unlike in a calculation field, I cannot do that. An invoicing system is
05:15another example too where you typically look up a product price information
05:18from the product table. This allows the invoice to record the price as of the
05:22invoice creation date and if the product's price changes in the future, you
05:26won't want that price value to change in all the invoices, it could be a real
05:29problem. So that concludes all the different options on auto-entry Options when
05:34a record is created or updated, as we saw in some cases.
05:37Now we are going to look at some of the other Field Options, Validation and Storage Options.
Collapse this transcript
5. Validation and Storage Field Options
Field validation and custom messages
00:00Another set of field options are the validation options and what field
00:05validation allows you to do is when you have applied the validation options to
00:08it, test that FileMaker field against some criteria that you would set up and
00:12then warn the user if the field value that they entered doesn't pass muster for
00:16some reason. For example, you probably see this all the time when you go online
00:19and you are filling out certain forms and if you miss a field, it comes back
00:22and says, hey, you have missed the last name field and it does require a value,
00:26so please enter in a value.
00:27That's field Validation and that's a warning showing you, the user that the
00:30data or the data you didn't enter doesn't meet the criteria set up for that
00:34field and that field Validation. Let's look at some specific FileMaker
00:38examples. If we open up the file, in the exercise files, 05_validation and look
00:44at 05_02 Lucky_You_Tours_05_02, we have got a similar example set up, if we
00:52look in the customer. You will see the first name, and again we can double
00:56click on the field or hit Options and it will present our Options dialogs and
01:00we click on the Validation Tab. You see here that we have got two things
01:03checked, we have got -- it requires that the field is not empty and allows user
01:07to override during data entry.
01:09While we are on this dialog, let's also look at some of the other options that
01:12we have got for field Validation. We have got Strict data type, if you check on
01:16this box, you can make sure that any value entered into this field is numeric
01:20or 4-Digit Year Date or a specific time of the day, pretty obvious there. Or a
01:25Member of a value list and we will talk about value list; we have got an entire
01:28chapter set up for value list. But, for example, if you have got a value list
01:32set up inside your database that has two values of Yes/No, then you can check
01:36here and say check to make sure that any value that the user enters in is
01:40either yes or no. If you choose value list and Yes No in that case. We will
01:45revisit this when we talk about value list. What about a range?
01:48Let's say you have got a field that's a price and you are the sales manager and
01:52you want to make sure that the price for let's say a certain product never goes
01:56below a certain value and never goes above a certain value. You can make sure
01:59to enforce that inside your database by applying that business rule here in the
02:03form of a field Validation with the lowest costs going here and the highest
02:07costs going in this field. You can also validate by a calculation, which we
02:11will look at in the next movie. Or you might need to make sure that the maximum
02:14number of characters in this field is X number of characters. This is useful if
02:19you are creating data in FileMaker that's going to be imported into another
02:22database system.
02:23FileMaker has no limitations for a maximum number of characters, as a matter of
02:27fact that they can have about a half of a million in there if need be, but some
02:31other database applications do restrict the total number of characters. But in
02:35this case what we are doing is making sure that the first name field does have
02:38a value or as indicated here, to make sure that the first name field is not
02:42empty and if in fact, it is empty, we have a choice here of either to allow the
02:47user to override during data entry or to not allow.
02:50And what that means is allowing a user to override data entry is really sort of
02:53a soft enforcement; it means you will warn them, but you will still allow them
02:57to violate the validation rule. Take a look at an example of what that will
03:01look like. So let's go in to the Customer Detail and create a New Record and
03:09I'm going to type in just the last name and I'm going to commit and you see
03:14here, a message pops up from FileMaker that says First, which is the first name
03:18field is defined to require a value. Do you want to allow this field to remain
03:22empty? And since this is a sort of a soft or I'm allowing the user to override
03:27it, I can just say Yes. Now my enforcement has just simply become a suggestion,
03:31rather than a warning or an enforcement of the validation. But if I want to be,
03:35have it be a little more strict, what I will do is go into File, Manage,
03:40Database, go into First name again and at this time, I'm going to say Not empty
03:45but I'm going to un-check the Allow user to override data entry and let's see
03:49what happens there.
03:50Let's delete this record first, and we are going to create a New Record and I
03:56will type in last name and commit. And now it says, first is defined to require
04:02a value and you must enter a value. Regardless of whether I want to revert or
04:06go back, I simply cannot create this record unless I enter in the value for
04:14first name and then commit and you see now that I get no user entry error. So
04:22that is managed whether or not you are doing a suggestion or whether or not you
04:26are doing any hard enforcement is managed through allow user to override during
04:32data entry. So it depends how you want to, if this is just a suggestion or if
04:36you want to be a little bit more strict with that enforcement.
04:39Let's look at another example, if we go into the adventure table and we look at
04:45the field called days. We will say Strict data type, Numeric Only. And if we
04:52look at the Adventure Detail, here is an example of the days, let me say A16
05:01and now I hit Commit. And it says this field is defined to contain numeric
05:04values only. Allow this non-numeric value? Well, you see here I can revert the
05:08field back to the original or I can say Yes and that's because, if you remember
05:14from our last exercise, that we are allowing the user to override the data
05:19entry. So in this case it's just a suggestion for a strict enforcement in
05:24numeric type.
05:25Let's look at however at enforcing by a calculation. Let's go down to the
05:30night's field. And you will see here that we are allowing user to override
05:34during data entry, but we are validating by a calculation. Now we will get into
05:39the calculation descriptions and there is a whole chapter on calculations. But
05:44really what we are trying to say here is we are using the calculation dialog to
05:47determine whether or not this is met and the result must be a Boolean, which
05:52means that it's either true or false. So what this means here is that if days
05:57are greater than nights, then it's true. Otherwise it would be false and then
06:02therefore fail. So let's take a look at how that works. So right now, nights
06:07are less than days so it's not failing. But if I go in here and I say 17, it
06:13says nights are defined to contain only specific values. Allow this value?
06:16Well, we can revert back to their previous value, but notice one thing, this
06:25message that we get, nights is defined to contain only specific values. A lot
06:28of users aren't going to know, what that means.
06:31So what a good idea to do here would be, we have done a demonstration here of
06:36the calculation for nights, but first we will say, don't allow override or
06:43allow override. We know that we have that option and then we can pick what we
06:46are actually requiring, or what our validation rule is going to be. But the
06:49other thing I want to introduce to you is down here in the bottom is we can
06:52make something a little but more plain English. For example, we could say,
06:57Sorry! Nights must be less than days. Please enter again. So now what happens
07:08when we do that and since we are saying please enter again, we will turn off
07:13the override. So now let's say that we go in and we say 17, and it says, Sorry!
07:21Nights must be less than days. Please enter again. So I will go in and I will
07:24say 15 was our original value. So now you see we don't have any enforcement. So
07:29this message might be more informative to users. You get the ability and it
07:33allows you to revert back because what its dong here is it identified that the
07:37original record before I changed it, actually did meet the criteria.
07:41So it will allow me to revert, so do I want to revert all the changes to this
07:44records since it was least entered? Absolutely, it brings me back to where I
07:47started. So a couple of different options on field Validation, very helpful in
07:51enforcing data entry and these validation checks by the way are not mutually
07:56exclusive except for a few obvious cases, if you look, for example, in -
08:05obviously, we can have multiple values in here, or multiple options here and we
08:09can display custom values, but Not empty and Unique can be at the same time.
08:14But Unique and Existing are obviously one of the options there that are
08:18mutually exclusive. But you can experiment with a lot of these things and come
08:23up with really the right rule enforcement on data entry.
08:27Now in the next section we are going to look at what this means. Validate data
08:31in this field either Always or Only during data entry. So let's take a look at that.
Collapse this transcript
Always vs. data entry validation options
00:00In the previous example you may have noticed that there is a setting called
00:03Always versus data entry on the validation. If you open up a file on the
00:0705_validation folder called Lucky_You_ Tours_05_02, Manage, Database and we go
00:16back into nights. Remember that we had set up the ability to show this message
00:24when a user has violated what we set up here to be a relationship between the
00:29days and nights and if this calculation results in a Boolean false, we are
00:33going to show user an error message. And we were allowing them to override,
00:38during data entry.
00:39Let's focus a little bit here on the top of the screen here, where we usually,
00:42in the previous examples, we have usually been selecting Allow user to override
00:45during data entry or not, but up here it says Validate data in this field
00:50either Always or Only during data entry. Not that might seem a bit cryptic at
00:54first, but what it's talking about here is granted you might warn a user and
00:59give a user an opportunity to change values, but it's not always a user who is
01:02entering data during data entry. There are other ways that data can be entered
01:06into the system.
01:07So, for example, if you enable Always like we have got here, then FileMaker Pro
01:11is going to perform this Validation test anytime a field's value is changing.
01:15Now what you should know is that this includes all the different times that a
01:19value can change. Not just when a user is doing it during data modification,
01:23but also data can be changed when you are importing records into a file. If you
01:26have got a script that goes and changes data through a loop or something like
01:29that or through such actions as like an import or replacing records or re-Look
01:34up. All these different things can change the value of a field.
01:36So if I say only during data entry, that means that only when a user is
01:39actually modifying the field, will that show a warning or enforce the
01:43validation. And if the user violates, that will show a warning. But if I say
01:46Always, in the case of for example an import which I will show you in just a
01:51moment, any records that violate the validation rule that's set up in the case
01:57of an import will be skipped or in the case of a looping script will be skipped
02:02as well. So let's take a look at the example of importing. So if I import in,
02:07if we go under File, Import, and in the 05_validation choose Adventures.txt,
02:14and we map up all our fields, from the text file, and hit import, see something
02:21interesting in the Import Summary, it says Total records added/updated were 18,
02:26but the records skipped due to error were 5.
02:28So we see here that only 13 records were added and there were obviously 18
02:32inside of our import source, and the reason that those other 5 were completely
02:36skipped is because it didn't meet the criteria where the nights had to be less
02:41than day. So clearly in those records, we completely skipped them in those
02:44cases. Now this isn't a bad thing to have because there might be some
02:48validation that you absolutely just do not want to be added inside your
02:52database, so that's where the Always would come into play.
02:56Now if we delete these records that we just imported and try this Import again,
03:00but only after we have modified this to say, Only during a data entry, so that
03:06means it scripts and imports and all the other things that could affect the
03:10change in this data, the validation only applies when a user is importing this
03:14data. So if we look and we see, we do Import Records from File, we again choose
03:23the Adventures.txt, do Import and now you see Total records added 18, so we
03:32have got 18 records in here, but some of the values are just weird values in
03:36here, and therefore violate, we have got 19 > 12 so if we were doing a hard
03:42enforcement or an always enforcement, we would have omitted that from our
03:45Import, and again, remember that's true for looping scripts or also -- there
03:51are two different ways that you can update the value in a field without
03:54actually having the user do that. So depending on the type of validation
03:57records that fail validation will either be omitted from the import which we
04:01just saw here or the record will be imported, but the invalid data will not be
04:04entered into the field and this is not the case however if the Always
04:09validation is turned off. Which we saw, in that case, FileMaker will import the
04:12records, even if they contain data with validation errors.
04:15So really, your call on how hard do you want to enforce that. It's all about
04:19what the business rules are for your particular application and what level of
04:22enforcement you want to apply on those. So in addition to validation options,
04:26we have also got storage options, so in the next movie we are going to take a
04:29look at some of the storage options that are available when defining a field in FileMaker.
Collapse this transcript
Storage options for global fields
00:00The third series of field options are the Storage options and those can be
00:05accessed, if you go into any field and double click on the field or select the
00:13Options button. You will see that it's Auto-Enter, Validation, which we both
00:18covered and now Storage. Storage really involves either whether it's globally
00:24stored or whether it's not globally stored.
00:27Now by default, a field is not globally stored and what that actually means is
00:31that the field value is specific to the record. So if we look at, for example,
00:38the Title field, each one of the titles can be different and independent of
00:44each other.
00:45Now that's because that is not a globally stored field, but if I were to create
00:52a global field-- now, if you have worked with FileMaker before FileMaker 7, you
00:57will remember that one of the field types was a global field. The idea there
01:01was that you would say I'm defining a field and whatever value I put in this
01:04field in one record is going to be the same value in all the records in the database.
01:08This is kind of a tricky concept, because you think why would I need that?
01:11Well, certainly not for storing information, because there is only one value in
01:14there. But it's really used for a couple of different things and I will show
01:16you a couple of examples here.
01:18It's no longer a field type, but instead what you do is you create a field. We
01:23will create a global field and hit Options and go into Storage and we will say,
01:29well, first let's look at what would happen if we put global field on this
01:33layout and I put a value into it. I have got value 4 there, value 5 and value
01:396. So we see that all these values are independent from each other.
01:43Now if I go in and change global, double click on it and get to Storage and I
01:52change it to global storage. It says, " Turning global storage on or off will
01:55cause existing data in this field to be lost." So the 4, 5 and 6 that I entered
01:58are going to be removed. 4 was specific to one record, 5 was specific to
02:04another record and 6 was specific to yet another. So now when I hit OK, see all
02:11those values disappeared, but watch when I put 4 into the global, every record
02:16in the database has that value. So you might think, "Oh! What's the sense of that"?
02:19Well, the best way to think of this is that a field with Global Storage is
02:24going to be a field that's on the table level; whereas, all the other fields
02:29where you are entering data that are independent from all the other records,
02:32those are record level fields. That's really most likely what you're going to
02:36be working with when you're creating a database and managing data. But the
02:39global fields, what kind of uses could we have or something that's at the table level?
02:43Well, certainly we can store preferences, like we want to set into a global
02:47field via script, the name of the last user who access this record, we
02:52certainly can't go and populate every single record in there, but we can
02:55populate the table one time only. Another really common way to do this is,
03:02let's say, we will change this and we have got a container with Global Storage.
03:07This is actually pretty popular technique but let's place that field. First I
03:13selected and then copied our logo, just for the sake of this example, and I'm
03:17going to place our global field on this layout and I'm going into Browse mode.
03:26First I will save that change. We see that it has got numbers in there, but
03:31instead what I'm going to do, I'm going to right click in there or Ctrl-click
03:35in and I'm going to paste that logo.
03:37Now the reason that I'm doing that is just to demonstrate and actually let's go
03:40into Booking Detail, let's say, and I will go into Layout mode. View > Layout
03:47mode, and I will drop another one of those global fields on here. What I'm
03:53trying to demonstrate here is that wherever I put this global field that's
03:56going to contain that same value and in the case of an icon or an image, this
04:01can actually be useful.
04:02Because if you develop detailed applications that involves several different
04:07layouts, like sometimes hundreds of different layouts, and on every layout you
04:10have to go in and paste one of these logos. Well, what if God forbid the client
04:15or your boss comes to you and says, I'm going to -- and actually let's use an
04:20image that we have if we go into fields okay, 03_fields, click on logo, hit
04:29Open, and we will pull in the Lynda.com logo.
04:33Now instead of having to go to every single one, let's say there are a hundred
04:36different layouts that had the old logo on there. If I had used the Container
04:39field in the first place, you will see every layout that had the logo on it,
04:44now reflects the logo that was entered into the Global field.
04:47So that's one of the uses that's actually quite popular. The other one which is
04:51actually made a bit less popular with the advent of variables and script
04:56variables is that in scripts if you wanted to take a piece of data or piece of
05:00information you could set it into a global field and then go do something else
05:04with the script and then come back and pull that value out.
05:07So it's like sort of a temporary holding spot where you could store it or stash
05:10it in the table somewhere, without having to affect all the different records
05:13that you are working with. Well, really the preferred method would be to work
05:16with script variables, which we won't be discussing in this title, but
05:19certainly within the FileMaker Help documentation you could find out more
05:22information about it, or in the Be on the Basics title for FileMaker 9.
05:26Actually, another example that's quite useful is in Mark in Records.
05:29So if we went back into this Trip list and let's say we wanted a user to be
05:34able to go in and look through all the different trips and check a little X
05:38next to each one, we could create a global field. When we put this file up on
05:42server, one of the inserting characteristics of a global field on server is, if
05:46I put a global field on this layout and I put the number 4 in every record and
05:51I put it up on server, each time that a user logs in, a session is created
05:55between the FileMaker Pro application and the FileMaker Server application.
06:00A unique session is created for that user and within that session they can
06:04change that value from 4 to let's say 9 or from no value to X, if they want to
06:09mark a bunch of records. Meanwhile, another user could be logging into that
06:13very same file and their session would have been created through their version
06:16of FileMaker and their version of FileMaker Server.
06:19Neither of those values would conflict with each other, but the second that
06:22they close out the global values is going to revert back to the value that it
06:27had when it was originally uploaded to server. So granted script variables can
06:31be used for storing temporary values inside scripts or passing our values from
06:35one script to another.
06:36But if you want to use the technique of storing your logos and multiple areas
06:41and allowing one area to update them or if you want to be able to add a field
06:45to records to mark records and something that's going to be completely
06:48session-independent when it's up on a network in FileMaker Server, you will
06:52definitely want to take a look at creating a field for Global Storage.
06:55So keep in mind that the important behavior of globally stored fields to set in
06:58that multi-user environment I described with that file is being hosted on
07:02server. The global values are going to be specific to each user session and
07:05also when a FileMaker Pro or even an instant web publishing client connects to
07:09the hosted database. They'll inherit those values that were in use when the
07:12file was last physically opened on a local computer, not open on server but on
07:16a local computer. Then, of course, any modifications, initial value made by the
07:20client, the client being FileMaker Pro, FileMaker Pro Advanced or Instant Web
07:24Publishing, will remain in there as long as the session happens and then it
07:28reverts the second that that is closed.
07:30So it could be ideal for a temporary storage location for information that's
07:34unique to each user session, such as, the last record or the last layout
07:39visited or when we look at portals you will see that we are going to use
07:42globals for some portal filtering.
07:44The next thing that we are going to look at is also found in the Storage tab
07:47and it's setting the Indexing options for a field.
Collapse this transcript
Indexing options for fields
00:00The final field option that we are going to take a look at is something that's
00:02also found in the field option's Storage tab. This is the concept of indexing
00:08fields. It's kind of an important concept and has some new precautions in other areas.
00:12So I will show you about how to control the indexing but also talk a little bit
00:15more about the implications of an indexed field versus an unindexed field.
00:21First let's open up in the 05_validation, let's open Lucky_You_Tours_05_03, and
00:29we will open the File, Manage, Database and we will go into the customer detail
00:36tab. Now, before we get started on this, the word Index, and the index of a
00:41book it goes in and lists every single topic in where you can find that topic
00:45on what page. Well, in that same way a field's value index is an ordered list
00:50of unique entries in the field and then the pointers to the records where those
00:54entries can be found.
00:55So if you look here inside any one of these fields really, so if we say Region
01:03-- there is one way you can check a field's index, you can click inside the
01:06field and if you are on Apple, you do Apple+I and if you are on Windows, you
01:10can do Ctrl+I.
01:12But up will pop the index of the values inside this field. So what this is
01:17telling me is that in all the 44 records, it's not every value in every 44
01:21records, because Africa could be in here five times, but it's an index list or
01:26unique list of values. So we say Africa is in here at least once, Arctic is in
01:30here at least once, so on and so on and we have got Washington.
01:33Well, this is the list of values, but in addition, FileMaker stores inside the
01:38cache of the application. Not only Africa but which records identified by the
01:43record number or their record ID, it will say that Record number 1, Record
01:47number 4 and Record number 3, all have Africa as their value and the same for
01:51all these others. So you can imagine there is a lot of data that's being stored
01:54there and it takes a little while to actually crunch through all that.
01:57So the first time that you index a field, you will see some of these are
02:02indexed and some of them aren't. If we go into customer again, we will see that
02:07email is indexed. If I double clicked on that, that pop me into the Options and
02:12in here we have got Storage options and you see here, and I'll discuss None,
02:16Minimal and All in a second, but anything other than None means that the field
02:19is indexed. That will improve as you see here on screen the performance of
02:23things like finds and will allow things to be part of a relationship and will
02:28also increase the performance on sorting.
02:30You might have seen the effects of an unindexed field before if you have
02:34searched on a database that, let's say, has 20,000 records in it and you search
02:38into a field that up pops weird message that says, summarizing field values or
02:42indexing field values, and you think to yourself, "What's going on there? Why
02:45am I waiting for this thing to go through"?
02:47Well, what's happening there is in order for it to complete your Find request
02:50to your searching of that field data. It has to literally go and check every
02:54single record to see if those records match the criteria that you entered. But
02:57if a field is indexed or has been previously indexed, all its doing is checking
03:01index and it says, oh, well, you entered in the value of Washington, and we
03:05happened to already have in the cache of the application that record number 6,
03:087, 15 and 21 have that value. So it instantly comes back with your values.
03:13So like the book index, if you looked in the back of a book and said, "Where
03:16can I see all the references to FileMaker fields inside your Manual"? It says,
03:20"Page 17, 19 and 21". That's a lot more efficient going to just the index and
03:25then those three pages than it would be to go through every one of the pages in
03:27a 300-page book looking for any references that match the one that you are
03:31looking for, right, same thing here. That's the logic but it's important
03:35because it creates a value index and it says, "What are all the different
03:38values that are inside this field," and that Value Index is used for creating
03:42relationships.
03:42So when we talk about relationship in the relationship chapter, you are going
03:45to see that what it's doing is checking to see, does the value in this record
03:49in this one table match values in this record in the other table. And if so,
03:53that means that those records are related. In order to be able to do that
03:56efficiently and quickly, an index needs to be built in those fields.
04:00So it can use the index in the relationship rather than having to go and check
04:04every single record. You can imagine how long it would take if you have a
04:07portal and it would have to redraw the portal by going and looking at every
04:11single record in your related file first.
04:13So in addition to this value index that I'm talking about, it also has a second
04:17index option that's called the Word Index. Unlike the value index, which only
04:22includes the first hundred characters of the field, the word index actually
04:25contains entries for every single word in the field. So regardless of how much
04:29text is entered, anytime it sees a break or a space it determines that that's a
04:33new word. This index is used when you are performing searches on text fields in particular.
04:38So I could look for first name and last name and it's going to look for those
04:41independent words rather than all of that up to 100 characters in there as
04:45well. So these are two different ways that FileMaker handles indexing but one
04:48of the things that you noticed, let's go into an unindexed field. If we going
04:52into the first name field, you see this option here, we have got no indexes
04:56created and we see the option for automatically create indexes as needed.
04:59Well, if I turn that off and go into my Customer Detail, we have got 1522
05:06records in here. I'm going to into View, Find mode and I'm going to enter in
05:12boo and hit find. We find that it has one record and if we go back into
05:19Customer and first name you see that it's still unindexed.
05:22Well, 1522 records isn't too bad but if we have a lot of records in here, that
05:27Find that we just performed could have taken a long time, especially if we are
05:30doing it over a WAN connection or something like that. Why not just index every
05:34single field in the database?
05:35Well, the reason is because you can imagine that, that extra information makes
05:39your file sizes that much larger. So if you index, if you have 1500 fields in
05:43your database and you index every single one of them, you are going to see a
05:46significant increase in the file size and that could affect performance as well.
05:49So you want to really manage these and index as needed and you will see how
05:54that works. If I go in here and now I do the search and hit find, you will see
06:02that it returns back instantly, really not much of a performance difference
06:05change. But now you see that it's indexed and it's switched to all. So it made
06:09the determination on which one of these two switched to.
06:12So we know that None means that it's never indexed, and it's not indexed
06:16at all. We see that All indicates that everything is indexed. But what's
06:21Minimal, how does that factor in? Well, these radio buttons that you see here,
06:25where we have got None, Minimal and All, refer to how many of the field's
06:29indexes have been created.
06:31So All means that all possible indexes have been created for the field; Minimal
06:35means that either the value index or the word index have been created, so
06:40really only whichever one was necessary. None is no indexes, Minimal is
06:46whichever the value or word index and All means both the value and the word index.
06:51So since its different data that's been stored depending on the type of index,
06:55there is a lot much more data that's been stored. You don't always want to jump
06:58into All if you don't need a value or a word index; you just need whichever one
07:02is the opposite.
07:03So most often it's best to just simply leave the Automatically create indexes
07:07as needed option checked here. That means that FileMaker would create the
07:11indexes as you need them. After just some normal usage of your file, you are
07:15going to see that all your indexing will basically take care of itself.
07:19One of the other things too to take look at here, you will notice when we
07:22create calculations, and we will get into that in the Calculation chapter, but
07:25when you are creating calculations you see that you have got storage options as
07:28well. Same thing here, it could be a global, which means whatever you are
07:32resolving, we talked about that in the previous movie we call the Storage, but
07:35whatever your calculation results to every single record in the databases can
07:39have the same value.
07:40Or you can say, do not store the calculation results -- recalculate when
07:44needed, which means that for every record, it's going to have to go and look at
07:49the value in the record. Actually if we go back here, you will see here in this
07:54example we have got first name and last name.
07:57So in the Storage option, if we say, do not store, it's going to have to
08:01recalculate that every time that we go to this record. So it could add a little
08:05bit to the performance and a little bit of an impact there, where we can set
08:08the calculation results to None and Automatically create indexes as needed, or
08:14All. You see in that case of a calculation we need to have both indexes
08:17created. So that's why we don't have the Minimal option in this case.
08:21You want to use this option actually when you want a field to update every time
08:24it's viewed or referenced in some special circumstances, such as, a reference
08:28to data from a related table or globally stored data. This will force the field
08:32to be unstored.
08:33So sometimes you might get a little frustrated because you might come here and
08:36you say, "I want to store this because I'm going to be searching on the results
08:38of this calculation". But you are going to notice that these will all be grayed
08:41out and that's because you have got a global value in here or you have got a
08:46related field inside your calculation.
08:48So you've got to keep in mind when you are specking out your files or your
08:51solution in that, you cannot store that information and therefore you cannot
08:55create indexes, and therefore efficiently sort and efficiently search on
08:59certain field values.
09:00Also, because relationships are based on the index inside of a field, then you
09:06also cannot use some of those fields depending on whether or not you are able
09:09to store them; you can't use those as one of the key fields in a relationship.
09:14So that's something to keep in mind.
09:15So in order to keep things like searching and sorting working correctly, you
09:19also going to have to do one other thing here too. You'll notice inside, if we
09:25say here, notice the Default language for indexing and sorting text. Your
09:30default is going to be set to English if that's what you set up when you
09:33install the application.
09:35But there is another thing to consider if you are using foreign languages or if
09:39you have punctuation that you want to take into consideration into your sort
09:42and to these values, and you want to distinguish those, you should choose
09:45what's called Unicode. You see that all the way down here in the bottom. This
09:49is new just a couple of versions ago. If you want to index foreign language,
09:52punctuation or special characters, always choose Unicode; otherwise you are
09:56going to be okay with English. So this is a little note there as well.
09:59By the way, uppercase and lowercase characters will be treated as different
10:02characters and punctuation will then be taken into consideration as well. So if
10:06you want to differentiate between finding a uppercase spelling of a word versus
10:10the lowercase, that's where storing things as Unicode is going to come in very
10:15handy for you.
10:16So a lot of ramifications here when it comes to indexing in your field, those
10:21will come up again as we work with calculations and relationships and value
10:24list and sorting. You will see those things pop up again real soon.
10:27Now that we have defined fields it's time to move onto working with the records.
Collapse this transcript
6. Working with Records
Creating and duplicating records
00:00So far in this title we've worked with setting up a new FileMaker database,
00:03creating some tables and some fields so that you can actually start adding
00:07records to your database. In this chapter we are going to discuss working with
00:11records, just covering some of the real basic aspects of adding records to a
00:14FileMaker database, editing them and deleting them. First we are going to start
00:18off with showing you the different ways you can create records in a couple of
00:20quick notes about creating records in a FileMaker database.
00:23So if you would like to go to your exercise files folder and open up
00:26Lucky_You_Tours_06_01, you will see that we have got a FileMaker database with
00:31one record in it. I would like to talk to you about how you add records to a
00:34FileMaker database. There are a couple ways that you can add records and they
00:38are the options in the File menus and you see here that there is a File menu in
00:42FileMaker that's dedicated to just working with records.
00:45You see here that we have got New Record, Duplicate Record and Delete Record is
00:48our first options. I'm using a Mac so the quick key here is Apple+N as in new
00:53record, but also if you are on a Windows machine you can do Ctrl+N.
00:57So either by selecting the File menu or using the quick keys, also, you will
01:04see here if you roll over these toolbar icons here, you have got New Record,
01:09Duplicate Record and Delete Record that are built into your toolbar already.
01:12So using anyone of these three ways, you will see that a new record is created
01:17within your database. The first thing that you will notice is that the number
01:20of records in the database is just incremented by one. So we had one record in
01:24the database and now we have got two.
01:26The second thing you will notice is that everything on screen or all the data
01:29that was populated in the previous record or the record that we are looking at,
01:32at that time, appears to be disappeared, but really what's happened is you have
01:36just been given a new record to fill in brand new data.
01:38If you are an end user with FileMaker this can be alarming, maybe the first
01:42time around, and if you are developing in FileMaker you might want to just make
01:45your end users aware that this is what is going to happen because it doesn't
01:48take you to a whole different screen, in this case, for adding a record. People
01:52might get a little bit alarmed.
01:53The next thing to take a look at here is you will see from-- in our discussion
01:57in the chapters on auto entry, you will see that most of the records here have
02:03no data in them. You see that the Country field and the ID field both have data
02:07already populated. That's because they have been set up to auto enter values on
02:12the creation of record, and that's what we have just done is created a record.
02:15Next, you will see that there are these lines around all of the fields. This
02:20indicates that you are either adding or editing records and this is the mode
02:23that you are in. You will notice that when you click into one of the fields or
02:26tab into one of the fields, that not only is the cursor blinking in that field,
02:29but also the lines around the field are a solid bold, which indicates that you
02:35are adding record to that particular field.
02:37So it gives you a little bit of visual feedback on which field you are in and
02:40when you can start adding data. Now by the way, if you don't want to have the
02:44fields outlined, you can go into Layout mode and Layout Setup and you will see
02:52this area here Show field frames when record is active, that's what we are
02:57looking at. We're looking at field frames and this is the active record and we
03:00happen to be doing some editing here.
03:02So the other thing that you can do is, in addition to creating-- and then this
03:06is where you would just add some data. Now one thing to keep in mind here is
03:12that right now this record isn't technically saved in the database. It hasn't
03:16actually been committed and that's what the term is. We will talk about that a
03:20little bit later on in this chapter, but once I click outside it actually has.
03:23So that's how you see things like this up here which is a field, a calculated
03:28field that's pointing a value from what I have typed into this field here.
03:32So in addition to the new records and using the quick keys and even the toolbar
03:39to create records, the other way that you can create records is through a
03:41script. We will talk more about this in the scripting section. But just a quick
03:45overview, what I have here is just a graphical icon that I have created and
03:49placed on this layout and I'm right clicking on this icon right now.
03:53You will see that there is something called Button Setup, and again, we will
03:56cover this in pretty good detail in the chapter on scripting. But just so you
04:00can see that, in addition to all the other actions that you can perform with
04:03your keyboard or through the menus that are supported inside of the ScriptMaker
04:07engine, one of them is the New Record Request.
04:10So if we go back into Browse mode, you will notice that clicking on this button
04:16also allows me to create a record in this database. The other way that you can
04:20create records is, for example, if I happen to have this record here and I want
04:25to create a new record that is the Kilimanjaro trip or adventure but not for
04:31spring but for summer, then I don't really want to create a new record and type
04:36all this information in again when it's relatively the same.
04:39So what I can do, also found under the Records menu and with the corresponding
04:44quick key, or in the toolbar under Duplicate Record. I'm going to duplicate the
04:49record and now I have two records with the same information, but you will
04:53notice we've got A0256 and 1102 are distinctly different Ids. But in this case
05:01I can go in and say, Summer, change the amount of days and you will notice that
05:09saved me a whole lot of typing; so a couple of different ways you can add
05:13records to a database.
05:14Now let's take a look at once you have got records in your database, how you
05:17can edit some of the values and some of the issues related to editing records
05:21in the database.
Collapse this transcript
Editing and locking records
00:00Once you have records in a FileMaker database then you will be able to edit
00:03those. Now the caveat here is, if you have Access Privileges set up, that allow
00:08users or if you are the user and you are logged in using an account that has
00:12privileges to allow editing of a record, then you can edit any record data
00:16that's currently inside the field.
00:18There are a couple of ways to prevent that from happening and if we go into
00:23Layout mode you will see that a developer, or if you are the developer, you
00:28could go in and change allow field to be entered in either Browse mode or Find
00:33mode. We will cover this a little bit more in the Layout section.
00:36But as long as you have access in Browse mode-- we will go back in Browse mode.
00:40As long as you have access to the field in Browse mode and they have access
00:45rights to the record into editing records, which is all default by the way,
00:50they can go into the field and they can click on certain values and they can change those.
00:55You will see it behaves in the same way as when you're originally entering the
00:58records and not only that but it's in the same mode. You will notice that we
01:01are in Browse mode. So Browse mode is not only for viewing records and adding
01:05records, it's also for editing the values inside the records as well.
01:09So you see I can just click in here with my cursor, type in to make a change
01:14and you will notice that the active field and the record that I'm working with,
01:19of course, has the bold line around it and the rest in the record have the
01:22dotted line and that can be toggled on or off by the developer. Once I click
01:26outside the field, do you see that those lines disappear? And that's called
01:29committing the record, which I will cover in the following chapter.
01:32Now, one important note about editing the records when you are actively editing
01:36a record, so for example, when I click into a field, I'm not editing the
01:40record. But when I start typing, for example, now I have made a couple of
01:44keyboard strokes and I have changed the value inside the field. That's called
01:48the actively editing the record.
01:50When you're doing that in FileMaker you are going to see the dotted lines
01:52appear around the editable fields, in the given layout and the strong bold
01:56outline onto the field that we are currently entering data. But while I'm
02:00entering this information, I'm editing their single record.
02:02So other users cannot access this record, if I'm sharing the file on a network
02:07or via TCP connection. So that means if I'm just the only user of this
02:11database, and I don't have to worry about any sharing issues, but if I'm
02:14accessing this database on the server or if someone has connected to my copy of
02:19FileMaker and we are sharing it using the built-in sharing functionality inside
02:23the FileMaker Pro Client.
02:25I'm locking out. This concept that I'm talking about is referred to as record
02:29locking. That means that's a period of time when one record is locked from
02:33allowing access by other users. This is actually a good thing. Because what you
02:37don't want to have happen is having two users in this very same record.
02:40Let's say, myself and another user in the Kilimanjaro record, and we are both
02:44changing the Season. I'm changing it to Fall, someone else is changing it to
02:48Spring, and we commit the record and neither of us knows which one of us
02:52actually will have our changes reflected.
02:54It's okay for making the same changes, but to prevent any confusion and to
02:57allow only one person to modify the values and then save those values in our
03:01record, FileMaker has built in this thing called Record Locking. This need to
03:05be taken into consideration when you are training your users and setting
03:08expectations with them, and also to alert them if they see any message that
03:13will pop up on screen.
03:14So if I happened to be clicking into this record, and let's say I'm another
03:18user on that very same record, and I try to click into a record, you will
03:22notice that this message comes up that's called, "This record cannot be
03:25modified in this window because it is already being modified in a different window."
03:29This is because I have opened up multiple windows, which again is later on in
03:32this title, but I have the same session and what it's telling me is, even
03:36though I have got another up in I still have to wait until the editing is done
03:41in the first window.
03:42So let's go in here and I will commit that record and I will change to the new
03:46one. Now you see it will allow me to make my change. That same behavior happens
03:52when it's on the network except instead of saying, you cannot modify this
03:56record, it says that another user is modifying the record and I have to wait
03:59for them to commit.
04:00So these are the things that are taken to account when you are doing things
04:03like scripting, the editing of a value inside of a field, because if it's
04:06locked out it's not available to a script either. Also just as far as user
04:10training is concerned and setting expectations for your users, but keep in
04:14mind, in the end, this is a very good thing. It helps eliminate any confusion
04:17on editing and when certain edits are committed to the database.
04:21Let's take a look at deleting records from your FileMaker database.
Collapse this transcript
Deleting records and backing up files
00:00Deleting records inside of a FileMaker database is very simple. As a matter of
00:04fact it might be a little bit too simple and I will demonstrate why. Well, you
00:07can see here that we've got four records in our database and I've got these two
00:12records here in the middle that are blank and I would like to remove them from my database.
00:16Well much in the same way as you can create and duplicate a record, you will
00:20also note that there is a Delete Record option under the Records menu heading
00:24with a corresponding quick key. There is also a Delete Record button in the
00:28toolbar and just like we've have been able to script before, you can script and
00:32add a script step to button, the ability to delete a record.
00:36So once you delete the record it's gone forever; it actually cannot be
00:40restored. So that's important for you to know that, that information cannot be
00:45reclaimed once the file is deleted. So this is a really good time to talk about
00:50backing up your files.
00:51Since any user as long as they have privileges, and keep in mind that you can
00:55go into FileMaker security settings under Accounts & Privileges and set up
00:59privilege sets and accounts that prohibit certain users or all users from
01:04deleting any records in the database. You can even prohibit them from editing
01:07and really doing anything; you have complete control over that.
01:10With that said if you do allow users to delete records, keep in mind that when
01:13a record is deleted it's gone forever. Not only can you delete one record,
01:17but-- and I'm going into Find mode, which we will discuss a little bit further
01:21in an upcoming chapter.
01:23But what I've done is I've located the two blank records and not only can I
01:28delete one record at a time, but what can be just as useful as it is dangerous
01:33is just below the Delete Record command, is the Delete Found Records. You will
01:37notice that when I select this, luckily FileMaker will pop up a message that
01:41says, are you sure you want to delete a record or if you've selected Delete All
01:44records it says, permanently delete ALL; and then whatever the quantity is of
01:48records that you're deleting, and the default button is Cancel.
01:51So that gives your users an opportunity to back out of this if necessary. But
01:55now that I've deleted their record, you will see that I've only two records
01:59left in my database and I cannot reclaim the data in those other two.
02:02So, it's always good to back up your files. You should always, always, always
02:06back up your files. You can back them up on your local machine by just doing
02:10Save a Copy As, and you've got the ability to save a copy of a current file,
02:14compacted file or a file shell without any records, or if you are on a server
02:19you can set up-- there is a plethora of different backup schemes involved in there.
02:23FileMaker server allows you to script to the backing up of your data directory
02:27that contains all your databases so you can do that at the server level also.
02:30But whatever you do, if you are just developing, you don't want to be caught
02:34with lost data.
02:35Certainly, you want to come up with some kind of strategy to back up your
02:37files, whether it's got a little bit of data or just all of your programming
02:40into a file, make sure you back those up. This is unfortunately a lesson that's
02:44frequently learned the hard way by a lot of users.
Collapse this transcript
Committing and restoring data
00:00I would like to take an opportunity here to talk to you about the concept of
00:04committing a record. I have used that term a couple of times, especially when
00:07we were talking about the Auto-Enter options. But the idea of committing a
00:11record, first of all, you should you know that unlike other applications, where
00:15you would go in, when you are working with a document like, let's say, Word or
00:18something like that. When you've made some changes to the document, you would
00:21go under File and do save; you don't have to that inside FileMaker.
00:25FileMaker is a database. So when you create a record in a database it's in the
00:29database. When you delete a record from the database it's gone. There is no
00:32saving the application or saving the file itself in order to make those changes
00:36take. The concept of having a change take in FileMaker is called committing and
00:41that happens when you commit a record.
00:43Now, committing is actually quite useful and if you go back and review the
00:47Auto-Entry section you can see that almost every one of the Auto-Entry triggers
00:51are all based on either records being created or records being committed.
00:54So, it's very useful and this is something that if you haven't work with
00:57FileMaker and while you probably haven't heard of this concept of committing,
01:00but in the current versions you do have to commit. It comes along with a lot of
01:04really cool functionality that we didn't have before in this application.
01:07So there are couple of things that you should know are when committing actually
01:10happens. When I'm making this change in the record, technically it has not been
01:14saved to the database until I commit and there is a couple of ways that I can
01:19commit a record, the first of which is to click outside the area and you see
01:23that FileMaker responds by removing the editing lines outside of the fields.
01:28The other way to commit a record or commit changes, if I make these changes
01:31here is to press the Enter key. Unless, of course, you've changed the role or
01:37behavior of the Enter key and we will look at how you can do that or how you
01:40can affect that when we get to the Layout chapter.
01:43The other way that you can commit a change if your cursor is inside the field
01:47on this record, and I've made that change; it's not yet committed, but if I
01:50change from Browse mode to any one of the other modes and back to Browse mode,
01:55the change is now committed to the database.
01:57Also, if I'm making a change and I go now to a different layout and I come
02:04back, it's now committed the change to the database. Also, if I create a new
02:10record or if I navigate to another record the change that I made will be
02:15committed to the database; just a couple of things to keep in mind there.
02:18Now, you can add an extra layer of protection. So, if committing the records or
02:22the delay in committing a record isn't enough, and what you would like to do is
02:25have the user make sure that the changes they've made are reviewed before they
02:28do a commit. You can turn a feature on and we can access this feature that I'm
02:33going to show by going into Layout mode. Going under the Layout menu to Layout
02:37Setup and you see, by default, this Save record changes automatically is checked.
02:42Now, that means after the commit of a record, this record change is going to be
02:46saved. Now, if I turn that off and I hit OK, go back into Browse mode, you will
02:56notice that as I try to commit the record I get a message that says, Save
03:01changes to this record? And if I say, Don't Save it doesn't commit the change.
03:06Then here I will hit Enter, in this case. I do hit Save then it proceeds on to the commit.
03:11So again, you can manage that, depending on what your users are used to or how
03:15much control or warning you want to give people when it comes to changes being
03:19committed. So, in review this will affect whether or not the change is
03:23committed automatically or whether or not the user is prompted to make sure
03:27they want to make that change.
03:28So, if you have users that aren't really familiar with working with databases,
03:32it might be a good idea to give them that other opportunity to save. But if
03:35you've got some advanced users that have worked with FileMaker for a file, that
03:38might be a little bit of a nuisance.
03:40Now, there is also something that is affected by the committing, but it's also
03:44a new feature inside FileMaker 9 and that is the ability to Undo and Redo some
03:50of the changes you're making inside of a field, but on multiple levels.
03:53So in the past on versions of FileMaker, we've got this text field here let's
03:57say, I've just made the change to the value and in the past you could easily
04:01just go under Edit like in most applications. You can either do Ctrl or Apple+Z
04:05to undo the typing and you see it will return.
04:07But what's interesting about this new version in 9, here is all the different
04:12changes I'll make. Let's just say, I go in here, make a bunch of changes to the
04:19text. As long as I'm not clicking outside of this text field or committing the
04:23changes, you will see that I'll have access to do, Undo Typing, Undo Typing,
04:31Undo Typing; Undo Typing again. I can even do Redo if I like as well.
04:39So, this is something that you will see in other applications. Now, by the way,
04:44like for instance, if I change this to 2008, and I commit outside the record, I
04:51can't Undo or Redo on either values. So, within the committing of a record, I
04:56can now use the new multiple levels of Undo and Redo features inside a
05:01FileMaker Pro.
05:02The other tip here is it's not only available in Browse mode, but it's also
05:06available in Find mode. If I say, I can undo the typing completely and I can do
05:22that on multiple levels and this is in Find mode. The same is true also in
05:27Layout mode. If I want to make some modifications to some of the text on
05:32screen, I can do multiple levels of Undo and Redo.
05:39So, if I'm in Layout mode it's the text features on screen, but if I'm in
05:43Browse mode or Find mode, it's the changes that I'm making inside the field.
Collapse this transcript
7. Creating Layouts
Layout overview
00:01We talked earlier in the training about how a typical database application
00:04requires attention to at least three core areas. We've already looked at
00:07developing the proper architecture through the creation of tables and fields in
00:11a FileMaker database, and next we are going to take a look at a sensible and
00:15usable means of getting data into a database, which is actually the design of
00:19user interface screens.
00:21User interface screens in FileMaker Pro are called layouts. FileMaker Pro
00:26layouts determine how information is organized for viewing, printing,
00:29reporting, finding and entering data. But actually it's important to
00:34distinguish that the FileMaker layouts don't actually store the data, like some
00:38views do in other database application, but instead they are just used to
00:42display the data that's contained within the database itself.
00:46Database files can have many different layouts actually which display data in a
00:50variety of different ways. For example, with one single database file, you can
00:54design separate layouts for entering data, reporting summaries, printing and
00:58mailing labels, publishing databases on the web and so on.
01:02You can change a layout's design without actually affecting the data. There
01:05isn't a direct relationship between the data and the layouts themselves. But
01:09when you change the data in a field, the changes are reflected in that same
01:13field on all layouts in the database, and that includes in a multi-user
01:16environment. That's why layouts are used for data entry and data modification as well.
01:21In a layout, you can choose which fields to display. You can arrange and format
01:26those fields. You can add or modify field labels, for example. You can create
01:31reports, and we will talk about reports more in the Reporting chapter, but we
01:34are going to touch on how to develop those layouts here. You can specify how
01:39reports are printed, how they look and act as well, and add graphics and text
01:44to emphasize the interest in your layouts themselves.
01:46So when you create a database file, FileMaker Pro automatically creates a
01:50Standard form layout for the initial table in the file. So, when you first
01:54create it, if you recall them, you are creating a new file, whatever we name
01:58the file, it would actually name the first table in our database that same
02:01name. The same is true for your first layout.
02:04So, you would create additional layouts by switching into Layout mode and using
02:08the New Layout/Report assistant which is a wizard that guides you to creating
02:11layouts according to the options that you choose. So, let's take a look at that
02:15New Layout/Report wizard.
Collapse this transcript
Creating layouts
00:00Anybody developing or maintaining a FileMaker Pro database solution is likely
00:04to spend a good part of their time in Layout mode, and this is where you're
00:06going to create the user interface or reports or basically any way that the
00:10users of your solution are going to interface with the data.
00:13So, in the previous chapters we've talked about defining fields and some of the
00:16different field options and working with records and even creating tables and
00:20new files. Now, we are going to concentrate on how to create a layout and what
00:24I'm going to introduce you to is what's called the New Layout/Report assistant.
00:29So first let's open up our exercise file in the O7_creating layouts folder,
00:35Lucky_You_07_01. What we are going to do is start off by going into Layout mode
00:40and we go into Layout mode by going into View > Layout mode. Now, you see there
00:45are already some layouts in this file. You will see them listed here by
00:49clicking under the Layout dropdown menu in the status area.
00:52The easiest way to create a layout is going to be by duplicating and you can
00:57all of your layouts under the Layout menu, by the way. You can create a new
01:01Layout/Report or duplicate an existing one and modify in it, which is really
01:05the same logic as duplicating a record and modifying it. If most of it is going to
01:08stay the same and you just need make a couple of tweaks, but it does need to be
01:11a different layout, then you can duplicate the layout. That's the first way to
01:15introduce to you how to create a new layout and that's simply done by going
01:18under the Duplicate Layout option in the Layout menu.
01:22All other layouts are going to created by going into the Layout menu and
01:26selecting New Layout/Report or the quick keys are Ctrl+N or Apple+N. What you
01:34will be presented with is what FileMaker calls the New Layout/Report assistant.
01:38In the following movies, we are going to go through each of these and discuss
01:41some of the options that you have available to you and show you how to create a
01:45standard form, a columnar list/report, a table view. I will show how to create
01:52some of the label views, the envelope and the blank layout, which is just the
02:00easiest one to create.
02:01So let's start off by reviewing how to work with the standard form.
Collapse this transcript
Creating a standard form
00:00The first of the layout types that you can create using the New Layout/Report
00:04assistant is the Standard form. You will notice that on this panel of the new
00:08Layout/Report assistant, there are a couple of things that you need to do
00:11before you begin.
00:12First, you need to choose where the records are coming from. So in this example
00:17we are going to create a series of different reports for the customers and
00:21you're going to pick which one of these you want the records to show from. All
00:24this is is a list of different tables that you have in your database.
00:28If you need to look at those, you can easily access the Manage Database window
00:33from here, in case you need to add a table or change a name or something like
00:36that at this point. But for this exercise we are going to create customer, and
00:41the other thing which you have to do is name the layout itself.
00:45So, we are going to go in here and call this one Customer and then your third
00:51option before you get started by selecting the layout type is to determine
00:54whether or not you want to include this in the Layout menu.
00:57So, the Layout menu is what you see here at this dropdown menu that appears
01:01when either you're in Layout mode or Browse mode. Every one of the layouts
01:05shows up when you're in Layout mode, but if you check this box it will actually
01:08show up to your users in Browse mode as well.
01:11Now, this is independent from any Accounts & Privileges rights that you build
01:15in for your users but just assuming that a user has access to everything, if
01:18you check this box it will show up in Browse mode, if you uncheck it, it will
01:22not. So, we will leave that one checked for right now.
01:24Then you choose the layout type and right now we are going to concentrate on
01:27the Standard form, but you will see in each one of these it has not only a
01:30description of the layout, but also sort of a graphical representation of what
01:35the layout is going to look like. It gives you a little bit better idea of what
01:39these things are and helps you define them.
01:41And further, you can read down here below a Standard form as defined by the
01:46assistant is a layout that shows one record at a time and the fields will
01:50appear on separate lines as they do here in this example and the field label is
01:54on the left and the field data is on the right. These are really good for data
01:58entry. So, if you're just beginning to create your data entry view or what a
02:03lot of the developer community calls the detail views, this is a great place to start.
02:07So, once you've selected where your records are coming from, what you're going
02:10to name your layout and whether or not to include it in the Browse mode
02:13dropdown in the layouts. We will choose Standard form and hit Next and what we
02:18will see here on the left, since we chose Customer is we are going to see a
02:23dropdown of all the different fields in the customer table. If we want to take
02:26a closer look at the those, we can access Manage Database.
02:30One other thing that you might want to do is sort your fields to make them a
02:34little bit easier to work with. You can do sort by field name, creation order
02:40or whatever you might want to do. You will see that they reset to, in this
02:46case, it inversed the sort order.
02:48So, we will go in and we will collect some information, let's say, first name
02:52and I can either double click on the field in the list or I can single click on
02:56it and hit Move. If I want to make a change, I can click on it here and then
03:02the button changes to Clear and I will remove it. We can pick whatever fields
03:06we want by double clicking on them: email, birthday, let's say, and home
03:15address, home city, home zip and home state.
03:17Now, the reason I've done them in that order so that I can show you that you
03:20can reorder these as well. So if you really wanted this to be full name, email,
03:24birthday, address, city, state, zip, I just select the field that I want to
03:29change and I can drag it up. Anytime you see these up and down arrows, you will
03:33see that your cursor can roll over and allow you to move these up and down,
03:36much like many other applications.
03:38So, you are choosing both the fields that you want on the layout and also the
03:42order in which you want those fields to appear. The other thing to note is that
03:45you can also drop any related fields. So, any tables that are related to
03:50Customer are also available to you.
03:51If you look in here, you will see all the different fields that are available,
03:56but keep in mind if you're in the parent table, and we will cover this more in
04:00the relationship chapter. If you are in the parent table and you put in your
04:02related fields in here, you are only going to see one of the related values.
04:06So, it's more likely that you will use related values or related tables when
04:09you're in the child table. So bookmark that topic of parent and child tables
04:14for when we get into the relationship chapter. But for this basic
04:17demonstration, we are going to pick all the fields that we want from the
04:20customer table, organize them appropriately and then proceed on to the next view.
04:24Here you can choose one of the very attractive pre-made and pre-developed
04:32screens if you would like. You will see that these are all pretty standard from
04:39previous versions of FileMaker or what most people do is either just choose
04:42Default or Standard, which are basically the same, one of them has got a little
04:47bit bigger text. So we will go with Standard in this case and hit Finish. You
04:51will see what it's done is now added another layout and it adds the layout to
04:55the end of the Rolodex list.
04:57We will see that this layout is called Customer and here we are on the layout,
05:01it gave us a Header part, a Body part and a Footer part, more on parts in the
05:06next chapter. If we want to change the order in which this appeared, we can go
05:10to Set Layout Order and much like we were moving up the fields, we can move up,
05:16we will just say Customer Detail. And now in the list, we see that our field
05:23lands right on Customer. Also, because we selected for it show up in the
05:29dropdown, we see that although some of them are not, it is included in the
05:34dropdown here.
05:35Going back into the Layout mode, the next thing that we are going to do is take
05:39a look at creating a list or report view using the assistant.
Collapse this transcript
Creating a list/report view
00:00The next report format that we are going to look at creating using the
00:03assistant is the Columnar or List option. So again, we will start by going into
00:08Layout mode and once in Layout mode you go under the Layout menu and choose New
00:13Layout/Report.
00:15And again, just briefly to review you choose where you want your record to show
00:19from, let's say in this case we are going to do guide. Then you name the
00:24layout, we will call it Guide List. We will see whether or not we want to
00:32include this in the Layout menus in Browse mode. We will say yes in this case.
00:35Now we are going to choose the layout type and here we are going to choose
00:39Columnar or List. You will see what this is going to look like. Basically,
00:43you've got a header component with your field labels on top.
00:46So it sets up a columnar report or a complex report with grouped data. I will
00:50go through both of these here with totals and subtotals. The difference between
00:54a Columnar list/report and a complex report are whether or not you have grouped
00:58data or subtotals and totals, but it will show records in rows and fields and
01:02columns, similar to how a spreadsheet would show it, but not identical. That
01:06would be this next one, the table view.
01:08So, I'm going to choose list and the next view has us choose between whether or
01:13not we are going to do a list or we are actually going to group with the data.
01:16Now, I'm going to choose the list for this first one, you see I have an option
01:20for Constraining to page width.
01:22They give you a good example here, because if you start loading a bunch of
01:24fields on here, it's giving you a standard width. If you say constrain, that
01:29means that no matter how many fields you choose, it's going to wrap around to
01:32the next row. If you're planning on printing a column or list report and the
01:35columns extend beyond the width of the page, you can try either reducing that
01:39field size or the font size within the data of the fields; basically, just
01:43making it smaller and the amount of data that's printing smaller.
01:46You can go under the File menu and if you are on Windows you can choose Printer
01:50Setup or in this case I'm on Mac, so I would choose Page Setup. In the Setup
01:54dialog box that appears you can just work with scaling in reducing the size to
01:58less than 100%, pretty standard just like printing anything else that's too wide.
02:02But here we will just be careful and mindful that we are not going to add too
02:05many fields that it goes off the edge, but those are a few different ways that
02:08you can manage that. Of course, the option that we are going to choose here is
02:11creating a layout that will only have the amount of fields in here that we need.
02:16So, we will proceed then to the next pane and here it gives us the default
02:22table, and of course, we can go in and resort A-Z if we want or start creation
02:31order. The reason there is because that's the only way that you can sort this list here.
02:36So, now it's a little bit easier for us to find these fields and we will choose
02:40the fields that we want. We will say full name, and email, and phone, zip,
02:51state, city, bio. Actually, now we determine we don't want the bio, so we just
03:01choose bio and we say Clear.
03:03Now, I will move these around a little bit to actually replace that with
03:07address, full name, address, city, state, zip, email and then mobile phone. And
03:16again, just to as a review, you can choose related values and it's more I
03:21prefer to that when you're in a child table than in the parent table that we
03:25are in, again in this case here.
03:27So, we are just going to stick to the Current table, we hit Next. When a user
03:34goes to this layout it allows us to sort these, by default, and actually,
03:38that's if they use the script that you will see here in a moment to actually
03:42sort that. So, we will say sort by the full name field.
03:45Now, we've determined, wait a minute, I can't sort by the full name, let me
03:49clear that. You see here you can go back or forward, and of course, you can
03:52cancel the wizard and no layout will be created. We will go back and we will
03:56clear out full name. We'll say, first and last instead, move first and last up to the top.
04:04Now, we will go in there and we will say, let's sort and then just like the
04:08regular Sort dialog -- this is really just a replica of the Sort dialog, we can
04:12sort in ascending order, descending order based on a value list and use the
04:17reorder based on summary; all of which we'll cover in the sorting section and
04:20exporting section as well.
04:22But we will proceed and then we can choose from one of the different layout
04:25themes. We will stick with Standard here, we hit Next. In this option there are
04:30some things that you can choose if you are interested. You can choose to show
04:33the Page Number, Current Date, the Layout Name, some Large Custom Text that you would create.
04:38You see you get the ability to do this, we can just say, List Report if we
04:44want. You can choose whether it's the left or the top or the right. I will just
04:48give you a quick idea of what this looks like. I will call it Guide List and on
04:58the Bottom footer, we can put things like Current Date or they are completely
05:03optional, you can just have them all stand on the default of None.
05:07One of the things that the FileMaker New Layout assistant allows you to do on
05:11some of the format types is to create a script at the end of the assistant here
05:16in the last pane. Now, it didn't ask us to do this in Standard, because we
05:19didn't have any sort values or anything like that, but what it's allowing us to
05:23do now is and in Standard it's only dealing with one record, but in a List it
05:27deals with multiple records. So, there is a degree of organizing those records
05:31through sorts and stuff like that.
05:32So, as we are building this it's actually building a temporary script in the
05:35background and we can choose to create the script or not create the script.
05:40Then in the final screen we can say, okay, let me look at report either in
05:44Preview mode, which is just a preview of how it's going to print, or Layout
05:47mode, but let's select Layout mode for this one. You will notice that what we
05:52have here is enough fields. We can do a little bit of work in Layout mode, but
05:57these fields have us go off the edge of the page.
06:00So, of course, as I mentioned earlier we can go under Page Setup and we can
06:04make it Landscape if we would like. We see that Landscape doesn't fit, so let's
06:09resize some of these and we can take all those fields and slide them over. What
06:15I'm doing is I'm using the arrow keys on keyboard. I'm arrowing over to the
06:20left and we can just crunch these up just a tad bit or I can go down here and
06:26say, let me make it about 50 and then I hit Enter. Now I can fit all of these
06:34under one page.
06:37So the assistant will set these up for you and then you can go in and make
06:41whatever modifications that you want. Now when you are creating these, you can
06:46change the colors all you want and we will deal with formatting in the next
06:49chapter, but this gives you a good basis to create these fields.
06:52Now, because I created a script for this, let's take a look at how that runs.
06:57First, we will save the changes to the layout. What the script does is it saves
07:01the navigation to the layout and the sorting by last name, if you recall.
07:05That's what we set up here; stops it in Preview mode and when we continue,
07:09allows the user to print from here if we would like. You can access that script
07:15in ScriptMaker and more on working with ScriptMaker when we get to that
07:18chapter. But back into Layout mode, we can make any modifications from here
07:24that we would like.
07:25So, the next one that we are going to look at is creating the report view in
07:28the same manner. So if we go back into the New Layout/Report and we will say in
07:34this case, let's say customer, let's call it Customer Report. Pick Columnar
07:42list, go to Next and instead in this case we are going to say, Report with
07:46grouped data and what that means is, we still have the column headers and
07:49columns and rows, but it's going to group data in a certain way.
07:52So, in this case we will say, let's group all of our customers by state and
07:56then under each state would go alphabetically by state, then under each state
07:59it will list all the customers in that state alphabetically by name. So let's
08:02proceed forward here.
08:04If I happened to have some total fields created, we can actually do a report
08:09that way. As a matter of fact, we will go into, change this up a little bit.
08:14Let's do adventure, Adventure Report, Include subtotals and the reason that I
08:24change that is because I know our Adventure table has some subtotals created
08:28and I will go in and will sort this again, let's say by field name. What we are
08:36going to do is say, let's pull in -- this is for each adventure so let's pull
08:41in the country and we will sort them by country in this case.
08:44We will need the title of the trip and we will say the individual price of the
08:51trip. But we are also going to put in the Price Total, which is the sort value
08:56that we are going to be using. We don't need to necessarily worry about the
08:59order here. You will see here, we will get a chance in a second to change that.
09:03So, we've got the country, the title, the price and the Price Total. So let's
09:07go in here and now we say organize by category and if you remember in the
09:11previous section, we've talked about organizing these by country.
09:14You see that your preview changed. So this is sort of emulating what it would
09:18look like to have country one and then all of the adventures in the country;
09:21country two all the adventures in that one and so on.
09:24So, it's customary, it will only really choose one of these, but you can in
09:28some more sophisticated fashion, so stack them in here, but we will proceed to
09:31next pane. Now we wanted to be sorted by country and here is where we can
09:37provide a secondary sort order. So what that means is if the countries match
09:42then anything that has a matching country will be sorted by title and you can
09:47choose any one of the sort options here just like in a sort view.
09:50Now, since we pick the report with the grouping, I can choose the summary field
09:56and you'll see I have one summary field created in this table and it's Price
10:00Total. So I can select Price Total and it knows by looking at the field type
10:04which ones to present so it grays out anything else and just leaves the
10:07summaries.
10:09I can say, Price Total categorized by so I chose country already, that's what
10:13it's got chosen there. It allows us to show and you will see back here the
10:20values, the total you can show up either below here or on the same line as the
10:25name of the country, but we are going to say, below the record group.
10:28Now, once we've done configuring now we are going to add the subtotal, and we
10:31see that all the different subtotal information is added here. In more complex
10:35list reports you can add a series of different subtotals, but for now we will
10:39just stick to that one. We will say Standard again and we will proceed through
10:44these options. We will choose to create a script and we will look at this in Preview mode.
10:52So, now you see what we have is a report that says here is Argentina or here
10:58is Australia and here is all the ones listed in Australia and if we comb
11:01through here, here we go. The United States is a little bit clear. We have got
11:05United States at the header; all the different trips listed in alphabetical
11:09order in United States. Then at the bottom the total for United States with the
11:13total value for the Price Total.
11:15Now, if we go into Layout mode, we can make a couple of changes like we could
11:20delete the Price Total fields if we would like to. Actually, we can make any
11:25other changes that we would like. So, we will cover a little bit more of
11:28formatting some of these layout objects when we get into the next couple of
11:31chapters, working with layouts and formatting layout objects.
11:35We will take a look at the next layout format type that we can create using the
11:38assistant and that's called creating a table view.
Collapse this transcript
Creating a table view
00:00We can also use the Report Assistant to create a table view and table views are
00:05pretty handy because they essentially mimic exactly what a spreadsheet would
00:09look like with your same data. Now I will show you how we can work that a little bit
00:12when we build one. But as with any of the other layout format types we start in
00:17with Layout mode and we go out to New Layout/Report and we will choose this
00:23time for this exercise we will do a customer table.
00:27These are good for admin layouts, if you want to just look at all the data and
00:31fit the most data on screen that you can and just kind of work with it and sort
00:34it around and look for patterns and stuff like that. In this case we will keep
00:38it in the Layout menu and we choose table view and you see the preview changes
00:42a bit and now we will say which fields that we want.
00:45You could just go in here. The easiest way to do it is just to double-click on
00:48each one of these, and here is some contact information and maybe we will even
00:55put the ID and then we change the order that we want this to appear, maybe
01:00we'll put home before mobile. We say Next and we just choose the format type
01:04that we want and I have been sticking with the Standard or Default but the only
01:09real difference in Default is that field label is in bold and the field
01:13themselves are embossed but that won't matter in the table View and I will show you why.
01:18Let's look at it in Layout mode. This looks a lot like the standard form that
01:22you created, but one major difference is that if you look at this in Browse
01:26mode, you'll notice that it looks a lot like a spreadsheet and that's the
01:31intended result of a table view itself. You see these question marks that
01:35indicates that there is a field data in here that extends beyond the size of
01:39the field. One of the nice things about the table view is we can just click and
01:43stretch that over, we can make it as long as we like, just like the same thing
01:47which you would do inside of a spreadsheet.
01:48When you click on these column headers, it will sort by the different values
01:55and we'll just go with the default of id. Now back into Layout mode, you see
01:59that we can control the order of the field. So we are doing a home phone and
02:05then mobile and if we look at this in Browse mode, we will save those changes;
02:16we see that those have switched around.
02:18Now the other thing that we can do is we can click on one of these columns and
02:23drag it all the way over that way as well. So we have got full name, email, we
02:27put the phone after that. So this is a great way to just work with your data,
02:31sort it anyway that you want. You can still do searches and sorting and look at
02:38all the data in your database and you see we have got 1500 records in this
02:41case. It is a lot easier for us to work with them when they are in this format.
02:47Really the difference since in Layout mode they both Standard form and the
02:51table view look the same. You can see when we go back into Browse mode, we are
02:56viewing as a table and I'll get into a little bit more of that in the Working
03:00with Layout section.
03:02So next we are going to take a look at one of the neat features and really
03:06useful features is the ability to create labels and we are going to use the
03:10assistant to create labels at this point.
Collapse this transcript
Creating labels
00:00There are a couple of things you want to keep in mind when you are printing
00:03label layouts. Of course we will talk about creating those label layouts using
00:08the Layout Assistant but before you get started you should know that labels are
00:12very sensitive to the margins that are on screen. So in order for FileMaker to
00:16build those margins, it is going to use whatever printer you have setup.
00:24So the printer that you would choose, you can do Page Setup and then also if
00:28you go into -- you can also access this information under printer. So when you
00:33choose the driver-- So what you want to do first is go under File, Print Setup
00:40in Windows or File, Page Setup in Mac and let me move this down just a little
00:45bit and what you are going to do then is in the Setup dialog box, you want to
00:50first choose the printer that you want to use and that's on Windows or you go
00:53into Print and choose that in Mac and then it will set it for the next time you
00:57open up this dialog, as I just did a moment ago.
00:59There is a couple of things to consider here. If you are using individual
01:02sheets for labels with like a laserjet or a inkjet printer, select the size of
01:06the label sheets themselves under the Paper Size and choose your printer. What
01:14FileMaker is now doing is pulling in the margin specifications for this printer
01:19and loading them into the layout when we create this layout. If you happen to
01:23be using continuous feed labels for a dot matrix printer, you can create a
01:27custom paper size equal to the dimensions of one label if you would like and
01:32that's by going down to Manage Custom Sizes and then when that pops up, you get
01:37the ability to choose all the different custom sizes.
01:41In this case we are going to go with US Letter and format it for the printer
01:45that we are choosing here now. This might require if you have a certain machine
01:49other than the one where you are developing, you might want to go on and do a
01:52little bit of tweaking to this layout when you are done and do some test
01:54printing. If you have the opportunity to develop this layout on the machine
01:58where the printing is going to occur that's going to be the best case scenario.
02:02So now that we have setup our printer margins, we go into New Layout/Report and
02:09we will create Customer Labels, and we will choose Labels, include that in the
02:17Layout menu. One thing to notice that FileMaker has all these different DYMO
02:25and Avery label templates already built into FileMaker Pro. So you can go to
02:30any office supply store and find all the different Avery labels or you can go
02:35and order them online from Avery Direct. This allows you to just simply pick
02:39whatever label that you want or you can create a custom labels if you would like.
02:44You can say how across that you want, 2 and you can see what the Width of the
02:48labels is going to be. You can modify your margins. So instead of going here
02:52and using the Avery selector you can create your custom memberships here in
02:57this layout if you would like and for more information on that, you can always
03:00click on your Help window here on this Specify Label Layout pane. But we will
03:04choose the most popular Avery5160, we will hit Next and since these are going
03:09to be shipping labels let's pick a couple of fields, home address and these are
03:15merged fields and we will cover merged fields in the next chapter but these are
03:19text representation.
03:20So you can do things like, I'm going to hit Return and go down to the next row
03:25where I can add city and here I can type in a comma and even hit Spacebar in a
03:30space and do space for state. I can even do another Spacebar and I will hit Zip
03:37and we can go to the next screen where we will preview this and actually we
03:41will go into Preview mode. Now you see what it does is it positions everything
03:46and I think we should go back into Layout mode, you will see that it creates
03:49this interesting labeled view and it gives us some page margins and you can see
03:54that we might have to move and this all comes in as one text area in the merged field.
03:58So you can select it and tab it over if you want and tweak it a little bit but
04:03as you print these off in your printer, you can move them over a little bit and
04:08the best idea here is to print off one of these pages and put it on top of one
04:12of your single sheet label feeds, in this case for the Avery5160, kind of hold
04:18it up to the light or something, so you can see through it and see where the
04:20edges are and just go back and forth into Layout mode and move this over with
04:24your arrows or tweak it as necessary.
04:26This is just how easy it is to create Label layouts in FileMaker Pro, then of
04:31course you can use anyone of the Avery labels and just as a note in FileMaker 9,
04:35FileMaker has added about a half a dozen or so very frequently requested
04:40Avery label styles. So if you thought that maybe a label that you wanted to use
04:44wasn't in previous versions when you were developing, take a look again because
04:48I think you will find that there are some new sizes in there for you to choose
04:50from. Finally we are going to look at creating something that's similar to
04:54creating a label but creating envelopes as well.
Collapse this transcript
Creating envelopes
00:00The last layout type that we are going to build is the Envelope layout and we
00:04are going to be using the Assistant for building one of these layouts also and
00:08that same considerations that I have mentioned when building a Label layout go
00:12into the building of an Envelope layout. They have to do with the printer. So,
00:15you are going to have to go into your Print Setup or Page Setup and choose the
00:19Printer that you want so that the margins can be set and it's going to build
00:23the margins and save your layout sizing and configuration based on whatever
00:27that print driver was when you created the layout.
00:29So if you are creating an Envelope layout or a Label layout on a machine that's
00:33different from the one that you will be printing, keep in mind that you will
00:35have to load this file on the machine where you'll print and go in to make some
00:39minor modifications by printing out some test forms. So the same considerations
00:43for the Label layouts go into creating Envelope layouts.
00:46So to initiate the Report Assistant of course we go into Layout mode first
00:51under the View menu and then under the Layout menu, we choose New Layout/Report
00:59and we'll create Customer Envelopes and choose Envelope and hit the Next
01:09button. I can Shift+Select all of these and add fields and you will see that it
01:20adds them in sort of an interesting way. What I can do here is, do a little bit
01:24of moving around and I will copy that, I can paste it up here.
01:30You see basically this is just a text area; it is just allowing me to edit
01:33inside the text area. So I can do everything that I can do inside of a text
01:38field and what I'll do is go in and move these around at will. I got my Return
01:46character after the billing address, let's put a comma and a space after city
01:51and a space after state and go to the next one and view it in Preview mode and
01:57if we go back into Layout mode, now we are going to want to tweak the position
02:02of our envelopes and it's a little bit trickier than labels because we have
02:06Avery templates to work with. If you are using a manual feed envelope and you
02:09are feeding it into a center feed printer, one of the things that you are going
02:13to want to do is to keep the Header and just to adjust the Header as necessary
02:17to match the printing to the envelope size because this will move this whole
02:19area up for you.
02:21But if you are doing the manual feed envelopes into a left edged printer keep
02:24the Header adjust it as necessary and match to the printing area to the
02:28envelope size itself. So a good rule of thumb here is for the Header to size to
02:33subtract 8x10 from the height of the envelope or if you are using manual feed
02:38envelopes in a right edged printer, delete the Header altogether because this
02:42is actually the part that's going to represent the right edge and adjust the
02:45Footer as necessary or add in a Footer part this way in order to give yourself
02:52some buffer room to move this area around.
02:54So Envelope is a little bit trickier but you use the Wizard and then once you
02:57have done with the Wizard, you can do a little bit of tweaking that's going to
03:00take some printing out and testing your reporting. You don't have to waste
03:02envelopes, you can just print an 8 x 10 piece of paper and hold it up against
03:05the envelope depending on how you are going to feed it in, then again FileMaker
03:08Pro uses merged fields here when you are creating these Envelope layouts.
03:11So keep in mind you can't create any records through these views or modify any
03:15of data for the views but you could easily just switch over to a table view if
03:20you wanted to in Browse mode and make any modifications to your data and then
03:25switch over into your Envelope view so that you can see the different ones.
03:29Also if you are creating scripts, like we did with the Guide List keep in mind
03:34that they are going to be predicated upon whatever the found set is when you
03:36execute the script.
03:37So if you create a script with an Envelope layout or a Label layout or List
03:41keep in mind when you are training the users or if you are the user that you
03:44are going to have to first isolate a found set of records before you proceed.
03:47So now in the next chapter we are going to look a little bit further into
03:50working with layouts and how to setup the layouts and the different parts that
03:53I have briefly discussed and navigating to different views and how to work with
03:57some of the objects on screen.
Collapse this transcript
8. Working with Layouts
The Layout Setup dialog window
00:00In Chapter 7, Creating Layouts, we took a look at the different ways that we
00:03can create layouts, mainly using the FileMaker Report Assistant, but also we
00:07could duplicate and modify the layouts and there are some other configurations
00:11within the layouts after one is created that you'll need to become familiar
00:14with and the first of those is called the Layout Setup dialog.
00:17In order to take a look at Layout Setup dialog, we will open our Exercise File,
00:22Working with Layouts, Lucky_You_08_01 and we will go into Layout mode, do a New
00:32Layout and we will just quickly create a standard form here. Pull in some
00:41address information and we will just go here. So now once you are in Layout
00:47mode and you have created or selected one of the layouts and of course you can
00:50navigate to anyone of the layouts that already exist by going under the
00:54dropdown menu found here.
00:56You will find when you are in Layout mode that there is a menu called Layouts
01:00and there are a couple of different things in here that we are going to take a
01:02look at in this chapter. The first of which is the Layout Setup. Of course you
01:06can navigate to any one of the layouts when you are in this. Of course you can
01:10create new ones and that's how we started the Assistant. We could duplicate an
01:13existing layout and even delete one that you don't need to use anymore.
01:16But the next option is the Layout Setup dialog. You will see there are a couple
01:20of different things here that you can control once a layout is created. The
01:23first of which is the Name. FileMaker will create layout names for you and if
01:27you don't provide something that provides a little bit more clarity, it is
01:30just going to name it Layout whatever number that you are on in the internal
01:34index of the layouts. So in this case we will just call it Customer Billing and
01:39if I ever need to go and change the name of the layout, I just come to the
01:42Layout Setup dialog and I can make that modification here.
01:45Also this is where you can either show it when you are in Browse mode in the
01:48Layout view for the users and if I uncheck that then users can not see that in
01:54layout. Anyone who has access to Layout mode can always see every layout
01:58because that's the only way that you can access those. Also we can determine
02:02which table or base table that we are going to be showing the layouts from, it
02:05provides some context here, it is bit of an advanced topic but it's important
02:10that you determine where these fields should lie.
02:13Now it doesn't remove the fields if I change something, you will notice that if
02:17I hit OK, it just makes some related values and the context is going to be a
02:21little strange. So you really have to map all that up before you even start
02:25designing some of your layouts. But again an advanced feature that will be
02:28covered in the Beyond the Basics and then we talked about this one, we were
02:33talking about working with records but if you want the user, every time they
02:36commit a record to automatically save the records to the database table then
02:40you'd leave default setting of Save record changes automatically checked,
02:44otherwise if you wanted to have an additional warning come up after they have
02:48committed and before it actually saves to the table, you can uncheck it.
02:51The same is true if you want the fields frames to show when a record is active
02:55or when it is been edited. Also this is covered in later titles but there are
03:01different menu sets that are available for each layouts. So that means that if
03:06-- just a briefly review it here, you can create custom menus if you have a
03:09copy of FileMaker Pro Advanced which is formally known as the Developer Edition.
03:15Once those are created, you can permanently relate those to a layout, so if I
03:20want every time somebody comes to this layout, I want the menu set to be
03:24Customers, this is where I would set that up. So Layout Setup if we go into the
03:28Browse mode, you will notice that the menus have changed and each time that a
03:37user goes to this they will see those layouts but we will just go back in the
03:40Layout Setup and do Standard FileMaker menus.
03:44Now in the next tab it's called Views and each time you create a new layout all
03:49the different views are chosen and you have got three different ways that you
03:51can look at a FileMaker layout. One is in Form View which is just one full page
03:56record on screen at a time, another is in List view which shows multiple
04:01records on screen at a time and another is table view. When we were covering
04:05creating layouts using the assistant we created List view and table views, so
04:09you are familiar with how those work but the Form view is what we have here and
04:12a lot of time the view is going to match if we go into Browse mode you will
04:16see, if I look at this as a List, it's a little awkward because even though I
04:22have multiple records, this is something that should be a Detailed view.
04:27If I go into looking at it as a Form it is only showing me one record at a time
04:31until I proceed to the next record. That makes more sense for this Layout view
04:36or I may view it as a table, doesn't matter what it looks like in Layout mode
04:40because it is always going to be showing -- anytime a user is in the Browse
04:44mode, they can toggle between these.
04:46So going back to the Form and then going into Layout mode, one of the ways that
04:51you can control this is by going into Views and saying, I intended for this to
04:57be a Form view, so let's turn off the ability to have it viewed in this view
05:01and turn off the ability to have it viewed in table view and see what happens
05:05when we go into Browse mode. We will save those changes and you will notice
05:08that they are grayed out, now those options are grayed out.
05:12We go into Layout Setup, and again we look at Views, now something to take a
05:17look at when you click on the table view in the Properties, you can either view
05:21the table horizontally or vertically and you can either choose to include a
05:26Header part or a Footer part when you are viewing it which means you can keep
05:29the Header on there and the Footer if you want to put like a title of your
05:32report that you are printing in table view, or if you want to put some
05:35information on the Footer.
05:36But traditionally those who are working with table views are just kind of
05:39working with the raw data rather than using it as a report and also there is
05:43some functionality of resizing columns, reordering the columns, allowing to
05:47sort when you selected the title, the head itself and you can turn those on and
05:51off in this area. Also the custom height of the rows you can determine and you
05:56see it by default it is 14 pixels and you can change that,
05:59so that when a layout is used to create a table view that it will carry those
06:03properties along with it.
06:06The last one is the Printing Properties and you can configure these as fixed
06:11page margins if you have some special printing that you are doing, if you are
06:14printing on to a pre-printed page or if you have created labels, you can
06:19determine whether or not you are going to print in two or three columns and
06:23whether or not they are going to snake across or snake up and down first.
06:28So those are the different ways that you can modify some of the layout
06:31preferences and some of the viewing preferences and the next thing that we are
06:35going to take a look at is working with parts and how to manipulate the parts on the layout.
Collapse this transcript
Layout parts overview
00:00FileMaker Pro layouts are divided into things called layout parts and these
00:04are sections of the layout that determine how the data and the field is going
00:08to be treated and displayed. For example in the exercise files
00:11Lucky_You_Tours_08_01, where in the previous movie I created the standard layout
00:16using these fields, you see that I have these little bubble looking things here,
00:20we have got Header, Body and Footer.
00:23Those designate which layout parts it is that we are looking at and you can see
00:27that they are delimited by a dotted line so we know where one part ends and
00:31the other begins. These are the most common, Header, Body and Footer, and this
00:35Part tool allows us to resize the different parts and even delete them and I'm
00:42clicking on the Delete key right now or I can right click and find out
00:45information on the part itself.
00:48So what we are going to first do here is review the different roles that these
00:51parts play and why there are separate parts. For starters by using parts you
00:56can control how FileMaker Pro prints data. So for example, you could have
01:00whatever you are working with print only once for each record and in that case
01:04you would have a Body. For every record there is going to be another row,
01:07another iteration of Body. Or in the case of a Header, you could have something
01:12print only on the top of the very first page, or another example would be only
01:16before or after groups of sorted records.
01:19There are all sorts of different ways that you can manipulate these with parts
01:21in combination of parts. One rule to remember is that each layout must have at
01:26least one part. So if you see if I go to Delete the Header part and then try to
01:30delete this part, I get a message, it says, at least one part must remain on
01:34the layout because otherwise you don't have anything on your layout and that
01:37really would be counterintuitive in a development environment. Layout parts can
01:41contain fields or portals or buttons, text and any other object or anything
01:46that you draw or any kind of graphics that you paste on to the layout as well.
01:50The way that you can organize these, in this case I had created this layout
01:55using the New Layout/Report Assistant and it automatically creates the
01:58appropriate layout parts, depending on what choices that you are making but you
02:02can add or change or delete the parts after you have finished the assistant as
02:06needed. So for example, you will see here in the status area I have got a Part
02:10tool and if I click down on it, you kind of see this dotted line appear and if
02:14I drag and move this up to the top and let go I see the Part Definition dialog
02:21appear and this gives me the opportunity to determine which part that I want
02:26and usually at the top of the page you either see a Title Header or a Header.
02:30The Title Header will appear only once at the top of the first page or on the
02:34first screen depending on whether you are printing it or you are just looking
02:36at it on screen. It replaces the normal Header, if there is a Header in there.
02:41So if I have both the Title Header and a Header on a report or some layout that
02:46I'm going to print then on page one the values that I put in the Title Header,
02:49so in this case if I say bring this field back down here.
02:57If I use some text then I say Title and now I'll add another part which is the
03:07Header and you see that I can't add two Title Headers. So it grays out the
03:11Title Header and I already have a body, so it is graying that part also. There
03:15is a bit of intelligence built into this part definition. So I'm going to add a
03:19Header and we will just for the sake of testing keep these fields in our Body
03:28and we'll call that Header, open it up a little bit, actually what we will do
03:34first, quickly do the search.
03:39Now let's take a look at that, isolate some records because we have got 1522
03:43customers in here as you see right there. And we deal a bit more with that when
03:48we get into finding and sorting of data. But I'm just going to preview what the
03:51report looks like. So you see that on page one, I have got the text or I could
03:56put graphics or logo or change the color or put a field whatever I want to do,
04:00the text in the Title Header appears on page one. On the top of page two and
04:05page three and page four you see that only the Header appears and not the Title
04:10Header.
04:11Going back into Layout mode, the body of each object that you put in the body
04:16including fields or text objects or graphics or whatever it maybe appears once
04:20for every record in the found set. So you will notice you can make this be one
04:25line. Back in our original layout, there is also some other parts that we
04:33wanted to look at. If you remember we originally had a Footer part and a Footer
04:39part appears at the bottom of every screen or page unless you add a Title
04:43Footer. The Footer and the Title Footer are really just the mirror opposite of
04:47the Title Header and the Header.
04:48Instead of being at the top of the very first page or the top of each page, it
04:52is at the bottom of the very first page or the bottom of each page. So somewhat
04:55self-explanatory and there are some other parts that are a lot more
04:59sophisticated and these are the summary layout parts and if you want to include
05:04summary data on a layout for example things like subtotals or grand totals,
05:07averages, accounts and so on, you will place summary fields and summary layout
05:11parts. There is grand summaries and as you see you have Trailing grand
05:15summaries as well.
05:16We are going to cover those when we are talking about putting together reports.
05:18So we will get back to that in a little bit more detail in a later chapter. Now
05:24there is a dialog underneath the Layouts menu, if we go to Part Setup that
05:29allows to reorder these parts and you can delete them if you would like and
05:33delete the contents within them or you can add a new area if you would like to
05:39and again it logically determines what's already in there and what order you
05:43have already have things but you can't errantly put in different part values
05:46that might not make sense at all for the report that you are trying to develop.
05:50So if I go in, in Layout mode, you can reorder the parts here, you can add them
05:54or change them and delete them if necessary or you can drag the part icon to
06:01any location that you would like. Also if these get in the way of the fields,
06:06for example if we have a field on this part and you can't see what you are
06:09working with, down on the bottom left hand corner you will notice just to the
06:13left of where your mode is indicated, you see you can click on this little
06:17icon. That actually shrinks them up to the left hand side. Keep in mind this
06:21isn't counted in on the margins when you are doing some sizing out there, but
06:24allows you to keep these out of the way so that you can work with the entire
06:27printable area.
06:28So the next thing that we are going to look at are taking a closer look at the
06:31Layout tools and some of the other things that we see here in the status area.
06:34We have already looked at the Part icon, but we are going to look at some of
06:37these other elements in the next movie.
Collapse this transcript
Exploring layout tools and status area
00:00Once you have your layouts created and your fields thrown on the layout or your
00:04parts setup, it's time now to apply some formatting or maybe add more fields or
00:10modify some of the look and feel or the contents of the layout, and before you
00:14do that you are going to have to get familiar with some of the tools that are
00:16available to you. So in this section, we are going to take a look at the tools
00:20that appear in the status area where you go into Layout mode.
00:24So the exercise file that I'm using and if you open up Exercise Files, Working
00:30with Layouts_08_01 and go into Layout mode, we will go down to the Customer
00:40layout, which is just a blank layout which will give me the an opportunity to
00:43not only show what some of the tools are but give you some really helpful tips
00:46when you are using these tools. First off, you'll notice that as we reviewed
00:50when we were talking about the different modes early on in this title, when you
00:54are in Layout mode the status area changes. The Layout popup will show every
00:58layout that's available. When you are in Layout mode, you can see every single
01:01one of the layouts and of course there are separators if need be.
01:05You can navigate to each one of those layouts through the Layout popup or you
01:09can navigate to the layouts using the rolodex and if you know which layout you want,
01:15if for instance, you are in 26 and you want to get to 11 just type in 11,
01:20hit the Enter key and it will take you right there. Below that you can see the
01:24total numbers of layouts that are available. So it helps you kind of manage how
01:27many of these that you have got at your disposal. And then below that you see
01:30this little matrix of tools. It's sort of a locked palette here and I'm going
01:35to briefly introduce you to what each one these things are.
01:38The default anytime you go into Layout mode is going to be the cursor,
01:41the arrow selector. This allows you to drag and select items on screen or if you
01:48have fields, you can select the fields and reposition them or it allows you to
01:54drag select or select items and delete them as well.
01:59So unless you have selected another tool, by default your cursor is going to be
02:03the arrow. Next is this A, a pretty self-explanatory text writing tool. You
02:09will notice that it allows to write text that you can put into your header, you
02:14saw that when we were talking about the layout parts, or you can use it if you
02:20have a field on screen. Anything that's text like a field label for example,
02:27you can click on it then it will automatically change to your tool, if you are
02:32in another tool here you can select it and double clicking will toggle over to
02:36the Alpha tool and allow you to modify text then when it turns back into your
02:41Arrow tool, you can move these things around on screen, if need be.
02:45Also then to the right of that, you see your Line Drawing tool. So if you want
02:50to add some visual effects to your screen, you can see that you can create
02:55lines and move these lines around and stretch out the sides if you want to, the
03:02ones that I have actually drawn on screen. So something that if you are
03:06developing some pretty custom interfaces, you might want to use that and in
03:09addition, you have the Rectangle Drawing tool and a Rounded Rectangle drawing tool.
03:16If you want this to be the background for some fields what you can do is select
03:20it, this part that you just drew and go under Arrange and you have the option
03:26to bring to front, bring forward, send it back and so on. So you can use this
03:30to highlight certain groups of fields, it's a common use for these tools. And
03:35then here you have an Oval drawing tool and once any of these are added on
03:40screen, you can simply click on it and drag it around to resize it, if necessary.
03:45This tool here allows you to add either a checkbox or a radio button, sort of
03:51multiple selector field value to a layout. If you select that and then you draw
03:56a space, you will see that the Field Control Setup dialog appears and we are
04:01going to cover more of that when we get into the next chapter on formatting
04:05layout objects when we talk about formatting fields, but just as a little bit
04:08of a preview, here you would select, and if you want it to be a checkbox, let's
04:12say with ratings and then you'll see that it draws on screen, so that instead
04:17of just having a normal text field value, you can have it be checkbox, so that
04:22when you are in Browse mode, users can go on and check some of those options.
04:28So back to the quick tour, this tool here and actually you will see as I'm
04:34going to out of necessity open up the body here. This next tool is a Portal
04:40drawing tool and we will talk more about that in the Portal section and also in
04:45the next chapter we are going to talk about using tab controls and that's what
04:50that drawing tool there is that's a feature that was new in 8 and a feature
04:54that was new in 8.5 is the Web Viewer setup which we are going to talk more
04:59about in the Web Viewer chapter.
05:01Then finally if want to draw a button, and a button is something that you can
05:04assign either a script step or a script too and if you want to learn a little
05:09bit more in any one of these dialogs you can just click on the Learn More link
05:12which is a new feature in 9. A lot of these we are going to get back to in the
05:16later chapters but just as a brief idea of what some of these tools are and you
05:19saw me using this one, if you want to put fields on your layout, you can either
05:23do Insert Field, Part Object, all these different things that are also
05:28representing here as tools, or just an image can be inserted, the current date,
05:34time, user name or symbols or another type of field is a Merge Field and
05:39that's similar to what we were using when we were making envelopes and labels and such.
05:45But if you want to draw a standard field, you just click and then drag and then
05:50release until the Specify Field dialog pops up and you can then choose which
05:57field do you want, from which table or which related table and determine
06:01whether or not you want the label to show up. Then once that field is on screen
06:05you can drag and create any different size of the field that you would like to
06:09and the same is true for the part and if you remember when we were talking
06:12about the parts, I just click down, drag and release and the Part Definition
06:16dialog will appear in that case.
06:19Here are some of the tools for picking fill colors and the fill style and also
06:25when you select a field and we will talk about these more in the next chapter
06:29on formatting layout objects but that's what these tools are here. A couple of
06:32tips, when you click on an Object tool, and you select it, you will notice that
06:35when you are done using it and you release it, it always reverts back to the
06:40arrow. If you want to do a bunch of let's sat text area, or draw a bunch of
06:43boxes on screen, you can lock this selection by double clicking it.
06:47So if I double-click on it, you will notice that it's now selected and I can
06:52add some text here and I'm still in Text mode, so everywhere I click I'm able
06:57to do text until finally I click on that again or click on my arrow again to
07:03release it, or I can press the Esc or Enter key to click on the Selection tool
07:08and unselect. So when it's locked I can hit Esc and that will unlock it for me.
07:12So lot of those things can be done on the keyboard and if you press the Enter
07:16key when I have no object selected on screen which I will do right now, this
07:20will cause the most recently used Object tool to be reselected. If I want to go
07:24back to something that I don't have selected and I have no object on screen, I
07:29can just click on the Enter and it will revert back to whatever that last tool
07:33was. Another tip, as it pertains to working with the parts is if you click on
07:38the part label and choose a fill color it will change the color of the entire part.
07:44So that might be useful to you if you want to change the background color of an
07:48entire item and then have something transparent laid on top of it for example.
07:52Drag selecting when you are in the Arrow mode over many different objects will
07:58select all of those objects at the same time. So if you want to select multiple
08:02objects you can use the Drag Select and Ctrl or Option dragging if you are in a
08:10Mac, Ctrl dragging, you see if you just simply drag something on screen it will
08:14move the location but if you do an Option+Drag on Mac or a Ctrl+Drag on
08:20Windows, it will allow you to create either an exact copy or the exact same format.
08:26So if you want to have a bunch of fields on screen that all share the same
08:28format, just Ctrl+Drag or Option+Drag those in each one of their positions.
08:33Those are some tips and tricks and some useful things as it pertains to some of
08:37the tools in Layout mode and in the next movie we are going to work on
08:40arranging and grouping and locking layout objects and then we are going to take
08:44all of these tools and all these tips together and then in the next chapter
08:47we are going to work on formatting layout objects, so we can bring together a nice
08:51layout for creating a new interface for our database solution.
Collapse this transcript
Arrange, Group, and Lock layout objects
00:00The last set of features that you will want to become familiar with before you
00:03start designing layouts are a combination of the ability to arrange items on
00:07the layout or group or lock and size different items as well. We will also deal
00:12with some of the alignment. I'm going to do a quick tour of all these different
00:15functions using the exercise file, found in the Working with Layouts,
00:20Lucky_You_08_01 and we are going to open up to a layout that's called the
00:25Customer Detail layout and we are going to go right into Layout mode and
00:31a couple of things to just quickly make you familiar with.
00:34So when you are working with layouts... We have already looked at the Layout menu
00:39where we looked at creating new layouts, duplicating, deleting, navigating to
00:43different layouts, your layout setup and your part setup, even your layout
00:46order and now we are going to look in the Arrange menu. So the first thing that
00:52we are going to work with is arranging objects and in Layout mode you can Group
00:56any combination of objects so that you can edit or move them altogether.
00:59So for example, if I have all these pieces, all these navigation pieces and
01:05instead of working with them independently I would like to group all of them
01:09together. I can drag-select and under Arrange you will see that now either
01:14Group, Ungroup or Lock options are available. So now instead of this being
01:18about a dozen or so different elements, it's now one big piece that I can
01:23either copy and paste, or move around all over my layout.
01:26So if I have got something that I'm going to reuse and port around to multiple
01:30layouts, it's always a good idea to group those together so that things don't
01:33move and that you have consistency from layout to layout. In addition if
01:37something already is grouped, you can click on it and go under the Arrange and
01:42click Ungroup where you can then make some modifications, possibly move things
01:46around if need be and then go back in and once you have one or more objects
01:51selected, you can go and group them.
01:54Now you can group grouped items together until you have just one big large
01:58group if it makes sense. So for example I could go into each one of these
02:02pieces and group all of them as my navbar and I could move this navbar around
02:09all over the application as necessary. If I have assigned actions or scripts to
02:13this buttons, I don't kill the scripts when I get into Browse mode, by having
02:17them grouped as you will see, as I roll over, I could go into Find mode if I
02:21want to or log out or change over to List view or whatever it is that I would
02:25like to do.
02:27Another tip in addition to grouping objects like I have done here, here I will
02:33ungroup those and ungroup this one. You can see you can Group and Ungroup as
02:37necessary until finally you get down to the very core elements. Sometimes when
02:42you are ungrouping or when you are Grouping something, it will say the selected
02:45group of objects contains at least one button, Ungrouping them will delete the
02:49button and definition.
02:50So what that means is that even though the text for New and the icon for
02:53creating a New record are Grouped together, in this case they are grouped
02:57together and then a Script button, Format, Button Setup has been assigned to
03:02them. So what the message is telling me and FileMaker helps me manage this but
03:06it says if I Ungroup these I'm going to break the script because there is no
03:09longer one item that that script steps or that script is assigned to.
03:12So you got to be a little bit careful about that but the FileMaker does a good
03:15job of managing these things for you. You can also change the stacking order of
03:20something that you draw on screen and a good example of this would be if I have
03:24a series of fields and I would like to separate them out from the other fields,
03:28like let's say I would like to have the phone numbers separated from all the
03:33other elements, I could in this case, let's say take my Drawing tool and draw a
03:39little box around all of those and I could position it but what's the problem
03:43here, well I'm masking everything behind it.
03:46So what I need to do is to go under the Arrange menu and work with anyone of
03:50these four selections here that allow me to either move this piece that I just
03:55created, either forward or backward in the Layers. Now these Layers that I'm
03:59talking about there is an order to everything based on when I put on the
04:03layout. So the things that I put on the layout first if I never move them
04:07forward or backward are going to be in the furthest back and as you see since
04:10this is the last item that I created on screen, it's the furthest forward.
04:14So obviously what I want to do is move it in the stacking order behind those
04:17fields so that I can see the fields. Well the way that I can do that, we have
04:21got a couple of different options here. In order to move it to the most forward
04:25facing layer, I would say Bring to Front, but as we see this one is already in
04:28the front. The opposite of that would be to move it to the very back layer
04:32which is sent to back and you see here I have sent it all the way back, so that
04:37the fields are now in front of this layer.
04:41So now it works really well as a separator for the phone fields, and all I did
04:45was actually move it a little bit further back in the stacking order. You can
04:49actually sort of finesse this a little bit too by doing Send Forward or Send
04:53Backwards just as one layer at a time. So if you have multiple layers that you
04:57are working with and you just want to find exactly which layer it needs to be
05:00in you can now either send it all the way to the front or all the way to the
05:03back or forward or backward one layer at a time.
05:06In addition you can rotate different items, any object that I have on screen,
05:11let's say we group the List View button and you don't have to group something
05:14to rotate it but just for the sake of this example. Now you need to be in
05:17Layout mode of course to rotate anything and you want to select the object
05:21first. Go under Arrange and to rotate and you see that what it will do there is
05:27rotate the object 90 degrees clockwise and to rotate the object or any objects
05:31further choose Arrange and Rotate again.
05:35So this is good if you have not necessarily for anything with text because you
05:39can see it might be a little bit cryptic. Okay I would take at drawing and I
05:43have this element here. Let's say we changed the fill color. If I have got this
05:54up on the top let's say since it is rotating 90 degrees it is going to rotate
05:57down this way. What I can do is rotate this piece and move it over here and use
06:05it as a side object instead. So just an example, I mean you can rotate
06:09absolutely anything but that's just an example of some of the things that you
06:12can rotate.
06:13Now if you look on this layout one of the first things that pops out at you is
06:17we have got a bunch of fields on this layout but they do not look
06:19professionally organized. You see that they are not in a straight line. They
06:24are not equal on the edges, what you can do is select the object and use your
06:28arrow keys to move them down, well couple of pixels at a time or select all of
06:34the fields and then use the Align property. But before I show you that, here's
06:38a really important tip because one of the things that happens all the time is
06:41if I'm trying to select all these what I try to do is Drag+Select, but since
06:46they are layered on top of this element, this Tab control element in the back.
06:52I need to make sure that this Tab control element doesn't move and this happens
06:56quite a bit when you are trying to select fields or move things around and if
06:59you have got something precisely done, exactly like you like it, what you can
07:03do is select it and hit Lock and now I can work within it as if it's the part
07:09of the layer. Let's say I want to align these two fields together, what I have
07:13done is I have selected both of the fields and under the arrangement, you will
07:16see, underneath Rotate now I have got a couple of different Alignment options.
07:20I can align the left edges, I can align the centers of all the fields if the
07:24fields happened to be of different size. I can do right edges top, middle and
07:27bottom, but let's align our bottom edges because the fields are the same size
07:33and we see that now they are precisely in the right spot. But since I'm happy
07:38with that location, I can go in here, select those by holding down the Shift
07:42key, go in and Lock, the back area is not moving, these fields aren't moving
07:47and now I can use these as anchors to lineup these other ones, because now that
07:50they are locked they won't move.
07:51Even though I can select them and I'm holding down the Shift key and selecting
07:55all these fields and what I'm going to do now is lineup the left edges and
08:00since one of these is Locked it is going to act as my anchors. So I will say
08:03Align, Left Edges and sure enough that looks really sharp, I have aligned all
08:09these left edges and everything looks really good there. Also you see that I
08:15have got three of these in a row, there is also a way that you can align the
08:19left edges and you can also distribute horizontally.
08:23So for example what I want to do is fill in the white space in between these
08:28three and in this case they actually happen to be sized pretty well but if they
08:31were off a little bit like this, could say distribute vertically and you see
08:39what it has done there as its evened out the white space in between all these
08:43fields, so that's very helpful for me. Again just to look at these, I can do
08:49the left edges, I can do right edges, I can do centers if I want to, but the
08:53other thing too is if you notice, this field is a little bit shorter than this
08:57field and this field is shorter as well.
08:59What I would really like to do is make them all, let's say the width of this
09:02home field, well that's where this object info palette comes into play. Anytime
09:07you select an object you see how all these numbers change and what it's doing
09:11as it is giving me pixel readings and I can click on where it says Px to have
09:16it changed to be the centimeters, or inches but pixels is the most common unit
09:20for any designers to use. So we are going to use pixels and we see that this is
09:25how many pixels it is from the left edge of the screen. This is how many pixels
09:28it is from the bottom and then reverse sides and top as well, but down here are
09:33the ones that we are going to want to use, we see that this field is exactly
09:36294 pixels long.
09:39So if I select all of these fields and I say 294 and press Enter, now the width
09:51of the field the longest field is 294 and I can pick this one and say 294, 294
10:03and finally 294. Now we have got everything perfectly aligned and all matched
10:09up nice and neat. So in review under the Arrange menu we are able to Group or
10:14Ungroup objects and we can of course assign scripts to those grouped objects.
10:18We can Lock or Unlock objects, so that they can't be accidentally moved on
10:21screen or even do that temporarily while we are designing a layout.
10:24I can work with the order of items that are stacked either bringing them all
10:28the way to the front, all the way to the back of the stacking order or forward
10:32and backward. We can also rotate items 90 degrees clockwise at a time and align
10:36either fields or items. By the way we could have done the same alignment with
10:41these buttons or these edges right here. So if I didn't like how this one was
10:46off to the side a little bit and let's say these were locked and I want to
10:50line these up, well I can pick this one and select that as well and do an
10:56alignment of, in this case we will say, right edges and you see it moves over
11:00just perfectly enough so everything is lined up.
11:03Then finally the ability to distribute either objects or fields. I can use my
11:08Object palette to resize them appropriately also. The combination of arranging,
11:12grouping, locking and resizing objects finishes out all the toolset for us so
11:17that we can start building our own layouts and then the next thing that we are
11:20going to look at is being able to put different text on screen and working with
11:24graphics and formatting some fields and assigning some of the random behaviors
11:28and that's coming up in the chapter on formatting layout objects.
Collapse this transcript
9. Formatting Layout Objects
Text formatting
00:00In the previous two chapters we have been talking about creating layouts,
00:04manipulating some of the preferences for the layouts, working with parts and
00:07such and aligning some of the objects that are on screen and there are couple
00:12more things to review so that you the full suite of exposure, so that you can
00:15start developing your own layouts inside FileMaker, and that is involving
00:19formatting things like text and graphics, the non-field objects or things that
00:25you cannot create with the drawing tools within FileMaker layout design.
00:30And this movie is going to cover placing text on a layout and how to format
00:35that text and some of the options you have available to you. So we will start
00:38by opening up the 09_01 Lucky_You_ Tours exercise file, and we will go to the
00:48TPS Report layout, view that in Layout mode, and you'll see what we have on
00:55screen is a bit of text.
00:56Now before we get started with that, you should know that in FileMaker you can
00:59add text to a layout and of course it makes your layout easier to use and
01:03understand and you could text for things like field labels and we saw that in
01:09some of the previous chapters. When we pick a field and drop it on there,
01:12we can also see the layout and that just becomes text that can be manipulated in
01:16any way that we find necessary. And also we can use it in column headings, if you
01:22recall when we were working with layout parts and we put some text in the Title
01:25Header and then the Header of certain reports, we could spell that out and give
01:30our report a title or label.
01:33And also I can just type in text and say, give my users some instructions. For
01:41example here I could say, "in order to add a record please, blah, blah, blah,
01:45blah, blah." So I can just type right in there and then you will see that in
01:49Layout mode. And also you can do things like letters and I can insert things
01:55like the current date and time and that type of thing. So there is a lot of
01:59ways to get text on to a layout and a lot of ways to use text in a layout.
02:03But once that text is on a layout, there are some things that we can do to manipulate
02:07the text and I want to introduce you to what some of those tools are.
02:10So, you see here that I have got TPS report, but if I wanted to start from
02:14scratch, I could click on the tool here and type in TPS Report and what this is
02:22serving as in this example here, what I'm doing is I'm adding some text to --
02:28it's going to serve as a cover letter to a report or a list of individuals and
02:32so what I have done is I have actually stretched out the title headers, so when
02:35I print this out, the very first page is just going to be whatever we design here.
02:40So I have placed some text on the layout here, and if I select the text or if I
02:45double-click I can change the text that's inside here and there are also some
02:51other tools, that are available to me most of which can be accessed by either
02:54Ctrl-clicking in Mac or right clicking in Windows and you can see that we have
03:00got some options here for formatting the text. And you can also get to that by
03:04going under the Format menu, and choosing Format Text, and if you don't have
03:12any text chosen, if you do Format Text, it's going to change whatever the
03:16default is, so the next time that I put some text on this layout, it will show
03:20up in whatever way that I indicate here.
03:23I will go to the Text Format, and let's say that we want to use a different
03:26font, we just click on the font, and we can pick anyone of the fonts that are
03:30loaded into our application. So we will pick Century Gothic, and I can
03:36manipulate the size of the font as well, and even the color, let's go on and
03:42give this a different color and I can apply some style to it, and also a little
03:47bit of Superscript and I can also manipulate the alignment, you see that the
03:53text here is all the way to the left of this text box, and the aligned text
03:58underneath Format, I can center it, and let's say I want to make that font size
04:04just a tad bit bigger.
04:09There is our TPS Report. We can manipulate the style, let's say we give it some
04:14Italic as well. Line Spacing if had multiple lines, orientation and then of
04:21course the color. Now that I have got this text on screen, the text area can be
04:26manipulated just like an object. So for example, here I could click on my fill
04:33color, and now I have got a nice centered text with background color applied
04:43and since this text is an object I can also apply some border effects and I can
04:50pick a matching color for that border line and maybe I want to make that a
04:56little bit thicker, a little bit more thin. So you see the different options
05:04that I have available.
05:05Now, I'm placing the text right on to this layout. All sorts of things that we
05:10can use text for, but you see that really the sky is the limit. If you can
05:14manipulate the fonts, the size, the style, the way you are aligning the text,
05:18the space in between the text, the orientation, and also any kind of
05:24specialty styles here as well. And if you have a large area of text, you can
05:29manipulate the way that the paragraph works, so you have indentation control,
05:33line spacing, and alignment.
05:35So the next thing that we are going to look at doing is adding a graphic or an
05:39image to this report and I can show you how to place those images on this layout.
Collapse this transcript
Placing and formatting objects and graphics
00:00In addition to adding text that doesn't appear inside of FileMaker fields to
00:05your layout, you can add graphics that are not inside of a FileMaker field that
00:09like a container field. If you want to add graphics to a record, you can create a
00:15container field and then insert an image, or a movie, or sound, into your
00:21layout record-by-record that way, but if you just want to have one static image
00:26as part of your layout design-- In this case, we have got a pretty simple cover
00:29sheet for a report that we are working on here.
00:32Let's say we want to add a logo, let's use the example of adding a graphic of a
00:35logo, which is pretty common. People add those to their reports, or layouts, or
00:40fax sheets, that type of thing. There are a couple of different ways that you
00:43can insert graphics. If you are not inserting them as a container field, you
00:48can insert them by going under the Insert menu and you can choose Insert
00:54Picture. And if you want to play along at home, you can go to the
00:5909_formatting_layout directory, click on logo, hit Open, and now we have got a
01:07logo that we can drop on screen. You see now this logo becomes an element that
01:12we can resize if we want to. Of course, if the resolution of the image permits,
01:18we can place it anywhere on screen we'd like, we can layer it with other objects.
01:29And let's say here we are just going to place it right down in the middle. Now
01:34there are a couple of things that you might not have noticed, but if we go
01:37back, and we go into Insert, one of the options that we have, much like when we
01:42are working with putting an image in the container field, actually in the exact
01:44same manner. When I choose this image, I can choose to store it only as a
01:49reference to the file. Now when you select store only reference to the file,
01:53FileMaker doesn't actually import the graphic file, instead it only keeps track
01:57of where it is on your hard disk.
01:59Although, storing as a reference will not add this file size. You can see in
02:03this case this is only a 4k file, but if you have a higher resolution image
02:07that you want to work with, it will increase the size of your file, really
02:11there are a whole heck of a lot images that makes sense to place on a layout
02:14that are going to impact the size of your file so much, that you are going to
02:18have performance issues.
02:18But if you have a special circumstance that requires that, you can say store
02:22only a reference to the file, but the moment that this path to this file on my
02:27local desktop changes, or if I publish this on a layout, and people don't have
02:30the same directory structure, and path structure, they are going to see a
02:33broken image.
02:35So what I would recommend instead is to not check store only a reference to the
02:38file, and then drop that image on the layout. Once you select the file, the
02:45graphic appears in the document, and then I can position and size the graphic
02:48on the layout as needed, and you saw in the previous movie how we were aligning
02:54images, we can do the same thing here. I can also lock the position so that I
02:59can't make any changes to this, because it's locked, and if I select and hold
03:03down my Shift key and select both of these, I can go to align, and let's say,
03:10centers, and that moves the logo to the very middle of the screen in full
03:15alignment with the TPS report, text area that I created.
03:20Now a couple of notes on putting the images into your layouts, you can insert a
03:24graphic via copy and paste, by simply copying it from another application, and
03:29then coming into this layout and pasting it. If your system has other
03:32application support, you can take advantage of quickly bringing graphics or
03:36movies from another application into FileMaker, by dragging the object from
03:39another application window, into the FileMaker window, but only if you're OS
03:43supports that.
03:45On a Window's machine, when you click on this Windows menu, you will see an
03:49option for Object, and that will allow you to insert an OLE object into your
03:54layout. But graphics can be used for any logos, for adding a little bit of
03:59personality to the design of your page, or one of the common practices is
04:03scanning some elements that you want to trace, and throw it on the background
04:08of your image, laying a bunch of fields and some objects on top of it, and then
04:11deleting that background image that you were tracing, thus emulating that image
04:16within FileMaker and dynamically with fields.
04:19So now that we have looked at working with text on a layout, in really just a
04:24simple fashion. There is a lot more that you can do here. Now that we have
04:26looked at placing images and graphics on a layout, we are going to focus now on
04:31the next movie on formatting fields in their field's contents and applying
04:35field attributes to different fields.
Collapse this transcript
Formatting fields and applying field attributes
00:01In recent chapters we have been looking at formatting and the layout,
00:04formatting graphics and images and some of the different configurations on
00:08layouts and layout parts and how to design a layout. And the only thing we
00:12haven't yet covered is the formatting of fields and the formatting of the field
00:18values as they appear on a layout and that's what we are going to cover in this movie.
00:22So we will start by opening up an exercise file in the 09_formating layouts
00:33exercise folder. Lucky_You_Tours_09_01. And right away we will navigate over to
00:38the Trip Detail layout and take a look real briefly here in Browse mode that we
00:43have got a series of different fields and some of them have numeric values and
00:47some of them have currency and date, and some of them are just text and they
00:52have these interesting dropdowns and such and some of them have some effects here.
00:56Well, if we go on a Layout mode, we are going to take a look at how we do that
01:00and to make these all consistent. So we see that there is a cool kind of drop
01:03shadow effect on this one field and a couple of the things that we have control
01:07over, any one of the fields we can select and we can give it a fill color.
01:12That's what this paint can is, is it gives us control over the fill color of
01:16this field and in this case we just wanted to be white because we already have
01:19a colored background, but we could certainly change it to any one of these
01:23background colors if we see fit. In that case to remove what I just did, I just
01:28did Ctrl+Z, which allows me to remove the formatting that I just chose.
01:34Now this next one here is the Fill pattern and I have to say that all you will
01:38ever want to do is either choose this one or the one here and this one means
01:42that it's going to have solid background or whatever color that you pick, the
01:46text will appear against that color.
01:49If I choose this option, it's going to appear transparent and go all the way
01:53through to the color in the background of the object that happens to be in
01:57front of. So I would contain that you can just focus on either having a
02:01transparent background or a fill background and then you can choose the color
02:05of that fill right here. And the currently chosen color appears in this box.
02:09Also though you will notice in this next box over we can apply either
02:13embossing, engraving or drop shadow. Right now we have got drop shadow, but
02:17let's take a look at what engraving looks like, if we toggle back over using
02:21Ctrl+B or Apple+B into Browse mode, we can see it's got a real -- kind of a
02:25cool sunken effect, toggle back into Layout mode and choose this and let's take
02:31a look at what Emboss looks like. We will go back into Browse mode, save our
02:35changes, and you see that embossed has kind of a raised effect to it.
02:39So there are three different things that you can do to try to give some
02:42interesting effect to your fields, so we will keep it on Drop Shadow, but now
02:47let's make all the rest of the fields consistent as well.
02:50We will pick country, focus, price, capacity, start and days and I can do
02:57multiple clicking by holding down the Shift key while I select these objects,
03:01and just simply go in one time sort of having to do them all one at a time,
03:05just going once and select Drop Shadow and make sure that everybody also has
03:12the correct Fill pattern and this Drop Shadow size can be manipulated, for
03:18example, by going down here with the line. Now this is similar here, I can pick
03:22a Line Color and in this case we just want it gray, and here's where all the
03:28colors are that are available to us. So we've got a gray that's chosen right now.
03:33And it's the same thing here. We can have a pattern in the Drop Shadow or we
03:36can have a transparent line or drop shadow but really 99% of the time for the
03:41lines, you are going to have it stuck on the second position here. But what you
03:45might want to control is the thickness of the line, and in the case of effects
03:49you see that if we toggle over to Browse mode, we can have a really severe Drop
03:53Shadow effect for the field and toggle back or we can tone that down just a
03:59little bit and go back to the two-point version.
04:02So in addition to managing the effect here, you will see here is a field that
04:07doesn't have an effect, and I can also effect the borders by right-clicking,
04:10and going to Field Control Borders and I can choose a thicker border if I would
04:18like, I can apply borders to the top, bottom, left and right if I'd like to,
04:23and I get a preview of what that field would look like, but we are just doing
04:27an experiment here showing how you can effect the borders of the field so that
04:30they show up in Browse mode, but we won't actually apply any of those changes.
04:34Now in addition to being able to apply drop shadows and effect borders and the
04:39fill colors and patterns in the background, and whether it's transparent or
04:43not, that's how we are manipulating the formatting of the field and the
04:47background of the field and the field itself, but we can also do some things
04:51that are specific type of the field that it is as well.
04:54We have got a couple of Date fields here. Let's select both of these Date
04:58fields and go on under Format and depending on what kind of field this is
05:02defined as, in this case these are Date fields, so we've got either a text
05:06option or a date option. The text option if you remember in the previous
05:10chapter, we can just affect the way that the text actually looks, but going
05:13under Date brings up a window where we can select the Date format for the
05:17selected object in this case the field. This way we can change the way that the
05:22date looks, no matter how the user enters the date into the field, we can
05:25select any number of different ways to display those values.
05:29So right now, if we look into Browse mode, we will see that even though it was
05:38entered as 7/11/2006, it automatically brings in the day and the date and so
05:44on, but in the interest of space, we will go back here, go under Format - Date
05:50and we will just pick either format as entered or we can change it to December
05:5825.
05:58And now if you don't want to keep toggling back and forth in order to see if
06:01something fits, you can also go under here and here is a little tip, View -
06:06Sample Data, so you see in this case, we are going to need a little bit of room
06:14to fit these in the format that I have chosen, so we will go in here and then
06:18we will toggle back over to Browse mode, and we see we have got the months, the
06:24day, a comma and the year formatted.
06:26So that's the same as true for numbers too, if we click on Price, this is a
06:31Number field, so if we go under Format to Number, you see that now number is
06:34available because it knows it's a Number field. We can have just a general
06:38format. Leave the data formatted as entered and also boolean where non-zeros
06:42are Yes and zeros are No which is not as useful to your users, or in this case
06:47this is actually a currency.
06:50So we can say, we can effect the number of decimal places we have, and since
06:54this is currency, we will give it to the standard two decimal places to the
06:58right of the decimal, and we can indicate whether or not this is currency or a
07:02percent and if we say it's a percent, it will give us a symbol afterwards but
07:06this happens to be currency and there is the symbol that we are going to use,
07:10and we can also go in and say either don't use thousand separator or use the
07:15thousand separator. All the while you see here, that the value is being
07:20previewed of us and also we can do a bit of conditional formatting we can say,
07:24if it's a negative value make it red, so we will go in and will apply all these
07:29and will stretch out field to accommodate, and so now you see that these
07:37currency field even not centered, it's just 1200 gets a dollar sign, a comma
07:42separator and some decimal points here. Just some examples of some of the
07:45things which you can do with dates and numbers. There are also some options for
07:50Time fields.
07:52In addition, there is an interesting new interface component that you can apply
07:55to a Date field, and we will look at that right here, and if we do a
08:00right-click or Ctrl-click and we go into Field/Control Setup, you will notice
08:07that we have some options that how the fields are displayed. We will cover this
08:10a little bit more in the value list section, but the one that I wanted to show
08:14you here because these are dates, is this cool dropdown calendar and what that
08:20looks like when we go in Browse mode, it's when a user clicks inside here, you
08:26get a formatted date calendar and you can go and pick any one of these dates,
08:32and this happens to be a calculation, so really the only one we can effect here
08:37Is the first one and in if it's not apparent that they can use a date-picker if
08:41you go into Layout mode and select this, Field/Control Setup, dropdown calendar.
08:50Include icon to show and hide calendar. So what that means is it puts a little
08:54calendar icon there.
08:57So when the users are in there they say, oh, well, I can use the
09:00calendar picker instead. These are very popular online and now you can integrate
09:03these by just doing a couple of button presses there. You can integrate it into
09:07your FileMaker layouts as well.
09:10So the next thing we are going to look at is a new feature in FileMaker 9,
09:15which is applying conditional formatting to objects on a layout.
Collapse this transcript
Conditional formatting
00:01This next feature is brand new to FileMaker 9 and it also involves formatting
00:05the text found inside of a field and also the field itself. This one is pretty
00:10cool though. It does it conditionally and it is called conditional formatting.
00:14We will take a look at that by opening up our example file,
00:1909_formatting_layout, open up the 09_01 file and this time let's navigate to
00:27the Customer table and what we have here in the Customer table is obviously a
00:33table that we have set up with a couple of different fields on here and what we
00:37got is a field with the name, a home state, and a trip count and some trip
00:44spending, which we can open a little bit.
00:48So what we have is a dollar value that these individuals have spent and what we
00:52can do is conditionally show different colors of the text or the field itself,
00:57based on how much they have actually spent. So how do we do that? First, we go
01:01back into Layout mode and this is a lot like Excel, if you have worked with
01:05Excel before and understand conditional formatting, the exact same principles apply here,
01:10but if you haven't, let's take a look at this.
01:12So we have got trip count and the way that you can access the conditional
01:17values is in one of two ways. You can either go under Format to Conditional or
01:22you can right-click on the field if you like. The other I would recommend and
01:25that's helpful in this environment is, selecting your fields and go under Show
01:30and then Sample Data, that way you can see some of the conditioning applied as
01:35you are working with it and I'm going to right-click now in this case and you
01:40will see conditional formatting.
01:42Let me just take you quickly over what some of the options are here. First you
01:46can have as many different conditions apply as you like, and once you have
01:50multiple criteria, you can sort them, you can see moving them up and down in
01:55the list just like anything else in FileMaker where you see these double arrows
01:58you can move them up and they evaluate from the top down, so they keep
02:02evaluating as long they hit a true statement.
02:04Every time they hit a true statement, it evaluates and it will eventually stop
02:08at a false if the value does not apply, because there will be no condition that
02:13applies. So it always applies on a true. So if you think in sort of a boolean
02:16fashion here, if this is the case then the conditional formatting will occur.
02:22You can add and delete and in this case we will delete that, and instead of
02:26deleting something, I can just uncheck it and will leave that condition in there.
02:30But FileMaker has also done a really good job of adding, so you don't have to
02:33do lot of math, that has added a bunch of interesting ones here, on this
02:37dropdown list, you can do in between a couple of values not between equal to,
02:42not equal some pretty standard ones there containing and beginning with. Also
02:46for date fields before today, today, after today, more than x days passed, more
02:51than x days ahead. Great for scheduling, great for shipping dates and great for
02:57invoice passed due amounts, some really cool built-in features that which you
03:00don't have think too much about.
03:02But what we will say here in the trip count is, let's say the value is equal to
03:07and we will just put zero in here. Then we are going to say that, let's say the
03:14fill color will turn to -- let's make something really subtle. I will just make
03:20it a little bit of a gray hue, how's that, so if it's empty, then it will be a
03:24gray color, but if the trip count is, let's say, greater than -- let's just say
03:32ten. We will make the text color green, because we are excited about that and
03:38then we will make it Bold as well.
03:40Also we have some additional formatting options if you would like to, you can
03:44do point Size and different fonts and all that kind of stuff. It's really cool
03:48which you can control here. Let's go in and preview this though. Let's go into
03:52Browse mode, save our changes first and interestingly what we have here, if you
03:58look actually, it will probably be more helpful. Here is all the empty ones and
04:01they show gray and if we scroll all the way down at the bottom and see if
04:05anybody has got more than ten, here is one that's ten and it shows up in bold, green.
04:10So kind of fun formatting there, now let's say -- let's go back to this next
04:15one, let's say that we are located in California and we always want to know who
04:18the California clients are. So we will go in here, apply some conditional
04:23formatting and we will just simply add if the value is equal to CA. Then we
04:34will just simply make it Bold, and we will take a look at this one. First we
04:38will save our changes and there is a couple of California, so it might make it
04:43easier for us to spot some of these individuals in line, and then finally let's
04:48do one with some multiple criteria and have some fun here.
04:50So here is the Trip Spending. In the previous movie, we looked at adding,
04:55formatting some numbers, let's say that this is currency and we want to track
05:04people. Let's say we are evaluating whether or not we are going to do a
05:06frequent buyer club and we have got a platinum, gold and bronze level. Let's
05:11apply that color to our fields, so let's say we will add our first one, if the
05:18value is between let's say 0 and 499, then we will say that our text color is
05:29going to red, just because we might want to highlight them as someone who is
05:33maybe new or that they are not a candidate for or frequent traveler.
05:39To add another one now, where we say if the value is between 500 and let's say
05:475000 actually, and let's do some fill color here, just we will say that the
05:58fill color is bronze for our bronze club member and if the value is between
06:055000 and 10000, then our fill color will be and we will say gold. Let's go to
06:15gold, that looks like a good gold right there and we will add one more for our
06:23platinum level, if the value is greater than 10000, then our fill color will be
06:31some kind of sharp fancy platinum. We will also make the text Bold.
06:39So let's take a look, see if our logic applies, we will go under Browse mode,
06:45and then it will be easier for us to see this when we sort. So there are no
06:49values here and here's some red zones just below $500. Here's our bronze level
06:54members, everybody under 5000, and now we get into our gold level members,
06:58everybody between 5000 and 10000 and here are platinum level members all the
07:04way in excess of $10000.
07:08So some fun things that you can do there and this again is brand new to
07:11FileMaker 9, so you can really have some fun with it. If you wan to know a
07:15little bit more about some of the stuff that FileMaker has built-in like the
07:18containing, not-containing, beginning with, before today, just check out the
07:21FileMaker Help and you will be able to find some more specifics on these.
07:25A couple of things that might be interesting for you to know, you can set
07:29conditional formatting on the following layout objects, not just fields, but
07:33you can also include external ODBC data sources, text merge bills, layout
07:39symbols like date, time, page numbers, record numbers and so on, text-based
07:44buttons, web viewers, conditional formatting, however is not available for
07:48non-textual objects such as rectangles or circles or ovals and that type of thing.
07:53So really the sky is the limit here. Beyond just field values and fields themselves,
07:57imagine what you can do with web viewers and all these other kind of
08:01interesting things that you can affect with conditional formatting. And just so
08:05you know, in this case if I were to export these values out, my conditional
08:10formatting does not follow with the data when I exported it. It's actually
08:13something that the field or the layout object has applied. So if I import
08:17data into this field, that will certainly apply conditionally but if I export
08:23it out into another field, the values are not going to follow it so to speak.
08:26So definitely have some fun checking out this brand new feature within
08:29FileMaker 9, the conditional formatting.
Collapse this transcript
Field behaviors
00:01In addition to controlling field formatting, you can also control field
00:04behavior. We are going to take a look at controlling field behavior by opening
00:09up our exercise file Lucky_You_09_01, move into the Adventure Detail layout and
00:21now switch into Layout mode.
00:23What we will notice by right- clicking or hitting Format Field/Control or
00:28right-click Field/Control, we will see one of the option is Behavior. There is
00:34a field behavior for whatever the field name was and it allows us many
00:38different options on how we can control how this field behaves.
00:42The first of which is, if we go back into Browse mode, just to show it in a
00:46sort of real world example, here we have the ID of the field and we don't
00:50necessarily want anybody to be able to go in and change this value, but we do
00:55want them to be able to search on the value.
00:57In past versions, we could just not allow access to this field but then you
01:02wouldn't have access in Find mode either. Well to solve that issue, if we toggle
01:07by going Ctrl+L or Apple+L into Layout mode and select Behavior, now I can say
01:14I don't want it entered in Browse mode which means it can be read, but not
01:18edited or changed or deleted or anything like that. But it can be accessed in
01:22Find mode where we can just enter into the field and enter search criteria and
01:26find all the matching IDs. This way our ID value is totally protected.
01:31Some of the other options that are available for field are to select the entire
01:35contents of a field when entered. So if this is a field that frequently
01:39changes, in this case it is not, but if we have a field let's say that may
01:46change frequently and we want to, when we tab into it, instead of just having
01:52the cursor placed in the field, the entire contents of the field will be
01:56captured in that way a single keyboard click will delete all the previous
02:01values and overwrite if necessary.
02:04You can also control setting the input message to Synchronize with the field's
02:08font. So what's happening there is each field has, for example this one has
02:14Verdana 14 point associated with it, but I could still go in, in Browse mode
02:20and paste in some data that I got from another source that wouldn't be Verdana
02:2414 point font. I will go back in the Layout mode, back into our Behavior
02:29dialog. But if I set this input message to Synchronize with the field's font
02:34then upon pasting the value into the field, it will actually synchronize it so
02:38that it looks nice and clean on the layout.
02:41And this a new feature here, called Do not apply visual spell-checking. You see
02:45obviously that visual spell-checking is enabled for the entire file via the
02:51File Options dialog and I go up to File Options. I will see that under the
02:58Spelling tab that I can indicate questionable words with the special underline.
03:03Now, you can right-click or Ctrl-click on the underline word much like word or
03:07maybe your email programs or any kind of word processing, similar type of
03:12thing. But if we want to control it at the field level, here is an excellent
03:15example, this field here, let's control it. In our case, we do want to apply
03:21visual spell-checking, but if we didn't, we could check this box and not see
03:25the visual spell-checking, but if we go back in the Browse mode, we will see
03:28that that can actually be quite useful.
03:30So when I click into it, it highlights a bunch of questionable words and what's
03:36nice about visual Spell-checking is that if I select a questionable word or
03:40even if I don't and it's highlighted, I get Suggested Spellings. So I can
03:45change that to derived, and this by simply right-clicking, make sure I get that
03:52there, Suggested Spellings.
03:54I don't have any of them, so but since it's highlighted I know I can go in here
03:59and what I had actually meant to type was of, O F instead of O V, and then I
04:04can just real quickly browse through all these and see that they are all names
04:08and that the rest of the data is okay. But if this is too annoying to the users
04:13or just not useful, then you can turn that off in the Field Behavior.
04:18And then the last thing that we are looking at, the last option that we have
04:22available on the Field Behavior, is Go to the next object using, this is a nice
04:27feature because it's completely platform independent. You can just choose which
04:31key on the keyboard will actually tab to the next object. So when you set up a
04:35tab order which we will be talking about in just a couple movies here. But
04:38right now obviously the tab order itself will help you proceed to the next
04:42field or the next object depending on what it is, that's set up in your tab order.
04:47But you can replace that having it be the Tab key and the Return key or just
04:52the Return key or all three of these has a possibility or just one of them or
04:57possibly two, whatever it is, and you can take some of the platform
05:02considerations into account here. It's whatever is going to be most useful
05:05to your users. But the one thing that you got to make sure of here is that the
05:09Enter key in both platforms is used to commit a record. So if you turn on the
05:14Enter key as going to the next object, instead of committing a record, you want
05:18to tab into the next field before you commit a record. So it's no longer going
05:21to allow you to commit a record. Instead users will need to perform record
05:25committing tasks like that with their mouse.
05:27So these are the different options that you have within the Field Behavior
05:31dialog. Next we are going to look at a feature that was new in 8.5; it's called
05:36using Auto-Complete.
Collapse this transcript
Using Auto-Complete
00:01One of the cool new features for data entry from the FileMaker 8.5 version was
00:07something that's called setting up a field to autocomplete during data entry,
00:12and what's actually commonly referred to as Autocomplete or Type Ahead, much
00:16like your Web browser does. This is something that was possible in versions
00:20before 8.5, but really tricky. Let's take a look at when this might be appropriate.
00:26We will go into Open, into our exercise files 09_formatting_layouts, into
00:32lucky_you_09_01, and let's go to the Adventure Detail layout. And let's say
00:43here during data entry, a lot of times people are spelling the names of
00:47countries wrong. You have got a lot of interesting country names and people
00:51don't exactly know how to spell those, and you want some consistency. Well, you
00:55could certainly have a dropdown menu, or you could add what's called the Type
01:00Ahead feature, which means if they just type in the first couple of values,
01:04some selections will pop up or they will go right to the list.
01:07A cool feature here. Just so you know, this can only be done on text fields
01:12and the fields themselves have to be indexed or able to be indexed, which is
01:17what a text field would be. If your field meets that criteria then you are all set.
01:22This is how you access the feature. Go in the Layout mode, right-click on
01:28a field or select a field, and you can go under Field Control Setup, and there
01:34are two different ways that you can apply Autocomplete.
01:37The first is in a Edit box or a dropdown calendar, and the next is in a
01:43dropdown list. So let's try the Edit box first. You see here in the Field
01:47Control Setup dialog that you can just check Autocomplete using previously
01:52entered values, and what that means is that, it's going to -- actually when let me
01:57go back in the Browse mode. I'll hit OK, we will save. Let's create a new
02:02record and in this Country, I will type in Argentina or Australia or BGU.
02:14You will see all I have to do is type in A, and what appears to be a dropdown but
02:18it's really just saying, hey, within the index we have got two things that
02:21start with an A. If I go to Au, the dropdown looking item disappears and I can
02:28just now commit the record and have it commit the Australia in here.
02:32Now there is another way that we can do this. If we go into Layout mode and we
02:38say Format Field Control, and instead of having just an Edit box, we will go
02:45to a dropdown list, and in this case we are going to autocomplete based on the
02:51values that we have defined in a value list. So we have got a value list called
02:55Country and we are going to say Autocomplete using the value list.
02:59The dropdown list displays values in a menu that drops from the field and users
03:03choose value from the menu or type values directly into the field.
03:07So we will go back into Browse mode after saving our layout changes and now we
03:12can dropdown and if we have got thousands of values in here, the same thing
03:17can work. We can say, BC, but instead now, this looks like it's the same as
03:22before, but instead in the case of an Edit box, all that it's doing is it's
03:26showing us all the other values in the field. It is showing us the index of the
03:30field and allowing us to choose from one of the previously entered values.
03:33So as more and more records and more and more different values get added to the
03:36index, there are more and more options available, but here the values that we
03:40are seeing, that we are choosing from, are actually from a value list called
03:45Country. In this case, the Type Ahead feature is working as part of a
03:50dropdown list.
03:51So we can do it in a Edit box,or a dropdown calendar as well or as a dropdown
03:56list, and the system must make a suggestion based on the value list content
04:00specified. And keep in mind again, that only fields defined as text fields can
04:05be set up to use Autocomplete. Numerical fields, date fields, or any other type
04:08of textual data can be stored in text field as well. So keep that in mind.
04:13Autocomplete is not supported in dropdown list when the value list is configured to
04:17also display values from a second field. So there is something to be aware of.
04:22Or also if it has show values only from second field. That has a lot to do with
04:26the indexing and the storage issues involved with the field index there. So,
04:32that's what's called using Autocomplete, and we are going to look at another
04:35cool layout feature in the next movie, which is a fun one to use. It's called
04:40creating and using the tab control feature.
Collapse this transcript
Creating and using the Tab Control feature
00:01One thing you may have noticed in a lot of the example files throughout this
00:04title is that they all contain some tabbed interface or some sub-tab interface
00:08depending on what your terminology is for that layout effect. We will look
00:13inside our exercise file that can be found in 09_formatting_layouts,
00:19Lucky_You_Tours_09_01, and we will navigate over to our Adventure Detail.
00:25Actually you can see in several of these examples, we have got a Tab Control
00:30feature on almost every detail. These are great because we can save a layout
00:35space, we don't have to scroll down and we can contain everything into one
00:39layout area. You see Customer Details has all sorts of different information in
00:44here, all accessible by clicking on one of the tabs. This isn't something that
00:49is new to FileMaker. A lot of developers have been creating tabbed interfaces
00:53for quite some time.
00:56In previous versions, what you have to do is create a layout that looks just
01:00like this one, but one that is for Contact tab and then create another one just
01:05looks like this, but has the Billing tab, Trips and Notes and so on and this
01:09would have been four different layouts. And now with the Tab Control, it's one
01:13layout that we can drop a Tab Control on the layout and save a ton of space and
01:18be able to offer this Tab Control feature pretty easily to people.
01:22And you see here is an example of one of the Tab Controls. What we are going to
01:26do is I'm going to show you how you add a Tab Control. So let us go into
01:32Adventure Test where we have a blank layout and what we are going to do here is
01:37go into Layout mode and first we will add a couple of fields for the adventure.
01:42Let us go down here and sort these fields, to make it a little bit easier to
01:45find. Here we go; we will say the adventure title and that should actually do.
01:59That should be good enough for this example.
02:02So we have got a title and now what I would like to do is create a Tab Control
02:06that has both all the trips that are booked under this title and then a
02:09description of the title, but all in this space right here. So there is a
02:13couple of ways that you can add the Tab Control once you are in Layout mode,
02:16you can click on the Tab Control button on your status bar and you will see
02:20that your cursor turns into a crosshair and I can pick the area that I want
02:26covered by the Tab Control and you see upon release I get the Tab Control Setup.
02:32You can also add a Tab Control by the way by choosing Insert, Tab Control, but
02:39you don't have control over where it is placed or what the size is, so this is
02:43a preferable way to do this. So I can size this out, line it up with all my
02:47other elements and now I see the Tab Control Setup dialog. So on the Tab
02:52Control Setup I can type a panel name and in this we want two panel names. So
02:57the first Tab panel name is going to be Trips and I hit Create and the second
03:06one will be Description. So now I have got two tabs, Trips and Description.
03:11And we can also choose in the tabs whether or not we want Rounded or Square
03:16tabs, we will keep with the Rounded and the Trips Front Tab and this is
03:22something that has been in 8.5 the only control you had over which tab was the
03:27default when a user landed on your layout was by which one was the last one you
03:31accessed when you were in Layout mode which cause kind of some confusion and
03:35some difficulty in keeping that consistent and setting user expectations. So
03:39now that's part of the Tab Control Setup feature.
03:41So we will say that Trips is going to be the default one and we can justify the
03:46tabs, Center, Right or Full Justification and we will just do the standard
03:50Left. And something else that's new in FileMaker 9 that has been updated since
03:558.5 which is handy is the ability to determine the Tab Width. Before it would
04:01determine the tab width based on the tab name. So if your names like for
04:05instance I have Trips and Description, so I would have two different tab
04:09widths. So what people were doing, what developers were doing were adding in
04:13blank characters where the balance of the blank characters just so these tab
04:16names would be the same.
04:17Well, that's no longer necessary. You have a couple of different options here.
04:21You can say the Tab Width will be just the Label Width which is just how it was
04:26before. Trips and Description would be two different sizes or the Label Width +
04:30the margin of: and then we can add some pixels in there too or the Width of the
04:35Widest Label or a Fixed Width of: whatever the amount is. So we will say, Width
04:40of the Widest Label and let's hit OK and so you see that we have got our Tab
04:47Control and we can click into each one of these to populate it and we are still
04:50in Layout mode here of course.
04:52And what I'm going to do is, I'm going to drop in and we will learn more about
04:55portals when we get to that section. But I'm going to drop in a portal with ten
05:02rows, with trip information starting, ending, enrollments and whether it is
05:12coming soon, hit OK and in the Description, I'm going to drop a field in here
05:23and we will drop the description of the field into this tab, and now let's take
05:31a look at this in Browse mode. Save this and you see that even though
05:36Description was the last tab that I had opened before I went into Browse mode,
05:39it's still defaulted to Trips like I had asked it to.
05:43And now we can toggle between these two elements with Tab Control saving all
05:47this space on the layout that would normally be cluttered up with a portal and
05:52a description field, couple of things that are important to note about Tab
05:56Controls. First of which is, if you need to move the Tab Control, you can go
06:01back into Layout mode, you can just click on it and move it and all of the
06:07contents move around with it. So it makes it really portable, it's almost like
06:10all these elements are grouped together.
06:14Also should you decide that instead of having a field in here, you want to nest
06:22even more tabs and sometimes the business rules makes sense to do this. You see
06:29you have Trips and then in Description you have a couple of tabs that you can
06:32choose from in there and you can pretty those up a little up as well. So that's
06:37something to keep in mind when you are developing these and also when you are
06:40changing the Tab Control, you just toggle in the Layout mode or view Layout
06:44mode and double-click on it and that will reveal your Tab Control Setup.
06:48It will allow you to add new tab panels if you want to, rename an existing tab
06:52panel if you wish and you click Rename or delete a tab panel by hitting the
06:58Delete button or you can even reorder the tabs. So you see, again anywhere that
07:03you see these up and down arrows, in FileMaker means you can move things up and
07:06down and reorder. And you can also change the Default Front Tab.
07:12So some things that you can do manipulate this. Also, you can change the fill
07:17color just like any other object on a layout you can go on and make them
07:22separate colors if you would like to. I happen to pick some particularly gaudy
07:26colors for effect. But you will see that you can have each panel be a different
07:32color and even have different nested colors inside the panel.
07:36A couple of things that you should know is if you move a Tab Control over
07:40another layout object, and we can go under Browse mode, now this should be a
07:46good example of that. You cannot make this opaque or allow users to see things
07:52through a Tab Control. So you can't do different design features like that and
07:57if you make a Tab Control smaller and your elements don't fit, you will notice
08:02that if you don't resize them, they are going to end up just as part of your
08:06layout. So you have to keep that in mind if you are changing these sizes.
08:10And if a Tab Control is not wide enough to display all its tabs, the tab names
08:14will be truncated. So you will see if we go in and make these really small,
08:21you see that it is just going to truncate the name. So make sure that you size
08:24those appropriate to the tab width. And then finally you can lock the Tab
08:29Control and of course can't make modifications to the tab unless that feature
08:32has been unlocked.
08:34So Tab Control, a really cool layout feature that obviously is used quite a
08:38bit in FileMaker applications and allows you a great deal of flexibility
08:42without having to develop multiple layouts.
08:45And the next feature that we will look at is setting the tab order of fields on
08:50a layout, not related to Tab Control, but something equally as useful.
Collapse this transcript
Setting the tab order
00:00Another very useful data entry technique inside of the FileMaker layout is the
00:06ability to control the order in which users can tab from field to field and in
00:11recent versions of FileMaker, you can include buttons and objects in that tab
00:15order as well. So, let us take a look at the tab order, if we open up the
00:21Exercise File inside 09_ formatting_layouts, the file called
00:27Lucky_You_Tours_09_01 and if we go to the Customer Detail layout, what we will
00:36do then is then go into Layout mode.
00:38Well first we can test it by hitting the Tab button in Browse mode and you will
00:42notice that on your copy nothing is happening and that is because when we go
00:46onto Layout mode, there is no tab order setup and the way that we check that is
00:50we go into Layouts to Set Tab Order. Now you will notice that the Set Tab Order
00:57window appears on screen and it says that there is a total of 31 items and
01:03interestingly as it is counting items, there are not necessarily 31 buttons and
01:07fields on screen, but some fields qualify and some don't. For example, some of
01:12the rules you should be familiar with are that Buttons, Tab Controls and Web
01:16Viewers can be included in the potential tab order here.
01:19Summery fields although cannot be and the reason is the whole idea to tab into
01:24a field is so that you can use it for data entry and summery fields you are not
01:28able to enter data into. Calculations fields are similar in that manner in
01:32that they can be included in the tab order, but you can't tab into them in
01:37Browse mode, they can be included in the tab order so that you can include them
01:41in Find mode so that you can search on values that are results of calculations
01:46and fields that are formatted to prevent entry in Browse mode or Find mode
01:50cannot be tabbed in those particular for obvious reasons.
01:54So to set tab orders there are a couple of ways we can do this. You see that we
01:57do not have a tab order set right now. Before you get into this layout, you are
02:02going to want to make sure you understand the order in which you are going to
02:04want things to tab. So what you can do is you can say -- if you want to do
02:09everything you can say, Add remaining objects, which is fields and buttons
02:12together, and if I just hit Add, you see that it populates, in the order in which
02:17they were added to the layout, it populates a tab order. Sometimes it is useful
02:21if you took some thought into how you place fields on a layout. If not, then
02:25you can hit Clear All or maybe you just want to add all the fields only.
02:31The same logic can be applied there and of course the same is true by hitting
02:35Buttons only and then Add.
02:37You can also use this tool to remove, so if I want to remove the fields only
02:41and leave just the buttons, you see that I picked Buttons only and then remove
02:45all fields or I can remove all buttons as well and that leaves me with nothing.
02:50But the way that a lot of developers use is to manually select a tab order. So,
02:55again I will Clear All. And keep in mind that when you get to this point,
03:00you really should have some idea how you want your tab order to be reflected. And
03:04all we have to do is click on this arrows and you see the number appears.
03:07There is number 1, I will say number 2, number 3 and I'm going to click inside of the
03:13tabs and I'm doing this, so that I can show you something here momentarily.
03:18So I will say 1, 2, 3, 6, 7, 8, 9 and we go down here and then we will go into
03:29the Print button and I'm going to hit OK. Now, I'm also going to right click on
03:37this and do a dropdown calendar, so that we can see this in Browse mode and now
03:45let us go into Browse mode and let us tab around. So I have got let us say a
03:49new record and the first button is highlighted here because that is the number
03:541 in the tab order and as I hit Tab, you see it goes to the second field, third
03:59field and technically the fourth field is on Billing. What happens is anything
04:04that in Browse mode tabbing will only traverse objects that are currently in
04:08the active layout, so that means it is going to disregard any objects that are
04:11in the inactive tab panels.
04:13In the way that we can remedy that at least to some degree, we will go into
04:18Layout, Tab Order. You see this arrow here. This is actually meant for if we do
04:23a Clear All, we can do 1, 2, 3, 4, 5, 6, 7. Go back here and we will say 8, 9,
04:37and then 10. We will say OK and now let us go onto Browse mode and look at how
04:42this behaves just a tad bit differently. So we have a new record, we start off
04:47with tab. Now instead of going into a field inside of the Tab Control, I can
04:53use my left and right arrows when it is selected so if we go back and we go all
04:58the way through our tab order, I can go to Billing, I can do Trips, I can do
05:02notes to activate any of those. I mean I just continue on with my tab order.
05:08Now this doesn't only just work for new records. If we go back to a record that
05:15already contains values, we see that we can tab into these values and let us
05:21say we pick one of these fields, let us go back in here and see that we can go
05:29around and around in our tab order and manipulate the order in which people are
05:33entering data or accessing data. Now it is pretty self explanatory for the most
05:37part, but here are some things that you need to remember when you are working
05:40with tab order.
05:42If you tab onto a button and in our case if you remember we are tabbing onto
05:49the New button, a user can trigger the script that is actually assigned to the
05:53button by either pressing the Space key or the Return key. So if I hit Space,
05:57it just triggered the script and allowed a new record to be created and then
06:01the user can advance into the tab order and type in some names. So that is a
06:06useful tool and that is going to require a little bit of training. We discussed
06:09the limitations of Tab Control and it is also possible to change field behavior
06:14for your field, so that the Enter or Return keys as we talked about in a
06:18previous chapter take the user to the next object in the tab order, but only
06:22the Tab key can be used to navigate away from a button.
06:26Also tabbing into a field formatted with a dropdown list or a dropdown calendar
06:30for example this one, we will trigger the list or calendar only if the option
06:35to show the list or calendar icon has not been selected. So if we go into
06:40Layout mode here and go back into Field Control Setup and say, do not show and
06:49hide icon and calendar go back into Browse mode, find a record with some data
06:56and now tab around, you will see that now triggers the dropdown in the same
07:02manner as it would with a value list.
07:04And if a user tabs into a field that is formatted as a checkbox or radio button,
07:08which means it has got multiple options within it. Instead of tabbing, it kind
07:13of operates in the same way as a Tab Control. Once you get into that field,
07:16you can tab using the left and right arrows to make various selections.
07:20So using tab order you make it so that people who have a lot of data entry to
07:24do can just type away on the keyboard and never let their fingers off the keys
07:28just using tab orders and some of the rules here that apply to dropping down
07:32and using your arrows keys to navigate within fields or within Tab Control features also.
Collapse this transcript
Resizing layout objects
00:00There is another really cool new feature in FileMaker 9 that solves kind of an
00:05ongoing problem. As a consultant, we have developed applications on behalf of
00:10other users and one of the things that has always been kind of a challenge for
00:14us is that if we build a solution that let us say is going to be hundred
00:18different people, that the amount of different screen resolutions and sizes
00:24and available screen real estate really is difficult to wrangle. In a lot of
00:28cases you have to develop a special layout just for someone who has got a
00:32larger or higher screen resolutions, so you can take advantage of more real
00:35estate or really what you end up doing is finding out which user has the
00:41smallest available screen real estate and you develop the entire solution
00:45around their needs.
00:47An example of that if you open up the Exercise Files for 09_formatting_layouts,
00:54open Lucky_You_Tours_09_01 and you see here what we have done in the default
00:59layout for Customer Details, is we had the expectation that the user had a large
01:03enough screen real estate, so we are able to put everything on in a logical
01:06fashion. But you are developing an application and even a couple of the key
01:11users have screen real estate or resolution that is not as large as the one
01:16that I have here, you might end up-- users have an experience like this which is
01:20very frustrating and really doesn't show FileMaker at its best and having
01:24people have to scroll for a smaller screen resolution size.
01:27The same kind of challenge you run into when developing websites, but in
01:31websites the way that you can remedy it is build the website let's say in
01:35Flash or a vector-based graphic that will stretch and shrink with the allotted
01:40size. And FileMaker has now taken on a new property similar to that. Let me
01:45show you what I'm taking about. Let us go in the Layout mode and all the way on
01:48the bottom you see a layout called Resize. We will go back into Browse mode and
01:52here in the situation that I described in order to prevent any scrolling for
01:58any users, you would create a layout that was this small and unfortunately
02:03there might be some values for example, if we go in and we put in some values
02:07let us say we just take, go back up. So, we are going to have to go in the
02:13layout first, go down to Resize, Browse mode again and we will paste those
02:21fields in here.
02:22Without adequate screen real estate, we can't really see all the fields and we
02:26can't see all the data and even if we fill up for those of us that high
02:31resolution, we still can take advantage of the additional screen real estate.
02:34Well, FileMaker to the rescue. FileMaker has created really cool feature that
02:39is called Setting Auto Resize options for layout objects. And I will show you
02:44how we can modify these. If you recall or if you worked with FileMaker 8.5, you
02:50remember that this Object palette or Object Info palette that you suggest
02:55really allow you to see the measurements of different objects that you have
02:58chosen much like this, now it has become a object naming tool and now an auto
03:03resizing tool.
03:05First off, the default every object that is placed on the FileMaker layout like
03:09these we have not even addressed and resize, but you see that they all share
03:13the same thing in common. The default is that they are anchored on the top and
03:17to the left and really that is just the standard behavior, so that means if I
03:21stretch, these stay anchored up in this corner and over here which means they
03:27won't move out in any direction or they won't move down to the right in this
03:31direction, but now we can change that. You can set objects to automatically
03:35resize or move horizontally or vertically when the FileMaker Pro Window is
03:41resized and these horizontal settings also apply to the Preview mode and
03:45Printing when the page size is wider than the size of the layout being viewed and printed.
03:49So it is kind of stretch to fit on both printing and in the Browse mode, which
03:53is really cool. This is something that is actually pretty revolutionary for
03:57FileMaker layout design and it all boils down to these anchor points here and
04:01when layout objects are set to resize, they actually maintain a constant
04:05distance from the object to which they are anchored. This allows objects to
04:09move and expand or contract when the FileMaker Pro Windows resize.
04:14So for example this field would be anchored to the object to the field of it
04:19and the object above it, so that distance would never change and so for
04:23instance, Button would be anchored to the left of the screen and also to the
04:27top, so that way we want to resize this, nothing stretches or moves. And by the
04:31way we don't necessarily want everything to stretch in the same manner. For
04:34example, if I stretch an icon it is just going to stretch it out and not make
04:38it look like the icon any more. So in that case I would want to anchor it down
04:41to the bottom right no matter what the size is.
04:44And a photo is a great example of something that we don't want to resize,
04:47because it is just going to stretch it out, so that we can't even recognize it
04:50anymore. So there are different strategies to which anchor positions that you
04:54choose depending on what type of object it is that you want to resize and if
04:59want to get more familiar with this, just go into FileMaker Pro 9 Help and
05:03check out some of the examples of what happens with an object position and
05:07width when the windows at original size versus the position of the resize
05:11window for each one of the different combinations of the Auto Resize setting.
05:15So there are four different anchors and you can do any combination of them. So
05:18really there is a logically about four real combinations that you are going to
05:23work with, but let me actually show you some live examples of this, so I can
05:27anchor my objects. Now right now by default I'm anchored to the next object
05:31above it or the edge of the window or anchored to the left of the object in
05:36this case the name or the field label. So if I want my fields to stretch to the
05:42left, I would add an anchor to the left. Let us select all the fields, so we
05:52want all these fields when I move to the left to stretch to the left. So what
05:56that means is I'm going to want to anchor them to the right, so that means that
05:59they are anchored to the item on the left, they are anchored to the anything
06:02above it and they are also going to be anchored to the right hand side of the
06:06screen or the right edge of the screen.
06:08So let us take a look and see what happens -- we go into Browse mode. Curiously
06:16we don't have any reactions, do we? Well the reason is because I have actually
06:20embedded all of these fields inside of the Tab Control and so the Tab Control
06:25is going to have to be addressed as well. So here we see the Tab Control is in
06:28default, so we will say -- let us try all four of them and see what happens for
06:34the Tab Control.
06:35Now we get kind of an interesting effect here, don't we? The Tab Control will
06:38stretch and shrink, but looks like we have some kind of weird things going on
06:44here. First we still can't see all of these fields. We have got this picture
06:48now covered up all over these values and we have got this image sort of
06:51floating here. So if we use this anchor concept and we know that we want the
06:57image here to always be anchored to the bottom of the page and to the right, so
07:01we actually have to go with the opposite of what we got here and let us go into
07:05Browse mode and see if that made a difference.
07:08Sure enough, now as we change in resize, we see that we have to that issue
07:15taken care of. Now let us see what we do with the photo and it will be pretty
07:19standard that as far as a photo is concerned, you won't want to anchor to the
07:24left if you are stretching to the right. So let us anchor to the opposite and
07:28this is pretty standard for photos. This is what the original size was, that is
07:34why our scroll start in that area, but here we go, we have got the photo in the
07:38container field resizing, we have got the image staying anchored and we have
07:42got fields resizing to as much screen real estate that I have got.
07:46However we still got an issue here with the field values. If I did both of
07:52these fields in the same manner -- what I did all four. Let us just see what
07:56that looks like. You see that it is actually stretching and shrinking to all
08:01directions. Now that works for this field, doesn't it? But it doesn't work for
08:06this field. So let us click back into Layout mode and it takes a little bit of
08:09experimenting, so you can get used to it. But we will remove anchoring to the
08:13bottom so that way it doesn't stretch down and the notes -- we are anchoring in
08:18all four areas, but you see that we still don't have any space between these
08:22fields because it is anchoring all the way to the left.
08:24Why don't we remove that and try this with the notes fields? And sure enough
08:30now we have got the notes fields are stretching down and we still have
08:36maintained the space between these two fields and of course we can go back and
08:40say, we wanted to stretch in all four directions and here we can get rid of
08:45that left side if we want to solve that issue. So now there is our perfect
08:49resolution. So no matter what the screen resolution if I blow this up onto a
08:52large screen, we can stretch and shrink these values. Something that is really
08:57exciting and pretty cool, something that the development teams in the past
09:02really had some difficulty with. So, now if you are new to FileMaker 9, you
09:05don't know any different. You can take advantage of any kind of user screen size.
09:10By the way, things beyond the body can take advantage of this as well. So, let
09:16us say the header and the body. You see that there is all sorts of different
09:22combinations, that you can work with -- let's anchor there. So now with a full
09:27screen, even elements that are in the header can stretch and shrink. So play
09:32around with this example and you can follow along with the video, with some of the
09:35things that I tried, but I wanted to go on progressive methods so you can see
09:39that there is a bit of experimentation involved with this. But have fun with
09:42playing with resizing of layouts. It's definitely one of the FileMaker 9's
09:46coolest new features.
Collapse this transcript
10. Web Viewer Essentials
Using the FileMaker Web Viewer
00:00Since the Web Viewer is really a radical new component inside FileMaker Pro and
00:04actually really, you can't find anything like this in any kind of database
00:08platform, in order for you to understand, let's first take a look at Web
00:12Viewer in action and then we will go under the hood and take a look at how to
00:15set one of these up into your FileMaker solution. I have got an example file
00:18here that by the way ships with FileMaker Pro. If you look inside your
00:21documentation folder you will see a file that is called Web Viewer Example, if
00:25you have copy of FileMaker 8.5.
00:27But let me show you Web Viewer working inside a FileMaker Pro database.
00:32Essentially Web Viewer allows developers to integrate Web browser viewing into
00:36their existing FileMaker Pro database layouts and it also ships with a couple
00:40of templates which we are going to go through on a later chapter. Some really
00:43easy things that allows you to just point FileMaker Pro data to this really
00:48cool Web Viewer and then you will see things like Google Maps and MapQuest and
00:51FedEx Tracking and Wikipedia and different things like that and we will cover
00:54that in the templates chapter.
00:55But here are some examples of what this looks like, just so you can visualize
00:59what Web Viewer looks like inside a FileMaker layout. So just to be clear, this
01:03is a FileMaker layout, no tricks up our sleeve, and this new Web Viewer control
01:09which is a new feature on the palette is just simply drawn into the areas where
01:13you are seeing web viewing.
01:15Now it is not a browser, but it takes does advantage of the native controls
01:18provided by the operating system and so since I'm working on a Mac, that means
01:22that I'm really using -- the best way to put it as the engine of safari on OS
01:2710. If I was working on a Windows machine, it would be IE. Really the
01:31limitations of Web Viewer are only the limitations of Web Browser. So, anything
01:36that you can view inside a Web Browser like for example, Google Maps or a
01:42plethora of other things, PDF or Flash and we will look at some examples of all
01:46of these, but in addition to that rather than hard coding in an address and
01:50this is really the most powerful feature of Web Viewer and in all of these
01:53examples you will see this -- notice here that this Google Maps has an address
01:57in it, but when I switch to the next record in the database, notice that the
02:02address changes because that is the address coming from the local fields in
02:06this database.
02:07So it is way the FileMaker data can be represented in a way Web Browser in a
02:11number of different ways, but there are a couple things that are important to
02:15note about what Web Viewer is not. It is not an actual browser itself, it does
02:19not inherently provide navigation or an address bar, or history or preferences
02:23or menus and all that kind of stuff and it won't launch additional Web Viewer
02:26windows either. It is more like a container field inside a layout that plays
02:30web pages than it is not an actual browser.
02:32So the key is that is intended to view web content, not replace all the
02:36functionality of a Web Browser. That is why FileMaker carefully name this the
02:40Web Viewer, not the Web Browser control. Let us have some fun with this and
02:44take a look at some of the stuff that we can do. First off, we noticed that we
02:47have got maps; we can build the functionality in for Map Quest for example.
02:51Really any contact database can benefit from having Map Quest in here. As a
02:55matter of fact not only can you display it, but this is the data in the record
02:59and you see I can use that as the starting location and I can feed that to my
03:02Web Viewer and get directions as well.
03:06What application can't use that? Also there is some built-in Google searching,
03:10Wikipedia. Let us go find somebody here from a company that we have heard of --
03:16Oh! Yes, Google. We can Google Apple computer and with just a click of a button
03:21we can get all of the Wikipedia information; News, Dictionary, Wikibooks all
03:28sorts of stuff here as well and just with a press of button -- and these are
03:32templates which I will show you how to use in the next chapter. Also shipping,
03:36how much would you like to be able to embed FedEx tracking or UPS tracking or
03:41any kind of tracking?
03:42Here we have FedEx tracking embedded right into the database. So here what we
03:46have got is a portal of a bunch of packages that have been tracked in our
03:48FileMaker system and just by selecting one of these buttons, it loads this
03:52information and automatically jumps out to FedEx and finds our tracking
03:57information for us and you can even present signature proof for example if that
04:01is available so, another really useful tool that we can embed into our
04:05FileMaker solutions.
04:07Also let us say, we want to keep onto top of our stocks. Here is a great
04:11example and things seem to be doing well with the Apple Stock. One of the more
04:15exciting pieces and we are going to cover this in the last chapter here. I'm
04:19going to show you a lot of really fun examples of integrating Flash. Here is an
04:22example of Flash running in a website for example. If we click here we will
04:28choose Website and then will launch and this is something that FileMaker can do
04:32before you couldn't put a Shockwave file inside of a container, you couldn't
04:36put it in a layout element. Now you can have it run seamlessly and natively
04:41within your FileMaker application.
04:43Now not necessarily a web page let us say, but just to prove that it does run
04:46Flash, you can see this example here or let us say what you want to do is run
04:52something that you have encoded in Flash like in this example, we can see there
04:55is a tutorial. So all sorts of fun stuff they are barely any limitations of
05:03what you can do UI with Flash, so you have just been able to add on that
05:06functionality within FileMaker as well.
05:08In addition, browsers don't only just display websites or flash, they also act
05:13as a front end for shared database system. So let us say we want to embed a
05:18knowledge base or if you have a support section or an ongoing FAQ on your Web
05:23Server, in this case you can load FileMaker Help. Here you see it is the web
05:29based FileMaker Help can be embedded right into any one of your solutions and
05:32you can also embed the FileMaker product updater which is all off on
05:36FileMaker's website, so basically all these additional functionality in your
05:39database and you don't have to do any additional work.
05:42And also browsers don't only allow front ends for databases either, Web
05:45Browsers can also view PDF pages, granted you can embed a PDF or any other kind
05:52of document into a container field, but now you can actually view the PDF
05:55itself using the Web Browser engine. In addition to PDFs and other web viewing
06:00type capabilities, you can run reports. In this case what we have got is a
06:04Style Sheet. There is an example of XSLT Style Sheet that will transform data
06:08from the database, but then present it because it will create an HTML document.
06:13So again even though you are not publishing a web page using HTML, this is an
06:18HTML viewer so if you want to transform data into a certain format here is how
06:22you can view it in a Web Viewer. And also it still curious with some of other
06:26characteristics of the container field, for example here we can play a
06:30QuickTime Movie inside a container as well, but then we will have to deal with
06:33the issues of embedding it into the file or possibly not embedding it into the
06:37file or we have to deal with linking it and not moving the source file. But if
06:43we use a Web Viewer to display anything with the supported functionality in the
06:47browser, you can have audio, you can have images, you can have animation, you
06:51can have Quick Time Video; whatever it is that you want, whatever plays in --
06:54Browser will actually play here inside your solutions.
06:57And then finally, you can use web technologies like Flash for example. Here is
07:03an example of a Charting application that was created using Flash and then
07:07published into a Shockwave file and then this can retain data that comes from
07:12FileMaker Pro either locally or through a server or whatever it is and it will
07:16display different types of charts, but the data that you are having in your
07:19FileMaker database, you can display in a plethora of different ways.
07:22So here you see any kinds of charts with rollovers and interactivity and all
07:27sorts of really cool stuff and you could buy a plug-in for this if you would
07:30like or you can build it in Flash and then embed it inside your Web Viewer and
07:35it looks like it is just part of the FileMaker layout. You can see seamlessly
07:37there is no difference here. Another version of a different chart and by the
07:41way this chart is actually a product that if you go to isolutions-inc.com
07:48you can subscribe to a web service and there is going to be a ton of different Web
07:51Viewer based services or tools that developers are going to build out there and
07:55here is the first one to hit the market and it is really exciting.
07:58So to review you can do charting, you can do maps, you can do searching with
08:04some of the templates, you can do tracking and stocks and all sorts of Flash
08:09movies and support and PDFs and reports and all sorts of stuff. Now that we have
08:15seen what Web Viewer can do, let us take a look at adding Web Viewer to an
08:19existing database.
Collapse this transcript
Adding Web Viewer to your layouts
00:01So, this new functionality is pretty exciting and in order to be able to
00:05integrate web browsing or the web browser engine in to your FileMaker
00:09layouts, you first have to add your Web Viewer control to one of your existing
00:13FileMaker layouts or create a new layout so that you can add this control. So,
00:17let us take a look at how we do that in the different ways we can do that.
00:20We'll open our Exercise Files, go in to 10 Web Viewer and open up the orders.fp7
00:26file. And you will see what we have here is on screen, we have got a Tab
00:31control, but keep in mind that you do not need a Tab control.
00:34You can put a Web Viewer anywhere in the body of your layout or you can
00:38actually put a Web Viewer in the header or footer or title header and title
00:43footer but keep in mind if you are going to provide any data to it, it's kind of
00:46like if you took a related field and put it outside of a portal row; it's only
00:50going to show the first related record.
00:52So, in the case of putting a Web Viewer on a title header or a header, it will only
00:57load data from the first record in the found set and the opposite of course,
01:01working conversely, if you are to put a Web Viewer in the footer or a title
01:07footer. Now, it's not to say that you want to do that because you can have
01:10sound playing there, have some kind of cool animation. So there are all sorts of
01:14different things that you can be using in the Web Viewer for other than actually
01:17loading the webpage.
01:18So, with that being said, let us go in to Layout mode because you can only add
01:23a Web Viewer in Layout mode, and there is couple of things that you need to
01:27know about the Web Viewer. First is when you select a location for the Web
01:32Viewer on your layout, there cannot be anything behind it because the Web
01:37Viewer cannot be transparent and anything behind it will simply not be visible
01:42or not be accessible at all in the layout. So you can have like a graphic
01:45behind it that shows when the Web Viewer is not active or anything like that.
01:49It does not really make sense for the functionality either. So, you can add it
01:53only in layout mode, there is a couple of ways that you can do it, you can go
01:57into the Insert menu and choose Web Viewer and it will pop up the Web Viewer
02:03setup dialog, but it will just arbitrary draw small Web Viewer elements, kind
02:08of like how the Tab Control works, if you just click insert tab control. But
02:12the more sensible way to do it is to click on the Globe icon and then your
02:17cursor will turn into a crosshair and then you can draw it precisely to the
02:24area in what you want to and will just okay right now but precisely to the
02:28location on your layout that you want to have contain the Web Viewer itself.
02:33Now, a couple of tips about the sizing the Web Viewer, by the way when you have
02:39a Web Viewer on a layout, you will notice that it will look like a container
02:42field with a little globe in the middle. So, you know that you added it
02:46correctly if that you are seeing that on screen much like I have got here on
02:49this screen. If you are selecting the size, you have to take some thing in
02:51consideration and we are going to cover in the essential training here, how to
02:55add some webpages using FileMaker content to your layouts but really the most
03:00amazing part of the Web Viewer are things that are covered in the beyond the
03:04basic title, that involve loading applications or loading local files or some
03:10Java or some Flash or some really cool things there.
03:14In the case of the higher end development anything that is Vector based that
03:17you have control over the UI, specifically for implanting into a Web Viewer.
03:21You do not have to worry about the following, but if you are putting WebPages
03:24in there, keep in mind that in the same manner that if you opened up your web
03:28page and logged onto a website and shrunk up the size of your browser to be
03:34this exact size there will lot of cropping that would occur with most websites.
03:38So, for example if you went to a website that was designed for 800x600
03:42resolution, you would have to design a Web Viewer at 800x600 sizewise in order
03:49to - in actually all of the viewing area, otherwise with interaction with the
03:54Web Viewer content you can scroll back and forth up and down it is really not
03:57that critical, but keep in mind that unless it is Flash website and only
04:01because Flash is Vector based or a Java driven website which can also be Vector based.
04:06It is not going to stretch and shrink or resize within your Web Viewer. So as
04:11long as you have that expectation moving forward, you won't be surprised. So
04:15what you can do though if you want make sure that you have precision here, you
04:19could use the object palate here and you if I did want to do the 800x600, you
04:26will see about what that size would be and of course it would be too big and it
04:29would go off my layout here. So, I'm going to say that will make this 693 to
04:37get that back inside the viewer.
04:39So, that is a little information on the sizing of the Web Viewer, the only
04:43location where you cannot put a Web Viewer would be on a portal row. So, you
04:47cannot place it on a portal row it just does not have the ability to index one
04:51level down and then load local data. So that is something that probably be
04:56little of overkill on your UI any ways. So, once you pick a location where the
05:01Web Viewer actually can be played and once you find the right size and location
05:06for that Web Viewer, then what you are going to do is setup the Web Viewer and
05:12there is couple of things that you can do when you get the Web Viewer. You can
05:14either do a custom URL or you can use one of the templates.
05:18What we are going to look at in this title in the next movie is how to use one
05:22of FileMaker's many templates that are available to load webpage data into your
05:27FileMaker layouts using data from your FileMaker database.
Collapse this transcript
Setting up the Web Viewer using templates
00:00So, at this point we have determined that we want to add web viewing
00:03functionality to our FileMaker layout. We have picked a location that we know
00:07is acceptable for the Web Viewer to perform and we have also sized it
00:12appropriate to whatever the application is. Now, what we are going to do is
00:15configure the Web Viewer Setup dialog because that dialog is going to allow us
00:19to actually have data displayed in the Web View. Let us take a look at that
00:23dialog. Here we have the Web Viewer Setup and you see that there is couple of
00:26different ways that you can load data into the application.
00:29The first of which is a custom web address, but we will be covering how to do
00:32that in the Beyond the Basics title. It is a little more complex. But the real
00:37easy stuff here is all these different templates that ship with the FileMaker
00:41Pro application. You see we have got Google Maps for US, Canada and UK,
00:45MapQuest, all sorts of different Googles, FedEx Tracking and the entire Wiki
00:51family here also. So not only we do have that functionality built in and by the
00:54way this in no ways they perform the limitation of what you can display in a
00:59webpage inside a FileMaker layout.
01:00These are just the ones that happen to ship with FileMaker and that
01:03is what we are going to cover in this title. But if you click on Google Maps
01:06for example, you will see that each one of them has different fields that you
01:09can map to data in your database. Now, every record that I would view would
01:14have the same value in it, now that might make sense, I might want to use a Web
01:17Viewer in an area almost as a Global Web Viewer and in that case I could just
01:22hard code in what the address in going to be and that is really what you are
01:24doing when you are doing a custom address.
01:26But if for some reason on every single record, I wanted to have the same map
01:30then that it would make sense to hard code this in. But instead we are going to
01:32dynamically map these required values to a field in the same manner what is
01:39called the name Value Pair we are going to map it to a field within our data
01:43base and here, note that I'm using the table occurence or the relationship
01:47address of billing, if you are playing along at home and what I'm doing is I'm
01:53saying, each time I go a record load the value that is in this field in to this
01:58string and you will see here when I done, see how this string is slowly
02:02building it is using -- it is exactly doing the name value pairs so that each
02:06record is going to have different value that gets it loaded.
02:09So, we will go address billing, state and now this is an example where we could
02:23hard code in USA if we knew record in our database always have the value of
02:27USA, then we do not need to do a name value pair in that or if we do not have a
02:30country field or something like that. So now we can take a look at this and you
02:34will see the string that we have created is just what this is the actual Google
02:40Maps, then you see there some text that concatenates the q= which is also part
02:44of the address but then there are some specific place holders in here. So, the
02:49address = will be populated by the value in the field Address if Billing:: that
02:54is relationship at the field based on that relationship called AddressLine1.
03:00Just take look in Browse mode and we will hit OK and going to browse mode will
03:07save our changes to our layout and here we are, we are on the record for Steve
03:11Jobs and you will see what happen is, it loaded a Google Map and now you see
03:16this is where we are getting in to kind of size issue if we could just show the
03:20map and hide this area here, about the direction and we want to this kind of
03:25issue and notice that I cannot interact with this it is just simply visible.
03:29So, somewhat useful but let us go back in to layout mode and make some
03:33adjustments here that is right, I would like to introduce you do this button,
03:37Allow interaction with Web Viewer content, let us see how that changes the
03:40experience.
03:46And now I can actually move this map around and you will see that this gives me
03:52full interaction, so I can find businesses or I can get directions or search
03:57the map or sign in to my own Google Maps account or get help all of these I can
04:04do by interacting with the web browser. So, you can see if I made this full
04:06screen like I showed you in the demonstration video earlier, right now as we
04:11can all the functionality built right into this application and it is
04:18contextual to the record. So, let us see if this is in actual address.
04:25Now it is loading and it gives us as an approximation in that case, so if we
04:32went in and change this to and we will say -- how about we do this instead and
04:47you can see that, that is now the Web Viewer accesses an unstored calculation
04:53because now I have just made some changes and if I go from record to record, it
04:58is going to store this new map. So, now I have got Meni Waters and here's where
05:02Meni lives, right over here by Pan Pacific Regional Park on West 3rd Street
05:07across when we go over Los Angeles.
05:10And what is cool is I can do the satellite if I want to and allow that to load
05:14momentarily and get a cool view and -- so really, I have just added entire
05:19mapping functionality into my FileMaker layout, but all I did was just setup
05:22the Web Viewer, well there is a couple of other things here too that I want to
05:25show you, if we go back in the layout mode, we have got Allow interaction with
05:31Web Viewer content, we will talk about displaying content find mode Beyond the
05:35Basics title.
05:36But display progress bar and display status messages, if you want to learn more
05:41information about this you can hit the learn more by the way. Okay and we have
05:45technically made changes to our layout, so we will save those, now instead of a
05:49white screen and actually in 8.5 it was a different view, it actually populate
05:54with the whole string of data and frankly nobody needs to see that, it is not
05:58useful for anybody to see it and sometimes it is proprietary information, when
06:02it comes to applications.
06:03So, it is good that that is gone, but even better if you notice if I search for
06:11Steve Jobs, notice now instead of a white blank screen where I think nothing is
06:17going on, it loads just like a webpage would and that information gets loaded
06:21down below and I do not have to show that status at all if I do not want to. So
06:25let us look at another one of the templates here very quickly, we will do
06:29Google web search and in this case it is just what term do we want to search.
06:33So we will say full name, okay and let us see what that looks like.
06:40So now I have just switched it over to Steve Jobs and I have got full page in
06:47Google which in nice I have allowed interaction with the content so I can see
06:51images of Steve Jobs and any video of Steve Jobs. So some interesting
07:00functionality built-in there, lastly another one and if I had feel to tracking
07:06in for my FedEx, I can just map it right here or Wikipedia and I think we might
07:10have gotten a little bit of inside there. So we will say full name, will be our
07:19search term for Wikipedia, go back in the Browse mode and we see it loading, it
07:27tells us what page it's loading.
07:28And after that is done loading, we see that we have got the Steve Jobs
07:32Wikipedia page loaded, if the ability for us to drill down and find all sorts
07:43of information in here by drilling down and pull some pictures out and that
07:47type of thing and by the way if you click on something that is supposed to
07:50launch a new window, it will just replace the Web Viewer with that content. And
07:54also if you do get a new window, you can right click on or actually script, and
07:59we will cover that more in Beyond the Basics, but if you right click you can go
08:01back you can keep going backwards or you can go forwards or you can even reload
08:07or refresh. So, it is just like browser. The buttons that you do have access to
08:11now because you are in a Web Viewer, you can just right-click on on the Web Viewer
08:15and get that same functionality.
08:17So just by adding a Web Viewer you can add a plethora of external data source
08:22information into your FileMaker layout. You can add FedEx tracking, you can add
08:26the Google mapping and looking up of a searching terms but the real power comes
08:30into play with creating custom URL addresses for linking in your own websites
08:35and the possibilities are endless in those cases and we will cover that in more
08:39depth in the Beyond the Basics title, but hopefully this gives you good taste
08:42of what is a revolutionary and really proprietary functionality to only
08:47FileMaker Pro. So, enjoy playing around with this and experimenting a little
08:52bit within your own existing FileMaker layouts.
Collapse this transcript
11. Finding Data
Basic find
00:00So far in the training we have been working with either creating a database
00:03through tables and fields and all the different types of things that involve
00:07putting together the schema of our database and then we worked a little bit
00:10with records like adding records, editing them and deleting them and even
00:13duplicating them. So we have really just been working with one record at a time.
00:17So in this section which is called finding data, we are actually going to be
00:22working with multiple records and how we manipulate multiple records within the
00:26database and there is a couple of terms that I want to establish before we get
00:29started, so we'll go ahead and open up the exercise files in 11 Finding and
00:35open up the List View file and in the file that you have-- in my copy I have got 15
00:42records and you should have 15 records with the same information. Basically,
00:45this is a database that has a bunch of paintings. It's got paintings, the year
00:50they are painted and then the artist.
00:51Now the first term that I want to establish and that's an important one, I have
00:55used it a couple of times so far in the title, but I'm going to use it a lot
00:59moving forward when we talk about things like scripts and sorting and different
01:03things like that. I'm talking about the term that is called the Found Set.
01:07A Found Set in FileMaker is a group of records that you are working with and it
01:10could possibly be the entire amount records in a database but you can create
01:14sub-sets. So in a lot of cases, Found Sets are sub-sets and sometimes the Found
01:19Set happens to be all of the records in a database. Now, if that sounds a
01:22little bit cloudy, let me give you an analogy.
01:25Imagine you have a deck of cards in your hand, and all the cards with spades,
01:29you take out of that deck and you leave them in your hand and you put the rest
01:32of the deck on the table. Now, when you began, you had originally 52 cards. You
01:37still have 52 cards but now you've separated them out. You have taken out a
01:41sub-set of the 52 cards, all of the spades and that is your Found Set.
01:45Let me show you different ways we create Found Sets and hopefully give you a
01:49little bit of clarity on what a Found Set actually is. First of all, in the
01:53database list view, you see that we have got 15 total records and if we look on
01:58the status area, it gives us some information about the total number of records
02:02in our database, and that is listed right after the word total. But also we
02:06have information on all the individual records themselves, and now you notice
02:09as I navigate through and we happen to be in a List view right now, you see
02:13here. But as I navigate through, notice one thing you see this little Black Bar
02:18that is indicating the active record at any given time, and the active record
02:22is important to us especially when we get into scripting. But you're probably
02:26familiar with the effects of having one record be active when we talk about
02:31things like deleting records.
02:32So for example, if I go under the Record menu right now and I hit Duplicate
02:35Record or Delete Record, which record is it going to delete or duplicate? Well,
02:39it's going to delete the active one or duplicate the active one. So it is
02:42important the other term here is when I talk about what the active record is,
02:46that's the one that the action is going to be performed against. And one of the
02:49things that we can do under the Records menu, you will notice that there are a
02:54series of things here that are called show all records and then some omit records.
02:58The action of omitting a record means that it's still on the database, we are
03:01not deleting it, but we are removing it from the Found Set and show all records
03:06means that we are making every record in the database our Found Set. So let me
03:09show you an example of what I'm talking about there. So I will choose the Still
03:14Life by Erek Daves and I will go under Records to omit records.
03:18Now look what happens in our status area. You see that I'm on record number 5,
03:23and that has a change because even though I omitted the record, it move the
03:26active record up to the next record above it which happens to also be number
03:30five now. But look at here, we still have a total of 15 records in the
03:34database, so none of them have been deleted, but we are only viewing 14 of
03:38them, and that is the Found Set. So you will see inside of the status area,
03:42FileMaker will isolate how many records are in your Found Set.
03:45And we can continue to omit records, thus creating a Found Set of 12. So these
03:5515 records are still in there, but now we have 12 in our Found Sets. We have
03:59just performed something that is sort of the analogy of placing the three cards
04:05out of the deck in our hand and placing the rest of them on the table. So that
04:09is the connection there to what a Found Set in FileMaker, and you see here we
04:14have got in this case quotes is an example of a document is the active record
04:19and we have manually created our Found Set by going through and omitting.
04:23There are other ways to create a Found Set. Now omitting certainly with a
04:28database that has 15 records in it, is a viable way to isolate certain records
04:33that we want to work with and by the way, why would we create a Found Set? Well
04:36let's say we have a script that we want to go in and perform some action
04:40against certain records or let's say we just want to print out a report, but in
04:44either of those two cases we don't want to print out a report with all 15
04:48records or we don't want to perform actions against all 15, we just want to do
04:51it on some specific records. Well that's when we need to create a Found Set. So
04:55there is easier ways to do that.
04:56First, let's go into the Records menu and hit Show All Records and you see now
05:03what it's done is, it's taken all those records that I have omitted and put
05:05them back into our Found Set. So we have a total of 15 records, and even though
05:09it's not listed there, we know that our Found Set is 15 as well.
05:14So let's go into Records and perform a Find. So you will notice that after
05:20showing all, the Show All Records just grayed out and that indicates to us that
05:25all records are already showing.
05:27So now let's go into the another mode that we haven't worked with yet, but we
05:30will go under View to Find mode, and now not to be alarmed, it looks like all
05:35of our records are deleted and the status area has changed a little bit, but
05:40all that's really happened is it's taken us into a mode that allows us to enter
05:43criteria, so that we can isolate certain records based on the criteria that we
05:47type in here and once we isolate those, it will perform a Find and then compile
05:52a Found Set based on our criteria.
05:54So once we are in Find mode, let's go into here, and in our Painting name,
05:58let's put in -- we will put TW LOV, and now you will notice that I can access
06:08all of the different layouts and the database when I'm in Find mode. So I can
06:10pick any one them, it doesn't have to be the one that I was on when I initiated
06:14the Find, and you see here that there is something called Request which we will
06:18talk about in the next chapter. And also you notice the Omit. I was manually
06:23omitting here but if I wanted to omit some records based on a certain criteria,
06:27I will just check this, and more on that later.
06:29What I'm going to do now is press the Find button that you see is active and I
06:33can hit the Enter key if I'd like to as well but we will hit Find button, and
06:36we see that there is one record that matches the criteria that we entered in.
06:41So FileMaker Pro performed this search, and we have got this one record, Two
06:45Lovers by a Tree, and now we could have typed TW and come up with the same
06:50results as a matter of fact. I will show you.
06:57This is because of the way that FileMaker indexes. If you remember when we talked about indexing fields,
07:01it indexes a certain number of characters in a field and anything that -- any
07:07criteria that matches any of the indexes that it has, it then says that the
07:11records in that index qualify.
07:13And if you remember, the index says, I'm going to go through and say well,
07:17I have got the word Two is in the following two records and it goes and stores
07:21that information. So it doesn't have to go check all 15 records on the search;
07:24it just checks the index and then comes back with the two records stored in the index.
07:29So this is how we do what is called a Single Find Request. Now in the next
07:34movie, we are going to talk about working with multiple requests.
Collapse this transcript
New requests in find mode
00:00Now, we have looked at how to create a Found Set in FileMaker. First thing that
00:05we did is manually omit records from the database and then we used FileMaker's
00:10Find mode to isolate certain records that we are looking for.
00:13Now I'm going to talk a little bit about what a request is and how we can work
00:17with multiple requests. If we go in to Find mode again we will see that if I
00:21enter in to a painting name, I say Tree and let's say I say ALV. I can put--
00:31no matter how many fields that I have on screen and actually I can do, if I have a
00:35field on one layout and a field on another, I can enter data into a field a
00:38here, go switch over to another layout, enter data into a field there, and all
00:42the while what I'm doing is I'm compiling a find request, but that find
00:46request is saying find all the records where painting name is either Tree or
00:51has the term Tree in it and the artist also has the words ALV in it. And so
00:59what I'm doing is entering multiple criteria, but each record that comes back
01:02in a Found Set has to match these criteria. We'll see what I get when I do a Find.
01:07If I enter in criteria that FileMaker has no matches for in its field of
01:11indexes, it comes up with this dialog, no records match this set of find
01:16request, and you have two options where you can either go back and modify your
01:18request or just hit Cancel. And in this case, we will go back and show all
01:24records by the way, it's either Ctrl+J or Apple+J, that's a helpful key. So if
01:28we look at let's say instead SATW, and ALV, and then hit the Find button, I see
01:40that I have one record that has both TW and Marta Alvarado. So we'll go back
01:47and I'm going to hit the Ctrl+J or Apple +J here and it gives me my Found Set of 15.
01:52Now, what I'm going to do is, go in and do a search for let's just do Find and
01:59I'm going to do Ctrl+F as in Find, and I'm going to enter in into the artist
02:04name just Alvarado, and we will see what I get. You see that I have four
02:12records that are all by an artist called Marta Alvarado. I could have put in
02:17the entire name Marta Alvarado or I could have put in ALV or ADO or anything
02:21that would have matched the value index inside of this field.
02:24Now what if I want and let's say I go into Find mode again and I know I'm
02:29looking for some paintings by an artist named Gibson. Okay, so now I have a
02:34Found Set of three. So this is great, if I wanted to print a report of just all
02:37the Norma Gibson's paintings, I could create this Found Set in a way that I
02:41just did and then now I will go print this layout but what if I wanted to print
02:46a report that has both Marta Alvarado and Norma Gibson. Let's go back in the
02:51Find mode, Ctrl+F, Apple+F. Now, if I put in Alvarado, Alvarado and Gibson into
03:01the Artist field, let's see what I get. Well, there are no records that match
03:06with Alvarado and Gibson, and the reason is it is not looking for Alvarado or
03:09Gibson; it's actually looking for, if I do show all records, Ctrl+J, it is
03:13looking for a value of Alvarado and Gibson together. So that is what -- as
03:18opposed to the and search that we are looking for, what we want is an or search
03:24which means give me either criteria of Alvarado or a criteria of Gibson.
03:30So let's go back into Find mode and enter in my Alvarado search term. Now this
03:38is where the request comes into play and you'll notice when you are in Find
03:40mode that your Records menu turns into the Request menu. And what I will do
03:44here, you will see that we can add or duplicate requests. Well, what happens
03:47when I do an Add request?
03:48You see that I get another area where I can enter in some additional criteria.
03:53So in this case, I will put Alvarado in the first request, Gibson in the
03:58second, and then I will hit Find. And now I see I have got a Found Set that has
04:03both Alvarado and Gibson combined. So what we have just done there is we have
04:08performed what is referred to as an or search. So we are saying give we any
04:13records that are Marta Alvarado or Norma Gibson.
04:16Now if we go back into Find mode, we will see that there is this Omit button
04:20here, and if you remember we were doing searches for Two, so we have got Two
04:26Lovers by a Tree and Two Pots.
04:29Well, let's say I want to look for a painting with Two in it, but not the
04:37painting from Alvarado. So I know there is one in there for Alvarado. That's
04:45not the one that I'm looking for; I'm looking for another painting with two.
04:47Now in this case, I'm doing multiple requests, but I'm not putting values in
04:51the same fields. I'm just saying give me all the paintings with two and then
04:53after I have got all the paintings with two, pair that down by removing or
04:57omitting any one that has a matching artist of Alvarado, and what I do there is
05:03when I have this request just like there is an active record, there is an
05:06active request, I'm going to check the Omit button there. So what I'm
05:11instructing the database to do is, find all the records with the painting name
05:14Two, and then omit any of them that have Alvarado on the artist name. See what
05:18happens when I hit Find.
05:20So now I have just the one record Two Lovers by the Tree, even though really
05:25there are two records in here, but I wanted to omit that one there. I will go
05:31from here into Find mode, and FileMaker allows you to enter multiple find
05:36requests. But if we notice, we will enter a bunch of new find requests, we can
05:40say add new request or we will do the keyboard keys, Ctrl+N or Apple+N and I
05:45keep adding request and adding request, and all of a sudden I get this message
05:49that says by the way, you are in Find mode and appeared to be entering new
05:52record data rather than find request criteria. And this is just a reminder
05:56because since the New Record view and the New Request view look very similar,
06:02some users can get confused and they might accidentally be in Browse mode and
06:06thinking that they are adding new request, but in fact what they are actually
06:09doing is adding new records or what the alert is more specific of here is in the inverse.
06:15If we are in Find mode and we think that we are adding new records, we could
06:18get 10 records into it thinking that we are adding records in database but
06:21really we are just doing find request. So here if I say No, it will cancel out,
06:26but if I say Yes, it will just allow me to continue and add more.
06:30Keep in mind that although you can have multiple find requests, your criteria,
06:35you would have to have a significant amount of data even to have 13 requests in
06:39here and to be able to get a Found Set that matches all of this even with omits
06:43involved. So just a little note there as well. The next thing that we are going
06:47to take a look at is working with things like Ranges or using FileMaker's built
06:51in search symbols.
Collapse this transcript
Search symbols
00:00As we have been working inside of the Find mode, which we are in at the moment
00:06inside of our List View file. We have determined that we can toggle between
00:10layouts and of course the modes as well and we can move to different requests
00:13and in this case we have multiple requests, and I can see the active request.
00:17And we have discussed the role of the Omit button and the Find button which
00:20executes the find. But notice here there is something that is called Symbols
00:24and if we click on this arrow we see a list of a lot of different symbols. The
00:29symbol is the item on the left, and then its description is on the right.
00:33These are wild card characters that we can enter in to the FileMaker fields in
00:38Find mode, and it won't actually find matching for example symbol for Less Than
00:43but what it will do is, it will tell us if we were to going to a field we
00:48could say enter in the Less Than symbol followed by the year 2000, and we
00:54execute a Find. That is telling us that there are 13 out of 15 records actually
01:00have years that are less than the year 2000. So we can create a Found Set using
01:05some of these search symbols.
01:07So let's take a look at some of the other search symbols. We will go into Find
01:11mode and I will just give you a couple of examples you can go onto your Help
01:15system and find out detailed descriptions of each one of these. But we looked
01:19at Less Than and you can understand how less than or Equal To or
01:22greater than or greater than and Equal To will work.
01:25Exact match is a good one to use as well. This is most commonly used if you are
01:29trying to find an empty value or for example when we're putting in TW, we know
01:36that FileMaker has a certain index that it uses. So it's going to return back
01:40any record that has TW in that field, but what if what I really wanted was just TW.
01:46Well, that's where I can enter and either select from this list or just type in
01:50the equal symbol and if I enter in TW, now it comes back. It says No, we
01:55don't have any records that match that criteria. A couple of other ones that
01:59are useful entering Find mode again, are the Range.
02:03Range can be used if you have a Date field or a Number field which, it means
02:09that I can enter in a minimum and then a maximum. So for example, let's go into
02:14the Year field because we know that that's a date Field. And I'm going to enter
02:17an 1872, and then ... or I could have selected Insert the range, but I'm going
02:22to type in ... manually, and type in 1937, and then when I hit Find, I get the
02:30three records that are within the years 1872 and 1937 and you see that all
02:36these years match.
02:38You may have noticed that some of the records don't have years, if we go back
02:42into Show All Records. The more common use for that exact match by the way, we
02:48enter Find mode, this is what most developers use exact match for, simply
02:53putting in exact match all by itself and what that means is, give me only the
02:58records that match the following and since I'm not putting anything after that,
03:01I'm saying give me all the records that have nothing in the field.
03:04So this is a great way to find records that have fields that have incomplete
03:08data. So you see when I say Find, there are in fact two records in here, that
03:12have no values. So using the Equal Sign is a great way to find those
03:17records when you are trying to do some data clean up.
03:20So back with show all records, a brief review of some of these other symbols.
03:26If you want to find any duplicate records, so if I go in to Artists, and I put
03:31in an exclamation point, and we see that we have no records that match this set
03:35of find request. Now that is interesting because if we look in here, we have
03:38got several different artists that all have matching values.
03:42Well, if we go into Layout mode and look at that, and we will see why and this
03:46is helpful. You will notice that these two fields are the fields in the
03:50painting table and this one is actually from the artist table and inside the
03:55artist table, there are no duplicate records. We are just borrowing this field
03:59from the Artist table and putting it onto each painting record. So we will deal
04:04with this in the relationship section. This would be different if let's say we
04:09change 1972 to 1872. We enter Find mode and put duplicates in here and it sees
04:17it finds the two records that have duplicate values.
04:21Now this is helpful if you want to go in and find duplicate Ids. This is
04:27something that most developers use for finding duplicate ID. It's something
04:30that should not be duplicated, but needs to be unique. You can go in and use
04:34the duplicates exclamation point to isolate those. Now keep in mind, it is
04:38going to find the duplicate and the original because FileMaker doesn't know
04:41which one is the duplicate. So it's going to give you both.
04:43So if you have 20,000 records and 1, 500 of them are duplicates, you are going
04:48to get 3,000 total records back in your Found Set. And just to quick look at
04:53some of the other ones, you can find anything in the Date field with today's
04:56date or if you have got alpha characters in a Number field or text in the Date
05:02field, you can just put in a Question Mark and if you've imported some data
05:06and you don't have always validation on or you don't have validation on. This
05:10is a way that you can look through your imported records and clean up some of
05:13the data before you enter it into the regular population.
05:17If you are looking for and we talked earlier about how if I said TW, the other
05:21option instead of putting the equal sign TW is to wrap these in quotation
05:29and that means find me the only where the literal text TWO is in there. So
05:34if we had the word Potstickers and I did a search for Pots, it will give me
05:39this record and a record that says Potstickers, but if I put in wrapped in
05:44quotes "pots" then it would return back only the one record.
05:48So it's a good idea to get yourself familiar with some of these because they
05:51can be very useful and you can script these as well. You will see when we get
05:55into scripting to find, in that chapter, that these are useful within your
06:00scripting environment also.
06:02So the next thing that we are going to take a look at then is something that's
06:06called constraining and extending Found Sets and Find Requests.
Collapse this transcript
Constraining and extending a find request
00:00In addition to just creating a Found Set, many times you want to use Find mode
00:04and search criteria to drill down into your data. So you might start off with
00:08one request and then keep drilling down and drilling down until finally you
00:12have created the Found Set that you are looking for, and this is useful in
00:15doing some administration on data and looking for a certain criteria and trying
00:20another theory and trying something else until finally you isolate some
00:23specific records.
00:25We can do this manually. For example if I first said give me all Alvarado and
00:32then I think oh, actually I want Alvarado and Gibson. If you remember, we did
00:37Alvarado and then I can hit new request, Apple+New or Ctrl+New.
00:43So this entire activity and I'm going to Hit Show All Records again, this
00:47entire activity can be accomplished in a different way. So we go into Find
00:51mode, and our first criteria was Alvarado and I hit Find, and now what I want
01:00to do is I want to add to my Found Set. I want to keep this Found Set, but I
01:03want to add the Gibson records to it.
01:05Well, if I go back into Find mode and this time I put in Gibson. Now if I just
01:12hit Find, if I hit the Find button right now, it's just going to find Gibson,
01:16but I want Gibson and Alvarado, but I don't want to have to enter another
01:19search request.
01:20Well, if I look down here, I see that in addition to performing Find which is
01:24the same thing that hitting this button will do. I have got a couple of other
01:27options, I have got Extend Found Set and Constrain Found Set. Well, constrain
01:31means make your Found Set smaller based on whatever criteria I have just
01:35entered, and extend means make my Found Set larger or add to my Found Set based
01:39on the criteria.
01:40So I will say extend my Found Set based on Gibson, and I could go into Find
01:46mode again to add Daves as well. So I say Extend. So what it's doing is, it's
01:54remembering your last criteria, and allowing you to either append it by adding
01:59or you can remove criteria from it that way as well and the same is true in Reverse.
02:04So let's say now I said, I wanted Alvarado, Gibson and Daves and now I
02:09remember, I just want Daves. So I will type in the Daves criteria, and then hit
02:14Constrain Found Set and then what it's going to do now is constrain that Found
02:19Set that I had of three different artists and it's only going to show me the
02:22ones that match the criteria I put in before I hit Constrain. So we can keep
02:25doing this over and over, Alvarado, Extend and okay, now I have got Erek Daves
02:35and Alvarado. Oh, let me go in and constrain based on that and just give me the Alvarado.
02:42So working with constraining and extending Found Sets will allow you to vary
02:46groups of records and it's really actually quite powerful and you can easily
02:49view some trends and data, search for exceptions or problems in the information
02:53that you have entered or again review imported data to make sure that you are
02:57quickly accessing specific records that might not need to be into the general
03:01population.
03:03Now next, I'm going to show you how you can find records without even entering
03:06Find mode, the quickest way to do searches.
Collapse this transcript
Finding date/time and timestamp data
00:00I'm going to demonstrate to you now some interesting ways to search for data
00:04that's in a date field, a time field or a time stamp field, using some kind of
00:09cool new wildcard characters and syntax, and this new not in 9, but in 8.
00:15So if you open up the file in the exercise folder called Orders, and let's
00:21switch over to the Order Detail. I'm going to be demonstrating some searches in
00:25the Order Date field, the Order Time field and the Order Timestamp field, but
00:29what you should notice here is that these fields, Time is a Time field, Date is a
00:34Date field, and Timestamp is Timestamp, and that's critical because otherwise
00:38the wildcard syntax that I'm putting in here wouldn't work. So I'm going to search
00:43through some orders here and first what I'm going to do is enter Find mode,
00:48and by the way you can do Ctrl+F or Apple+F and for rest of these examples,
00:53I'm going to be using the keyboard shortcut of Ctrl+F or Apple+F and I will be
01:00hitting the Enter button to execute a Find. So just we don't have to go up to
01:05the Menu every time. Just you can play along with me at home, using your Quick-Keys.
01:11The first thing I will show you is, if I put in 6/2005 for example. Normally it
01:21would just return back anything that actually has the value 6/2005. But now
01:27FileMaker has a new logic build into it, and you can probably see for a split
01:31second there, puts in some wildcards. But what it does is it returns back
01:36anything from the month that I designated and the year that I designated. So in
01:40that case anything that was written up in 6/2005, or June of 2005, we can look
01:45at that in the same manner we can enter in just the month. If I just put the
01:52month, it assumes the current year. If the year is 2007, then it is going to
01:57show me only everything in 6 of 2007. If I put in other values in here, we have
02:04got 5 of 2007, and I put 3 in there, it's 3 of 2007. So you get the idea, you
02:13can either put in just the month, and you can see I have got two records that
02:21match that criteria. So couple of different ways that you can enter in values into.
02:26This one is real cool, in a Date field if you put =fri, equals the abbreviation
02:32Friday. And hit Enter, this gives me regardless of what the date was. This
02:37gives me any order that was written up on a Friday. So if you are ever
02:40interested in what your numbers are in sales on Fridays, or weekends versus
02:45weekdays, or something like that, you just type into a Date field, hit Enter,
02:51and boom, up pops. Even although there isn't a field to find anywhere in this
02:55database that says what day this actually is? FileMaker has the built-in
02:59internal intelligence to do so.
03:02Now there is some support for brackets too, and brackets are found when you hit
03:05the Shift key to the right up the P on our keyboard, and they look like this,
03:12and it allows me to, for example in this case, and you recognize the ranges
03:18from, when we are using search symbols. In this experiment what I'm doing is,
03:23I'm searching for anything, any order that was created in the month of April
03:28through the month of June in the year 2005, and sure enough we see we have
03:33seven records that were either from, June, April, June, May, June, May and the
03:41wildcard can work on either side a well. So we go back into Find mode, add a
03:48bracket for ...6, close out that bracket, put my / in there. Now I'm going to
03:54put in another bracket in here, and I'm going to say. 2004...2005, so what I
04:02asking it to do now, is find any order that was written up in April, May or
04:06June of the year 2004 to 2005. So it's really -- this kind of replaces adding
04:12an additional request. So kind of a neat feature here and you see we have got
04:17ten of them, May of 2005, June of 2004, April of 2004, all those match our
04:22criteria.
04:24We have some for the Time field as well, and again, I have to go into this Find
04:29mode, I'm going to Apply or Ctrl+F, and then to execute the Find I'm hitting
04:33the Enter button. In this case I can find out when an order was written up. I
04:39can just put in 3 pm, and this gives me any order that was written up between 3
04:44pm and 3:59 pm on any given day basically, or I can go into Find mode and do
04:503...6, and as you can imagine, this is going to return back any order,
04:55irrespective of the date, that was written up between 3 and 6 am, or if I
05:02designate 3 pm, this will give the pm. So if I don't put am or pm, it's going
05:12to do am, so it kind of think 24 hour clock type logic there. The Timestamp has
05:17some searching capabilities. If we do = Thursday 2007, and I got one order that was
05:27written up on 4/12/2007 in the 3 o'clock hour. So some kind of cool ways that
05:32you can integrate in searching through your keyboard shortcuts and through some
05:37wildcard features. If you get familiar with those wildcard syntax, it can make
05:42it real easy to drill down into your Time, Date, or Timestamp data.
Collapse this transcript
Finding matching records without find mode
00:00Now we have been working Find mode and entering Find mode by going in to the
00:04View > Find mode and adding new request through the menu and performing finds
00:10through the menu and through the button. All of this can be done a lot quicker
00:13by using quick keys and frankly even when you get a little bit of experience
00:16you are going to find yourself doing Apple+J for Find All, Apple+F. Of course,
00:23Apple and Ctrl are interchangeable based on what operating system you are
00:26working with and Apple+N for adding new request and then just hitting Enter for
00:31Find and that type of thing and even Escape for cancel.
00:35But there is another way that you can do it all with your mouse as well. I'm
00:39going to show you right-click feature which is a kind of extended menu that is
00:43hidden inside FileMaker fields, what you will get if you look at this there is
00:47a lot of different things about the field, you can go to the help system you
00:51can get some suggested spellings. We have looked at that in previous versions.
00:54You can change the fonts, style, text color, insert some values and do some
00:59sorts, which we will cover in the next chapter.
01:01But the feature that I'm talking about is Find Matching Records. I can find all
01:06the matching records for Marta Alvarado without even going into Find mode. Let
01:10me find matching Eric Dave's records, never left Browse mode. Pretty impressive
01:16stuff and this is more impactful of course if you have larger sets of data. I
01:21mean if you have got thousands of records and you see a bunch of orders in here
01:24and you find a customer ID let's say and you say well, let me find out the
01:27other orders for this customer you just right-click into the customer ID, Find
01:30Matching Records and you are all set.
01:32The other thing that you may have noticed in here too is I can Find Matching
01:36Records and then I can click into another field then I can say Constrain the
01:41Found Set and I can go in and pick this value extend the found set and extend
01:47it even further and I can end up with found set with three different criteria
01:51all the while never having to go into Find mode.
01:54So a helpful little tool there that allows you to drill down into your data in
01:58a much quicker fashion and this is called fast match.
Collapse this transcript
Find and Replace
00:00There is another type of finding within FileMaker that I thought would be
00:03appropriate to mention here and that's the ability to find and replace. Now
00:07instead of finding records what we are talking about there is finding values
00:10within either records or within the entire database and this find and replace
00:15is similar to any other application that you have worked with for example Word
00:18or something like that, but just want to take your minute to show you how that works.
00:22So if you go into the Edit menu you will see the Find & Replace options and
00:26when you click on Find & Replace, you will get the Find & Replace dialog and
00:30let's say what we want do here is we want to change Marta to Martha, just like
00:38in any other application we can do replace and find. But since we are dealing
00:41with database records, there is couple of other options. First there is the
00:44Direction and we can either say Backwards or Forwards and what that means is
00:48where is the record in the found set.
00:50So if I have 50,000 records in here and I'm on record 15, do I want to just to
00:54search everything moving forward. So for example, in that case may be I have
00:57already manually changed the ones behind, so I just want to check Forward or
01:01the opposite Backwards. You see here we are on the last record, so we could
01:04check Backwards instead, or really just All. The other thing is to this can be
01:09case sensitive, so we can omit any Martas with the lower case and if we wanted
01:14or we can search either just the Current record to make these changes, or All
01:18records and just the Current field or All fields.
01:21We are going to say everywhere in the database where it says Marta replace it
01:25with Martha, we hit Replace All. It asks to confirm, we say OK and then we get
01:31Find/Replace summary that indicates Number of occurrences found, were one. The
01:35Number of occurrences replaced were one and that's because this is actually
01:39related field. What it really did is it just only made one change but that one
01:42change was reflected many times.
01:44Again, we will deal with that in the related records in relationships chapter.
01:49But it did search a total of 15 records and 46 total fields and we see now that
01:54it has changed Marta to Martha. So Find & Replace, just like in other
01:58applications another handy way to find data, rather than finding records.
Collapse this transcript
12. Sorting Data
Sorting with one criterion
00:00In the previous chapter we looked at how we can create a Found Set, or isolate
00:04certain records within our database. And now we are going to look at how we can
00:07organize, or sort those records in our Found Set, or in all the records in the database.
00:12If you open up your exercise folder, go on to 12_sorting, and open up
00:17ListView_11_01, you will see that we have the database that looks similar to
00:23the one we used in the other exercise. So let's say I have created a Found Set,
00:30I'm using Quick Keys now, Ctrl+F or Apple+F. I have created the Marta Alvarado
00:35records, and I want to go do a report, and of course, this has more of an
00:39impact if there are a lot of different records here. Let's say it's a little
00:42difficult for me to look at these out of chronological order, so what I want to
00:46do is, sort them in chronological order.
00:49If I go into the Records menu, you will see Sort Records and really you should
00:54get used to just using the Quick Keys here. Apple+S as in Sort or Ctrl+S as in
00:59Sort. It's a lot easier to do these types of things on the fly, when you are
01:03using Quick-Keys rather than the menu. And if we take a look at this Sort
01:06Records dialog window, we can see what the couple of the options are.
01:10First off, you will notice on the left hand side, this is the all the different
01:13fields that we can have in our Sort criteria and what's nice is that it
01:20separates it out based on the fields that are defined in the layout, which is
01:24the default, or the fields in the Current table. The reason for that is, in
01:28versions before 8 that didn't have this function, end users would go in, and
01:33they would say, okay, I want to sort these records that I'm looking at that on
01:35screen, but they would get this huge long list of developer fields, and they
01:39wouldn't know what they are looking at, and there will be questions about
01:43what's keyForeign_artist, and all that type of thing, since it is a really good
01:46idea to use naming conventions that might not be as plausible, or easy to
01:50understand to your end users, as they are to the developers. This created sort
01:54of a void of understanding here for the users that are sorting. So instead what
01:59it does now by default is it isolates only the records on the screen at the
02:03time, which makes sense, because if a user is initiating a sort, they are only
02:07going to want to sort by the values that they can see at the time.
02:09So here we will click on, and we can either click and hit Move, and if we got
02:14the wrong one, we can hit Clear, or we can double-click on it, and it will
02:19automatically move it over for us. Now we can then go ahead and just hit Sort,
02:24or hit the Enter button. But first we will look at this little thing here, you
02:28see this cell phone reception bars here. What that actually is, is not only I'm
02:33sorting by the year, but it's asking us also, do we want to sort in Ascending
02:36order. So for example, if this was the alphabet, do we want to start from A to
02:40Z, or do we want to start from Z to A, and we will look at a couple of these
02:44other options here in just a moment. In this case we will say, we just want to
02:49do Painted_Year in Ascending order, and we can hit the Sort button, and we see
02:53that it sorts those values in chronological order based on year.
02:58A couple of things to note here, if you are sorting numerically, and you are
03:02not sorting on a number field, if you say you want to sort for example one
03:06through ten, those values are in a text field, that will actually sort number
03:10one, number ten, then number two, three, four, five, six, seven, eight, nine.
03:15So if you want things sorted numerically, or by date specifically, you are
03:20going to have to make sure that the fields you are sorting on are defined
03:22appropriately. So for example, if I didn't have this defined as a date, it
03:26might not give me the responses that I expected.
03:29The other thing that's important to note is, this empty field at the top here,
03:34FileMaker, if you are searching on a field, and there are some records that do
03:38not have that value, I mean you will see this, if we do Apple+J, Apple+S, Sort,
03:45you will see that both of the empty records show up on top. So just so that you
03:50now you can also set expectations when you start working with scripting or
03:52training some of you users, you should know that empty values will appear on
03:56top, and I think the logic there is that it gives it the best visibility to
04:01isolate those records, but keep in mind that if there are values in there that
04:04don't match your criteria because they are empty, those will appear at the top
04:07of your list. So that could be helpful in locating these records, but also you
04:11want to prevent any confusion by letting your users know that as well.
04:14Next, we are going to look at using related fields or fields from other tables
04:19in our sort criteria.
Collapse this transcript
Sorting with related fields
00:00So we see that we can sort by values that are either on our layout or defined
00:06within our table. Well let's take a look at sorting from values that are in a
00:16related table. So if you open up SortTwotables and the difference here is that
00:23what I have got is, if we look into Manage, Database. This file has two tables
00:30in it and they are related and we will talk about relationships and setting up
00:34relationships between two tables in the relationships chapter. But what you
00:38need to know here is that we have got a table with Artists and that's where we
00:42have one record equals one Artist and we define things like the name and the
00:45type of the Artists.
00:47Then we have another table for Paintings and that's the table we have been
00:50working with. But there is only one record for an Artist and we don't want to
00:55have to type in the Artist's name every time on to each one of the
00:58artist-related painting. So we see that Marta has several different Paintings.
01:03So instead of putting Marta's name in here each time and again and not getting
01:07too far into the discussions on relationships, but you will see here as I
01:11pointed out earlier, we have got Painting_Name which comes from this existing
01:16table, Paintings.
01:17Painting_Year also comes from the existing table of Paintings. But Artists,
01:23comes from the Artists table. So that value just gets replicated on each
01:28related record. But that doesn't mean we can't sort by that value. If we look
01:32into the Sort dialog we can select, not only values in the Current table but
01:40values that are in other tables as well.
01:42So here if we want to sort by Artists, happens to be a related value, we can
01:46move that over. And also by the way it shows up under the Current Layout
01:51because it is one of the fields defined on the layout to make it easier to
01:53find. But I hit Sort, and you can see that we sorted alphabetically by Artists
02:00or I can go in and sort in reverse or alphabetical order and we can get the
02:05same effect.
02:06So you see here that you can use not only fields in your sort criterion that
02:10are local to the table, but also any field that's in any related table can be
02:14used to sort and of course it will make sense, if those fields are actually
02:18used on screen as well. So the next thing that we are going to look at is using
02:22more than one criteria in our sort.
Collapse this transcript
Sorting with multiple criteria
00:00In addition to sorting with single sort criteria from either the local table or
00:04related tables, we can also search with multiple criteria as well.
00:08Let's look at some examples of that. If you open up Number 12 Lucky_You_Tours and go into
00:15the Customer List, you see now that we have got 1500 records in here. This will
00:19give us little bit better idea of how important sorting is because instead of
00:22just having 15 records, we have got 1500 that are harder for us to look at all at once.
00:29We can go into Sort, and let say we want to sort by last name. One thing to
00:38pay attention to by the way is if you look here, we have got an order. We have
00:42got a default sort order already in the database. So every time I open up the
00:46table, it reverts back to this sort order. Now I could have a script in here
00:50that says every time I open the file, it sorts in a certain way. But this is
00:53the order in which the records were created in the database, and you will
00:56notice that the active record -- if I put the active record on the first
01:00record, let's watch what happens to the active record when I do a sort. We will
01:04just say, sort by last name first here.
01:09Now it keeps the active record on screen, but instead of be in record number
01:12one, like I was before, you will see that I'm on Record 658. So down at 658,
01:22it's our active record. So you got to keep in mind, if you are sorting for the
01:27reason of doing a script, or if you had the first record in your list selected
01:32before you did a sort, you want to just go ahead and hit Duplicate or Delete,
01:36keep in mind your active record visually isn't the first record anymore, old
01:41versions are found like it did it that way. So it could might be a little bit
01:44tricky, if your grandfather did on that logic. But the active records still
01:48remains the active record before the sort, which is useful. You can make that
01:52work in your advantage if you are doing scripting. But let's take a look at
01:55doing the sort by last name, and we will notice that in our database we have
02:01got, here is a group of individuals who have the same last name.
02:04Now if you determine that it would be easier for us to sort by last name, and
02:08then have a secondary sort by first name, which means sort everybody by last
02:13name, but if you find any duplicates or any matches, then revert to a secondary
02:18sort order of first name, and that is possible for us to put into the database as well.
02:23You can put as many different sort criteria into a database as you wish. So in
02:28this case, I will double-click on first, and we will see, I can sort by last
02:31name, and when those match, sort it by first name, and if for whatever reason,
02:37name is a bad example, but if I said, sort by State, and then by City, and then
02:42I can say by Zip Code, I can drill down, and it's going to work in a reverse
02:47pyramid here, which means it starts with all the records, and then it filters
02:52down my criteria based on whatever the first start criteria is. Then it filters
02:57down my Found Set even further by that. So if I put in State, City, Postal
03:03Code. Postal Code sort of criteria only comes into play if there are true
03:08statements on the first ones, if there are matching values in every criteria
03:12above it.
03:12In this case the chances of us having matching first names and last names are
03:17pretty rare, but let's see what happens when we do that sort. Now we say Sort,
03:21and we see that it does sort all the last names, but now it goes A, C, C, J, R,
03:26S, in this order. So it allows us to sort by the first name, and then sort by a
03:33secondary criteria, and also if we look at sorting by, let's say in this case
03:38Type. So in Type, we want to match all the records by Type, so we see here is
03:46our Bronze, Gold, Silver. But then within that sort order, let's say we want to
03:52sort it by last name, so that we can look at everything grouped in Bronze, Tin,
03:58let's say, but then within those groups, it's a little bit easier for us to
04:01read this criteria, and actually I could go in and say, and if any of those
04:05match, do first.
04:08So you can see that in the case of these records here, they are all in Tin, so
04:14they are sorted in that area. Then they are sorted secondary as a last name,
04:19and then by the third criteria A, J, R, S, they are sorted by the third
04:22criteria, only because criteria one was true, criteria two is true, and then
04:27therefore it reverted to the third criteria.
04:30So you can put as many as you want in there. The other thing to know is that,
04:34you can also, this could be descending, this could be some other criteria, and
04:41you see that we have got here custom values, and that is something that we are
04:46going to cover in the next chapter. So you can use multiple criteria with
04:49different orders, but in order to learn a little bit more about this order,
04:54let's take a look at how to sort by a custom criteria.
Collapse this transcript
Sorting using custom values
00:00I'm going to show you know how we can sort by custom values and some of the
00:04sort values that we have been working with so far are pretty logical. For
00:07example, if I sort by last name, in ascending order, I know that that's going
00:13to do it alphabetically, A through Z, as it has done here. Or if I were to sort
00:19by a number field in ascending order, I know it would go one through however
00:23many values. Or in descending order, this would be A through Z, this would be Z
00:27through A.
00:29What happens if I'm going to create a report and I want to group my values by
00:32let's say Type? We see here, each customer has a Type and the different types
00:38that we have are Tin, Silver, Gold, Bronze, and so on. If I go in and sort by
00:43Type, let's see what we get.
00:50So it sorts Bronze first, and then it will go to
00:54Gold, Silver, Tin, and so on. But those are the alphabetical order of those.
01:01But let say the business rule within our organization determines that, we have
01:04a different level of customer, and Bronze is not the top one that we want to
01:08look at, or even the last on.
01:09Well, the way that we can do that is by sorting by a custom value, and you will
01:13see that option is found right here. So instead of Ascending or Descending, I
01:18can say, based on the Order in the Value List, now how do we set that up? If we
01:23go back into -- and we will talk about this in the Value List Chapter coming up
01:27immediately following the Sort chapter, but just as preview, if you go into
01:31File, Manage and Value Lists, we will just look at this for right now, you see
01:36that we have set up custom values. One of the things we can do is, just simply,
01:41to find a list of values, order them in the way that we want, or in the way
01:44that makes sense for our business rule, and then save them inside our database.
01:48So here, this is actually the order in which the customer should be, Gold,
01:52Silver, Bronze and Tin. Not Bronze, Gold, Silver and Tin. So this is the order
01:57that we actually want. So we have created a Value List called Customer Type in
02:01our Value List, Editing dialog, and now we choose Type, and FileMaker makes
02:10these values available to us. We can choose which one of these we want, and we
02:13are going to say, Customer Type. So now it's got kind of a funky little bar
02:17there, but what that means is, it is just going go defer to the sort order
02:20that we gave it, and you will see now that sorting based on that, I have got
02:27Gold, Silver, Bronze and Tin. Just like we wanted.
02:31One last note there is that, we can Un- sort these values. Just look, what it
02:38would look like if we did Ascending. Again, Bronze, Gold, Silver and Tin, but
02:45then we go back here without even removing it, and we will say, sort by
02:50Customer Type. And now we get the proper sort order.
02:54So that's how we sort by Custom Values. If you ever have a custom value that
02:57you need to sort by, just go create one under your File > Manage Value Lists,
03:03and you can also see, like for example, if I wanted to do it numerically but
03:06in a different order, I could 6, 4, 3, 8, 7, 2, 1, whatever I want and it will
03:12defer and sort by that value. So this could be helpful too for you, when you
03:16do your scripting or do manual sorts of your Found Sets.
Collapse this transcript
Sorting using buttons
00:00So we have been working with sorting, and we have been working with sorting so
00:02far all through the Sort dialog and of course, you can access it through the
00:06menu. But again, you should really get used what your Quick Keys are,
00:11so you could do Apple+S, and get your sorts together.
00:15Now your end user, who might not be as savvy with FileMaker as you are, they
00:20might not really understand the sort dialog or possibly you don't want to have
00:25to train them every time for this. Well, what you can do is create buttons on
00:29screen that will do the sorts for you. So for example, if we go into Layout mode,
00:34 and this way the user doesn't have to know what fields they are looking
00:38for. If it's a canned sort, if it is something that sorted the same way all the
00:41time or something that logically would be useful to the user, what you can do
00:44is create a little button, and you will see in your layout mode there is a
00:48finger and a button tool here, which you see the first thing is in button
00:53setup. You can scroll down and any one of these actions can occur when the user
00:58hits the button. But when we stop on Found Sets, since we have been working
01:01with Found Sets, we will notice that we can assign sorting to a button. So
01:06whenever a user hits the button, it will sort.
01:09So let's say we know that the people don't want to look at the default list,
01:12but instead want to have this sorted by last name. What we do is, we click
01:17Specify Order, and we get the same dialog box, and here we don't have the
01:25ability to just look at the once in the layout, because this button could be on
01:29multiple different layouts. So there is no context of a layout here. So it's a
01:34little bit tricky. You are going to have to go in and find last name, and we
01:40want it sorted in ascending order, and we hit OK. We don't want the dialog to
01:45pop up, since we are just going to do this on behalf of the user. So we hit
01:49Perform with dialog, and there is an option here that says, Change to hand
01:54cursor over button, and then we can choose a Rectangular or Rounded button, and
01:58we get back into Layout mode.
02:00We type in what we want the button to say, and we commit that button. Now let's
02:04go into Browse mode, Save that. We see the button here on screen, and users
02:10will know it's a button, because you will see that the cursor turns into a hand
02:15or a finger, so they know that they can click on this. So now a user can just
02:20hit the button, and automatically sort everybody by last name.
02:24Now a common technique for a FileMaker developer is that they have a button
02:29that just says, one sort order possibly give the user multiple sort orders. So
02:34if we go back into Layout mode, one thing that you should know is that, not
02:39just buttons can have scripts assigned to them, anything on screen can, a field
02:44can, or in this case let's say a field header. So why don't we consider each
02:49one of these -- well, these two don't make too much sense. But let's say, Type
02:52and Customer, in addition to doing Format button, we can also right click, and
02:57go to a Button Setup. So there we are going to go down to our Found Sets and we
03:07have got last in ascending order, so we will say OK to that. Perform without
03:12dialog. So now when users click on this, it becomes a button and now we are
03:16going to go in and have a different sort type and go in and do Button Setup again.
03:22I just right click for Button Setup, and this case we'll go down and have a
03:27different sort order. Perform without dialog. In this case we will say,
03:33Customer Type. Move that over, and we will choose to sort by a Customer Type
03:40Value List, and within the Customer Type let's say, any matching type we want
03:45to have last name in ascending order, and if the last names match, we will say,
03:53first name in the ascending order as well. So that's the criteria for this
03:56other button, and we will hit OK there.
03:58And now if we go into Browse mode, we will Save those changes. Now we see that
04:05the headers -- and this makes a lot of sense to users, because this works in
04:10Excel, and even in table View within FileMaker where you click on the headers,
04:14and you can sort the values. So this gives list views a really powerful
04:18organizational aspect. So you see here I click there, and we have already got
04:23it sorted by last name, so no sort had to occur. But if I click on Type, you
04:30see that it's doing that sort for us, the Gold, Silver, Bronze in that custom
04:35order, and then doing the secondary criteria within each one of those
04:41categories. Then I can click back to Customer on last name, and all this assigning
04:45the Sort Script step to a button. Now this can be more complex if you want
04:50to design your own script and we are going to cover this again when we get to
04:54relationships, but just a little preview here on assigning sort order to
04:57buttons within list view.
Collapse this transcript
13. Value Lists
Creating static value lists
00:00In the chapter on sorting, we took a look at defining a list that we could use
00:05as a custom sort order. FileMaker allows you to store lists inside of your
00:09FileMaker files and it's called Value List. These Value List can be used for
00:14sort orders or as data entry options; the couple of different things that you
00:20can do use these for and we will talk about those at the end of this chapter.
00:24But right now, let's take a look at how we setup a Value List.
00:27You go into your exercise folders and we will choose Lucky_You_Tours_13_01 and
00:34let's go to the Adventure Detail. So, let's say, for example, on this database,
00:40we have got 44 records in here and each time that we are entering in, we see
00:44that they have got different Seasons; Winter, Spring, Summer, Fall and
00:49Year-round. So, let's say, instead of having the user type these values in all
00:55the time or maybe even we want to be able to sort these values based on a
00:59Custom Value List, we are going to first set up that list. So each FileMaker
01:04file you can store as many Value Lists as you like and you under the File, to
01:09Manage and then Value List and up pops the Manage Value List dialog and you see
01:15that we have got some Value Lists already created in here and each one of them
01:18are Custom Values. We use this one in the previous version and we see we just
01:22type in to this text area a Carriage Return separated list of values.
01:27The order is also important if this is the order in which we want the options
01:31for data entry to appear. So, if we go into create a new one, which we want to
01:37create our Seasons, see we have got a couple of other option which we are going
01:40to talk about these options in the next couple of chapters. But first, we name
01:44our Value List and we are going to want to name it something that makes sense,
01:48in case we need to use this again for either sorting or putting into a Value
01:51List on a different layout. This will be the one that, when we see the name,
01:54makes the most sense to us.
01:56So, we say, Winter, Spring, Summer, Fall, and Year-Round and we hit OK and now
02:09we have got this list that's stored in here with both the order and the values
02:14themselves that could be useful to us in all sorts of different activities. The
02:19one activity here will allow us if we extend that sorting example, we can sort
02:26by Season, using a Custom Value List; sort and you see that it sorts in Winter,
02:36Spring, and then Summer, Fall and the last one is Year-round.
02:45Now, we are going to look at assigning these Value List to fields in just a few
02:50chapters. So, we are going to come back to that Seasons one and show you how we
02:54can use it for data entry as well. But for now, let's stick in the Manage Value
02:58List and look at the different types of Value Lists that we can set up and the
03:01next one that we are going to look at is creating Value Lists that are using
03:05field indexes or field values.
Collapse this transcript
Creating a value list from a field
00:00So, there are other types of list that we might want to create as well. Let's
00:04say, for example, we looked at creating a static list through the Manage Value
00:10Lists dialog. But let's say, we want to create a Value List of, let's say,
00:15countries and we want it to be a list of all the countries that we currently
00:20have entered into the database already. If we look at, we can tell what that
00:25is; we can either go record by record or if you recall, if we click into this
00:29dialog and we do Apple+I or Ctrl+I, that will allow us to view the Index. So,
00:38we see almost everyone of these 44 records or at least, some of them have
00:42duplicates. But here is an index, an alphabetized list of all the different
00:46countries that we have got. So if I was having a lot of time in my hands, I
00:50could print this out or copy these values and then go into Manage Value List
01:00and we are going to create a new one. Let's call this one Countries and I could
01:07type everyone of those values or I could paste everyone of those values into
01:10this list.
01:12Now, there is an easier way to do that and also, there is a dynamic way of
01:15doing that and that is to use values from a field. So, in this case, what we
01:20are doing, you will see by clicking on this button here, it changes to a
01:25different dialog. So, it says, okay, what field am I going to use to populate
01:29this Value List. This is a nice one because what it does is it pulls not only
01:32the countries at the time that I'm making the Value List, but if someone else
01:36adds another record to the database with a new country, it's going to, of
01:39course, update the Index and then therefore, update the Value List that I'm
01:43defining. So, it's not really use values from a field so much as it is; it's
01:49really use values from the field's index.
01:52So, if we go under Specify Fields for Value List "Countries", the new one that
01:57we are setting up, I'm going to choose the table and we will choose adventure
02:02and then we see all the different fields inside that table will appear and I
02:05can pick any one of the tables inside this file or anyone of the tables related
02:09to this files or the tables within the file. So, if we look for country, we
02:14will say Include all values and then I will say OK and OK again and what I can
02:23then do and we will look at that in couple of movies here, is assign that Value
02:28List to the County field. Couple other quick things to take a look at before we
02:33move on to that Managing Value Lists, Country, Specify Fields. You can also
02:43say, which language you want to sort in and this is where you might to choose
02:47Unicode in case you have got foreign language characters, special characters
02:50that type of thing. So ,if you are dealing with countries, it might be a good
02:53idea depending on how you are spelling those out if it's all English language or not.
02:56You do have the ability to Re-sort something in a different language.
03:00Basically, you are just changing the Index for the case of this Value List
03:03here. So, there is another way to setup Value Lists as you can see here and
03:09that's using Value List from another file. So, let's take a look at how we
03:12borrow a Value List from another file.
Collapse this transcript
Using value lists from other files
00:00We have looked at setting up a Value List based on custom values, for example,
00:04the Customer Type one that we created and not only does the order of the values
00:10come into play when we are sorting by them, for example, but also the values
00:13themselves. If it's not static list of values, we have also looked at making it
00:19a dynamic list, it's based on a field's Index. What if we want to use a field
00:23index from a field that's not defined within this file and this is probably
00:29more common if you have migrated solutions that are multiple files all related
00:33to each other and sort of having everything in one area. But let's say, in this
00:37case, we have another file that is called adventures and we want to use a Value
00:42List that we set up in that file.
00:43Well, in that case, what we would do is, we would create a new Value List and
00:48call it Adventures and so we have used the values from the field but what we
00:53want to do is use the values from another file instead. So, we select Use value
00:57list from another file. First we have to link to that file, so you see that we
01:03can either link to and this is actually pretty interesting and this is the
01:06stuff that is going to be covered in Beyond the Basics, but we can link to an
01:11external source outside a FileMaker. So, I can create a Value List named
01:15Adventures that is populated and again, we will cover this in Beyond the Basics
01:19but this is a little preview.
01:20I can have a let say a sequel table somewhere of Adventures on a completely
01:26different server, in a completely different database format and I can link to
01:29that and pull in values from that field if I want to. But here, what we are
01:34going to do is Add a FileMaker Data Source and we will look in the Value Lists
01:40for, if you want to play along, we have got Adventures. So, right now, adding a
01:44FileMaker data source allows us to simply add any FileMaker files as a data
01:49source here, but we do have options and we will cover that in Beyond the Basics
01:53to add other non-FileMaker data sources.
01:56Now, once we have linked to the file or if we already have a link to the file
02:00or a file reference created for other purposes and we just select that file, we
02:05see that we have got all the Value Lists that are defined in that file are now
02:09available to us here. So, all I have to do then is select a file and select the
02:15Value List inside that file and now, I'm sharing a Value List which could be a
02:20dynamically generated from a field in a completely different FileMaker file.
02:24Now, I have got that defined as a Value List within my existing FileMaker database.
02:28The next thing that we are going to take a look at is to have two different
02:31values show up and use the second value in our list and then we are going to
02:35talk about how we can assign these values to fields in our layout and you are
02:39going to see why using second value is actually so useful. So, let's move on
02:42and take a look at how we set up this other type of Value List first.
Collapse this transcript
Displaying second values and second fields
00:02The last type of configuration of the value list that I wanted to cover is
00:05actually already defined inside of this file. We take a look at the guide value
00:10list; let me look a little bit closer. We see that it's setup as a value from a
00:14field, but notice that we have got two different fields defined here. Let's say
00:18the reason that we would want to do this, and you will see in the next chapter
00:21how we are going to assign these value lists, and the different type of value
00:24list that we can assign to a field. Let's say for example we are creating a
00:27child record, and that will be further defined in the relationship section.
00:31Let's say we have got customer records, we have got invoice records, and on
00:34each invoice record we want that to have the customer id. Well, when you are
00:38creating an invoice, we can have a dropdown menu assigned to a field, let's
00:41say, and that's using a value list of all the different customers but if you
00:45show the customer id, or more specifically in this case, if we are showing all
00:50the different guides in a dropdown list in a field on a booking record.
00:54Let's say, what we really want to have is the guide id populate the field, for
00:59which we have assigned the dropdown list, but to a user, they don't know the
01:02guide ids, and they don't know what all these numbers are. So instead what we
01:05would do, is we would setup a value list that has from guide, show all of the
01:12ids, but what we would also like to do, you see these check-box down here, is
01:18show values only from the second field, or we could sort values in a different
01:23way as well.
01:24So the first thing that we are going to do, we could set up a value list that
01:28shows all the guide ids, assign this to a field inside booking, and every time
01:33a user creates a record, they have to pick one of the guide id as well. The
01:36guide ids may be don't make sense to the users, so what we will do, is click on
01:42also display values from the second field, and in that case, we would have the
01:46full name of the guide.
01:47So this way what the user is going to see is the id value, and then the full
01:52name to the right of it, and when they choose one of those values, what it's
01:56actually going to do, is populate the id into the field, which is ultimately
02:00what we want. But maybe the ids are confusing to the user, or possibly they are
02:04sorted by all the ids, and it's hard for them to find the guide names
02:08alphabetically. So what you can do here, is sort by the second field.
02:12So instead of sorting by the ids, it will show all the ids, but it will be
02:17sorted by the name. So someone can click into a guide field, see all the guide
02:21names alphabetically, click on one, and it will populate the value of the id.
02:26Now if we don't want the number showing there at all, and it will just be what
02:30appears to be a dropdown list of all the full names of the guides, but when
02:33they choose a guide, it's actually going to populate the id. Then we say, show
02:37values only from the second field.
02:40So this value list when assigned to a field will only show the full names of a
02:46guide, but when selected, it will actually populate the id value into the
02:51field. Now this is a critical exercise when it comes to creating child records,
02:55either through a portal, or just manually, and we will get to that more when we
02:58talk about the relationship section. There has been some interesting updates in
03:02current versions of FileMaker, but right now this option is as powerful as it's ever been.
03:06So keep this in mind when we start working with the relationships in creating
03:09child records, through things like portals. Now I have made reference to
03:14assigning these value lists to fields on a layout, so in the next chapter we
03:19are going to look at how we do that.
Collapse this transcript
Field control setup
00:01So we have looked at all the different ways to set up a value list within the
00:05FileMaker and one of the ways that we looked at using those value lists was to
00:09use it as a custom value for a sort order. But the more common use, if we look
00:14into our Exercise files we will see an example of this is for assigning to
00:19fields and let's go into Adventure Detail.
00:23We know we have a value list for Countries, we know we have a value list for
00:26Seasons, let's make it easier for the users, so when they create a new record
00:30they don't have to go in and type the country and if you look at the auto
00:34complete option which is also based on an index, but let's look at a way that
00:37we can present all the options on screen to users so that they don't have to
00:41type in values each time.
00:43It's also good to be able to enforce the way the countries are spelt, so if you
00:48don't want someone to type in USA and instead want them to type in United
00:51States, well then instead of having them type in, give them a list of values to
00:54choose from instead. How do we do that? We do that by assigning a value list to
01:01a field in a value list style but it has to happened in Layout mode and the way
01:05that we can access this, first let's start with Country.
01:08We want to select the field and we can do Format, Field/Control, Setup. We are
01:13looking for the Field/Control Setup dialog. We can also manage this with the
01:17contextual menu by Right-clicking on a field or Ctrl-clicking on a field. So we
01:21see here we have got the field that we want. We got country and this is also
01:25the field that pops up, if you want to change this from country to region or
01:29something like that.
01:29But we are going to keep it on country and we are going to focus on the Control
01:34Style here, the default for a field that's created in FileMaker is Edit Box,
01:39but we can change that to anything we like. You see we have a few different
01:42options here. We have explored in an earlier chapter the dropdown Calendar, we
01:46will take a look at that again, but we have got dropdown List, Pop-up Menu,
01:50Checkbox and Radio Buttons.
01:51Let's take a look at what these look like. Each one of them has a different
01:54series of options as well. So first looking at the dropdown List option, then
01:58next thing that it asks us to do is choose one of the value list that we set up
02:03and if we don't have a value list yet, we can hit Manage Value Lists. So we can
02:07look at the values or maybe we just want to say, Oh! Yeah which one was it that
02:10I set up. Oh! Yeah, okay its Countries, that's right.
02:14So we can choose Countries from our list and there are couple of options that
02:18we have in a dropdown List. Well, let's take a look at it first and you will
02:21see why those options are necessary. So now we are in Layout mode, we have a
02:24Value List assigned to this. If we go into Browse mode after we save our
02:29changes, we can see how this looks.
02:31You see now, when the user clicks or tabs into a field that our entire
02:35countries value lists shows up as options for them and they can select one of
02:41those if they like or when they click into the field they can type, for
02:45example, the first letter on their keyboard U and it will show United States
02:49and help them get down to that area quicker, if you are training data entry
02:52personnel to use the solution that you have created. You might want to pass on that tip.
02:55But also you see here that we this kind of value list that we have assigned or
03:00this value list type, users could still go in and click USA. Well, what if we
03:04want to strictly enforce and make sure that they are only choosing from values
03:09that are in the field already. Well, there is another way that we can get the
03:14same type of the fact but in this time I'm going to right click on this down to
03:18Field/Control Setup, instead of the dropdown List, I'm going to say a Pop-up
03:22Menu and a Pop-up Menu has the ability to pick a value, but it's a little bit
03:27more restrictive.
03:28You will notice that the format changes a little bit because it's not a true
03:31field; it's just a field value selector. We will go into Browse mode by hitting
03:36Ctrl+B, save out changes and now when a user tabs into that field or clicks
03:43into the field, you see that they can only choose one of the values that are in
03:46the field. They don't have any other options here. They can only choose one of
03:49those values and they can't click in and type something else.
03:52So depending on how much you want to restrict their options or their ability to
03:56add values that are not on your value list, you can either use, again if we go
04:00Ctrl+L or Apple+L into Layout mode, you can either use the dropdown List, which
04:06gives them the options and the Pop-up Menu which only gives them these certain options.
04:12Now because the dropdown List still looks like a field, you have another option
04:15on here, if you choose it to Include an arrow to show and hide list. Go into
04:20Browse mode again, hit Save, this let's the user know when they are in the
04:24field that sure you could type something in but there is a value list assigned
04:27to this field.
04:28So a little bit of a visual icon to assist them there. There is also some other
04:33options here. You can choose from the Pop-up Menu, include other item to allow
04:44entry of other values. So if you want sort of the restrictions are somewhere in
04:47between a field that you enter in or a dropdown List and restricted to Pop-up
04:52Menus, you can allow them go into Browse mode, Save.
04:59You can allow them Other and Other will allow other items to be added into the
05:04list, other than what are previously in there. But really the best rule of
05:08thumb or the best practice here is to use Pop-up List for when you want to
05:11restrict only to particular values and use a dropdown List, if you want those
05:16to have optional values to save some user some key strokes that they might
05:19enter in a new value and in this case if you remember, we set up the Country
05:23Value List based on values inside the country field. So if we use a Pop-up List
05:27here, we would never have any values in it, instead we are going to use a
05:31dropdown List that will allow user to type in some values that will then append
05:35the existing value list for future data entry.
05:38There are some other options that we can choose from in addition to what we
05:43have looked at here already with the Pop-up Menus and dropdown Lists. If we
05:49look into Seasons, let's say we want to add and we know we are here; there are
05:55only certain options that we can allow a user to choose from. So if we go into
05:59Field/Control Setup and let's say that we want a Radio Button Set and we can
06:05choose anyone of these and were are going to choose seasons because this is the
06:08Seasons field and we see a little bit of a preview of it and that it tells us
06:14that I might need a little bit of space and let me select and with my arrow,
06:22I'm going to move these field over to the right, and of course I could just
06:25select them all and slide them and if I hold my shift key, it does it laterally.
06:29Now what's nice about this Radio Button option is it previews in Layout mode,
06:35so we can move these fields around if we need to be and just for the sake of
06:42example, now we will go into the Browse mode and click Save and we see here,
06:48now we have got Radio Button options so the user can choose Winter, Spring,
06:52Summer, Fall or Year Around, just by clicking on one of the Radio Button options.
06:56Another example of that is in Fun field and this is an example of showing how
07:04we don't have to have a field that matches the name of the value list. Here we
07:09are going to display values from Yes or No to allow users to select in Browse
07:14mode, either Yes this is fun, No it wasn't. You see there is little bit of a
07:19formatting difference, here this doesn't have a field filled in the
07:23backgrounds. You can see radio buttons look a little bit crisper and clear that way.
07:27So another example that I wanted to show you if we go to Guide Detail, let's
07:32look at we have got a hire date in here, let's go into Field/Control Setup and
07:39we already looked at these other options here, Radio Buttons, we are going to
07:41look at Checkbox, is in a second but the one I want to show you now is the
07:44dropdown Calendar. This is another data entry option. If we go into Browse mode
07:49and hit Save. Now when a user clicks into this field they can change that date
07:54to whatever date that they like. So a dropdown is another value list that we
07:58can assign to a field but it just happens to be a value list of all the
08:02possible dates that there was.
08:04Let's see there are a bunch of different specialties and we want to choose each
08:09one of them as we set up a guide in the system and again we will right click,
08:14Field/Control Setup, let's look at this last one Checkbox Set and we are going
08:21to assign Specialties to the Check box set and we will go into Browse mode and
08:25again you can see that we are previewing it in Layout mode, but we will save that.
08:29And what's nice about this is unlike in a radio button which for the most part
08:33are mutually exclusive options, here I can do multiple options and what this is
08:39actually doing in the background, if I go back into Layout mode and drop the
08:45Specialty field, Current table guide and there is Specialties. It's interesting
08:54when you get into more sophisticated development techniques that might use
09:00arrays, you can see that what's actually being built into the field are a
09:05return or carriage return separated array of values and what's even more
09:10interesting as you see it follows the certain order. So if I do Wildlife first
09:14then Bouldering then Hiking, it changes the order as opposed if I just did it
09:18Bicycling, Bouldering, Climbing.
09:21So that's helpful, a little bit of a preview there for things when you are
09:24working with arrays or creating arrays this could be helpful, the order of how
09:28you are parsing these out might help you for instance if you are doing a survey
09:32with you know pick all these in the order in which you prefer. So a couple of
09:36different methods there, we have got radio buttons, we have got dropdown Lists,
09:41Pop-up Lists, the Calendar itself is the only one that's not based on a value
09:45list that we have already set up.
09:46So now in the next one, we are going to look at a couple of quick additional
09:49examples of other uses of value list aside from assigning them to a field.
Collapse this transcript
Additional uses of value lists
00:00We have looked at a couple of ways to use value list that are set up in the
00:03database but let me do an overview here of all the different ways that you can
00:07use a value list. First let's open up a file, Lucky_You_Tours_13_06 and we see
00:15that we have got some value lists set up within our database and we have got
00:23Customer Type, we have got Specialties and Seasons, Yes No, Adventures and all
00:28these are different types of value list that we set up.
00:31Well if you remember in the sort version, we know that we can use a value list
00:37as a sort type. So if we go into Layout mode and we look at the Button Setup,
00:47we see that we are sorting records without a dialog based on Type but we are
00:53using our custom value list that we created for Customer Type to be the sort
00:59order in this case, so one of the uses is as a custom sort order.
01:03If you remember when we were talking about setting up a validation on fields,
01:09let's go into the Adventure table and let's look at the field Season, let's say
01:17we have got season use throughout our database and we want to make sure that
01:20users aren't entering anything in but just the certain seasons that we have set
01:24up or maybe the certain way that we have spelt the seasons or abbreviated them
01:27or whatever it is.
01:28This validation of course is something that allows you to be restrictive or
01:32controlled the entry of data to maintain the integrity of that data with the
01:35new database and we can set up a validation in a number of different ways all
01:39of which we cover in the validation chapter, but this one here Member of a
01:44value list, if we click on that, we can choose the value list and in this case
01:49for Seasons we can choose the seasons value list.
01:52And now if I hit OK and let's say I go into -- we will save that change there,
01:59but if we go into the Adventure Detail view. If I'm a user and I want to type
02:08in Summer which is my favorite season, when we commit we see Season is defined
02:14to contain only specific values. Allow this value? And of course that's just
02:18because I have a allowed user overwrite on there but in this case we will say
02:21Revert Field back, we could just simply assign by right clicking on the field
02:27or Ctrl-clicking on the field going to Field Setup, we could assign a Pop-up
02:32Menu for seasons to the season value list that we will accomplish the same task
02:38and then we go into Browse mode and Save, it only allow users to enter in these
02:41values. But if we happen to use it elsewhere where we don't have dropdowns or
02:44we are setting this to something else, keep in mind that the validation is
02:48another one of the uses for a value list.
02:51And then finally introduce you to this use but in a calculation, there are also
03:00uses for, and we will cover this in Beyond the Basics, but just to give you a
03:04preview, we can set up value lists and we can parse out value list items, we
03:13can use values to create arrays, we can set up arrays using value list, either
03:18through the data entry or through a dynamic value list itself and then parse
03:21out certain values that way and there will be more on this in Beyond the Basics.
03:25But the idea is you can set up values inside your FileMaker file through File,
03:30Manage Value List and these values can be used in a number of different ways,
03:34for custom sort orders, data entry, validating on scripts or validating on
03:39fields and use them in any Calculation dialog whether it be setting up a field
03:45calculation or when you see the calculation dialogs when you are setting up
03:49script steps as well or conditions in script steps, all of which will be
03:52covered in Beyond the Basics.
Collapse this transcript
14. Printing
Print layouts
00:02We discussed earlier how a typical database application requires attention to
00:05at least three core areas, proper database architecture, which is what we
00:10covered when we defined tables and fields in our solution and a sensible and
00:14usable means of getting data into the database for data entry, which is what we
00:18had covered when we developed the layouts and also some of the other field
00:21specific data entry tools and then the last thing to pay attention to here is
00:27accurate and useful output of the data in the form of reports. Now you could
00:31also export data, but in this next section we are going to concentrate on
00:35creating reports within FileMaker Pro.
00:38A couple of points before we get started, you can print database records in
00:42List View or in Detail View, and you can print single records at a time, or
00:47entire found sets or even blank records that you can use as forms. FileMaker
00:51has a mode that's built in, that's specifically for previewing what your
00:55layouts are going to look like when they print and that's called Preview mode.
00:58We are going to take a look at all of these in the printing section.
Collapse this transcript
Previewing pages and print options
00:00One of the nice things about FileMaker is that you can print any layout that
00:04you have created in FileMaker Pro. Sometimes that's a good thing when they are
00:08designed properly and sometimes it could be a bit problematic and we will take
00:11a look at how you can foresee, how your layouts are going to print.
00:15Let's open up the exercise files, printing, Lucky_You_Tours_14_01 and we see
00:22that in this database, we have got a series of different layouts. And we can
00:27print any one of them; we can print any one of these layouts. Let's take for
00:30example, this layout, and see what it would like if we printed it. And I'm just
00:35going to do a preview of this.
00:36We see that this layout, although I can't print everything, maybe I might not
00:40want all these, all this stuff over on the side, but the one important thing we
00:43see is that this got cut off. So in this print, I was able to see that I need
00:48to move this around and make a little bit more sensible or printable layout
00:52here, and we will look that inside Layout mode to see that we do have some
00:58control over that. If you see this line right here, and also on the bottom, it
01:04tells us based on the print driver that's set up, and in the next movie we will
01:07talk about setting up the print driver and some of the print options, you will
01:11see that this is a cropped area.
01:12We know even when we are in Layout mode, that the header is going to get cut
01:15off and that the photo is going to get cut off here too, and you see that every
01:20layout has these in here. We go to the layout that's called Adventure Sales
01:25Detail. This shows us a good example of these layout parameters in use.
01:30Let's take a look at what this record would look like if we printed it also.
01:33You see here that we have got some data, but that it's cut off here and it
01:39presents a margin and we don't have our rounded out areas there. That could be
01:44a bit troublesome. So what we would know that we would do is resize and we can
01:51use our Resize tool here, to simply say 600 or may be 590. Now if we print
02:01this, we print this, it fits perfectly.
02:08Now, you will notice that we have got fields here and data in this section, but
02:14instead of having to print and kill paper, use this preview feature. FileMaker
02:18has a mode that's dedicated solely to looking at what a value will look like
02:23and also being able to cycle through the different records. To see what these
02:27will look like also.
02:29So this is called Preview mode. So if you want to see what your documents are
02:33going to look like when it prints, just go under View to Preview mode. Now some
02:38of the things that affect what things look like when they are being printed
02:41are, for example, the paper that you have set up, the drivers that you have set
02:45up and we can look at how we can control those and some of the FileMaker
02:48specific options for those drivers to.
02:50So let's take a look at how we set up some of those print and paper options in FileMaker.
Collapse this transcript
Print and paper options
00:00I mentioned a couple of times in some of the previous movies about how the
00:04print driver is going to affect the area within layout that we have to design
00:09or determine what the margins are on our printable layouts. Well let's take a
00:12look at how we control them; it's very similar to a lot of other applications
00:15you have probably worked with, with the same logic. But the other thing is too,
00:19I have a specific print driver set up on this machine that I'm using for the
00:23instruction here, but you may have a completely different print driver.
00:26So don't be alarmed if when I open up some of these dialogs, it doesn't look
00:29anything like what you are looking for. Do a little bit of digging around you
00:32can find the same dialogs as I have or who knows we might have the same printer
00:35and yours does look exactly the same.
00:38But either way there's a couple of things that you want to set up and just for
00:41your reference these are things that can be controlled in the scripting and we
00:45will talk about that in the scripting chapter. First of which is the Page
00:48Setup.
00:49Page Setup just like in any other application can set your page attributes, and
00:55format for one of the printers that you have set up and this is a printer that
00:59I have got set up here and I can do printing size and of course that's going to
01:04affect what my margins are and how, of course, how big it prints but then also,
01:09what my printing area is, when I'm in Layout mode. And also you can see we have
01:13got control over the Orientation. Let me switch the Orientation from Portrait
01:18to Landscape, and see how that affects things in Layout mode.
01:23Notice now that my print area is much wider, you see I can fit everything into
01:30this now, although it gets a little bit shorter. So if I go in and change it
01:37back to Portrait. You see now how it's changed back to the edges that I was
01:42using earlier. So just like any other application, you can control what paper
01:47size you are printing to and the orientation and such on the outputted
01:50document. But you will see within FileMaker that it affects the margins that
01:54you have available to you also.
01:56Now the next thing to look at is when you actually get into the Print dialog.
02:00Again, your Print dialog is completely different, if you are on Windows, it
02:03will sure look different. There might be a little bit of digging around to do,
02:07but in addition to the printer that you are choosing, in my Print setup what I
02:12have got is a series of different options here. But you will notice when you
02:15are printing out of FileMaker Pro, there's going to be a FileMaker Pro Options
02:19and what that allows you to do is choose one of these three options here.
02:23Print either the records being browsed, the current records or the blank
02:27records showing fields. Now, the records being browsed, we will talk about that
02:31when we look at printing lists versus detail, that's in the upcoming two
02:35movies. But the one that I wanted to show you here, is if I want to just print
02:39out one of my records, and I don't want any fields in there, I can say print
02:43out this layout and represent my fields as boxes or with the underlines in
02:49here, as you see it or as formatted.
02:51And it's a helpful tool for previewing what your reports are going to look like
02:55and if you ever form setup as a report and you just want to print out blank, so
02:58someone can hand fill it out, for example, just one of the uses there. But
03:02records being browsed versus current record is something that you can store in
03:06as a setting in your scripts, in your print scripts.
03:09But keep in mind that in FileMaker, if you are sitting at your machine and you
03:13choose current record, and then the next time you print something in your
03:17FileMaker database, it's going to default to the current records. So keep in
03:21mind that, if you have made a change or if the script has made a change, it's
03:24going to stay that way until somebody changes it back and you will see when we
03:27talk about the difference between printing lists and printing details in this
03:30next movie, you will see why that can make a pretty big difference.
03:34So let's take a look at the difference between printing lists and then the
03:37difference between printing details.
Collapse this transcript
Printing lists
00:00There are basically two types of print- outs that you are going to want to make.
00:03And one is, looking at one record at a time and another is looking at as many
00:06records as you can at a time in a report; and we'll categorize the many records
00:10as printing lists, and printing a single record is printing detail views.
00:15Let's first look at printing lists. We'll go to a layout that has been set up
00:19to print lists. And there are a couple of ways you can control how many records
00:22show up on your list and what those records look like when you print them.
00:26First of all, inside the layout level. If we have a layout that, let's say,
00:29looks like this. If we go into our Preview mode, we can see that -- and one of
00:37the things by the way about Preview mode is that it determines how many
00:40different pages it is going to take to print these records.
00:43So if we go back to Browse mode here we see that I have got 22 records or if I
00:49find all I've got 44 records. So if I go and do Preview mode, we can see how
00:55many pages that it is going to take to print. Well that's 5 pages.
00:58Well I have a little bit of control over this. I can go into Layout mode and
01:01make sure that my body, in my List View. Now we go back to Browse mode, save
01:07our changes. The body is only as high as that needs to be with the height of
01:11the field.
01:12So that's important to take into account and then that way we see that these 44
01:16records, and of course I'm going to modify font size as well. But if we go into
01:20Preview mode, we can see that we have cut that down for 5 pages to just 2 pages
01:26which is a lot more efficient for generating these lists.
01:29We might not always necessarily want to print all of the records in the
01:32database. In Adventure list that might not have that much of an impact but if
01:36you look at Trip list or Customer list -- and in the case of Customer list I
01:40could print this list 1522, which you will see that could be 77 pages.
01:46Now granted, maybe I want to have a hard copy of all my clients but another way
01:50to affect the amount of pages in a List View or the amount of records that you
01:53are viewing is, of course, to isolate only certain found sets, and we talked
01:58about this in the Find In chapter.
01:59But let's say I just want to print out that have a designation or a type of
02:04Tin. So I can control the amount of records on a page by how I design a layout
02:08with the format, and then I can also control based on the found set on how many
02:14records are going to be printed. Also I can control -- if you remember from the
02:19sorting, I can control what that found set looks like when it prints.
02:23So the things to remember here is that either manually or for scripted actions
02:28you can create a Found Set and look at that found set in List View and then you
02:33can control the sort order and you can control how many records and how many
02:36pages will be printed, all through some of these different techniques that we
02:39just discussed in this movie.
02:41Let's take a look at now, instead of printing list, let's look at printing
02:44details of one record at a time and some other considerations there as well.
Collapse this transcript
Printing detail
00:02Instead of trying to fit as many records on a print out as necessary, sometimes
00:06you only just want to isolate one record. Couple of things to take into account
00:09there. We looked at earlier about how the first thing that we want to look at
00:14when we are in Layout mode is making sure that all of our and we'll see here
00:22586. We want to make sure that everything fits within the print area and, of
00:26course, we can control the print area by which printer driver that we set up,
00:31and you see here that as long as everything fits within these margins on the
00:35right and then also, on the bottom of the screen that everything is going to
00:39print under one page.
00:42That's the idea when you print in a Detail view. So if you want to print just
00:47taking a look at one adventure at a time, there are a couple of things you want
00:52to do. First off, it's Okay to have one layout for data entry and then a
00:58completely separate layout for printing. You see this on the web all the time
01:01with Print ready layouts.
01:03So really this is similar information but we don't need all this. We don't need
01:07the buttons, we don't need a lot of the information that we see or maybe some
01:11of the information is private. All we need is the description and some info
01:14that we can share with people. And that is what we have added here the
01:18Description and the Price and a picture and then just some branded formatting.
01:25So the other things to take into account when we are printing just like we
01:27talked about with Found Sets, is if I went and printed -- now I'm looking at
01:31the Kilimanjaro and Safa Adventure, if I go in Print right now I want to give
01:37somebody a copy of Kilimanjaro and Safa record. And you see that it has printed
01:43one record.
01:43Well, the reason for that, if you recall when we were setting up the print,
01:47looking at our Print Setup we have got our Preview open here and we notice that
01:55we can dig down into some of the features here. We can choose either records
01:59being browsed or a current record. We want to be careful there because if I
02:04have the records being browsed and I have a Found Set of 44. I'm going to get
02:0744 of these pages printed out of my printer. But instead I'll want the Current record.
02:12Well instead of nesting with your print area, I can omit the record, and one of
02:18the tricks there is either for scripting you are manually is to omit the Record
02:21which is Ctrl+T, and then Show Omitted Only, and that isolates the one Record.
02:26Or I could just go in the Find mode and choose Kilimanjaro and Safa and isolate
02:32one record and then go into my Adventure Sales Details
02:36So there are some ways to control not only the number of records and the print
02:39area and also the items that are printed so you can create a layout that has
02:44only the items that you want to print out and remove all the other extra
02:47curricular items there that you don't need. Make sure that you are within the
02:50margins and control the number of records you are printing, either through
02:53creating a Found Set, through script, or manually before you print, or by
02:58working with the print options.
02:59There is another way that you can manipulate the way that fields on screen will
03:05be printed and also, Omit some items from being printed. And, that's through a
03:10dialog that's called Sliding and Printing Objects. So, let's take a look at that one now.
Collapse this transcript
Sliding objects
00:00Here is another helpful tip when it comes to your print ready layouts. You'll
00:05notice that no matter how hard you try when you are creating a print ready
00:08layout that's really heavy on text fields or even a text area or just a lot of
00:13fields, you are going to notice the discrepancy. For example, I created this
00:18layout where you can show some sample data by sizing out the fields and the
00:23font, the styles and such, so that on the record that I have happened to be
00:26looking at, I minimize white space.
00:29The problem was, when you go into Browse mode, you'll notice that there is a
00:35difference from record to record in the amount of text that's in each one of
00:39these fields. So how do we remedy that? Well, FileMaker has a function, when
00:43you are in Layout mode, where if by selecting all of the values we can slide
00:49them for printing, and of course when we are in Preview mode, we are actually
00:52looking at what something looks like when it prints.
00:54You can find these Set Sliding/ Printing dialog under the Format menu and when
00:59you select Set Sliding/Printing, you can either turn on or off Sliding up based
01:05on and here is a couple of different options that you have here. Notice that
01:08I've selected all of the items and I'm using the top part of this page as an anchor.
01:12You have three options; you can slide to the left or you can slide up and the
01:18sliding to the left might be more useful, if you were doing something like
01:21this, like if, some values didn't have a data in the Adventure field, you can
01:26slide the Price and Country over to the left, if it make sense, it doesn't
01:29always make sense to do so.
01:30We're back on the Sales Detail, you select all these items, go to Format, Set
01:38Sliding/Printing and what we want to choose from is either All above or Only
01:41directly above and really the nomenclature here doesn't make much sense, but
01:45what your decision really is, if you look at the graphs, is you either slide it
01:49up to the bottom most part of whatever value you have and we only have one
01:53field here so our decision is easy, we just go to the bottom or you do to the
01:57highest areas.
01:58So we've two different areas, this is really the choice that you are making
02:01but, in this case we are going to slide All above and let's take a look at what
02:05impact that has when we are in Preview mode. So here's our first record and
02:10notice the next record. Everything slides up, all our white spaces minimize.
02:13The one thing you'll notice is we have a lot of white space on the bottom of the page.
02:17Now in this case it doesn't matter because we are purposely making an 8 x 11
02:20tear-sheet, but if you'd want to eliminate that, you can select the couple of
02:28the items and check the Also reduce the size of enclosing parts. So what
02:33that'll do is shrink up the body, so that it has adequate white space between
02:38the edge of the body and the first field. So, also in this dialog is another
02:43useful setting.
02:45Let say you haven't created a print special layout, but you want to just print
02:50this page but only the items that make sense, like none of these data entry
02:55areas and not this photo image here. So what you do in that same dialog, go
03:01into Set Sliding/Printing and select Do not print the selected objects.
03:06Now when you go into Preview mode, you'll notice that those objects are gone.
03:11So this is a helpful task for when you've got a print ready layout that might
03:15have a button on it, like a Print button, it's very common use for a Print button.
03:19Or you can make a print ready layout and all the while not lose the
03:24functionality these things are completely activity, they just simply don't
03:27print, when you are in Preview mode.
03:28So, here is a couple of helpful tips on a generating a print ready layout for
03:33layouts that have either text that you want to slide or items that you don't
03:37want to print.
Collapse this transcript
Printing merge letters
00:00One very popular printing option outside of a FileMaker database that a lot of
00:04users require is the ability to print letters. Now, if you are familiar with
00:08applications like MicroSoft Word, for example, you know that you can create a
00:12template and then you can throw different tags or what are called the Merge
00:16Fields into your template, that then dynamically pull data from a Datasource
00:20whether it's a static file or in some case you can even connect a database to that.
00:24Well, all that functionality is built right in the FileMaker Pro, if you create
00:27the appropriate layouts and use what are called Merge Fields. Let me show you
00:31an example of that. If you go into your printing, Lucky_You_Tours_14_09 and
00:40what I've done is I've set up a Confirmation Letter. Now, you see that we've
00:44got, for each booking there is 1522 bookings in here. Let just say the business
00:49rule here is each time of booking, it's sent out. The president of the company
00:53Boo Radley wants to send a Thank you letter to that individual.
00:57Well, we've got all the data that we need inside the database and what I've
01:00done is created this letter and we'll look at in Layout mode. Now I did is,
01:07create some formatted graphic areas and put some text in here and then I have
01:11two text areas where I just typed in pick some fonts that I want, I've typed in
01:16the values that I want to show up in this letter and I've left the little bit
01:20of space because that's where I'd like my dynamic values to show up.
01:23So let's experiment first with looking and trying to put a FileMaker field in
01:28that area. If I put a placeholder here of let's say the first name of a
01:34customer and fit it in that area. I can also then use a placeholder for let see
01:43what's the trip that they booked. We'll say trip Name and if we want to make
01:50sure that we look in at that. So I see there is and Cris Everest. So that's all
01:54great, well actually what I'm doing here is -- and I'm trying to size it to the
01:58name, so that maybe I could size it to Everest.
02:01But, what I'm doing is creating a scenario here for you that are going to have
02:05problems and I want to show what problems these Merge Field solve. But first
02:09let's looks at this in Preview mode, that's all finding good. We can get rid of
02:14some of that formatting and maybe fix the fonts and tweak that a little bit.
02:18The problem is though, not all the names or the same width, so I'm going to
02:22have a ton of really kind of kludge white space there and I don't have any wrap
02:27effect here. I guess I could space this out to fit the largest Adventure name,
02:31but what's the real alternative? Well, the alternative is just to use a Merge
02:34Field instead, so let's get rid of these fields.
02:36An Emerge Field that falls under the -- it's not a different type of field that
02:43you define. It's just a different way to place a field on your layout. You can
02:47find that under the Insert menu along with all the other things you can insert
02:50into a layout, at the very bottom you've got Merge Field. So, if I go into the
02:55Layout mode and say Insert > Merge Field, let's just take a look at what the
03:02Merge Field will look like, we'll just pick any field here, just for
03:06demonstration.
03:07You see that it drops on the layout and it's really just in the form of the
03:11text and all you do - you don't even need to use the Insert button, you can
03:14type it in manually by doing the bracket, bracket, name of field and then the
03:19opposite closing brackets, and what that looks like in Preview mode; of course
03:27not all of our customers have a birthday in there, but for this one you see
03:30that it shows up is the value and I can change that to insert a different Merge
03:34Field if I'd like, first name, for example, we go onto Preview mode and it
03:45dynamically gives me all those values in a style that I can use and it's easier
03:50to work within the file.
03:51Well, the true magic of this is not inserting it separately, but instead,
03:56already going into the text area that I've already created. Just let me get rid
04:01of some of that white space and just say; what I want to do is now Insert in
04:09the Merge Field for a first name and it's a adapted in the same font and style
04:15as my text area and I can also control the spacing between the record before it
04:20and any kind of characters are or record after it.
04:23And now, that I'm viewing and I'm showing Sample Data, we see that looks real
04:28nice there and also here is the other bonus as I get rid of all this white
04:32space that we thought, we needed here. Insert in a Merge Field and I'm pulling
04:38this in from trips, so it's going to give me the related Trip Name and you see
04:42that's formatted a little bit differently, it's just << name of relationship,
04:47:: and then the field that you want.
04:50And now we see that I've got some cool wrapping that occurs here too. So Trip
04:53Name shows up with the date and if I go into Preview mode and look at this, we
05:03get this cool wrapping effect here, that happens because I'm using the Merge
05:08Field as well and since the Merge Field itself is actually looked at as if it
05:13was just text, if I grab the field, let's say and I'll right-click and give it
05:20a Style of Bold and then now we look at in Preview mode.
05:27You see that it will bold the entire contents, if In fact there are contents.
05:32Here we have some other contents, at all different sizes and they all stretch
05:36and shrink and it's not just one single field. I can have the entire
05:40description show up here as a Merge Field. Obviously I've got the name, the
05:44description, I can put any kind of dynamic information in here, a very, very
05:48handy tool when you are planning on printing letters outside of a FileMaker Pro
05:51and this is what is called Printing or Generating a merge letter.
05:55The next thing we are going to look at uses similar principles. You may have
05:58recognized these Merge Fields from, where we create envelopes and labels. We
06:02are going to take another quick look at that in the next movie.
Collapse this transcript
Printing labels and envelopes
00:00Since we are talking about Merge fields here, I just wanted to revisit the
00:04concept of printing labels and envelopes because they too use Merge fields and
00:09this is a quick review.
00:10When you are in Layout mode, you can use the New Layout/Report wizard to create
00:16either envelopes or a labels and if you recall, can use a standard; in this
00:24case let's say Avery Label 5160. Layout and pick all the fields that you want
00:30to have show up, but after you've created something like that, what it looks
00:33like is, what you have here are the Merge Fields and since we've looked at the
00:38Merge Fields and I'll zoom this up.
00:40I wanted to show you that what I've done here and this in part of the standard
00:45is I've made the name Bold or I could make the name a different Color if I want
00:50to, but the idea is, it's a same concept is the letter that we just showed and
00:56if you look, for example, I can print and for each record it goes into this
01:00format, it's not a huge letter, but it happens to be a label that we can print
01:04out in their Merge Field, so I can affect them in the same way that I do with
01:08text.
01:09Or if I want to, I can even get fancy and in one of our previous modules, let's
01:17take this one here. We've got this logo and I can even put that on there. I'll
01:27just move it up, that just to give you the general idea.
01:32So I can put a little logo or maybe it would make more sense possibly in this
01:36case too. I've logo B to the right and move this over a little bit, but you get
01:45the basic just. These are layouts that you can affect and you can change and do
01:49whatever you'd like to. I mean the same is true with the envelopes. Depending on
01:53which envelope size you've created, your header is going to be different and
01:56there is some rules that apply and if you recall we reviewed those in the
02:00section on creating those layouts for envelopes.
02:03So you'll notice that we can do the same here. We can print, we can go on and
02:07type in, Address that type of thing and when we look in Preview mode, we'll see
02:16that we can print out. So, we don't have to go buy envelopes. We can customize
02:19and create our own and we can because these are Merge Fields, we can effect the
02:25way that it looks bold or it could even get fancy with super script, whatever
02:36kind of things that we want to do here.
02:37But you get the idea that because these are Merge Fields, you have a complete
02:40controlled over the formatting and the fonts and such so you don't have to use
02:44it just as is, I want to take the time to, take a look at how this works and if
02:48you want a refresher on how you create these layouts, you can go back into the
02:52Creating Layout section and take a look at the sections on creating labels, and
02:56envelopes using the New Layout/Report wizard.
Collapse this transcript
Summary reports
00:00Thus far in this chapter, we have talked about different ways to print out of
00:03FileMaker, but printing something out of FileMaker doesn't necessarily mean
00:07that it's a report.
00:08FileMaker also has the ability to report on data and that could be very useful.
00:12Really the distinction that I'm making there is sometimes you can just simply
00:16look at the same thing you see in the database. Sometimes you look at something
00:18that organizes your data in a way that provides additional information that
00:22wasn't there, if you were just looking at in a Browse mode in the database.
00:25And the example that I'm going to use would be to create a list and create
00:29something that I would call a Summary Report. So the example that I would use,
00:32what we have got here if we go into Adventure List, let's go into Layout mode.
00:38What we see that we have here is, we have got a layout that's created with the
00:42Body part and a Header and all I'm doing here is, I have got some fields on
00:48here, I have got the field for Country, I have got Title of the Adventure and
00:52then the Price.
00:53If I look at this in Preview mode and what I did there is you can go into
00:58Preview mode by doing Ctrl+U or Apple +U.? I happened to have this sorted
01:05already but if I was scripting this or even if I was doing it manually, I would
01:09sort first and then I can look down here and see all the different prices. Well
01:12this is look, just like looking at List View in FileMaker.
01:15There is something I can do in Layout mode by adding. If you recall, we have
01:19talked about how we add a part, I'm going to add a part to the bottom of this
01:25and the part that I'm going to add is Footer in this case. When I hit OK on the
01:29Footer, now this gives me a little additional space to add another field down
01:33here and that's just what I'm going to do. I'm going to grab this and if I hold
01:36down the Option key and drag, it's going to-- let me Specify another field and
01:43in here, I happened to have a field that's called Price Total and it's what's
01:46called a -- and actually let me put the label on there.
01:49We will talk more about this in the upcoming Calculation chapter but Price
01:55Total is a Summary that is Total of price and one of the cool things about the
01:59Summary fields is, it's based on whatever found set of data that you are
02:03actually throwing at it. So let's go in, I will right click on this and do a
02:07little bit of formatting here, make it Bold and we remember I can go on and
02:14Format a Number, as we have got the Decimal places in the Currency.
02:17If I go into Preview mode now, we will save these changes, looks the same, I
02:22got my same list all sorted in a certain way. But if I scroll down a little bit
02:27to the bottom, I see now that the going into Preview mode and then ultimately
02:31printing this of course has triggered that Summary field to calculate all of
02:36the totals of all the prices that I have here.
02:38So now this is become not just a list but a report which is pretty cool here.
02:42Now you see that this is showing up on both of the pages in the way I can
02:46change that to show up just at the end if I want is to make it a Title Footer
02:52and let's look at how that changes things. That would show up only on the first
02:57page or if I just wanted to be a -- I will experiment with a couple of these
03:05and show you how these change, how things look on the page. I got no total
03:10there, but I have a total at the very end. That only shows up at the end.
03:14So experimenting with the couple of these options, we see that the Footer shows
03:19up on the bottom of every page, the Title Footer only shows up on the bottom of
03:22the first page. The thing that we are going to want to use is the Trailing
03:25Grand Summary and that specifically used to allow a summary and you can put
03:30only Summary fields in there. At least only Summary fields won't work and
03:33provide useful information. Put that information in there and it will follow
03:36your list and the cool thing is we were looking at Find all right now.
03:41Let's go into Find mode and we can go into Find mode by going under View or
03:46like I did on the keyboard shortcuts doing Apple+F as in Find and I will say do
03:53a search for United States and we see that I have got a Found set of 12. Well,
03:58I'm not changing any layout, and I'm going to stay in the same layout we have
04:01just created, but this time I'm going into Preview mode and I have a one page
04:05report that shows a different value 13, 879. So what you are seeing here is that
04:11the Price Total is triggered off of whatever your Found set is and here I have
04:18a Found set of 3 and now we see it changes.
04:20So I can script in these Found Sets and I can sort them differently and have
04:25create a different Summary Reports based on whatever criteria I'm putting in my
04:29search criteria. So this is what would be called a Summary Report.
04:32In the long versions of the Summary Report, for example, if we go back into
04:35Browse mode, where we have got a lot of data here. It might be more useful for
04:40us to group this data a little bit and when it be helpful if we could also
04:43group these by whatever groups that we are creating. Well that's what's called
04:47a Sub-Summary Report and we are going to take a look at creating one of those
04:50in the next movie.
Collapse this transcript
Subsummary reports
00:01So we were just taking a look at how we can create what referred to as a Summary
00:04Report, by defining a Summary field and placing that Summary field on the
00:09layout of what was before just a list view and we know that it will then
00:13summarize based on whatever the found set is.
00:15Now we are going to take that to the next level and actually the other part
00:18about that that was interesting is that, it creates data that was not there
00:23before. So instead of just looking at a list of values which is really not on
00:27report, it's more of a print out; the difference I'm saying there is that it
00:32tells me something that I didn't know before let's say, that's how I'm defining
00:34what report is.
00:35So we've got the Summary report which I can print out for any Found set I can
00:40find every country and print out a report individually, find everybody who
00:43ordered something since this month and print out a report for their totals, or
00:47we are going to take that to the next level and in this movie, we are going to
00:49create what's called a Sub-Summary Report and let me explain a little bit about
00:52what we are going to be doing here.
00:53So first of all we are looking at our file Lucky_You_Tours_14_09 and we are on
01:00the layout for the Adventure report and we are looking at it in a Browse mode,
01:06so let's get over to Layout mode, quick review, we've three parts and, if you
01:11go on the bottom left-hand corner and click on this icon you can see what the
01:14reports are. We've got the Header that just contains our field label
01:18information.
01:19The Body, which by the way contains the Country, the Title and the Price and
01:26then we have a part that's called a Trailing Grand Summary, that just follows
01:30at the end of the report and totals up all the different prices and of course
01:33that change is based on whatever our found set is. Well, one of the reports and
01:37let's look at -- see what this looks like, I'll save the changes here, let's sort
01:43by Country.
01:44Okay, so if we sort these, it kind of helps us out a little bit because I can
01:48visually group all of Argentina trips, let me see there is a couple New
01:52Zealand, Switzerland, a bunch of United States and I can get a general idea of
01:57at least visually what the quantity is on this as well one of the things might
02:00be interested in doing in this case is Sub-Summarizing by Country perhaps.
02:05Like instead of showing United States, United States, United States, rather
02:08than presenting that in each record in the set, there'll be a Header before
02:12each country's list of trips sort of indenting in kind of an outline forum and
02:17then we could even total up what that country's Price Totals are, without
02:21actually have any define any further fields we'll still be using that Price
02:24Total field and this is called the Sub -Summary Report and when you create a
02:27Sub-Summary Report, this field that I'm talking about that you choose to group
02:30the records by and in this example, I'll be grouping by Country, that's called
02:35a Break Field and the Break Field is important when it comes to developing a
02:38Sub-Summary Report because typically the Break Field would be a categorical
02:42variable, for example, things like status or the type or month rather than a
02:47continuous free entry like amount or invoice date or invoice number, something
02:51that's unique.
02:52It's something that -- Country is a perfect example because we see it repeated
02:55over and over and over again, in this report that we are looking at now. So
02:58Sub-Summary Reports are constructed in FileMaker by adding these parts that are
03:03called Sub-Summary parts and we are going to do those in Layout mode. Once we
03:06add those parts, you'll see how we are going recycle the Price Total fields.
03:09So without further due, let's going into Layout mode and we are going to start
03:12off an Adventure Report and we are just going to build off of the report that
03:17we'd already created out of the List view, but first, if you want to take a
03:21look at the Adventure Sub-Summary Report, I already have a Sub-Summary Report,
03:25somewhat created here and if we look at this in our Preview mode, I'll just use
03:30the icons here. I have switched from Layout mode to Preview mode and Preview
03:34mode, just to introduce to you because I'll be switching back and forth these a
03:36lot. This is Browse mode, Find mode, Layout mode and Preview mode and I'm going
03:40to be toggling between Preview and Layout mode.
03:43Now, you see that, I don't have multiple Argentinas. It just says Argentina and
03:46then lists all the different invoices for Argentina. It says United State and
03:51then list all those independently, and it gives me a more visually organized
03:56grouping of my information. We are going to add a little something to that as
03:59well, but let's take a look at this in Layout mode.
04:04Go back to the Sub-Summary; you'll notice the differences between the two. So
04:07I've got -- let me Save that. So here is the report. I've got Header, Body,
04:11Trailing Grand Summary and here I've got a Header Sub-summary and Body. So what
04:15I want to do is add a Sub-summary part to this layout right now. So the way we
04:20add parts is we click on this, you'll see it turns into a hand and I want to
04:25put a Sub-summary between the Header and the Body.
04:27And you'll notice that I've dropped it up there, a little bit of space, can't
04:32really zoom that up but, instead of a Leading Grand Summary in which was the
04:35default, we are going to choose Sub- Summary when sorted by and you'll see that
04:39it's asking you to pick a field and you might think to yourself what field am I
04:46suppose to be looking at here.
04:47Anytime you need to choose a field, that's always going to be the break field
04:49and if you recall, the idea here is that our break field is going to be the
04:52Country, so it's whatever the field is that we are grouping by. So I'm adding
04:56to Sub-Summary Report, grouped by Country and let me zoom in a little bit here,
05:02so you can see what we are doing.
05:03So in the Body, what I want to have is here is our Subsummary Report, you see
05:09how in the Body I have the Title and the Price. We are going to do the same in
05:14this field as well. So let's drop the Title and Price field down and what I
05:18have done is I have held down on the Shift key and I've clicked on each field
05:20then I'm going to use my down arrow to move both of those down with in the part.
05:26So you can see now that it's zoomed up that I've got this dotted line here. But
05:29I'm going to leave Country and I'm going turn these off momentarily and I'm
05:33toggling these on and off by clicking on these button down below. You can still
05:38see the names there, but the Country needs to go into the Sub-Summary when
05:43sorted by Country. Therefore the field -- the break field means to be here.
05:47So A: the break field needs to be designated in our Sub-Summary part
05:51definition, the break fields needs to be included in the part definition and
05:56I'll mention it another time when the break field is necessary, but see what
05:59we've got now are a few different parts, actually we've got a Header,
06:03Sub-summary part, a Body and a Trailing Grand Summary.
06:07What would this will give us right now is -- actually let's go ahead and run
06:11this, if we take a look at this, we Save it and we toggle onto Preview mode. We
06:17see that we've improved the report a little bit here. We've got all the
06:21country's grouped and each individual title is there and we've got all the
06:25information grouped and at the end we've got the overall Total. Now we are
06:29going to add one more component to it, that is going to really open up this
06:32report and that is going to be another part.
06:36The reason that I'm doing this is because now I want to summarize each Country;
06:40I want the Total Price for each Country, not only the Total Price, Total Price
06:44at the end or the Grand Summary. I want individual summary's at each Country
06:48break point. So, I'll say Sub-Summary when sorted by and you can probably guess
06:53by my break field. So I choose Country and since I already have a Sub-Summary
07:02part that has the break field in it. Here, I'm free to put in my Summary Field
07:09because this is what's called a Trailing Summary.
07:12So what I'm going to do is I'm going to select this and I'm going Option+Drag
07:16it up, creates a copy of the very same field and let's Copy and Paste the field
07:22label and now I use my arrows to position it and I double click on there so my
07:28cursor turns into my text writing tool and I'll say this is my CountryTotal,
07:34let me open that up a little bit more, there we go and may be -- okay, so we'll
07:41keep it that way.
07:42Now, let's Save this and we'll go into Browse mode, Save and let's lower this a
07:53bit. Go into Preview mode and now you look what we've got here. We have a
07:59report that tells country, trip, trip, trip Price for each trip, Total for
08:04Argentina and we can go back into Layout mode, instead of CountryTotal, now I'm
08:12going to use the concept of a Merge Field, so if I click in here you see what
08:26I'm doing is I'm putting the Country into the Merge Field so I can Copy the
08:30same text formatting and such and let's see what they looks like in Preview
08:34mode, fantastic we've got Country Argentina. Lists of all the Adventures in
08:39Argentina, Total Price for Argentina and so on. It goes all the way through for
08:43every one on these country's.
08:46Now, all this report needs is a little bit of formatting and we can go in here
08:52and one of the things you might remember from the Formatting chapter is if you
08:56select a part and select the Fill and we'll do a really saddle gray and I'll
09:04right-click here and I can see I could have done that here as well, but I'm
09:09going to change the Format to Bold and what else can we do, let's add a Line
09:17here, so that it looks more mathematical and at the end we'll give this some
09:26Fill as well. Let's just give it a different shade of gray, there we go, okay.
09:33So now we are going to go into Browse mode and we are going to Save this and
09:39look at it in Preview mode.
09:40We've a pretty sharp looking report here and the key is that we've got the
09:45Grand Total on the bottom. We've got this summarizing by Country, we've got it
09:48itemizing by Country and now there is one piece -- there is one other role of
09:53the break field that you have not seen here and that is something that we did
09:55at the very beginning, when we go into Browse mode, before we run our report
10:01like this, we have to sort the records by guess what? The break field.
10:08So before you can run this report, or if you script the creation of a
10:12Subsummary or if you use the New Layout/Report assistant to create a script
10:17for you, it's going to ask what you are break field is so that I can save in
10:21that sort order. But all you need to do to run this is sort by the break field.
10:26The other thing is there are really two cardinal rules to keep in mind when you
10:29are using Subsummary parts in your layout.
10:32You need to be in Preview mode to see the Subsummary data because you seeing in
10:35Browse mode this doesn't look very compiling and the found set needs to be
10:38sorted by the break field. Absolutely both, there are no exception to that and
10:43when you do those, you get this beautiful Subsummary Report and if you check
10:47out the Beyond the Basic title, you see that we've some even more sophisticated
10:51ways to use Subsummary Reports, that I think you'll find pretty cool as well.
Collapse this transcript
Saving as an Excel file
00:00There are a couple of different ways to output documents from FileMaker Pro
00:04that have been added in recent versions of FileMaker, but they are not
00:08necessarily printing because printing carries with the connotation of
00:11generating a hard copy. The specific functionality that I'm speaking of are the
00:15ability to save FileMaker documents as Excel documents, as Rich-Excel documents
00:20and also as PDFs and so I'm going to show you those in the next couple of
00:23movies here.
00:24We are going to start off with saving as Excel. We will start off first with
00:28opening up the 14_printing. We have got Lucky_You_Tours_14_09 and we are going
00:37to go to the Adventure List report. So what we are going to do now in this
00:41example is save this FileMaker data as an Excel spreadsheet, now creating in
00:45the next chapter we'll talk about exporting out that data into an Excel
00:49spreadsheet, but every so often, we hear clients or developers, talk about the
00:54need for giving an Excel spreadsheet with their data to, let's say, the
00:59accounting department or someone who needs the data, who doesn't have FileMaker
01:03or someone who just wants to reformat the data or share it with their client or
01:06something like that. So FileMaker now has the ability to generate these on the fly.
01:10There is a couple of ways you can do that. The first way to do this is open the
01:14Toolbar. You see that we have both the Save Records as Excel and Save Records
01:18as PDF. Otherwise, the second way to do it is; in the File menu, you see we
01:24have got Save/Send Record as, and you can choose Excel or PDF, and also you can
01:29script this. We haven't talked about the scripting section yet in this title,
01:34but I will get to it, in the next movie, I'm going to talk about appending the
01:36PDF, but everything I'm about to show you scriptable.
01:40We want all this data, all the different data in the Adventures, export it out
01:43as an Excel spreadsheet. Pretty easy to do. We just hit this button here and we
01:47pick a location and a file name. We'll call it Adventure.xls, and just like
01:54when you are printing, you can choose, whether you are going to Save; all the
01:58Records being browsed, in this case, the found set of 44 records, or just the
02:02Current record that were on, but we are going to go at the Records being browsed.
02:06Next, you see that there are series of Excel options. We can name the
02:10Worksheet; Adventures and the Title of the document could be 2010 Adventures,
02:21Subject, Author, all these sort of things and we'll look inside the Excel
02:27Options in a moment here after we save it.
02:29Automatically open the file and we can also create an e-mail with the file as
02:35an attachment. Now, I don't have an e -mail client on this machine, but I
02:39promise you that by simply checking this box and all these options are
02:43scriptable as well, it will open up your e-mail client and attach the document
02:47that you are sending. So if somebody calls you on the phone and says "Hey! Can
02:49you send me a spreadsheet of all the different adventures in your FileMaker Database?"
02:53Before you've even done hanging up the phone, you do find out records, sort
02:56them as you want them, export it, hit that little button up here, click Create
03:01email, send file's attachment, name it. It's saved and before you know it, you
03:06have got an e-mail with this attached to it. You see here you have got the
03:10ability to now work with all these data.
03:11You have got every adventure, the country from which it's associated and the
03:15price, and you see that your field labels were used as the Column headers. And
03:20also, if you look inside the Properties in Excel, you see that the information
03:26that you saved; the name of the Worksheet, down here but also the Title and the
03:30Author information would saved along with this.
03:36And just as a note, you can script all of this, so that you don't even have to
03:41name any of the information. You can have dynamic values entered in ScriptMaker
03:45and even though, maybe this might be your first time looking at ScriptMaker,
03:49we will just quickly show you what it is that I mean. So save records. Perform
03:55without dialog. Specify output file. You can name it and save the path and the
04:00location and here are the options just like I mentioned before.
04:04These can be pointed to a field so instead of you typing in the name of the
04:08Worksheet, you can just dynamically name it something or this could be the
04:13account name. For example, instead of me typing in, my name, you can just put
04:19in the account name instead and do all these via scripts.
04:22So now, I would like to show you how to output this same information as a PDF.
Collapse this transcript
Saving as a PDF
00:01I'm now going to show you how to save your FileMaker layout and data as a PDF
00:06file much in a same way as I just showed you how to save it as an Excel.
00:09They are initiated in about the same way as well. You can either click on the
00:12new button in FileMaker 9 on the toolbar for Save Records as PDF, or under the
00:17File menu, I can do Save/Send Records as PDF or I can create a script because
00:22all of these actions are scriptable as well.
00:24I'm going to go under Save/Send Records as PDF, and what I have done is, I have
00:30decided, at this point, one of the things you want to keep in mind is that
00:34whatever your Found Set is, is what's going