IntroductionWelcome| 00:00 | Hi! My name is Cris Ippolite and I'm
going to be guide for the FileMaker 9
| | 00:04 | Essential Training title. I'm going
to show you all the details that you'll
| | 00:07 | need to know to build your first
FileMaker Pro application, or introduce you
| | 00:10 | just some new things if you have
worked with FileMaker before. So, enjoy the
| | 00:14 | title and we'll see at the end.
| | Collapse this transcript |
| Using the exercise files| 00:00 | Just a quick note here on the exercise
files. If you're a premium member of the
| | 00:04 | lynda.com Online Training Library or
if you're watching this tutorial on a
| | 00:07 | disc, then you have access to the
exercise files that I'm using throughout this title.
| | 00:11 | The exercise files for this title are
arranged by each chapter. So, there's 21
| | 00:16 | chapters in this title, and you will
need to follow along,starting with the
| | 00:19 | first lesson and within each lesson
you'll notice that there are files
| | 00:23 | organized in some of these cases in a
serial fashion. For example, in chapter
| | 00:28 | 03, we have got 03_01 all the way up to 03_08.
| | 00:30 | Now, the best way to use these files
is to begin each chapter by copying all
| | 00:34 | the files from that chapter onto your
local drive. And also, if you jump to a
| | 00:38 | movie in the middle of the chapters,
be aware that the exercise file might be
| | 00:42 | slightly different than the one shown
on screen, since the one on screen won't
| | 00:45 | reflect changes that have been
made in the preceding movies.
| | 00:47 | Although I have done my best effort to
make sure that if you do jump to one of
| | 00:52 | the files in the middle of a chapter,
that it will reflect all of the changes
| | 00:55 | in the files that precede that. So,
with that being said, I hope you'll enjoy
| | 01:00 | the training and let's get started.
| | Collapse this transcript |
|
|
1. Getting StartedWhat is a database?| 00:00 | Before working with the database, it's
important to understand what a database
| | 00:04 | actually is. A definition of what a
database is is a collection of like
| | 00:08 | information with underlying attributes.
| | 00:11 | You are actually already familiar with
databases, and you may not even know it.
| | 00:15 | You have probably seen databases in
the form of things like address books on
| | 00:17 | your computer, where one record equals
an individual whose information you are
| | 00:22 | trying to store, and in this case, the
like information that you are storing
| | 00:25 | are different individuals and different
contacts, and the underlying attributes
| | 00:29 | themselves are actually things like
phone number, e-mail, instant message
| | 00:34 | address, street address, that type of thing.
| | 00:36 | You are also probably familiar with
databases from your web experiences. For
| | 00:41 | example, Amazon.com is just a huge
database system. All it is is a database of
| | 00:46 | products that allows the user to
search on those databases to give them
| | 00:50 | information that they might find
necessary. There are also databases that
| | 00:53 | manage the shopping card experience as well.
| | 00:55 | The role of a database are two-fold;
first, the database itself physically
| | 01:00 | stores the data, so you can have tons
and tons of data on a particular item,
| | 01:05 | and store it within the database files,
so all that data lives together. But in
| | 01:09 | addition to storing the data itself, it
also contains the information on how to
| | 01:13 | identify that data within the storage mechanism.
| | 01:16 | A good example of that is a spreadsheet.
If we take a look at the spreadsheet
| | 01:19 | here, we see that this particular one
stores individuals or customers, in this
| | 01:24 | case, and each piece of information
that's stored in the spreadsheet is an
| | 01:28 | attribute, for instance, First Name,
Last Name, and Title, they are all
| | 01:31 | attributes of a customer or a person.
| | 01:34 | You will also notice when we actually
look at a true spreadsheet itself that in
| | 01:38 | a spreadsheet information is organized
in columns and rows. You'll see columns,
| | 01:43 | for example, A, B, C, and D, and E,
in this particular example, and rows 1
| | 01:48 | through 5. Now, the spreadsheet
itself stores the data. So, as I move this
| | 01:54 | spreadsheet around, this data will
travel along with it. But in addition, it
| | 01:58 | also explains what the information is.
You see that the first row is really the
| | 02:03 | description of what data is
being stored in each column.
| | 02:07 | So we know, by simply looking at
this particular piece of information,
| | 02:11 | Estrella, we know that that's a last
name and we don't even know who Dennis
| | 02:15 | Estrella is, but we can tell
intuitively by looking at this spreadsheet that
| | 02:19 | Estrella is in fact the last name,
because it comes under the column, with the
| | 02:22 | heading. Now, when it comes to
FileMaker databases, the rows themselves are
| | 02:27 | actually represented as database
records, and that's the terminology used
| | 02:31 | within FileMaker.
| | 02:33 | So, record is a grouping of a bunch of
different pieces of information that all
| | 02:36 | describe one particular iteration. In
this case, this iteration is a customer,
| | 02:42 | and all of these different pieces of
information describe that customer. The
| | 02:46 | columns, in FileMaker, we call these
Attributes fields, and each particular
| | 02:50 | piece of data describes one of the
records. So, at any intersection, we see
| | 02:56 | that Estrella is actually the last name
of the fourth record in this particular database.
| | Collapse this transcript |
| Flat files vs. relational databases| 00:00 | So, you may be wondering, what makes
an application like FileMaker different
| | 00:04 | than a spreadsheet itself? Well, there
isn't much difference. A spreadsheet is
| | 00:08 | a simple form of the database with just
one data table. In this case, we see a
| | 00:12 | table for customers. The distinction
actually becomes important when you want
| | 00:16 | to interlink multiple tables, for
example, if we have not only the Customers
| | 00:20 | table, but the Order table as well, and
we want to link the two of these, or if
| | 00:26 | you want to start building
systems around this data.
| | 00:28 | There's actually many ways to store
this data on a computer and word processing
| | 00:32 | documents or Excel spreadsheets like
this are types of data storage, but a
| | 00:36 | relational database system is different.
These are examples of what are called
| | 00:41 | in the database circles, flat files,
where it's just one single table that
| | 00:45 | stores particular information and it's
independent for many other tables that
| | 00:49 | even may have related data. But a true
relational database is designed to make
| | 00:54 | it easy to enter and
retrieve general purpose data.
| | 00:57 | The key is here; imagine if this
Customer spreadsheet here had more than just
| | 01:01 | five records; imagine if it had five
million, it wouldn't be very easy for us
| | 01:05 | to manipulate the data, extract the
data, work with the data, turn it into
| | 01:09 | reports in just the spreadsheet form.
Another one of the main goals of the
| | 01:12 | relational database is to eliminate
redundant data entry in data storage. For
| | 01:17 | example, if I enter in this Dennis
Copley's information, I want to enter into
| | 01:21 | this system once, so if I have to go
back and write a letter to each individual
| | 01:25 | customer in the Database. I don't
want to have to type in Dennis Copley's
| | 01:28 | information, all over again
| | 01:30 | That's one of the advantages of
what's called relational database systems.
| | 01:33 | FileMaker Pro is a relational database
system; it's an application that allows
| | 01:38 | you to create these relational database
systems as well. Now that we understand
| | 01:42 | what a database is and the type of
database application that FileMaker actually
| | 01:46 | is, let's now take a look at
FileMaker Pro and start working with some
| | 01:49 | databases themselves.
| | Collapse this transcript |
| How FileMaker works| 00:00 | Here, you see on screen, an example
of a FileMaker database. We just took a
| | 00:05 | look at how we can store data in
spreadsheets and how they represent, what's
| | 00:09 | called, flat files. Since FileMaker is
a related database, let me show you some
| | 00:13 | of the advantages that having your data
in a related database verses flat files
| | 00:18 | gives you, and then also, why
FileMaker is such a great application for
| | 00:21 | developing relational databases.
| | 00:23 | First off, you can see we can store new
information within our application; we
| | 00:27 | can create records, delete records,
find and locate different records, just the
| | 00:32 | same thing that we can do in any kind
of storage mechanism. But, what's nice
| | 00:35 | about FileMaker or a related database
is that we can store related values. So,
| | 00:41 | for example, if this contact in this
case here has a relationship to other
| | 00:46 | contacts within our system, we can
link them. If the contact has multiple
| | 00:50 | addresses, we can link one contact to
multiple addresses, which is the essence
| | 00:54 | of having one table related to another.
| | 00:57 | And what's key about that is all of
those different tables can fit right into
| | 01:00 | one FileMaker file. So, you don't have
to manage multiple different files, you
| | 01:04 | don't have to create a new spreadsheet,
let's say, every time that the new
| | 01:08 | quarter starts or something like
that, you can just tag the records
| | 01:11 | appropriately quarter by quarter and
not have to worry with multiple different
| | 01:14 | files and all sorts of different
things that we have to organize. Every thing
| | 01:17 | can be compact right
into one FileMaker database.
| | 01:20 | In addition, FileMaker has all sorts of
cool functionality, like being able to
| | 01:23 | publish to the web, being able to
create all sorts of different kinds of
| | 01:26 | layouts, work with your data in many
different ways. You'll notice here is
| | 01:30 | another example. You can develop an
interface from scratch if you'd like. You
| | 01:34 | can use some of the templates that
are provided, which we will cover in the
| | 01:37 | next chapter. But the idea of
FileMaker here is that it provides you the
| | 01:41 | ability to create a database very easily,
probably one of the easiest database
| | 01:47 | creation environments around, work with
different tables, have multiple tables
| | 01:51 | built into one file, so they can all
be managed appropriately. Build the
| | 01:54 | relationships with those different
tables and then once your application is
| | 01:58 | created, allow it to be deployed to
multiple users to use concurrently.
| | 02:02 | Up to 250 different users can share a
FileMaker database, all having their own
| | 02:07 | session and being logged into the
server. You can publish a database to the
| | 02:11 | web, using a litany of different
technologies that FileMaker is compatible
| | 02:15 | with. You can share a data from other
applications, so you have got here a
| | 02:19 | people management database, but if
you want to link this over to a payroll
| | 02:22 | system, you can link it through
what's called ODBC through the server.
| | 02:26 | All sorts of different things that
FileMaker allows you to do, and we are going
| | 02:29 | to cover a lot of those in this title,
but for those of you that have never
| | 02:33 | worked with FileMaker before, and you
are thinking, okay what is this? I get
| | 02:35 | that it's a database. What you have got
here is the ability to really not know
| | 02:40 | anything about computer science and
still create a fully functional and
| | 02:43 | powerful robust database application,
using FileMaker Pro. And by the time, you
| | 02:48 | are done with this title, I assure you
that you'll be able to create FileMaker
| | 02:50 | Pro databases, deploy them, share them
with people, understand the limitations,
| | 02:56 | build reports, and all sorts of
different things like that in scripts.
| | 02:59 | We have a whole section that we are
going to cover on automating certain tasks
| | 03:03 | and assigning them the buttons. So, all
of this is at your disposable when you
| | 03:06 | are working with FileMaker Pro, and
it's targeted as being one of the easiest
| | 03:11 | applications to use in the database
world. So, let me prove that to you by
| | 03:15 | getting a little bit more familiar
with the application itself, some of the
| | 03:17 | preferences and such and then we will
dive right in, in the next chapter to
| | 03:21 | creating your very own database
| | Collapse this transcript |
| Activation| 00:00 | After you have installed your copy of
FileMaker 9 on to your computer, you'll
| | 00:05 | notice that the first time that you
have launched the application, you'll be
| | 00:08 | presented with the FileMaker Activation dialog.
| | 00:11 | This Activation dialog is new in
FileMaker 9. So, if you have been using a
| | 00:14 | previous version, this is probably not
too familiar, because you will enter in
| | 00:18 | the license key when you do the
installation. But now on FileMaker 9, just to
| | 00:21 | bring your attention, you'll have to
activate your copy. You'll notice here you
| | 00:25 | put in the User Name and the
Organization, just like on your license. Type in
| | 00:28 | your license key and hit the Activate
button. You will need to be online while
| | 00:33 | you are doing the activation, and when
you are done, you will see FileMaker Pro
| | 00:37 | activation successful. Now, in
FileMaker 9, FileMaker allows you to activate
| | 00:42 | your copy of FileMaker Pro within
30 days of the original installation.
| | 00:46 | So, if you decide to bypass activation
on the first launch of the application,
| | 00:49 | instead activate later, you'll find
under the Help menu, by choosing Activate,
| | 00:54 | it will allow you to activate within
that 30-day period. Also, this menu will
| | 00:58 | help you transfer activation, so if
you'd like to update the license key in
| | 01:01 | your currently installed version of
FileMaker with a new license key, you are
| | 01:04 | going to the Help menu, choose Activate,
enter in your new license key, and hit
| | 01:08 | the Activate button, thus updating the
activation of your copy of FileMaker 9.
| | 01:12 | Now, let's move on to taking a
look at the application itself.
| | Collapse this transcript |
| Essential preferences| 00:01 | As with any other application, after
you have installed it, and before you
| | 00:03 | start working with it, you are
probably going to want to take a look at the
| | 00:06 | Application Preferences. If you are a
Mac user, you will find the Application
| | 00:10 | Preference panel underneath the
FileMaker Pro menu, and if you are a Windows
| | 00:14 | user, you will find it at the
very bottom of the Edit menu.
| | 00:17 | Once you have selected the Preferences,
you'll see the Preference pane open up
| | 00:21 | to the General tab. A lot of these are
optional items that you can set based on
| | 00:25 | your development style, but in
some cases, I'm going to make a couple
| | 00:28 | recommendations for you. First I'd say,
if you are a beginner user, you might
| | 00:31 | want to keep the Show FileMaker Quick
Start Screen on. This allow you to work
| | 00:35 | with templates, or open up other files
or even access the learning center and
| | 00:40 | also, you might want to keep the Show
recently opened files at pretty decent
| | 00:44 | numbers, so that way you don't have to
keep digging around on your computer to
| | 00:46 | find some of the files that
you have been working with.
| | 00:48 | Of course, once the Quick Starts Screen
starts to get a little bothersome, you
| | 00:52 | can just go into the Preferences panel,
like we have here, and uncheck that
| | 00:56 | dialog and then you won't see that
Quick Start Screen again, till you turn it
| | 00:59 | back on. The other thing that I would
mention is you'll notice that the User
| | 01:02 | Name is set to the name of your
computer; in this case, it's got my name on
| | 01:06 | here. One tip that I would give you
is to select other, which allows you to
| | 01:10 | overwrite the name of the user, which
is the user name that automatically gets
| | 01:14 | put up into the User Name, and Password
dialog, when a FileMaker file is open.
| | 01:18 | Since every converted or brand new
FileMaker file, all have a user name set for
| | 01:23 | Admin, I think it's a pretty good
idea to choose Other and type in Admin,
| | 01:28 | because in the majority of the files
that you are opening, this will be the
| | 01:31 | name that we are going to type in
anyways. And now, something new to FileMaker
| | 01:35 | is if you check this box, you will
see that it automatically checks for
| | 01:38 | FileMaker updates, every seven days.
| | 01:40 | Now, it won't automatically download
or updated in the FileMaker, but it will
| | 01:43 | take you over to the Product Downloads
page to allow you to download the most
| | 01:47 | recent updater. It's always a good
idea to make sure that both your client
| | 01:51 | applications and your servers, if you
have them, are always the most up-to-date
| | 01:55 | as possible. The next section, in
Layout, really a couple of different items
| | 02:00 | here that are based on whatever your
personal preference would be, but I would
| | 02:03 | know that if you are going to be
publishing to the web, or using Instant Web
| | 02:06 | Publishing, you might want to go with
the Web palettes. So before you start
| | 02:09 | designing layouts, you are going to
know what they are going to look like using
| | 02:12 | the palette of colors
available to you on the web.
| | 02:14 | Secondly, Memory, you can really
leave these as is. That won't completely
| | 02:18 | effect the user experience by that much,
but you can always double check here
| | 02:22 | to see what your current size is versus
the default cache size. Finally, if you
| | 02:26 | have any plug-ins that you have
purchased from third parties, you will see them
| | 02:29 | listed here after installation, and
when you click on one of them, you'll also
| | 02:33 | the Configure button so that you can
go in and make whatever configurations
| | 02:37 | necessary. But you'll have to see the
documentation from all of the third party
| | 02:40 | developers to see how to
install and configure any plug-ins.
| | 02:44 | And lastly, you will see the fonts.
You can leave these as is. Although you
| | 02:48 | might want to check the Synchronize
input method with font on field entry. This
| | 02:52 | means that if you copy a value into
the FileMaker field, it's going to adopt
| | 02:57 | the font style and type and point of
the field itself, rather than of the
| | 03:03 | source data where you originally copied
that data. So, once all you preferences
| | 03:07 | are set, you can hit OK, and now we
are going to take a look at the interface
| | 03:11 | inside the FileMaker application, so
we see what tools you have available in
| | 03:14 | order to start creating FileMaker databases.
| | Collapse this transcript |
| Interface tour| 00:00 | Now that we have installed, activated
and registered our copy of FileMaker Pro
| | 00:04 | and on a quick little tour of the
preferences that are available to you, it's
| | 00:09 | time to start working with the application.
| | 00:11 | And the first step is to get familiar
with your environment or the interface
| | 00:16 | that's provided to you as part of
working with FileMaker Pro. So I would like
| | 00:20 | to give you a quick tour on some of the
things that we are going to be working
| | 00:22 | with throughout all the different
chapters and also get you a little bit
| | 00:26 | familiar with some of the
tools that are at your disposal.
| | 00:28 | So first, let's start with, just like
any other application, you will see that
| | 00:32 | FileMaker runs most of the commands,
actually all the commands that you can
| | 00:36 | perform, through it's menu system and
you will notice that again, like other
| | 00:40 | applications, you can either choose to
select something from a menu or use the quick keys.
| | 00:46 | And you will notice here that I happen
to be using a Mac so that you see that
| | 00:50 | we have got, for example, the quick
key Print is Apple+P. If you are working
| | 00:54 | with FileMaker on Windows, it would
Ctrl+P. So the same is for true for
| | 00:58 | anything that you will see me
demonstrate here in this tour.
| | 01:01 | So all of the different actions and
we are going to through most of these
| | 01:04 | throughout this title, all these
actions can be performed through the menus and
| | 01:08 | also through quick keys. But also
there is another option and that's this
| | 01:11 | toolbar here and the toolbar is
something that, by default, shows up on the top
| | 01:16 | of your screen and it's optional.
| | 01:18 | So for example, you can either move it
around or pull it down as you see, you
| | 01:23 | save yourself about 50 or so pixels of
screen real estate if you need it and
| | 01:28 | again everything that's on here are all,
different options that are available
| | 01:32 | through the menu system or through
quick keys. So what a lot of users do is
| | 01:37 | they keep the toolbar up there so they
can do, sort of, an icon-driven action
| | 01:41 | when necessary. What most of developers
do is they get familiar to the toolbar
| | 01:45 | first and then through the menus and
after while you start to learn with the
| | 01:48 | quick keys are in and you can use
those as you are working with the system.
| | 01:52 | The toolbar, though, if it is in your
way up on the top, you can pull it down
| | 01:56 | like I have done. You can reposition
it like a palette, which is probably
| | 02:00 | familiar to a lot of users; put it back
up in the toolbar, if necessary; or you
| | 02:04 | can just delete it completely. We will
leave it up here just for the sake of
| | 02:07 | this demonstration but those of you
that have worked with previous versions of
| | 02:11 | FileMaker can see that there has been
something new added to the toolbar and
| | 02:15 | that is the Save Records as Excel and
Save Records as PDF, which we will cover
| | 02:19 | in later chapters, but you will see
that also those are available through the
| | 02:24 | File menu and in this case they don't
have quick keys associated with them and
| | 02:27 | some of these don't so in some cases
you will be forced to either go through
| | 02:31 | the toolbar or the menu itself.
| | 02:33 | The other element that you will notice
is what FileMaker calls the Status Area.
| | 02:38 | And that is the area over here on the
left on your screen. What it allows you
| | 02:42 | to do is navigate from layout to layout
or request a request, depending on what
| | 02:46 | mode you are in. Now I just mentioned
modes and it's important to know that
| | 02:50 | FileMaker is a modal application, which
means that it has, in FileMaker's case,
| | 02:55 | four different modes in which you
can use to operate the application.
| | 02:58 | The mode that we are in right now is
what's called Browse mode. And Browse mode
| | 03:01 | is what's used for editing and
adding data, creating records, modifying
| | 03:06 | records, deleting them. It's really
meant for the person who is using the
| | 03:09 | database that has been created to
interface with the data, and again any one of
| | 03:13 | those actions adding, editing, deleting
records can all be accomplished through
| | 03:18 | Browse mode and that' the default
mode when you open up a file and you will
| | 03:21 | notice here there is a couple of
different ways that you can get to Browse mode.
| | 03:24 | The first of which is, you will see
this pencil icon in the upper left-hand
| | 03:27 | corner and also it's indicated here on
the top that we are in Browse mode. The
| | 03:32 | second way that you can access, anyone
of the modes or toggle between them, is
| | 03:36 | under the View menu and you will see
that we are in Browse mode right now so
| | 03:39 | that is the one that has the checkmark
but we can get to any of the three other
| | 03:43 | modes that I'm about to show it you by
selecting them in the View menu and also
| | 03:47 | on the bottom left-hand corner, you
will see that there is a little pull-down
| | 03:50 | menu which is kind of hidden.
| | 03:50 | But when you are in the environment if
you wanted to just click on any one of
| | 03:55 | these options to toggle between the
modes, you are more than welcome and again,
| | 03:58 | after sometime you will get familiar
with the quick keys and the quick key for
| | 04:02 | Browse mode is Apple+B or Ctrl+B.
| | 04:05 | The Status Area will actually change
and you will see briefly here as I toggle
| | 04:09 | between the modes, it changes and it
has different roles depending on what a
| | 04:13 | mode that you are in. In Browse mode,
you will notice that we have got three
| | 04:17 | different components. We have got the
Layout dropdown, we have got the, what's
| | 04:21 | called the Rolodex which allows us to
navigate from record to record and then
| | 04:25 | we have got information or status
information on the Records themselves.
| | 04:29 | Now starting first with the Layout mode,
you will see that this allows us to
| | 04:33 | navigate from layout to layout and all
the different layouts in the system. And
| | 04:37 | these layouts could be either hidden
or not hidden and that's something that
| | 04:41 | you can control in Layout mode, which
we will cover a little bit later on in
| | 04:45 | the Layout chapter.
| | 04:47 | So you will notice that we can get to
anyone of the layouts that the developer
| | 04:51 | has allowed us to access here and when
we want to get from record to record, if
| | 04:55 | we are manually searching through
records, we would just hit this button here,
| | 04:59 | you see that we can go back and forth
within all the different records within
| | 05:02 | the system.
| | 05:03 | And if we want to find one record that
we want to work with and we know which
| | 05:06 | record it is within the found set,
let's say it happens to be record 20, I can
| | 05:10 | type that into this area and hit Enter,
Return and it will take me right to
| | 05:15 | that record and you see it did the same
thing as if I would manually navigated
| | 05:18 | to that record.
| | 05:20 | Down here you will see that, this says
the total number of records and when we
| | 05:23 | start working with things like Found
sets later in the Finding Data chapter,
| | 05:28 | you will notice that this is going to
change and I will discuss a little bit
| | 05:31 | more about that and also on the
Sorting chapter you will see that the Sort
| | 05:34 | Status of all the records that we are
working with is displayed here also.
| | 05:37 | Next, I would like to show the next
mode which is Find mode and in Find mode
| | 05:42 | and we can access that again either
by clicking on this magnifying glass or
| | 05:46 | going under the View or going down
under this menu or hitting an Apple+F or
| | 05:50 | Ctrl+F as in Find but the first thing
that you notice, not only did the Status
| | 05:54 | Area changed but on screen it
appears that all of our records have been
| | 05:57 | deleted. That's not actually the case.
| | 06:00 | But for those of you that have worked
with FileMaker before, you will know that
| | 06:03 | this is actually just the mode in
which we are supposed to enter in criteria.
| | 06:07 | So we can pick any one of the layouts
when we are in Find mode, whichever one
| | 06:10 | is more appropriate to task at hand or
which ever table that we actually want
| | 06:13 | to search upon.
| | 06:14 | So all that it's doing is allowing you
a blank slate to enter in criteria and
| | 06:19 | we will talk about that in the Finding
chapter. We can enter criteria into any
| | 06:24 | one of the fields and once we are done
entering in the criteria that we want
| | 06:29 | to, go isolate within the entire
record set, we will hit the Find button. So
| | 06:33 | you will notice in the Status Area,
couple of different things change.
| | 06:36 | First of which is we can still get to
all the different layouts. We notice now
| | 06:39 | that Rolodex is grayed out right now
and instead of saying Records, it's
| | 06:43 | changed to say Requests and Requests,
you will also notice that the File menus
| | 06:48 | change a little bit. Instead of the
Record menu, you will see that it has
| | 06:51 | changed to Request and what this
allows us to do is add new requests.
| | 06:54 | Again, we will cover that in the
Finding Data section but what we are doing
| | 07:00 | here is adding another set of criteria
that will allow us to do an end search.
| | 07:05 | I will talk a little bit more about that,
but in this demonstration, you see I
| | 07:08 | have added a request and I can
navigate between the two requests by using the
| | 07:13 | Rolodex icon and also I can navigate
to the very first request if I like.
| | 07:17 | Also there are two other things here.
You will notice a Omit checkbox and that
| | 07:22 | means that whatever criteria I put in,
for example, I put the word text in
| | 07:26 | Title here that means if I click on
Omit that it's actually going to find
| | 07:30 | everything that does not have text in
it or it's going to go into the entire
| | 07:34 | record set and omit all the records
that match my criteria and display the
| | 07:39 | others instead.
| | 07:40 | Something helpful for FileMaker is a
search symbols dropdown. These are the
| | 07:44 | things the FileMaker have built in,
that they are sort of wild card characters.
| | 07:48 | You have to keep in mind also if you
are putting in search criteria that if
| | 07:52 | they contain any of these that you
might get some results that might not match
| | 07:55 | what you expected.
| | 07:56 | We will cover these in details, but
real quickly the idea here is if I put in
| | 08:00 | to a date field, if I put in a / /,
it's just going to find every records that
| | 08:06 | has today's date in those records. So
we will talk little bit about that in the
| | 08:10 | Find chapter as well.
| | 08:11 | Moving down to Layout mode, this is
the mode where all of the layouts are
| | 08:15 | created, any kind of interface is
developed, where the real programming
| | 08:19 | actually happens within an
application. And when you are developing in
| | 08:23 | FileMaker, after you enter in some
fields, you are going to look at your first
| | 08:26 | layout, it's going to be a blank layout
and you will look at it in Layout mode.
| | 08:30 | You will notice that things are the
same to some degree here. You will see that
| | 08:34 | you can still navigate from layout to
layout and in the case of Layout mode,
| | 08:38 | every layout that's been developed
in this file will be available in the
| | 08:43 | dropdown menu. You will notice that
the menus have changed a little bit. So
| | 08:48 | instead of records we have a layout,
which allows us to create new layouts. You
| | 08:52 | go to Layouts, allows us to navigate to
other layouts, Setup, do our setup.
| | 08:57 | All of these things we'll cover in
the upcoming chapter on Layouts.
| | 09:01 | But notice also that this will
navigate us from layout to layout through the
| | 09:04 | Rolodex. So the Rolodex takes on a
different role depending on which mode you
| | 09:07 | are in. Also there is lot of tools.
They are not the same tools that are
| | 09:11 | available here on the header of your
application. These are tools that are
| | 09:14 | specific to layouts and we going to
cover each one of these in this title, also
| | 09:18 | the ability to drop fields and parts
and some of your colors and affect tools
| | 09:24 | that allow you to apply colors to text
and fields and different elements that
| | 09:27 | are on screen.
| | 09:29 | One other thing to know is the Info
palette and this Info palette, by default,
| | 09:34 | will show as a floating palette when
you are in Layout mode but only in Layout
| | 09:37 | mode. And it allows you to do things
like name objects and size objects based
| | 09:43 | on whether it's the width or height
or how far from the left or right these
| | 09:47 | different fields are whatever if it's
a box or something that you have drawn
| | 09:51 | but also something new to FileMaker 9
which is really kind of exciting. We will
| | 09:55 | cover this in the Resizing Layouts chapter.
| | 09:58 | This palette is also used not only for
object naming and sizing elements but
| | 10:01 | also for controlling the resizing of
the layouts and again more on that coming
| | 10:07 | in future chapters.
| | 10:08 | And finally we have the file mode which
is the Preview mode and Preview mode is
| | 10:14 | here so that you can see what a layout
is going to look like when it's printed.
| | 10:19 | It also lets you preview the printing
before you print something and it has
| | 10:23 | some special roles as well. We are
going to talk in a Report section about
| | 10:27 | creating sub-summary reports and a
sub-summary report is something that
| | 10:30 | actually needs to be trigged by the Preview mode
| | 10:32 | So in the example of a sub-summary
report, we will require that Preview mode is
| | 10:39 | entered just so it triggers certain
summary values, but really the main role
| | 10:43 | for previewing is to preview something
that you are about to print. So if you
| | 10:46 | want to see what something looks like
when it prints, before wasting any paper,
| | 10:49 | you can just go into the Preview mode
and you will get an accurate view on not
| | 10:54 | only what we will print but also your
margins as well so it gives you a way to
| | 10:58 | size out margins which might not be
visible when you are in Layout mode or
| | 11:01 | Browse mode.
| | 11:02 | So these four modes combined, make up
the development in user environment for
| | 11:06 | FileMaker. So before we start using
them, let's discuss another important and
| | 11:10 | updated resource in FileMaker
9 and that is the Help menu.
| | Collapse this transcript |
| Using the Help system| 00:01 | So a quick tour here of what could be a
very important menu and that's the Help
| | 00:05 | menu. For those advanced developers,
this is a good thing to take a look at
| | 00:09 | because there has been some changes and
enhancements in FileMaker 9 and for the
| | 00:13 | developers that are new to FileMaker,
this could be your best friend. This is
| | 00:16 | where all the different information on
how to work with FileMaker Pro and any
| | 00:20 | of your support issues, your questions
or if you want some additional training,
| | 00:24 | all of that can be accessed through
this Help menu. So no matter what level of
| | 00:27 | developer you are, it's
important to take a look at this.
| | 00:29 | First you will see that there is a
link to FileMaker Help, which will launch
| | 00:34 | your internal application help system.
That can also be reached by doing either
| | 00:38 | Apple+? or Ctrl+?. You will also
notice that there is a directory of Keyboard
| | 00:44 | Shortcuts. So if you are interested in
learning about the Keyboard Shortcuts,
| | 00:47 | for example, in the case of the
FileMaker Pro Help, you can do Ctrl or Apple+?.
| | 00:53 | All of those are documented here by
just pulling down and opening up the
| | 00:56 | Keyboard Shortcuts.
| | 00:57 | Now the Learning Center, which is
really the best location for learning more
| | 01:02 | about FileMaker Pro and getting all of
your resources into one spot. They have
| | 01:05 | done a really good job with this. But
that's been in the application since 8
| | 01:10 | and it's still here in version 9.
| | 01:13 | Also Product Documentation, this is
interesting. They added this to the Help
| | 01:17 | menu and lot of users didn't know that
when they install FileMaker Pro, they
| | 01:20 | are actually installing all of this
documentation. So FileMaker made the wise
| | 01:24 | decision to add a navigation
component here to the Help system that allows
| | 01:28 | people to get to any of these different
tutorial or user guides or information
| | 01:33 | on all of the different functionality
that you might be interested in learning
| | 01:37 | a little more about.
| | 01:38 | This allows you to activate or
transfer activation. If you have already
| | 01:42 | activated your copy of FileMaker,
this will allow you to transfer it, for
| | 01:45 | example, if you want to move it to
another computer or update your license
| | 01:49 | because someone else is using a
license elsewhere, that type of thing.
| | 01:52 | FileMaker in 9 has also added the link
to Downloads and Updates. Now this won't
| | 01:57 | directly download a new update to
FileMaker and it is always recommended that
| | 02:01 | you operate with the most current
version, the most updated patch for your copy
| | 02:06 | of FileMaker both on the client and server.
| | 02:08 | And this will take you directly to the
website and also if you turn that on and
| | 02:13 | your Preferences as we discussed in
Preference section, you know that it will
| | 02:16 | alert you when there is an update
available, but this will allow you to first
| | 02:19 | check to see if you needed and then
also provide you a link to that page.
| | 02:23 | And also you can register you product.
If you decided to register later after
| | 02:27 | installation, you can register your
product to the Help menu and a neat
| | 02:31 | feature, the sending the feedback.
This is something they had in FileMaker 7
| | 02:36 | but they brought this back to allow
users if they have some feedback on how the
| | 02:40 | products works or a new feature that
they would like to see, you can click in
| | 02:44 | the Help menu, choose Send Us your
Feedback and it will allow you to
| | 02:47 | communicate back to FileMaker and back
to the developers and engineers whatever
| | 02:52 | your concern might be and these are
things that FileMaker pays a lot of
| | 02:55 | attention to as a matter of fact every
new version, it has new features that
| | 02:59 | are added. They are really stemmed
from whatever the most amount of feedback
| | 03:02 | that they can get. So it encourages
you and FileMaker encourages you to add
| | 03:05 | your feedback.
| | 03:06 | So now that we have gotten familiar
with all of the tools available on this
| | 03:09 | application, it's time to jump into
starting to develop our FileMaker Database.
| | Collapse this transcript |
|
|
2. Database Creation EssentialsCreating databases from templates| 00:01 | So we have looked at the application
and how to set up the application and
| | 00:04 | really what FileMaker does. So now
it's time for us to start building our own
| | 00:07 | databases. There is a couple of
different ways that you can do it. You can
| | 00:10 | create a database from one of the
templates that FileMaker provides or you can
| | 00:14 | create a database from scratch. Now
if you are new to FileMaker, you will
| | 00:18 | probably going to want to see some of
the things that FileMaker can do or you
| | 00:21 | might find a template here as we are
about to review that may serve all of your
| | 00:25 | purposes and you won't to need
to do any development at all.
| | 00:27 | So what I would like to show you here
is how you would create a database using
| | 00:31 | one of FileMaker's built-in templates?
First is the starting point. You will
| | 00:35 | notice that when you launch
FileMaker that you see something called the
| | 00:38 | FileMaker Quick Start screen and this
has been updated for FileMaker 9 and you
| | 00:42 | will notice that there are a lot of things
here that we can find under the Help menu.
| | 00:46 | You will see that we can find the
Learning Center, some information to link to
| | 00:50 | some web pages that will show you
what's new in FileMaker 9 in case you want to
| | 00:54 | get started learning that, search the
FileMaker Knowledge Base which is an
| | 00:57 | online support and troubleshooting
website. A database of every reported issue
| | 01:01 | that they have ever solved and also
some links to joining the FileMaker
| | 01:05 | Community and more information on how
you can talk and interact with other
| | 01:08 | developers and some of the
options available to you there.
| | 01:10 | Sign up for the FileMaker Newsletter,
send Feedback and then register your
| | 01:14 | software. All of that is available when
you click on the Learn More and if you
| | 01:18 | are not interested in seeing the
Quick Start view again, you can just click
| | 01:21 | here and click Do Not Show Quick Start
and next time in FileMaker, you are not
| | 01:26 | going to see the screen. So we have
got a couple of other options, we can
| | 01:29 | either Open a Database which is already
being created either on our Desktop or
| | 01:32 | on a remote server somewhere or in this
case what we are going to do is create
| | 01:36 | a new database.
| | 01:36 | We are going to choose the Create
Database option and those of you that have
| | 01:40 | worked with versions of FileMaker prior
to 9 will notice that this is changed a
| | 01:44 | little bit and put this -- what are
called starter solutions for FileMaker at
| | 01:49 | your finger tips here or we can
create a new or empty database but in this
| | 01:54 | chapter we are going to talk about
using the starter solutions as a template
| | 01:57 | for building a FileMaker solution right away.
| | 02:01 | So you see here that FileMaker has all
sorts of different solutions and these
| | 02:04 | are actually quite helpful. You can
look at the entire list of wide open
| | 02:09 | databases that you can choose from and
they have got things that are range from
| | 02:12 | Asset Management to Contact Management
some of the more popular ones and a lot
| | 02:17 | that are built for family uses or for
instance field trips, for schools and
| | 02:22 | different things like that. If you are
looking for certain type of template or
| | 02:25 | starter solution to work with you can
type in the Filter and see that the list
| | 02:29 | of filter down and show you which ones
might match the criteria, just based on
| | 02:32 | the file name. Otherwise you can go in
and they have organized them logically
| | 02:37 | here in the different groups.
| | 02:38 | For example, there is Business and
Finances related things. You will that there
| | 02:42 | is an expense report or the ability to
create Purchase Orders or Time Billing
| | 02:46 | or Time Cards. Any organization could
use one of those four files. So this
| | 02:50 | allows you to browse through all the
different options. So you can see what are
| | 02:54 | available to you. Now, if just the name
in the file isn't too helpful, click on
| | 02:57 | this button down here called Solution
Info and what this brings up is a very
| | 03:02 | detailed description of what each one
of these of starter solutions will do for
| | 03:06 | you. So you can organize them in the
same way the FileMaker does on the Quick
| | 03:10 | Start screen.
| | 03:12 | So let's say in the case of expense
report, I want to know little but more
| | 03:14 | about what that's used for. You see
that it gives a description how to use it,
| | 03:19 | tips for customizing it. These are
all specific to this actual starter
| | 03:23 | solution, so things about printing
reports and any reports that are added and
| | 03:27 | you see that this change is based on
which ever one of these that you select,
| | 03:32 | so really great resource and really
great way to get familiar with all the
| | 03:34 | different starter solutions available.
| | 03:37 | So back at the Quick Start screen, you
will see here all are different files. I
| | 03:40 | have learned little bit about a file
and I want to select the file and you will
| | 03:45 | see after you choose one of the starter
solutions in order to create it or have
| | 03:49 | it available for your use, you select it,
we click on OK and we choose where we
| | 03:55 | want to save this report in FileMaker.
For Mac, you see that it appends an
| | 04:00 | extension at the end and if you are
saving this in Windows, you are going to
| | 04:03 | choose the Save File As a FileMaker
file, so it can append the correct .fp7
| | 04:09 | extension. By the way all FileMaker
files in 9 have an .fp7 extension. It's not
| | 04:15 | something that is significant for the
file version itself, it just have to be
| | 04:19 | the extension that FileMaker uses.
| | 04:21 | So we will chose the location for a
Desktop and you will note that it's
| | 04:24 | actually creating a new version of
this file for our own use and you see it
| | 04:29 | show up here on our Desktop and what it
is, it's a fully functioning file, you
| | 04:34 | go in here and notice that all of the
tables are already defined for you. There
| | 04:38 | are 66 different fields that are
defined and you don't have to keep them as is,
| | 04:42 | you can just use these if you want as is,
or you can go in and change the name
| | 04:47 | of different fields or modify them
to customize your specific needs.
| | 04:52 | Also, all of the relations are setup.
So even if you are not going to use one
| | 04:56 | of these starter solutions or templates,
if you want to use it as a sort of a
| | 05:00 | starting point for learning things
like relationships or how to work with
| | 05:02 | reports or all the things that we are
going to discuss in this title, this is a
| | 05:06 | great template for you where you are
not going to destroy any solutions that
| | 05:10 | you are using for production or
anything like that, you can just open up a
| | 05:12 | template or you can just use the
template as is. The template that is fully
| | 05:17 | functioning has all sorts of features
already assigned, not only to get you
| | 05:20 | familiar with them, but
to actually start using it.
| | 05:22 | Here is a perfect example of an
Expense Report, that's all ready to go. So if
| | 05:26 | you have some salespeople on your team
and they need an expense report, here is
| | 05:30 | a way that you can allow them to add
this information in, you can put this up
| | 05:34 | on your server. It's all ready to be
shared on the network, allowing people to
| | 05:38 | do a number of different things with
the use of these templates without having
| | 05:42 | to develop any scripts.
| | 05:45 | You will see that scripts are
already created for you; you don't have to
| | 05:48 | develop any of the layouts, all the
layouts are already developed and there are
| | 05:52 | some pretty complex ones in here in
this example and the reports are already
| | 05:56 | done for you and all the fields are defined.
| | 05:59 | It really is the best way to get
started. But if you have a specific use for
| | 06:04 | FileMaker and you would like to just
develop a solution by yourself, the other
| | 06:08 | option that's available to you is to
create a FileMaker database from scratch.
| | Collapse this transcript |
| Creating databases from scratch| 00:00 | So creating a FileMaker database from
scratch starts in one location; it starts
| | 00:06 | with the New Database. Of course we
can get here from the Quick Start, if you
| | 00:12 | recall from the Quick Start screen.
That might still be showing up when you log
| | 00:15 | in depending on whether or not you have
opted to not show it again. But when we
| | 00:19 | choose the Create Database option or
if we go under the File menu to New
| | 00:23 | Database, you will see that we can
create, as we discussed in the previous
| | 00:27 | chapter, a Starter Solution or Create
an Empty Database and that's what we are
| | 00:31 | going to do here.
| | 00:32 | So just go ahead and hit the Create
Empty Database and hit OK and of course it
| | 00:37 | asks us to name our database and we
will call this database New and we will
| | 00:43 | just save it to our Desktop and you
see the first thing on screen is what's
| | 00:47 | called the Manage Database window. This
allows you to create Fields and tables
| | 00:52 | and relationships and this is
something that you are going to access when you
| | 00:55 | are developing your database further
all the time and you will notice it
| | 00:58 | doesn't asks us to create any layouts
or anything like that because what it
| | 01:01 | wants to start off with is the tables
and of course FileMaker like lot of other
| | 01:06 | database applications as presented to
the database developer a collections of
| | 01:10 | tables that are all worked together in
a series of layouts and relationships.
| | 01:14 | So we have to start by creating a
table and you will notice something first
| | 01:17 | that if we go into tables, FileMaker
even though we haven't actually done
| | 01:21 | anything yet, FileMaker has created a
table that's called New. Well, what it
| | 01:25 | does it mimics the name of the file
that you created. Now you don't have to
| | 01:29 | keep it that way. For example, we can
change this table Name to table One and
| | 01:34 | you will see we can either create a new
one called table One or just change the
| | 01:38 | original name.
| | 01:39 | The idea here is that when FileMaker
creates a new database, it has to start
| | 01:43 | off with at least one table so that you
can start defining things upon it like
| | 01:46 | Fields and such. So we have got our
one table already and if we click in the
| | 01:51 | Fields we will see that our one table
is listed here and it doesn't have any
| | 01:55 | Fields yet defined, and we are going
to cover defining Fields extensively in
| | 01:58 | the Managing Fields chapter that's coming up.
| | 02:00 | But for right now, creating tables
being the very first starting point, you can
| | 02:05 | go ahead and create these manually or
here is a couple of other ways that you
| | 02:08 | can create FileMaker tables and
sometimes even databases in a data of right out
| | 02:13 | of the gate.
| | 02:14 | The first of which is through source
files of Excel and the next one I'm going
| | 02:19 | to show you is through Text files. In
the case of Excel, it's a little known
| | 02:23 | tip but FileMaker can convert an Excel
spreadsheet into a FileMaker database by
| | 02:28 | simply dragging an Excel spreadsheet
on top of the FileMaker icon or pointing
| | 02:33 | to it when you are opening up a file.
FileMaker will automatically launch and
| | 02:36 | convert that spreadsheet into a
FileMaker database. So if you are moving from
| | 02:39 | working with spreadsheets, all you
have to do to define the database to get
| | 02:43 | started is to just drag your old
spreadsheet on to a FileMaker icon and voila!
| | 02:48 | You are working with FileMaker database.
| | 02:50 | The other way to do it is through
creating a table or importing the table and
| | 02:55 | we will cover importing in the import,
export chapter as well, but here is the
| | 02:59 | tip on how to create a FileMaker
database from scratch. If you go into the Open
| | 03:05 | File dialog as you see here and select,
let's say, the Adventures.txt file and
| | 03:11 | hit Open, you will see that FileMaker
launches the Import Field Mapping dialog
| | 03:15 | and we will talk more about this in
import, export but the feature that I
| | 03:18 | wanted to show you here is how to
create a new table by importing.
| | 03:22 | So if you are starting off creating
a FileMaker database with an Excel
| | 03:25 | spreadsheet we know that you can drag
it on to an icon and create a database to
| | 03:29 | begin your FileMaker developing from
there or you can import a text file if you
| | 03:34 | just have some data that you have
exported from another system or from whatever
| | 03:38 | resource and you want to turn into a
database, here is one way to do that.
| | 03:42 | You by the way can drag the text file
on to the icon of the FileMaker, it will
| | 03:46 | perform in the same way as the
spreadsheet does or you can select New table and
| | 03:50 | you will see all the different fields
or columns that are defined within the
| | 03:55 | text file and some target field that
it's going to create for us by simply
| | 04:00 | hitting the Import button. It goes
through an import and it gives us the
| | 04:04 | summary, and you will notice that it
brought in all the data but also we go
| | 04:10 | back under File to manage database
which is where we do all of our defining
| | 04:15 | tables and fields and relationships,
you will see that it added that table.
| | 04:19 | So I didn't have to define a table and
now I can actually go in and even change
| | 04:24 | the name if need be or go in and select
the Adventure table and change some of
| | 04:29 | these Field names or Add New Fields
which we will cover in the next chapter,
| | 04:34 | but you will also notice
that it brought in the data.
| | 04:37 | So there is couple of ways that you can
create new database, is simply go under
| | 04:40 | New Database and selecting Create Empty
Database and creating one that way, you
| | 04:46 | can drag a spreadsheet on top of the
FileMaker icon or drag a text file on to
| | 04:50 | an icon or import in a text
file to create new tables for you
| | Collapse this transcript |
| Ramifications of deleting tables| 00:00 | So, before we proceed into defining
field and scripts and layouts, and all of
| | 00:05 | the fun part of developing a
FileMaker database, one quick note here on
| | 00:08 | deleting tables. Since we just create
the tables for the first and in this
| | 00:12 | example, I imported a table in.
You'll notice that importing a table or
| | 00:18 | creating a table shows up in a lot of places.
| | 00:20 | First off, it shows up here within our
table list. Also, you'll see that there
| | 00:24 | are fields defined and by the way, as
we get into the defining fields, you'll
| | 00:28 | notice that you can use fields from
one table in defining fields for another
| | 00:34 | and I just mentioned that because you
can see how these tables get intertwined.
| | 00:37 | Also, you see that each time that you
create a new table or import a table in,
| | 00:42 | it creates something on the
Relationship Graph, which we'll talk more about in
| | 00:45 | the relationship section. Creates
something called the table occurence, which
| | 00:49 | is a representation of that base
table that you've just created.
| | 00:52 | Not only that, but it also creates a
new layout. You see that a layout was
| | 00:57 | automatically created for our table.
These tables, once you start getting into
| | 01:02 | the defining and managing every
database, you'll see that you can get them
| | 01:05 | involved in scripts, some of the
fields can be used in other tables'
| | 01:09 | calculations, and layouts could be
created based on those. So, the note here is
| | 01:13 | just simply be cautious when you are
going to the delete a table and you can do
| | 01:17 | that in a couple of different ways.
| | 01:19 | You can select the table from this
dialog and simply hit Delete. You can go
| | 01:23 | into the Relationship Graph and
remove the table as well. What it indicates
| | 01:29 | here, it's telling you, it's giving you
a warning and this is what I wanted to
| | 01:31 | bring your attention. If you delete a
table, keep in mind that it could be used
| | 01:36 | in layouts, scripts,
calculations, a lot of other areas.
| | 01:40 | So, you need to understand before
you delete a table-- in this case, it's
| | 01:43 | really safe for us to delete that when
you delete these-- that it could have
| | 01:47 | some ramifications when you are
trying to work with other systems or other
| | 01:52 | tables that you might end up with some
errors. And you'll notice here that some
| | 01:56 | of the errors that you'll get. If I
deleted this table, you'll see things like
| | 02:03 | table Missing.
| | 02:04 | So, if you notice this on a layout, and
you see that there is a bunch of tables
| | 02:08 | Missing and all your data is gone or
something like that, you'll know what
| | 02:11 | happened is either accidentally or
unbeknownst to another developer, a table
| | 02:15 | has been deleted.
| | 02:17 | So, keep these things in mind when you
are working with tables. We've defined
| | 02:20 | them, but we keep in mind before you
start deleting any of them that it could
| | 02:22 | have a cascading effect on your
development environment when you delete those
| | 02:26 | tables. So now on to working with
defining fields, which is the first step
| | 02:32 | after you've created your tables
in creating your FileMaker solution.
| | Collapse this transcript |
|
|
3. Managing FieldsManaging fields| 00:01 | We've discussed how each physical
FileMaker file can hold an effectively
| | 00:05 | limitless number of tables, and
each one of those tables can have an
| | 00:08 | effectively limitless number of
fields defined, and fields and table
| | 00:13 | definitions are handled in something
that's called the Manage Database dialog.
| | 00:17 | Let's take a look at that. Let's first
open up a file and we can just use the
| | 00:24 | Lucky_You_Tours file. And you'll
notice under the File menu in both Mac and
| | 00:29 | Windows, you'll see that anyone
familiar with the version of FileMaker before 9
| | 00:33 | knows that this used to be called the
Define menu, now it's called the Manage
| | 00:37 | menu, and in order to work with
tables and scripts and relationships, we do
| | 00:42 | that through the Manage Database.
| | 00:44 | So, here you see we've the Manage
Database and in this example, we've got a
| | 00:49 | series of different tables, and each
one of those tables has fields defined,
| | 00:52 | and before I talk to you about the
different types of fields that you can
| | 00:56 | define, you should know that you define
all of those, and work with those, and
| | 00:59 | manage those under the Fields tab. And
just to give you a little idea of what a
| | 01:04 | field is: a field in FileMaker is a
slot inside of a database table that can be
| | 01:09 | used to hold information specific to
this single database record, and we'll
| | 01:13 | talk more about records in the next chapter.
| | 01:15 | For a database table in which your
record, let's say, represents in this case,
| | 01:19 | we've got a customer or a particular
person, you'd need to define fields for a
| | 01:24 | first name and a last name, birth
date or a billing address, home, phone
| | 01:29 | number, notes, different contact information.
| | 01:32 | The tables represent entities or groups
of like information and the fields are
| | 01:37 | attributes of those entities. So,
for example, we've got customers and in
| | 01:40 | fields, these are all the different
attributes of a customer. My best advice is
| | 01:44 | all of this should be inspect out
before you start building your FileMaker
| | 01:47 | database. If you have that luxury, it's
highly recommended for various numbers of reasons.
| | 01:52 | What you'll have to determine is, what
tables are going to be necessary, what
| | 01:55 | the attributes of those tables are
going to be. So, those attributes are
| | 01:59 | defined as fields, and each field in a
FileMaker database must have a specific
| | 02:03 | field type. Choosing the proper field
type for a field will allow FileMaker to
| | 02:07 | decide how to best store the data in
the field because there are all sorts of
| | 02:10 | different things that it has to do
with these types of data. It also helps to
| | 02:14 | define how it retrieves, and uses the
data in certain Calculation functions you
| | 02:18 | are asking it to perform.
| | 02:19 | So, although FileMaker has lot of
flexibility as to what kind of data can be
| | 02:22 | stored inside fields of specific
types, it is essential to choose the
| | 02:26 | appropriate field type based on your
database design. So, we are going to
| | 02:31 | continue on in the next series of
movies here with an overview of each one of
| | 02:34 | these, but to give you an idea of
the different field types that we've
| | 02:37 | available to us are Text, Number,
Date, Time, Timestamp, Container, and
| | 02:43 | Calculation, and Summary fields. So,
let's go ahead and look at the field type
| | 02:48 | of Text field types.
| | Collapse this transcript |
| Using text fields| 00:01 | So, when defining fields inside of a
FileMaker database, you are going to have
| | 00:04 | to choose a type. The first type of
field that we are going to look at is what
| | 00:08 | really is the default type of field;
the most commonly used one, which is
| | 00:12 | called the Text field.
| | 00:14 | Now a bit of information on a Text
field, a Text field is a field type that's
| | 00:18 | actually appropriate for any sort of
data that can be stored as text but it can
| | 00:22 | actually store numbers or characters or
whatever. You can really throw anything
| | 00:26 | into a Text field. But the text itself
where it's just like a name or address
| | 00:32 | or something like that is what's most
commonly stored in these types of things
| | 00:35 | and it doesn't need any really
more specific handling than that.
| | 00:38 | Numbers and dates, like I mentioned,
can be stored in a Text field but they
| | 00:41 | lose their numberness or dateness and
can only be addressed as plain text. So,
| | 00:46 | for example, if you want to add the
value in one field to the value of another,
| | 00:50 | you can't have it be text because
it's not recognized as an actual number.
| | 00:54 | A Text field, there are some limitations,
although they are pretty much off the
| | 00:59 | charts. Text field may hold up to
about two gigabytes of information in one
| | 01:03 | Text field which is really the
equivalent of about a billion characters or
| | 01:06 | roughly 500,000 pages of English text.
So, you can conceivably insert into one
| | 01:14 | single Text field the entire copy of Moby Dick
or War and Peace, Just to give you an idea.
| | 01:19 | Now, I would contend that if you
have that much information in one field,
| | 01:23 | you've got some other data management
issues to deal with in the first place.
| | 01:26 | But just to give you an idea, you
really have the limitless number of tables
| | 01:30 | that you can define in a limitless
number of fields. There are essentially a
| | 01:32 | limitless number of characters that
you can put into a Text field. And also,
| | 01:36 | FileMaker stores these as what's
called Unicode values, which actually each
| | 01:40 | require up to two bytes of
information per character. But it helps with
| | 01:44 | indexing and a lot of the other
things that are happening internally and it
| | 01:47 | also recognizes special characters
and some foreign language characters as
| | 01:51 | well, which is a real improvement for
FileMaker development. But it does have
| | 01:56 | the impact of having about two bytes
of info. So, that's why two gigabytes of
| | 01:59 | storage actually results in
about a billion storable characters.
| | 02:03 | So, somewhere in there I think you
should be able to find enough room to store
| | 02:07 | a text data. Now, Text fields in
FileMaker can also store formatted
| | 02:11 | information. So, things like character
styling or color or typeface and point
| | 02:16 | size and basic paragraph level
formatting such as indents and like tab stops
| | 02:21 | and things like that. But most commonly,
what you'll see is you could bold the
| | 02:24 | field or bold the text inside of a
field and all of that stored along with the
| | 02:27 | data itself. So, it's kind of has
sort of style information and data
| | 02:31 | information in there as well.
| | 02:32 | So, you'll see in this file, we've got
a lot of examples of Text fields; we've
| | 02:36 | got phone numbers, birthdays or a date
as you can see the difference between
| | 02:41 | what would be a date in a text,
although we could make this text. E-mail is a
| | 02:45 | good example of text, and again,
this is you'll see as in these examples,
| | 02:51 | FileMaker developers do use Text
fields more often than anything else, but
| | 02:54 | there are other field types that we
should take a look at. So, let's take a
| | 02:57 | look now at Number fields.
| | Collapse this transcript |
| Using number fields| 00:02 | The next type of field that we are
going to be using in this title is called
| | 00:05 | the Number field. You would use a
Number field in any case where a data needs
| | 00:09 | to be treated as a number. So, for
example, if the field data needs to be
| | 00:13 | sorted in numeric order or involved
in part of a mathematical calculation,
| | 00:17 | number fields can store up to 800
digits of numeric precession and that's 400
| | 00:22 | on either side of the decimal point.
| | 00:24 | Now, FileMaker is not going to prevent
you from entering any non-numeric data
| | 00:27 | into a Number field unless, of course,
you have what's called Strict Numeric
| | 00:31 | Validation enabled and we will talk
about that in the chapter on validation.
| | 00:36 | But any text characters, for example,
that are entered into a Number field will
| | 00:39 | simply be ignored for almost all
purposes. So, in general, if you need to enter
| | 00:44 | any mixed numeric and alphanumeric data
into a field, you should probably just
| | 00:48 | consider using the Text field
that we just talked about instead.
| | 00:50 | Now the next type of field we are
going to look at is called the Date field.
| | Collapse this transcript |
| Using date fields| 00:01 | Another very commonly used type of
field in FileMaker is the Date field and
| | 00:06 | Date fields store date information and
can be used for defining fields like,
| | 00:10 | for example, you will see if you look
into the Trip table in this example database.
| | 00:15 | We have got a field in here defined as
the Start Date. So these are used when
| | 00:19 | you want to be able to have an elapsed
time or if you need to reference whether
| | 00:24 | today's date is greater than a certain
date and there are some important things
| | 00:28 | to understand when you are
working with Date fields.
| | 00:30 | The first of which is that no matter
how you actually enter in a date. So, for
| | 00:35 | example, if we go into Trip Detail,
you will notice that the user has entered
| | 00:45 | in the values 7/11/2006. Well, as we
will cover in the Layout section, you can
| | 00:52 | format the way that dates appear in
your file to make it look anyway that you
| | 00:56 | would like and that's actually really
just a layout mechanism that transfers
| | 01:00 | the data inside a field into a
certain a way that you want it to look, it's
| | 01:03 | really still the same data.
| | 01:05 | But the other thing to notice though,
even though the user has typed in
| | 01:08 | 7/11/2006 into this field, the
FileMaker is actually internally storing this
| | 01:14 | data as an integer or a whole number
that represents the number of days that
| | 01:19 | have elapsed from the date 11/00/01 up
to the specified date. So in this case
| | 01:26 | it would be however many days have
elapsed in the calendar from the very first
| | 01:30 | day of 001 all the way to 7/11/2006.
| | 01:35 | So that value is actually a long
string of a number and the region that
| | 01:39 | FileMaker does that is so that you can
subtract certain dates from others to
| | 01:43 | determine the number of days that have
elapsed or use these things in a sort of
| | 01:47 | calculation type functions.
Those are important to note.
| | 01:50 | The only other thing, which you need to
remember when you're entering dates in
| | 01:52 | here, is that the date must be a value
between 11001 and 1231 in the year 4000.
| | 02:01 | So your database systems that you
are creating are going to be good to go
| | 02:04 | without any real impact on dates until
the year 4000. FileMaker supports a wide
| | 02:10 | variety of date entry and display
formats, which we are going to talk about in
| | 02:14 | the Layout section.
| | 02:15 | So the next ones to take a
look at are the Time fields.
| | Collapse this transcript |
| Using time/timestamp fields| 00:01 | So let's take a look now at fields that
are defined as Time fields. These have
| | 00:05 | some similarities in the way that they
are handle to, for example, the fields
| | 00:10 | that we looked at inside the Date field,
but you see here it's just another one
| | 00:13 | of the types. We have got Time and we
are going to look at Timestamp as well.
| | 00:17 | So Time fields will allow you to put
in values, for example, 1:15 pm or am or
| | 00:23 | something like that and the way that
FileMaker is actually handling those is
| | 00:28 | that it stores a value that represents
either a time of duration or a specific
| | 00:32 | time of day within the 24-hour period.
Internally, FileMaker stores the time
| | 00:37 | value as an integer, which represents
the duration of seconds from 12 o'clock
| | 00:42 | this morning.
| | 00:43 | So much like the Date fields start
by counting the number of days since
| | 00:47 | 01/01/0001, the Time fields count the
number of seconds from the moment that
| | 00:53 | today started, so 12 o'clock am even.
Those will be internally managed as a
| | 00:59 | number of seconds, which allow you to
again determine duration, so you can have
| | 01:02 | a start time and an end time.
| | 01:04 | You just subtract the seconds from
the end time from the start time, which
| | 01:07 | leaves you duration or an hour and 15
minutes or whatever it is. That gets
| | 01:12 | reflected inside the field. We can
also format the Time fields inside the
| | 01:16 | layouts as well and we will look at
that when we are working with layouts.
| | 01:20 | A Timestamp field which is nearly a
couple of versions ago and seven is a
| | 01:26 | different type of the field. When you
will see that we have got a couple of
| | 01:28 | those here and the Timestamp field
combines the functions from both the Date
| | 01:33 | and the Time data types. So a
Timestamp is a combination of Date and Time
| | 01:37 | separated by a space and then are
stored as the number of seconds from midnight
| | 01:42 | on 01/01/0001.
| | 01:44 | So this is helpful if you want to just
have every record that's created, have a
| | 01:49 | stamp on it on exactly when it was
created, so you don't have to define a Date
| | 01:53 | field and a Time field, pretty common
in other database applications as well.
| | 01:57 | So the way they will actually look
would be, for example, you would have date,
| | 02:00 | space, the hours, minutes, seconds and
that stored as a number from the moment
| | 02:06 | the clock struck midnight on 01/01/
0001 all the way up until the present day.
| | 02:11 | So you can actually use these
Timestamps in calculations and duration
| | 02:15 | calculations as well.
| | 02:17 | The Timestamps are pretty helpful in
what's called the housekeeping field. As
| | 02:20 | you see we have got some examples here,
for every record that's created you can
| | 02:24 | automatically assign different values.
We will talk more about those when we
| | 02:28 | get into the auto entry section.
| | 02:30 | The next type of field that we are
going to talk about is the Container fields.
| | Collapse this transcript |
| Using container fields| 00:01 | Container fields are a really
interesting type of field. There's a lot of
| | 00:04 | different uses for a Container field,
but just to introduce you to them, it's
| | 00:08 | FileMaker's most versatile data type
that can store any sort of binary data and
| | 00:12 | that binary, this is a generic term
for data that cannot meaningfully be
| | 00:17 | represented as text. So, for example,
if you accidentally opened up a photo
| | 00:21 | that someone sends you an email inside
a viewer that's not compatible, it turns
| | 00:25 | into a bunch of garbled text and
that's kind of the idea behind the binary.
| | 00:28 | But really, a Container field in
FileMaker Pro can be used to hold binary data
| | 00:34 | in four broad classes. Defining these
classes should help you understand this a
| | 00:38 | little bit better. The first of which
are Images, which I will show you an
| | 00:41 | example of in a moment. Any kind of
QuickTime file, now keep in mind that
| | 00:45 | FileMaker uses the QuickTime engine
inside these Container fields. So, really
| | 00:49 | that means any movie, sound or other
file that's capable of display or playing
| | 00:54 | inside of QuickTime. Although, that
sounds real Mac friendly, I mean it
| | 00:59 | actually works across platform and for
the Windows platform, any OLE object can
| | 01:03 | actually play or be stored
inside of a Container field as well.
| | 01:06 | Then something that was added a couple
of versions ago which people have been
| | 01:09 | pretty excited about is the ability to
store a file type. So, this means you
| | 01:13 | can store a PDF file, an Excel file, a
Word document, any kind of proprietary
| | 01:19 | file type like a whole Flash file or
Final Cut Pro Project, all of those can be
| | 01:24 | stored inside the file. Now, it's going
to be recommended that if you are going
| | 01:28 | to insert any packaged files, like for
example, a keynote files or something
| | 01:31 | like that into a Container field, just
archive them, zip them before you put
| | 01:35 | them in there, so it's just one single file.
| | 01:37 | Many of these binary objects such
as the movies and sounds that I just
| | 01:40 | mentioned can be opened or played
directly from within FileMaker. So, you can
| | 01:45 | insert QuickTime, it can be played or
viewed directly within the Container
| | 01:49 | field. For example, if we look here, we
have got a field that's defined inside
| | 01:53 | the adventure table that is a
Container field and it's just one of the
| | 01:57 | container types. When we place that
field on a layout and if we look into the
| | 02:03 | Adventure Detail and go into Layout mode,
we will see that we have got a field
| | 02:09 | here that is the photo field and we
will see that that has been assigned as the
| | 02:13 | photo field.
| | 02:14 | So when we go back in the Browse mode,
we can now insert something into this
| | 02:19 | field. Now, if I had copied, let's say,
an image, let's work with an image in
| | 02:23 | this example, if I had copied an image
from another source like Photoshop or
| | 02:28 | something like that, I could just
simply paste it right in here and when you'll
| | 02:31 | click inside the Container field,
you will notice that the fields are
| | 02:34 | highlighted in a black box. Once
highlighted, I can under the Insert dialog and
| | 02:40 | insert either a picture, a QuickTime,
Sound or a File. So, you'll see that we
| | 02:44 | can insert a file. Let's say we go
back into our creation and I can insert a
| | 02:49 | text file there and I can right click
or Ctrl-click if you are on Mac to remove
| | 02:57 | the value. Or I can insert a picture.
In this case, we are on the Mount
| | 03:03 | Everest. So, let's look into our
Exercise Files and pull in this gorgeous
| | 03:07 | picture of Mount Everest.
| | 03:08 | It can be displayed inside the
Container field and if I like, I can even import
| | 03:13 | in a movie and it will play just like
QuickTime player, we play the movie. Now,
| | 03:18 | there's also ways that you can work
with getting the information out of the
| | 03:21 | field. So, if I right click into a
container, you will notice that there is
| | 03:26 | this value here that's called Export
Field Contents. What that does is allow me
| | 03:31 | to export this image out, if we hide
FileMaker, we can just see that we've got
| | 03:38 | a Mount Everest image. Now still
exists inside of our database but we can, if
| | 03:44 | we go back into FileMaker, we'll see
it's still in our record and the reason
| | 03:48 | that it is still in the record is
because I have embedded this right into the
| | 03:51 | record itself. So, let's say, this
image is about 100k. The moment that I
| | 03:55 | embedded into a record, the overall
size of the FileMaker file is going to
| | 03:59 | increase by 100k.
| | 04:00 | So, there is another way that we can
avoid doing that if we do Insert Picture.
| | 04:05 | Notice down here we have got something
that's called Store only a reference to
| | 04:08 | the file. Now, binary objects can be
embedded directly into the Container field
| | 04:11 | like I showed you here or stored by
this reference. An embedded objects are
| | 04:16 | physically stored within the database
which takes up a little bit more space
| | 04:18 | but the embedded object is always going
to be available that's the plus part of that.
| | 04:22 | But storing an object by a reference
leaves the object on some external storage
| | 04:26 | device such as the server hard drive
by creating a link or a path to that
| | 04:30 | storage location. So, if I store Mount
Everest, I still have the same image,
| | 04:37 | but if I happen to move that location,
remember it's inside of an exercise file
| | 04:42 | on my desktop, if I move that folder
somewhere, I won't see the container image
| | 04:46 | anymore because the path has been broken.
| | 04:48 | So, although this can save considerable
space, it necessitates the extra volume
| | 04:53 | where it's been stored. It must always
be accessible to all users of the system
| | 04:57 | and that the file's location cannot be
changed without updating the reference.
| | 05:01 | So, you may have stored references to
a file that you think is stored in a
| | 05:06 | directory on the network server
somewhere that you think every user has access
| | 05:10 | to, but if someone opens up their
FileMaker client and they don't have
| | 05:12 | permissions or access to that
directory on the server, they are not going to
| | 05:17 | see the image. So, those are things
that you need to take into account that are
| | 05:19 | outside of the FileMaker realm
when working with the Container field.
| | 05:24 | We are also going to look at some uses
of Container fields when we talk about
| | 05:28 | working with layouts. But now, I'd
like to just quickly introduce you to
| | 05:32 | Calculation fields.
| | Collapse this transcript |
| Using calculation fields| 00:00 | Calculation fields are another type
of field that can be created within
| | 00:04 | FileMaker. You will notice that they
are kind of separated down here, because
| | 00:07 | these fields are going aggregate or
use either functions from the FileMaker
| | 00:13 | system or user environment or other
fields that are going to be aggregated
| | 00:17 | together in summary to summarize as those.
| | 00:19 | Calculation fields are really popular
and we are going to be talking in great
| | 00:22 | depth about calculation fields in a
later chapter, but you can see here that in
| | 00:26 | the Customer table there is a field
called full name and it's defined as a
| | 00:31 | calculation. You will see there is a
Calculation dialog, which again, we'll
| | 00:34 | talk about in the Calculation chapter.
| | 00:36 | But what's in here is the first name
and the last name field and they are
| | 00:40 | concatenated together using some
special characters. So the value that will
| | 00:44 | show inside this field is going to be
the value from first name field combined
| | 00:48 | together with the value from last name field.
| | 00:50 | We will talk a little bit more about
those because they really are the heart of
| | 00:53 | developing within FileMaker. But the
tip here is, usually your calculation
| | 00:58 | fields are going to be created after
all the other field types are created. So
| | 01:01 | again, going back to the concept of
don't start to find in FileMaker files
| | 01:05 | until you sketched it all out on paper.
| | 01:07 | Once you have all your entities or the
tables or groups of information you want
| | 01:11 | to store and all their attributes, you
are going to then want to be able to go
| | 01:15 | in and define different combinations of
those attributes as Calculation and/or
| | 01:19 | Summary fields which we are
going to take a look at next.
| | Collapse this transcript |
| Using summary fields| 00:00 | The final field type that we are
going to review is the Summary field. Now
| | 00:05 | Summary fields are simply made to
aggregate data that already exist within your
| | 00:10 | FileMaker tables. In this case it works
only with Number fields. So if we look
| | 00:15 | at, for example, a table that has a
Number field, if we look at adventure we
| | 00:20 | see we have got a couple of number
fields here. We have got ratings and so on.
| | 00:26 | The Summary field dialog, much like
the Calculation dialog, has a different
| | 00:29 | looking field; there are actually
some options available. So if you look at
| | 00:32 | Summary and we hit Create, you will
see that the options for Summary field,
| | 00:38 | which I called Summary in this case pops up.
| | 00:40 | What you can do inside of a Summary
field-- it's a special type that allows you
| | 00:44 | to aggregate values like across a
found set of records and possibly for each
| | 00:48 | subgroup within a sorted found set and
the Summary fields are the basis for an
| | 00:52 | important area of FileMaker reporting,
which we are going to cover in reporting
| | 00:55 | called Subsummary fields.
| | 00:57 | But also if you just create a Summary
field and thrown it on a layout, it will do
| | 01:01 | one of the following things. It will
either total up whatever Number field you
| | 01:05 | tell it to total, average, count,
which means the total number of actual
| | 01:09 | records; give you the minimum value in
a number, the maximum value in a number
| | 01:14 | or a date, give you Standard
Deviation or a Fraction of the total.
| | 01:18 | You will see here that some of the
fields are grade out and that's because they
| | 01:22 | are not Number fields. But here I can
say total number of days and define this
| | 01:26 | field and drop it onto one of my
layouts. If I drop this Summary field on a
| | 01:30 | layout and if I do Find All and I have
100 records in my database and each one
| | 01:34 | has one day, I'm going to
get the value of 100 days.
| | 01:38 | But if I do a found set and I get a
smaller group of 25 of those records, even
| | 01:43 | though I'm on the same layout and at
the same field it's going to dynamically
| | 01:46 | only count the found set. We will talk
more about this in finding records. But
| | 01:51 | the idea is that Summary fields are
triggered off of whatever the active found
| | 01:54 | set is and they can only be applied
towards Number fields, and in these cases,
| | 01:58 | the Date fields too for minimum and
maximum, which is also something that's
| | 02:02 | commonly used.
| | 02:03 | Now that we have looked at all the
different field types what we are going to
| | 02:07 | do now is look at how we can organize
these fields within the Manage Database dialog window.
| | Collapse this transcript |
| Organizing fields| 00:01 | Now that you are familiar with
defining the different field types, couple of
| | 00:05 | things I wanted to show you about how
to work with the fields inside the Manage
| | 00:08 | Database dialog window.
| | 00:10 | Let's first open up a separate
file in your exercise folders,
| | 00:18 | Lucky_You_Tours_03_08 and we will go
under File to Manage > Database and we
| | 00:25 | will click into the Fields tab, and in
this layout there is a couple of things
| | 00:28 | that I wanted to show you.
| | 00:29 | The first of which is that we have
the ability to sort all the fields. The
| | 00:34 | default field sort order is going to
be the order in which you created the
| | 00:37 | field, which is sometimes useful, but
you can control how they are listed or
| | 00:42 | the sort order inside each one of
these windows by this toggle up here at the
| | 00:47 | View by. You can show them in
creation order, which is the default. Sort it
| | 00:53 | alpha by Field Name, by Field Type, in
case you just want to work with certain
| | 00:57 | types at a time it groups them
altogether as you see here, or by a Custom Order
| | 01:02 | and the custom order is determined you
noticed to the left of each one of these
| | 01:06 | fields. I can actually click on the up
and down arrows and move them around.
| | 01:10 | If I'm working with a certain set of
fields and I just want to group them
| | 01:14 | altogether, so I can easily make
modifications. I can move those down and
| | 01:18 | indicate custom order and any time I can
revert back to the Field Name, for example.
| | 01:24 | You also see that clicking on the field
headers, Type, and Field Name will sort
| | 01:28 | them appropriately, and you will notice,
so that there is an Options/Comments
| | 01:33 | field. The Options is the default,
which indicates things like indexing and
| | 01:38 | what kind of storage values, or if
its calculation will actually list the
| | 01:41 | calculation or they will enter other
validation rules, we will cover more of
| | 01:46 | those in upcoming chapters. But also
if you click on it, right now they are
| | 01:50 | blank, but it will show Comments.
| | 01:52 | If you look down here into this field
and we click on it you notice that in
| | 01:56 | addition to naming a field then
selecting its type and later we'll talk about
| | 01:59 | the Options, you can also comment it.
| | 02:02 | A tip here is, the more you can
comment out all of your fields and you can
| | 02:06 | comment other things like scripts and
table occurences, which we will discuss
| | 02:10 | in later chapters, but the more you
can comment these things out if you are
| | 02:13 | working with other people or if you
just are working on a solution and you
| | 02:17 | don't get an opportunity to work on it
again or a year or so you might not know
| | 02:22 | what these fields were based on the
names that you came up with. So if you are
| | 02:24 | not using the naming convention you
can always use the comments, and then you
| | 02:28 | can see all these comments by just
clicking and toggling the Option/Comments layout.
| | 02:32 | So in addition to organizing all the
fields, you can click on a field and you
| | 02:37 | can also make changes to that field
name at any time. So for example, here, we
| | 02:42 | can change this from maximum to max,
if we'd like or we can change the Field
| | 02:47 | Type or Date or Time. We can click on
a field and duplicate it or delete the
| | 02:52 | field of course, understanding that if
it's used in a calculation field or on
| | 02:55 | layout it's going to show up as field missing.
| | 02:59 | We can also print all of our fields
by clicking on the button below and you
| | 03:03 | will notice, in this case I had one
field selected, which gives me that field.
| | 03:07 | This is helpful if you have really
long complex calculations or if-- I don't
| | 03:13 | have a field we won't select that change.
But if I just want to look at all the
| | 03:17 | different fields here I can select all
of them by Shift-clicking and selecting
| | 03:23 | all the values hitting Print, and you
will see that all the different printed
| | 03:27 | information shows up. This is really
helpful for documenting your solution and
| | 03:31 | sharing this with other developers or
if you are passing on a file or even
| | 03:35 | selling a package solution you might
want to document all these things so that
| | 03:38 | users can have a hard copy version of
all the different values that are stored here.
| | 03:43 | Now in addition to manipulating the
fields, adding fields, changing them, or
| | 03:49 | manipulating the way, which are
revealing these fields in this dialog, you will
| | 03:52 | also notice that each field carries
with it a field option. So in the next
| | 03:56 | chapter we are going to talk about
some of the different field options and
| | 04:00 | things like validation and storage,
which you can control through that dialog.
| | Collapse this transcript |
|
|
4. Auto-Enter Field OptionsCreating auto-entry fields| 00:01 | In addition to defining your attributes
as Fields within a FileMaker file, you
| | 00:06 | also have several options for each one
of those fields that you can work with.
| | 00:09 | The first of which is the ability to
create auto-entry fields and FileMaker Pro
| | 00:15 | allows developers to specify a range
of different options for automatically
| | 00:18 | populating the contents of a field and
what you'll have to do is first go to
| | 00:22 | what's called the Auto-entry Tab
of the Options for Field dialog.
| | 00:27 | Let's first open up a file. If we go
into autoenter and we open up the 04_01
| | 00:33 | file and we will go into Manage -
Database and we see all of our fields listed
| | 00:41 | there and we can pick any one of
these fields, and you'll notice when you
| | 00:44 | select a field there after a field
has been defined, regardless of Type you
| | 00:48 | will see that the Options button is
available to you. Clicking on the Options
| | 00:51 | gives you Options for the field,
which we will cover in the next series of
| | 00:56 | chapters. We've got the ability to
control Auto-Enter values, Validation,
| | 01:00 | Storage, etcetera, but here we are
going to concentrate on Auto-Enter values.
| | 01:06 | The first ones that we are going to
look at are the ability to Auto-Enter,
| | 01:09 | Creation and Modification values and
the FileMaker fields can automatically
| | 01:13 | track information about when a
record was created or modified with some
| | 01:17 | limitations, and this is really helpful
because this is a field which you don't
| | 01:20 | necessarily have to put on a
layout or you could just put it on an
| | 01:23 | administrative layout and it helps you
see certain time period. Let's say you
| | 01:26 | are having a problem with your
database and you want to track, okay, what
| | 01:30 | fields were created between Friday at 4:
30 and Saturday morning at 8:00, so you
| | 01:35 | can see isolate those to see if
there is any further issues, just as an
| | 01:38 | example. Both of those use Creation
and Modifications options, and these
| | 01:43 | options have a couple of
different choices here for you.
| | 01:47 | First off, some of them related to the
values that you have defined within your
| | 01:52 | table. So if you have let's say a Date
field, you will notice your options that
| | 01:57 | you've got are only going to be Date.
By checking this box, anything that is
| | 02:01 | defined in the Auto-Enter options
dialog will show up in the field every time a
| | 02:06 | new record is created, and it
sometimes committed in the case of the serial,
| | 02:11 | which we will talk about in the next video.
| | 02:13 | But in the case of Creation and
Modifications, in some cases they are specific
| | 02:17 | to the field type. So for example, if
you define a field as a Date or define a
| | 02:22 | field as a Time, you will have limited
options, however, if you select a Text
| | 02:28 | field and hit Options you will
notice that any one of the Date, Time,
| | 02:32 | Timestamp, Name, or Account Name values
will be added inside this field. So to
| | 02:37 | talk about what will actually appear in
the field if we select Creation, Date;
| | 02:43 | in this Text field the date, let's say
it happens to be 04/15/2010 that date
| | 02:50 | 04/15/2010 will appear inside in this
case a Text field or if it's a Date field
| | 02:57 | that will automatically put the date in
there and then since it's a date it can
| | 03:00 | handled as a date and used to
determine range or any kind of calculation that
| | 03:05 | might require Date field.
| | 03:07 | But in the case of Text, you can have
the Date or the Time put in there, of
| | 03:10 | course, it will be a Text field so it
can't be handled as Date or Time, but it
| | 03:13 | will reflect the data, and also you can
put a Timestamp in it, this is actually
| | 03:17 | quite common. A lot of developers
will make sure that every table that they
| | 03:22 | have has a Creation and Modifications
field setup and these are commonly called
| | 03:27 | Housekeeping Fields.
| | 03:28 | Actually we have a couple already
defined in one of these tables if you want to
| | 03:32 | take a look at what that looks like.
We go into the Adventure table. You will
| | 03:37 | see how these housekeeping fields can
be used. They are commonly not put onto
| | 03:42 | layouts that users are going to see,
they can be created and just put onto
| | 03:47 | administrative layout, and you will
notice that the Options, in this case there
| | 03:51 | is a Text field for Creation account.
This is going to show us the Account Name
| | 03:55 | and we will cover Account Name when
we talk about security in accounts and
| | 03:58 | privileges, but this is what the user
used when they logged into the file.
| | 04:02 | If you're interested not only in when
a record was created, either by Date or
| | 04:06 | Time, you can also find out who
created a record. So the name of the computer
| | 04:12 | if you chose Name, it would actually
show up in the field, if you just chose
| | 04:16 | Creation and then the Name option, but
the name that the user used to log into
| | 04:21 | the system so they could be logging
in from any remote location or any
| | 04:24 | workstation, it would be independent
of the name of the computer. You can
| | 04:28 | gather all this information by
choosing the Creation and then Account Name.
| | 04:32 | So in this case what we are doing is we
are pulling in the Account Name or the
| | 04:36 | account of the creator. I can also
put in the computer name and choose just
| | 04:40 | Name, and you see here that we are
other options too. So the Creation,
| | 04:45 | Timestamp which means that the
combination of the Date and the Time when this
| | 04:49 | record was created is also very helpful,
in addition to creation information,
| | 04:53 | we can also choose to define a field,
again a Text field or a Date and Time or
| | 04:58 | handle them in the same manner, that
will give us the modification. So anytime
| | 05:02 | somebody goes in and changes values --
any one of the values inside of a field
| | 05:07 | that's within in a record. So if there
are ten fields defined within a record,
| | 05:12 | any one of those that get changed will
trigger the modification, and the same
| | 05:16 | rules apply here. You can have the
Account Name, the Name or just simply put in
| | 05:20 | the Date and Time.
| | 05:21 | So in this case we have the
Modification Account, which tells us that anytime a
| | 05:25 | record was modified we can see who
modified that record and this is really
| | 05:28 | helpful for administrating your
databases. A lot of people take full advantage
| | 05:32 | of this; same thing is true
here with the timestamps as well.
| | 05:35 | So you can create a field that will
automatically enter in Date, Time,
| | 05:40 | Timestamp, Name, or Account Name
into any of these fields and those are
| | 05:45 | available all in the Text fields, but
in the Dates and Times you only have the
| | 05:49 | options to put in timestamps, dates or
times respectively in there. Again, it
| | 05:53 | is recommended that every table
that you create that you create these
| | 05:57 | housekeeping fields. It might not seem
like something that you need now, but it
| | 06:00 | certainly becomes very valuable when
you are trying to diagnose a problem or
| | 06:04 | see who modified or added a bunch of
strange records to help you troubleshoot
| | 06:08 | your FileMaker solution.
| | 06:10 | The next type of option that we
are going to look at is what's called
| | 06:12 | Auto-entering a serial value.
| | Collapse this transcript |
| Creating serial fields| 00:00 | FileMaker Pro has the ability to
insert a serial number value into a field
| | 00:06 | every time a new record is either
created or committed, and I will talk about
| | 00:10 | the difference between creating a
record and committed in just a moment, and
| | 00:13 | this is really of interest when you
want to create a primary key field for a
| | 00:17 | database table or otherwise known as a
value that will uniquely identify each
| | 00:21 | row or in the case of FileMaker each
record inside the table. This is really
| | 00:26 | important when it comes to creating
relationships, as a matter of fact, setting
| | 00:29 | up an id in Auto-Enter Serial mode is
critical for defining what's called a
| | 00:35 | Primary Key in a relationship. We
will talk more about that when we discuss
| | 00:39 | relationships, but for right now I'm
going to show you how you set up these
| | 00:42 | fields and how they behave and perform.
| | 00:44 | You will notice inside the database
file, Lucky_You_Tours_04_01 in the
| | 00:50 | Adventure table, we have got a field
already defined that's called the id
| | 00:54 | field, and of course in order to access
our Auto-Enter Options, we hit Options
| | 00:59 | and we get the Options for Field id.
Notice that Serial number is selected and
| | 01:04 | it's got on creation and the next value
1153. The serial number for a field can
| | 01:10 | start at any value and it can proceed
in increments of either 1 or 2 or really
| | 01:14 | any value that the developer chooses.
So in this case I'm saying start at 1153,
| | 01:18 | and increment by 1.
| | 01:19 | But when you first define a field,
you can just put next value is number 1,
| | 01:23 | increment by number 1 and what this
will do is really, sincerely, uniquely
| | 01:28 | identify each record that gets
created from all the other ones. So a lot of
| | 01:31 | people like to use names or some sort
of fancy concatenation of last name and
| | 01:36 | city and zip code or something. But
the only way to absolutely guarantee that
| | 01:40 | no records will ever have the same
value is to have FileMaker store the tally
| | 01:45 | for you and you will notice here, if
we go into Browse mode that, first, all
| | 01:51 | the different records that have been
created have a single increment all the
| | 01:54 | way up to 1152, and when I go into
create a New Record, notice that it says
| | 02:00 | 1153, on my new record that I have
created, so it's got a unique value.
| | 02:05 | When I go back into manage my database,
the next value is now indicated as
| | 02:10 | 1154. So you see that FileMaker has
this internal counter that will make sure
| | 02:15 | that it doesn't dole out the same number twice.
| | 02:18 | Now there is somewhat of an exception
to that and that involves the difference
| | 02:22 | between creating and committing. Now
the definition here is when you create a
| | 02:26 | record, it just simply means I have
hit New Record and the record is created
| | 02:30 | inside my table, and the committing of
a record is actually saving that record.
| | 02:35 | So in versions of FileMaker prior to 7.0,
keep in mind that anytime you created
| | 02:40 | a record, hit New Record or indicated
through a script or some other action
| | 02:45 | that you were going to create a record.
| | 02:46 | Once that record is created, it's
automatically saved within the database
| | 02:50 | table. Now in more of the current
versions, there are some advantages to this.
| | 02:54 | One of them is here; you'll at least
see it demonstrated here in a second. It
| | 02:58 | won't save the record until it's committed
and we will take a look at what that means.
| | 03:03 | We back out of this again and we again
say New Record. Notice that I have got
| | 03:07 | another record, where at 46 records
instead of 45 a moment ago, but there is no
| | 03:12 | id field here but the moment that I
click into an area, and I just clicked my
| | 03:17 | cursor into the space and you notice
that everything got activated for a
| | 03:20 | moment. Then it designs the serial
number, and I have committed the record
| | 03:25 | which means now I have officially saved
it, and what advantage that gives us is
| | 03:30 | you will notice if we go in and we see
what the next record value is, is 1155,
| | 03:35 | I will create a New Record and I
haven't yet committed the record. Even though
| | 03:42 | there are now 47 records, the internal
counter should be on 1155; but instead
| | 03:47 | I'm going to delete the record, before
I can commit it and let's see, back in
| | 03:53 | id, you will notice that it's still
waiting to dole out that number 1155. But
| | 03:59 | if we do that on creation, let me say,
New Record, it gives me 1155. I haven't
| | 04:05 | yet committed it. I delete the record.
And in this case, you will notice that
| | 04:13 | it still advances it to 1156, because
in fact, it advanced to the next value on
| | 04:18 | creation instead of on commit.
| | 04:21 | So that's an important thing, again
we will talk more about it when we talk
| | 04:23 | about the values of Foreign key fields
and such. And this is commonly a text
| | 04:29 | field, and one of the reasons is because,
it's also possible to create a serial
| | 04:33 | number that has a prefix of some kind.
| | 04:34 | So for example, this is inside of our
Adventure table, so maybe we want to say,
| | 04:41 | in order to identify which table this
is coming from or another common practice
| | 04:45 | with some kind of sophisticated
programming just to determine what client of
| | 04:48 | the application, whether it was Web or
FileMaker Server or Server Advance or
| | 04:52 | something like that, to determine where
it was created and then put that value
| | 04:56 | in here. Well, let's just say
we want to append it with an A.
| | 04:58 | So I hit OK. And now you will notice
when I create a new record, it gives me
| | 05:03 | A1156. Now that's really completely up
to you, if for whatever reason you want
| | 05:08 | to use this value, it will have to be
a numerical field and in that case you
| | 05:12 | won't be able to do a prefix, but a
lot of developers prefer to introduce a
| | 05:16 | prefix to better distinguish records
from different tables, but if you are
| | 05:20 | going to do this, you should
define this field as a Text field first.
| | 05:24 | The other thing that you will notice is
FileMaker is really good about managing
| | 05:28 | these. So if we say, our next value,
let's just revert this back is 1157 and
| | 05:36 | we've got 47 records, but let's say we
want to go, import some records into our
| | 05:39 | file, if you look in the Auto-Enter
folder, 04_autoenter in your exercise
| | 05:44 | files, you will see that I have got a
text file in here. I'm going to use this
| | 05:47 | as an import source. And we can do a
little bit of mapping these fields. We
| | 05:54 | will talk more about this in Import,
Export. But this is what I want to show
| | 05:58 | you. This dialog window here, the
Import Options, you always, no matter what
| | 06:02 | you are doing when you are importing,
you have the option to perform auto-enter
| | 06:05 | options while importing.
| | 06:07 | So remember we talked about a
housekeeping field of modification date. That
| | 06:10 | means that it will automatically stamp
into any field that you have set as an
| | 06:15 | auto-enter to show the modification
date. On the import of the record it will
| | 06:19 | assign a date for each one of those.
The same is true for serial numbers and
| | 06:23 | more look-ups in the next couple of
movies, and you will see that these can be
| | 06:25 | updated instead of being imported as if
they were created one at a time during
| | 06:30 | the import which is kind of what's
going on anyways, but let's take a look at
| | 06:33 | what happens.
| | 06:34 | So we have added 16 records, we see
we have got a total of 63, it gives us
| | 06:38 | found set of 16, and it starts with
1157 which was the next number in our
| | 06:43 | increment and notice that it will
automatically update these values, and not
| | 06:49 | only that, but it will go into database.
And now see we are on 1173 instead of
| | 06:56 | 1157, so it updates it automatically,
and that's really important to check that
| | 07:01 | box when -- let's say, you are working
on a FileMaker file and you want to make
| | 07:06 | some changes, you grabbed a version
of the file where let's say it was at
| | 07:09 | number 1000, and then some one goes on
and continues, or let's say, you've got
| | 07:14 | a file that's in production and it
ultimately increases up to the number 1200.
| | 07:18 | Well, the file you are working on
still has 1000. If you don't select that
| | 07:23 | checkbox when you import this in, the
danger is that you are going to assign
| | 07:28 | serial ids on imported values from
1000-1200, and really the client who has
| | 07:36 | been creating new data, that's of
course, which you would be using as your
| | 07:39 | import source, because a lot of times
you work on a FileMaker database and
| | 07:42 | someone will be working on an old copy
and then you will migrate the data over.
| | 07:46 | The problem is you will have 200 or up
to 200 duplicate ids. So it's always,
| | 07:51 | always important when you are
developing a system and you are going to have a
| | 07:56 | lot of importing and you are going to
have the ids automatically incremented
| | 08:00 | which is going to be really any database table.
| | 08:02 | Make sure that you either script or
you have the user's manually check that
| | 08:07 | checkbox for perform auto-entry on these fields.
| | 08:10 | So now let's take a look at auto-
entering value from either the last visited
| | 08:14 | record or auto-entering some data value.
| | Collapse this transcript |
| Auto-entering previous values or data| 00:01 | The next auto-enter option that we are
going to look at is called Auto-Enter a
| | 00:05 | value from last visited record. Now
this option, which is really not used that
| | 00:11 | often, allows for situations where it's
expected that a field will likely have
| | 00:15 | the same value for many
records entered in a sequence.
| | 00:19 | So for example, let's say you are
entering a data into a database application
| | 00:22 | that's used to enter data from voter
polls. So if the raw data itself that's
| | 00:27 | presented to the user is always sorted
by City and State, so, for example, you
| | 00:32 | are going to enter in a thousand
records from Los Angeles, California in a row,
| | 00:36 | and then in the next one, you switch
to Beverly Hills, California and do
| | 00:39 | another thousand of those. It would
save you some keystrokes from having to
| | 00:44 | enter into the City field, let's say,
the name Los Angeles, every time you
| | 00:48 | create a new record, at the name
Beverly Hills every time you create a new record.
| | 00:52 | Of course, when you switch from the
last record for Los Angeles into the new
| | 00:56 | record for Beverly Hills, like with
any other auto-entered value, simply
| | 01:00 | overwrite the Text value. Changes it
to Beverly Hills and now every record
| | 01:04 | created after that will have
Beverly Hills in that field.
| | 01:07 | Now again, it's not that popular, but
just in case this might be applicable to
| | 01:10 | you. It might make a sense for you to
use this in an example like the ones that
| | 01:14 | I mentioned, on the grounds that a user
would typically enter in a dozen or so
| | 01:18 | records at a time, the same in this
example, the City name. So what you would
| | 01:22 | do there is just click on
Value from last visited record.
| | 01:25 | Now if we take a look at the next option,
this one is similar but it's going to
| | 01:30 | be something where the values don't
change in datasets. This option is to fill
| | 01:36 | in a field with a default piece of data,
when a record is created. So a really
| | 01:40 | good example here is, let's say you
have a customer database and you have most
| | 01:45 | of your customers are in
the State of California.
| | 01:47 | Well, it might not always be the case
but it's most often the case, you can
| | 01:51 | save the user some keystrokes by
selecting Auto-Enter data into this field so
| | 01:56 | that means each time a record is created,
it will automatically put CA in that
| | 02:00 | field. And of course, since it is an
auto-enter value, it can't be overwritten,
| | 02:04 | let's say one or two times a year, you
have a customer that's outside of the
| | 02:07 | State of California. Then in those one
or two times, you would just overwrite
| | 02:11 | the default value of CA and type in
whatever the appropriate State would be.
| | 02:16 | So another idea would be, you could
have a Status field let's say, that would
| | 02:20 | need to be automatically marked Pending
until let's say a Loan Officer approve
| | 02:24 | them. And in this case you could enter
in the value of Pending into this Data
| | 02:28 | box here, and each new record would
have a data inserted into the Status field
| | 02:32 | on creation, and since it's a Status
field, and it is an Auto-Enter text,
| | 02:34 | instead of a calculation let's say, you
can overwrite that or have some script
| | 02:40 | go and modify that value from Pending
to whatever the next Status value might be.
| | 02:46 | Now let's go take a look at one of the
more powerful Auto-Enter options to be
| | 02:49 | auto-entered by calculated value.
| | Collapse this transcript |
| Auto-entering calculated values | 00:00 | FileMaker Pro also has the ability to
auto-enter a value that's determined by a
| | 00:05 | calculation. Now we are going to talk a
little bit more about calculations, but
| | 00:09 | I will just give you a brief overview here.
| | 00:12 | If you open up in the autoenter folder
inside your exercise files and choose
| | 00:18 | Lucky_You_04_02, go into File menu,
Manage Database, let's go into the booking
| | 00:26 | table, you will notice that we have
an example here in the Amount Due field
| | 00:31 | that if we click on Options. Or by
the way you can get to Options by
| | 00:36 | double-clicking on the field. You
will see that the only one that we have
| | 00:39 | checked is calculated value. So in
order to see what the calculated value is we
| | 00:43 | hit Specify, but what's interesting
here is, auto-enter a Value from last
| | 00:47 | visited record, if you remember when we
talked about this, its finding what the
| | 00:51 | value was in the previous record
and entering it into this one. So it's
| | 00:54 | communicating with the different record,
and in the case of calculation, we've
| | 00:59 | got this entire dialog here and we will
talk more about the dialog when we get
| | 01:02 | into working with calculations.
| | 01:04 | We have got this entire dialog that
allows us to take fields from all related
| | 01:08 | tables, apply functions and operators
and all sorts of stuff but before we get
| | 01:13 | into that section, the example that I
will use is that, in the field amount
| | 01:17 | due, we will show the value of amount
billed minus amount paid. So we will
| | 01:23 | subtract whatever the value is inside
amount paid from the value in amount
| | 01:28 | billed. And that will give us
whatever value shows up inside amount due.
| | 01:33 | Let's actually look at how that works.
If we go under the booking detail layout
| | 01:41 | and we will create a new record, by the
way, you see that our booking id, which
| | 01:46 | is clearly an auto-enter serial value
on the creation of a record, has already
| | 01:50 | populated, so we know we have a new
record. All our fields are active and my
| | 01:54 | cursor is blinking.
| | 01:56 | So in amount billed, I'm going to put,
let's say $200, so you see right now,
| | 02:03 | 200 - 0 = 200. So you see on the
creation of the record, it's automatically
| | 02:08 | putting in this value, actually on the
commit of the record. But I will put 100
| | 02:12 | in here and it shows that
the total amount due is $100.
| | 02:15 | Now we didn't tell it to put the
value 100, we just told it to do some math
| | 02:20 | between a couple of different fields
and it could be a ton of different fields,
| | 02:23 | and once you get more familiar with
the calculation dialog, you will see all
| | 02:26 | the different things you can do by
putting a calculated value in an auto-enter.
| | 02:30 | But why wouldn't we just have amount
due be a calculation? That simply says
| | 02:34 | amount billed minus amount paid. Well,
it's because we might want the ability
| | 02:39 | to go in and manually change this.
Remember that auto-enter values that are
| | 02:45 | entered into a newly created record
are snap-shot values, which means that at
| | 02:49 | the moment that record is created,
here's what the value is, it can be
| | 02:52 | overwritten at any time. So you see
here, even though the rule is that it
| | 02:56 | should be the amount billed minus the
amount paid gives us amount due. Well,
| | 03:00 | there could be some business rules
involved allowing you to manually overwrite
| | 03:04 | this value, like for instance, a
light charge or something like that.
| | 03:07 | A better example of the difference
when you would use auto-enter calculated
| | 03:11 | value versus just a calculated field
that would have the same calculation.
| | 03:15 | It is for example; let's say you have
a database where you put in how much a
| | 03:20 | sale. Let's say you are selling an item,
this product was sold on this date for
| | 03:24 | X number of dollars.
| | 03:26 | Well, if you put the total sale price =
product unit cost? quantity and that's
| | 03:33 | a calculation field. What happens if
the product unit cost value changes in the
| | 03:38 | future? Well, if that's the case, then
it's going to automatically update every
| | 03:42 | single one of your records
retroactively, and you don't want that to happen.
| | 03:46 | So in the case of having a sale, let's
say, reflect the value for unit price?
| | 03:54 | quantity at the time of sale, a great
idea would be to use this auto-enter
| | 04:00 | calculated value that we are talking about here.
| | 04:03 | Now there is another interesting thing,
if you combine this with the ability to
| | 04:07 | replace an existing field value down
here, it turns into a very powerful feature.
| | 04:12 | We are going to talk
about that in the next movie.
| | Collapse this transcript |
| Field filtering| 00:01 | Previously we discussed the auto-enter
by calculated value. Now this combined
| | 00:06 | with the ability you see here to either
replace an existing field value or not
| | 00:10 | replace an existing field value, in
the Auto-entry Option dialog, allows for
| | 00:15 | some very powerful effects, such as a
feature that's called Filtering. Let me
| | 00:20 | show you an example of Filtering, if we
close out of the 04_02 file, and if we
| | 00:27 | go into autoenter, and choose Contact_
02_10, you will see that we have a file
| | 00:35 | here and notice that we have got a
Phone Number field. Now watch as I enter in
| | 00:42 | some values, and now when I commit the
record and of course that means clicking
| | 00:50 | outside of a field, you will notice
that the just simple numeric values that I
| | 00:55 | entered in were automatically changed
into an uniform data format and this is
| | 01:01 | true if I create a new record or import
records into the database, and this is
| | 01:06 | actually quite commonly phone numbers.
Because some people might put area code
| | 01:10 | in parenthesis, they might put dashes
in between, they might lump them all
| | 01:13 | together, that type of thing.
| | 01:15 | Well let me show you how this works.
In the past you would create a Phone
| | 01:20 | Number field and then you create
another calculated field behind it that would
| | 01:24 | then transform all the values and
display them, but now you can do this all in
| | 01:28 | just on field. Let's take a look at
how this works. We will go into Manage,
| | 01:33 | Database, and look under the Phone
Number field and you will see that what we
| | 01:38 | have is auto-enter calculated value and if we
look in here, now don't worry too much about this.
| | 01:44 | After we cover the calculation section
and possibly in the Beyond the Basics
| | 01:48 | title, this will make a lot more sense
to you, but basically what's going on
| | 01:51 | here is it's pulling in the left three
values from the Phone Number field that
| | 01:56 | I type in. You will notice here we
have got some parenthesis, it's putting
| | 02:00 | parenthesis in there and then a little
bit of a space, and then it's taking the
| | 02:05 | next three values starting at
position number 4 and then putting a dash in
| | 02:10 | there and then putting the rest of the
values here at the end. So what happens
| | 02:14 | here is you will notice, if I check
Do not replace existing value (if any),
| | 02:19 | when that is checked what that really
means is do not apply this calculation to
| | 02:24 | the user entered value. If I un-
check that field, that means apply the
| | 02:30 | calculation to any user entered value.
| | 02:32 | Let's look at how this behaves a
little bit differently, if I were to go in
| | 02:36 | now, and commit, it stays exactly the
same. But if I go into the phone number,
| | 02:44 | un-check, which this really means is
apply this calculation to whatever values
| | 02:50 | I enter inside the field. And again
it's a snapshot, so it's not a calculation
| | 02:55 | field. So it doesn't retroactively go
and update this. It's on the entry of the
| | 02:59 | data, you will notice that this can
also be used for Social Security Number, if
| | 03:07 | I go in here and I say 123456789, I
click outside of the field, and it
| | 03:14 | automatically formats that data. I
could do 12345678 and it will still apply
| | 03:21 | everything necessary to format this properly.
| | 03:24 | So you can really save yourself a
lot of data-entry errors by using the
| | 03:28 | combination of Auto-enter by calculated
value combined with not checking the Do
| | 03:32 | not replace existing values if any.
And it can just put your calculation
| | 03:37 | whatever it may be and feel free to
use the calculation you see here. This
| | 03:41 | PhonuNumber calc is quite popular and
the formatting of the Social Security
| | 03:45 | Number value is also quite popular.
You're welcome to use any of this code and
| | 03:50 | just change the name of the field in
here. If you want to use that to learn a
| | 03:54 | little bit more about this. And keep
in mind that calculations are explored
| | 03:57 | fully in the upcoming
sections of this training title.
| | Collapse this transcript |
| Looking up values from other fields| 00:00 | The last auto-entry option that
we are going to work with is called
| | 00:03 | auto-entered by a Looked-up value. I
have got a file set up here if you want to
| | 00:07 | play along here, we go into Auto-Enter
and open up the 04, Luck_You_Tours_04_03
| | 00:14 | file and we will look into the booking
table, similar to what we worked with
| | 00:21 | before. And you will see that the
amount billed has something under options and
| | 00:25 | comments that says Looked-up and
what that means is that when a record is
| | 00:29 | created, the value that it's going to
show up in the field unlike a serial
| | 00:32 | number or the data from the last
record or data in this field or some kind of
| | 00:36 | calculated value, it's going to look
up a value from a related table. Now we
| | 00:41 | are going to cover relating tables and
how these things get related through ids
| | 00:45 | in the relationship section, but the
idea here is that once you have we are in
| | 00:50 | the booking table, we have got here
are all the different relationships that
| | 00:53 | are set up from the booking table and
booking happens to have a relationship
| | 00:56 | with the adventure table.
| | 00:58 | So what I'm saying here by checking on
the Auto-Enter by Looked-up values, I'm
| | 01:02 | saying when a new record is created,
look up the value, place the value of
| | 01:07 | price from the related adventure
record into this field, so without knowing that
| | 01:13 | much right now, because you haven't
been exposed to the relationship part, so
| | 01:16 | let's take a look at this, we will back
out of those calculations and let's go
| | 01:20 | into the Trip Detail and so what we are
saying is we are booking a trip, so in
| | 01:25 | this case we have got the Irish
Adventure and the current price for the Irish
| | 01:29 | Adventure is $1,235. So if we go back
into the booking detail, let's say when a
| | 01:35 | record is created, we want the amount
billed to be whatever the trip value is.
| | 01:41 | Now in the relationship section, we
are going to talk about different methods
| | 01:44 | that we can populate this trip id and
how we can create the relationships, but
| | 01:48 | for now, know that if the id and
that's the id field here, the Auto-Enter
| | 01:55 | serial value, the unique primary key
value, if we copy that key, and we are
| | 02:00 | assuming here that there is a
relationship between trips and booking, we go
| | 02:04 | back into booking detail, if I -- on
the record what at the moment that the
| | 02:09 | record is created, and I'm pasting in
this value, 1001 which was the Irish
| | 02:14 | Adventure, but if at the moment that
this record is created, the amount billed
| | 02:19 | will pull in a related value based on
whatever trip id is here, we will see
| | 02:23 | that simulated here by me, now going in
actually, I will create a New Record, I
| | 02:28 | will give it the trip Id and we will
talk again about some other methods that
| | 02:33 | this could be done, rather than
pasting this in. But by committing the record
| | 02:37 | you see that it automatically pulls in
$1,235 from the booking detail through a Look up.
| | 02:46 | And if I say the amount paid here, we
know that, that automatically adjusts,
| | 02:51 | but the idea here is that, upon
the creation of a record, based on a
| | 02:54 | relationship that you have from the
table where the record is being created in
| | 02:58 | one of the many tables it could be
related to, it can pull any value in from
| | 03:02 | any one of those fields and taking a
look at that again, if we go back into the
| | 03:09 | Manage, Database, you just click on
this value and you say Starting and it
| | 03:17 | knows what table you are in.
| | 03:18 | So starting with booking, let's look
at all the different ones I have got,
| | 03:22 | adventure, customer, trip and so on.
I can pull in the value, from the
| | 03:29 | adventure table because and we will
talk about this in the relationship
| | 03:32 | section, a trip is related to an
adventure and then the booking happens on an
| | 03:36 | actual trip but I can pull in the
price from the adventure table anytime I'm
| | 03:42 | creating a record that's related. So
again, we will talk more about this in the
| | 03:46 | section on relationships. But what
this is doing is the auto-entry option is
| | 03:51 | often referred to as a Look up, is
instructing FileMaker to copy the data from
| | 03:56 | a record in a related table, in this
case the related table of adventure. It
| | 04:00 | will pull that value in or copy that
value in from a record in a related table
| | 04:04 | when a trigger field is modified and
that trigger field is the trip Id, as we
| | 04:11 | see here. If we go into Trip Detail
and find let's see -- that's oh, that's
| | 04:18 | another Irish Adventure,
let's say Grizzly Adventure.
| | 04:21 | Now we go into Booking Detail, we
create a New Record and I have got my 1004
| | 04:28 | value in here. We notice that the value
1481 shows up and that's how much this
| | 04:33 | cost. So you see it could be helpful
once your relationships are set up to have
| | 04:38 | some fields populated with Looked-
up values when they are created.
| | 04:40 | Now you might ask yourself, why not
just have this be a calculation that is,
| | 04:45 | amount billed is 1481? Well, imagine
in this scenario that after you have
| | 04:49 | booked a bunch of tours at a certain
price range, you decide that you are going
| | 04:54 | to up this to $1,500. Well, you don't
want all the past bookings from years
| | 04:59 | gone by to all update with the new
price. It will really kind of mess up your
| | 05:03 | books. So that's where an Auto-Enter
Looked-up value is really helpful, because
| | 05:06 | not only does it look up that value,
but if need be, I can manually override
| | 05:10 | this unlike in a calculation field, I
cannot do that. An invoicing system is
| | 05:15 | another example too where you
typically look up a product price information
| | 05:18 | from the product table. This allows
the invoice to record the price as of the
| | 05:22 | invoice creation date and if the
product's price changes in the future, you
| | 05:26 | won't want that price value to change
in all the invoices, it could be a real
| | 05:29 | problem. So that concludes all the
different options on auto-entry Options when
| | 05:34 | a record is created or
updated, as we saw in some cases.
| | 05:37 | Now we are going to look at some of
the other Field Options, Validation and Storage Options.
| | Collapse this transcript |
|
|
5. Validation and Storage Field OptionsField validation and custom messages| 00:00 | Another set of field options are
the validation options and what field
| | 00:05 | validation allows you to do is when you
have applied the validation options to
| | 00:08 | it, test that FileMaker field against
some criteria that you would set up and
| | 00:12 | then warn the user if the field value
that they entered doesn't pass muster for
| | 00:16 | some reason. For example, you probably
see this all the time when you go online
| | 00:19 | and you are filling out certain forms
and if you miss a field, it comes back
| | 00:22 | and says, hey, you have missed the last
name field and it does require a value,
| | 00:26 | so please enter in a value.
| | 00:27 | That's field Validation and that's a
warning showing you, the user that the
| | 00:30 | data or the data you didn't enter
doesn't meet the criteria set up for that
| | 00:34 | field and that field Validation.
Let's look at some specific FileMaker
| | 00:38 | examples. If we open up the file, in
the exercise files, 05_validation and look
| | 00:44 | at 05_02 Lucky_You_Tours_05_02, we
have got a similar example set up, if we
| | 00:52 | look in the customer. You will see
the first name, and again we can double
| | 00:56 | click on the field or hit Options and
it will present our Options dialogs and
| | 01:00 | we click on the Validation Tab. You
see here that we have got two things
| | 01:03 | checked, we have got -- it requires
that the field is not empty and allows user
| | 01:07 | to override during data entry.
| | 01:09 | While we are on this dialog, let's also
look at some of the other options that
| | 01:12 | we have got for field Validation. We
have got Strict data type, if you check on
| | 01:16 | this box, you can make sure that any
value entered into this field is numeric
| | 01:20 | or 4-Digit Year Date or a specific time
of the day, pretty obvious there. Or a
| | 01:25 | Member of a value list and we will talk
about value list; we have got an entire
| | 01:28 | chapter set up for value list. But,
for example, if you have got a value list
| | 01:32 | set up inside your database that has
two values of Yes/No, then you can check
| | 01:36 | here and say check to make sure that
any value that the user enters in is
| | 01:40 | either yes or no. If you choose value
list and Yes No in that case. We will
| | 01:45 | revisit this when we talk about
value list. What about a range?
| | 01:48 | Let's say you have got a field that's a
price and you are the sales manager and
| | 01:52 | you want to make sure that the price
for let's say a certain product never goes
| | 01:56 | below a certain value and never goes
above a certain value. You can make sure
| | 01:59 | to enforce that inside your database by
applying that business rule here in the
| | 02:03 | form of a field Validation with the
lowest costs going here and the highest
| | 02:07 | costs going in this field. You can
also validate by a calculation, which we
| | 02:11 | will look at in the next movie. Or you
might need to make sure that the maximum
| | 02:14 | number of characters in this field is X
number of characters. This is useful if
| | 02:19 | you are creating data in FileMaker
that's going to be imported into another
| | 02:22 | database system.
| | 02:23 | FileMaker has no limitations for a
maximum number of characters, as a matter of
| | 02:27 | fact that they can have about a half of
a million in there if need be, but some
| | 02:31 | other database applications do restrict
the total number of characters. But in
| | 02:35 | this case what we are doing is making
sure that the first name field does have
| | 02:38 | a value or as indicated here, to make
sure that the first name field is not
| | 02:42 | empty and if in fact, it is empty, we
have a choice here of either to allow the
| | 02:47 | user to override during
data entry or to not allow.
| | 02:50 | And what that means is allowing a user
to override data entry is really sort of
| | 02:53 | a soft enforcement; it means you will
warn them, but you will still allow them
| | 02:57 | to violate the validation rule. Take
a look at an example of what that will
| | 03:01 | look like. So let's go in to the
Customer Detail and create a New Record and
| | 03:09 | I'm going to type in just the last
name and I'm going to commit and you see
| | 03:14 | here, a message pops up from FileMaker
that says First, which is the first name
| | 03:18 | field is defined to require a value. Do
you want to allow this field to remain
| | 03:22 | empty? And since this is a sort of a
soft or I'm allowing the user to override
| | 03:27 | it, I can just say Yes. Now my
enforcement has just simply become a suggestion,
| | 03:31 | rather than a warning or an enforcement
of the validation. But if I want to be,
| | 03:35 | have it be a little more strict,
what I will do is go into File, Manage,
| | 03:40 | Database, go into First name again and
at this time, I'm going to say Not empty
| | 03:45 | but I'm going to un-check the Allow
user to override data entry and let's see
| | 03:49 | what happens there.
| | 03:50 | Let's delete this record first, and we
are going to create a New Record and I
| | 03:56 | will type in last name and commit. And
now it says, first is defined to require
| | 04:02 | a value and you must enter a value.
Regardless of whether I want to revert or
| | 04:06 | go back, I simply cannot create this
record unless I enter in the value for
| | 04:14 | first name and then commit and you see
now that I get no user entry error. So
| | 04:22 | that is managed whether or not you are
doing a suggestion or whether or not you
| | 04:26 | are doing any hard enforcement is
managed through allow user to override during
| | 04:32 | data entry. So it depends how you want
to, if this is just a suggestion or if
| | 04:36 | you want to be a little bit
more strict with that enforcement.
| | 04:39 | Let's look at another example, if we go
into the adventure table and we look at
| | 04:45 | the field called days. We will say
Strict data type, Numeric Only. And if we
| | 04:52 | look at the Adventure Detail, here is
an example of the days, let me say A16
| | 05:01 | and now I hit Commit. And it says
this field is defined to contain numeric
| | 05:04 | values only. Allow this non-numeric
value? Well, you see here I can revert the
| | 05:08 | field back to the original or I can say
Yes and that's because, if you remember
| | 05:14 | from our last exercise, that we are
allowing the user to override the data
| | 05:19 | entry. So in this case it's just a
suggestion for a strict enforcement in
| | 05:24 | numeric type.
| | 05:25 | Let's look at however at enforcing
by a calculation. Let's go down to the
| | 05:30 | night's field. And you will see here
that we are allowing user to override
| | 05:34 | during data entry, but we are
validating by a calculation. Now we will get into
| | 05:39 | the calculation descriptions and there
is a whole chapter on calculations. But
| | 05:44 | really what we are trying to say here
is we are using the calculation dialog to
| | 05:47 | determine whether or not this is met
and the result must be a Boolean, which
| | 05:52 | means that it's either true or false.
So what this means here is that if days
| | 05:57 | are greater than nights, then it's true.
Otherwise it would be false and then
| | 06:02 | therefore fail. So let's take a look
at how that works. So right now, nights
| | 06:07 | are less than days so it's not failing.
But if I go in here and I say 17, it
| | 06:13 | says nights are defined to contain
only specific values. Allow this value?
| | 06:16 | Well, we can revert back to their
previous value, but notice one thing, this
| | 06:25 | message that we get, nights is defined
to contain only specific values. A lot
| | 06:28 | of users aren't going to know, what that means.
| | 06:31 | So what a good idea to do here would be,
we have done a demonstration here of
| | 06:36 | the calculation for nights, but first
we will say, don't allow override or
| | 06:43 | allow override. We know that we have
that option and then we can pick what we
| | 06:46 | are actually requiring, or what our
validation rule is going to be. But the
| | 06:49 | other thing I want to introduce to
you is down here in the bottom is we can
| | 06:52 | make something a little but more
plain English. For example, we could say,
| | 06:57 | Sorry! Nights must be less than days.
Please enter again. So now what happens
| | 07:08 | when we do that and since we are
saying please enter again, we will turn off
| | 07:13 | the override. So now let's say that we
go in and we say 17, and it says, Sorry!
| | 07:21 | Nights must be less than days. Please
enter again. So I will go in and I will
| | 07:24 | say 15 was our original value. So now
you see we don't have any enforcement. So
| | 07:29 | this message might be more
informative to users. You get the ability and it
| | 07:33 | allows you to revert back because what
its dong here is it identified that the
| | 07:37 | original record before I changed it,
actually did meet the criteria.
| | 07:41 | So it will allow me to revert, so do I
want to revert all the changes to this
| | 07:44 | records since it was least entered?
Absolutely, it brings me back to where I
| | 07:47 | started. So a couple of different
options on field Validation, very helpful in
| | 07:51 | enforcing data entry and these
validation checks by the way are not mutually
| | 07:56 | exclusive except for a few obvious
cases, if you look, for example, in -
| | 08:05 | obviously, we can have multiple values
in here, or multiple options here and we
| | 08:09 | can display custom values, but Not
empty and Unique can be at the same time.
| | 08:14 | But Unique and Existing are
obviously one of the options there that are
| | 08:18 | mutually exclusive. But you can
experiment with a lot of these things and come
| | 08:23 | up with really the right
rule enforcement on data entry.
| | 08:27 | Now in the next section we are going to
look at what this means. Validate data
| | 08:31 | in 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:00 | In the previous example you may have
noticed that there is a setting called
| | 00:03 | Always versus data entry on the
validation. If you open up a file on the
| | 00:07 | 05_validation folder called Lucky_You_
Tours_05_02, Manage, Database and we go
| | 00:16 | back into nights. Remember that we had
set up the ability to show this message
| | 00:24 | when a user has violated what we set
up here to be a relationship between the
| | 00:29 | days and nights and if this
calculation results in a Boolean false, we are
| | 00:33 | going to show user an error message.
And we were allowing them to override,
| | 00:38 | during data entry.
| | 00:39 | Let's focus a little bit here on the
top of the screen here, where we usually,
| | 00:42 | in the previous examples, we have
usually been selecting Allow user to override
| | 00:45 | during data entry or not, but up
here it says Validate data in this field
| | 00:50 | either Always or Only during data entry.
Not that might seem a bit cryptic at
| | 00:54 | first, but what it's talking about
here is granted you might warn a user and
| | 00:59 | give a user an opportunity to change
values, but it's not always a user who is
| | 01:02 | entering data during data entry. There
are other ways that data can be entered
| | 01:06 | into the system.
| | 01:07 | So, for example, if you enable Always
like we have got here, then FileMaker Pro
| | 01:11 | is going to perform this Validation
test anytime a field's value is changing.
| | 01:15 | Now what you should know is that this
includes all the different times that a
| | 01:19 | value can change. Not just when a user
is doing it during data modification,
| | 01:23 | but also data can be changed when you
are importing records into a file. If you
| | 01:26 | have got a script that goes and
changes data through a loop or something like
| | 01:29 | that or through such actions as like an
import or replacing records or re-Look
| | 01:34 | up. All these different things
can change the value of a field.
| | 01:36 | So if I say only during data entry,
that means that only when a user is
| | 01:39 | actually modifying the field, will
that show a warning or enforce the
| | 01:43 | validation. And if the user violates,
that will show a warning. But if I say
| | 01:46 | Always, in the case of for example an
import which I will show you in just a
| | 01:51 | moment, any records that violate the
validation rule that's set up in the case
| | 01:57 | of an import will be skipped or in the
case of a looping script will be skipped
| | 02:02 | as well. So let's take a look at the
example of importing. So if I import in,
| | 02:07 | if we go under File, Import, and in
the 05_validation choose Adventures.txt,
| | 02:14 | and we map up all our fields, from the
text file, and hit import, see something
| | 02:21 | interesting in the Import Summary, it
says Total records added/updated were 18,
| | 02:26 | but the records skipped due to error were 5.
| | 02:28 | So we see here that only 13 records
were added and there were obviously 18
| | 02:32 | inside of our import source, and the
reason that those other 5 were completely
| | 02:36 | skipped is because it didn't meet the
criteria where the nights had to be less
| | 02:41 | than day. So clearly in those records,
we completely skipped them in those
| | 02:44 | cases. Now this isn't a bad thing
to have because there might be some
| | 02:48 | validation that you absolutely just
do not want to be added inside your
| | 02:52 | database, so that's where the
Always would come into play.
| | 02:56 | Now if we delete these records that we
just imported and try this Import again,
| | 03:00 | but only after we have modified this to
say, Only during a data entry, so that
| | 03:06 | means it scripts and imports and all
the other things that could affect the
| | 03:10 | change in this data, the validation
only applies when a user is importing this
| | 03:14 | data. So if we look and we see, we do
Import Records from File, we again choose
| | 03:23 | the Adventures.txt, do Import and now
you see Total records added 18, so we
| | 03:32 | have got 18 records in here, but some
of the values are just weird values in
| | 03:36 | here, and therefore violate, we have
got 19 > 12 so if we were doing a hard
| | 03:42 | enforcement or an always enforcement,
we would have omitted that from our
| | 03:45 | Import, and again, remember that's
true for looping scripts or also -- there
| | 03:51 | are two different ways that you can
update the value in a field without
| | 03:54 | actually having the user do that. So
depending on the type of validation
| | 03:57 | records that fail validation will
either be omitted from the import which we
| | 04:01 | just saw here or the record will be
imported, but the invalid data will not be
| | 04:04 | entered into the field and this is
not the case however if the Always
| | 04:09 | validation is turned off. Which we saw,
in that case, FileMaker will import the
| | 04:12 | records, even if they contain
data with validation errors.
| | 04:15 | So really, your call on how hard do
you want to enforce that. It's all about
| | 04:19 | what the business rules are for your
particular application and what level of
| | 04:22 | enforcement you want to apply on those.
So in addition to validation options,
| | 04:26 | we have also got storage options, so
in the next movie we are going to take a
| | 04:29 | look at some of the storage options
that are available when defining a field in FileMaker.
| | Collapse this transcript |
| Storage options for global fields| 00:00 | The third series of field options are
the Storage options and those can be
| | 00:05 | accessed, if you go into any field and
double click on the field or select the
| | 00:13 | Options button. You will see that it's
Auto-Enter, Validation, which we both
| | 00:18 | covered and now Storage. Storage
really involves either whether it's globally
| | 00:24 | stored or whether it's not globally stored.
| | 00:27 | Now by default, a field is not globally
stored and what that actually means is
| | 00:31 | that the field value is specific to the
record. So if we look at, for example,
| | 00:38 | the Title field, each one of the
titles can be different and independent of
| | 00:44 | each other.
| | 00:45 | Now that's because that is not a
globally stored field, but if I were to create
| | 00:52 | a global field-- now, if you have
worked with FileMaker before FileMaker 7, you
| | 00:57 | will remember that one of the field
types was a global field. The idea there
| | 01:01 | was that you would say I'm defining a
field and whatever value I put in this
| | 01:04 | field in one record is going to be
the same value in all the records in the database.
| | 01:08 | This is kind of a tricky concept,
because you think why would I need that?
| | 01:11 | Well, certainly not for storing
information, because there is only one value in
| | 01:14 | there. But it's really used for a
couple of different things and I will show
| | 01:16 | you a couple of examples here.
| | 01:18 | It's no longer a field type, but
instead what you do is you create a field. We
| | 01:23 | will create a global field and hit
Options and go into Storage and we will say,
| | 01:29 | well, first let's look at what would
happen if we put global field on this
| | 01:33 | layout and I put a value into it. I
have got value 4 there, value 5 and value
| | 01:39 | 6. So we see that all these
values are independent from each other.
| | 01:43 | Now if I go in and change global,
double click on it and get to Storage and I
| | 01:52 | change it to global storage. It says, "
Turning global storage on or off will
| | 01:55 | cause existing data in this field to be
lost." So the 4, 5 and 6 that I entered
| | 01:58 | are going to be removed. 4 was
specific to one record, 5 was specific to
| | 02:04 | another record and 6 was specific to
yet another. So now when I hit OK, see all
| | 02:11 | those values disappeared, but watch
when I put 4 into the global, every record
| | 02:16 | in the database has that value. So you
might think, "Oh! What's the sense of that"?
| | 02:19 | Well, the best way to think of this
is that a field with Global Storage is
| | 02:24 | going to be a field that's on the
table level; whereas, all the other fields
| | 02:29 | where you are entering data that are
independent from all the other records,
| | 02:32 | those are record level fields. That's
really most likely what you're going to
| | 02:36 | be working with when you're creating
a database and managing data. But the
| | 02:39 | global fields, what kind of uses could
we have or something that's at the table level?
| | 02:43 | Well, certainly we can store
preferences, like we want to set into a global
| | 02:47 | field via script, the name of the
last user who access this record, we
| | 02:52 | certainly can't go and populate
every single record in there, but we can
| | 02:55 | populate the table one time only.
Another really common way to do this is,
| | 03:02 | let's say, we will change this and we
have got a container with Global Storage.
| | 03:07 | This is actually pretty popular
technique but let's place that field. First I
| | 03:13 | selected and then copied our logo,
just for the sake of this example, and I'm
| | 03:17 | going to place our global field on this
layout and I'm going into Browse mode.
| | 03:26 | First I will save that change. We see
that it has got numbers in there, but
| | 03:31 | instead what I'm going to do, I'm
going to right click in there or Ctrl-click
| | 03:35 | in and I'm going to paste that logo.
| | 03:37 | Now the reason that I'm doing that is
just to demonstrate and actually let's go
| | 03:40 | into Booking Detail, let's say, and I
will go into Layout mode. View > Layout
| | 03:47 | mode, and I will drop another one of
those global fields on here. What I'm
| | 03:53 | trying to demonstrate here is that
wherever I put this global field that's
| | 03:56 | going to contain that same value and
in the case of an icon or an image, this
| | 04:01 | can actually be useful.
| | 04:02 | Because if you develop detailed
applications that involves several different
| | 04:07 | layouts, like sometimes hundreds of
different layouts, and on every layout you
| | 04:10 | have to go in and paste one of these
logos. Well, what if God forbid the client
| | 04:15 | or your boss comes to you and says,
I'm going to -- and actually let's use an
| | 04:20 | image that we have if we go into
fields okay, 03_fields, click on logo, hit
| | 04:29 | Open, and we will pull in the Lynda.com logo.
| | 04:33 | Now instead of having to go to every
single one, let's say there are a hundred
| | 04:36 | different layouts that had the old
logo on there. If I had used the Container
| | 04:39 | field in the first place, you will see
every layout that had the logo on it,
| | 04:44 | now reflects the logo that was
entered into the Global field.
| | 04:47 | So that's one of the uses that's
actually quite popular. The other one which is
| | 04:51 | actually made a bit less popular
with the advent of variables and script
| | 04:56 | variables is that in scripts if you
wanted to take a piece of data or piece of
| | 05:00 | information you could set it into a
global field and then go do something else
| | 05:04 | with the script and then come
back and pull that value out.
| | 05:07 | So it's like sort of a temporary
holding spot where you could store it or stash
| | 05:10 | it in the table somewhere, without
having to affect all the different records
| | 05:13 | that you are working with. Well,
really the preferred method would be to work
| | 05:16 | with script variables, which we
won't be discussing in this title, but
| | 05:19 | certainly within the FileMaker Help
documentation you could find out more
| | 05:22 | information about it, or in the Be
on the Basics title for FileMaker 9.
| | 05:26 | Actually, another example that's
quite useful is in Mark in Records.
| | 05:29 | So if we went back into this Trip
list and let's say we wanted a user to be
| | 05:34 | able to go in and look through all
the different trips and check a little X
| | 05:38 | next to each one, we could create a
global field. When we put this file up on
| | 05:42 | server, one of the inserting
characteristics of a global field on server is, if
| | 05:46 | I put a global field on this layout and
I put the number 4 in every record and
| | 05:51 | I put it up on server, each time that
a user logs in, a session is created
| | 05:55 | between the FileMaker Pro application
and the FileMaker Server application.
| | 06:00 | A unique session is created for that
user and within that session they can
| | 06:04 | change that value from 4 to let's say 9
or from no value to X, if they want to
| | 06:09 | mark a bunch of records. Meanwhile,
another user could be logging into that
| | 06:13 | very same file and their session would
have been created through their version
| | 06:16 | of FileMaker and their
version of FileMaker Server.
| | 06:19 | Neither of those values would
conflict with each other, but the second that
| | 06:22 | they close out the global values is
going to revert back to the value that it
| | 06:27 | had when it was originally uploaded to
server. So granted script variables can
| | 06:31 | be used for storing temporary values
inside scripts or passing our values from
| | 06:35 | one script to another.
| | 06:36 | But if you want to use the technique
of storing your logos and multiple areas
| | 06:41 | and allowing one area to update them
or if you want to be able to add a field
| | 06:45 | to records to mark records and
something that's going to be completely
| | 06:48 | session-independent when it's up on a
network in FileMaker Server, you will
| | 06:52 | definitely want to take a look at
creating a field for Global Storage.
| | 06:55 | So keep in mind that the important
behavior of globally stored fields to set in
| | 06:58 | that multi-user environment I
described with that file is being hosted on
| | 07:02 | server. The global values are going
to be specific to each user session and
| | 07:05 | also when a FileMaker Pro or even an
instant web publishing client connects to
| | 07:09 | the hosted database. They'll inherit
those values that were in use when the
| | 07:12 | file was last physically opened on a
local computer, not open on server but on
| | 07:16 | a local computer. Then, of course, any
modifications, initial value made by the
| | 07:20 | client, the client being FileMaker Pro,
FileMaker Pro Advanced or Instant Web
| | 07:24 | Publishing, will remain in there as
long as the session happens and then it
| | 07:28 | reverts the second that that is closed.
| | 07:30 | So it could be ideal for a temporary
storage location for information that's
| | 07:34 | unique to each user session, such as,
the last record or the last layout
| | 07:39 | visited or when we look at portals
you will see that we are going to use
| | 07:42 | globals for some portal filtering.
| | 07:44 | The next thing that we are going to
look at is also found in the Storage tab
| | 07:47 | and it's setting the
Indexing options for a field.
| | Collapse this transcript |
| Indexing options for fields| 00:00 | The final field option that we are
going to take a look at is something that's
| | 00:02 | also found in the field option's
Storage tab. This is the concept of indexing
| | 00:08 | fields. It's kind of an important concept
and has some new precautions in other areas.
| | 00:12 | So I will show you about how to control
the indexing but also talk a little bit
| | 00:15 | more about the implications of an
indexed field versus an unindexed field.
| | 00:21 | First let's open up in the 05_validation,
let's open Lucky_You_Tours_05_03, and
| | 00:29 | we will open the File, Manage, Database
and we will go into the customer detail
| | 00:36 | tab. Now, before we get started on
this, the word Index, and the index of a
| | 00:41 | book it goes in and lists every single
topic in where you can find that topic
| | 00:45 | on what page. Well, in that same way a
field's value index is an ordered list
| | 00:50 | of unique entries in the field and then
the pointers to the records where those
| | 00:54 | entries can be found.
| | 00:55 | So 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:06 | field and if you are on Apple, you do
Apple+I and if you are on Windows, you
| | 01:10 | can do Ctrl+I.
| | 01:12 | But up will pop the index of the
values inside this field. So what this is
| | 01:17 | telling me is that in all the 44
records, it's not every value in every 44
| | 01:21 | records, because Africa could be in
here five times, but it's an index list or
| | 01:26 | unique list of values. So we say Africa
is in here at least once, Arctic is in
| | 01:30 | here at least once, so on and
so on and we have got Washington.
| | 01:33 | Well, this is the list of values, but
in addition, FileMaker stores inside the
| | 01:38 | cache of the application. Not only
Africa but which records identified by the
| | 01:43 | record number or their record ID, it
will say that Record number 1, Record
| | 01:47 | number 4 and Record number 3, all have
Africa as their value and the same for
| | 01:51 | all these others. So you can imagine
there is a lot of data that's being stored
| | 01:54 | there and it takes a little while
to actually crunch through all that.
| | 01:57 | So the first time that you index a
field, you will see some of these are
| | 02:02 | indexed and some of them aren't. If we
go into customer again, we will see that
| | 02:07 | email is indexed. If I double clicked
on that, that pop me into the Options and
| | 02:12 | in here we have got Storage options
and you see here, and I'll discuss None,
| | 02:16 | Minimal and All in a second, but
anything other than None means that the field
| | 02:19 | is indexed. That will improve as you
see here on screen the performance of
| | 02:23 | things like finds and will allow
things to be part of a relationship and will
| | 02:28 | also increase the performance on sorting.
| | 02:30 | You might have seen the effects of
an unindexed field before if you have
| | 02:34 | searched on a database that, let's say,
has 20,000 records in it and you search
| | 02:38 | into a field that up pops weird message
that says, summarizing field values or
| | 02:42 | indexing field values, and you think
to yourself, "What's going on there? Why
| | 02:45 | am I waiting for this thing to go through"?
| | 02:47 | Well, what's happening there is in
order for it to complete your Find request
| | 02:50 | to your searching of that field data.
It has to literally go and check every
| | 02:54 | single record to see if those records
match the criteria that you entered. But
| | 02:57 | if a field is indexed or has been
previously indexed, all its doing is checking
| | 03:01 | index and it says, oh, well, you
entered in the value of Washington, and we
| | 03:05 | happened to already have in the cache
of the application that record number 6,
| | 03:08 | 7, 15 and 21 have that value. So it
instantly comes back with your values.
| | 03:13 | So like the book index, if you looked
in the back of a book and said, "Where
| | 03:16 | can 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:25 | then those three pages than it would be
to go through every one of the pages in
| | 03:27 | a 300-page book looking for any
references that match the one that you are
| | 03:31 | looking for, right, same thing here.
That's the logic but it's important
| | 03:35 | because it creates a value index and
it says, "What are all the different
| | 03:38 | values that are inside this field,"
and that Value Index is used for creating
| | 03:42 | relationships.
| | 03:42 | So when we talk about relationship in
the relationship chapter, you are going
| | 03:45 | to see that what it's doing is
checking to see, does the value in this record
| | 03:49 | in this one table match values in this
record in the other table. And if so,
| | 03:53 | that means that those records are
related. In order to be able to do that
| | 03:56 | efficiently and quickly, an index
needs to be built in those fields.
| | 04:00 | So it can use the index in the
relationship rather than having to go and check
| | 04:04 | every single record. You can imagine
how long it would take if you have a
| | 04:07 | portal and it would have to redraw
the portal by going and looking at every
| | 04:11 | single record in your related file first.
| | 04:13 | So in addition to this value index that
I'm talking about, it also has a second
| | 04:17 | index option that's called the Word
Index. Unlike the value index, which only
| | 04:22 | includes the first hundred characters
of the field, the word index actually
| | 04:25 | contains entries for every single word
in the field. So regardless of how much
| | 04:29 | text is entered, anytime it sees a
break or a space it determines that that's a
| | 04:33 | new word. This index is used when you
are performing searches on text fields in particular.
| | 04:38 | So I could look for first name and
last name and it's going to look for those
| | 04:41 | independent words rather than all of
that up to 100 characters in there as
| | 04:45 | well. So these are two different ways
that FileMaker handles indexing but one
| | 04:48 | of the things that you noticed, let's
go into an unindexed field. If we going
| | 04:52 | into the first name field, you see
this option here, we have got no indexes
| | 04:56 | created and we see the option for
automatically create indexes as needed.
| | 04:59 | Well, if I turn that off and go into
my Customer Detail, we have got 1522
| | 05:06 | records in here. I'm going to into View,
Find mode and I'm going to enter in
| | 05:12 | boo and hit find. We find that it
has one record and if we go back into
| | 05:19 | Customer and first name you
see that it's still unindexed.
| | 05:22 | Well, 1522 records isn't too bad but if
we have a lot of records in here, that
| | 05:27 | Find that we just performed could have
taken a long time, especially if we are
| | 05:30 | doing it over a WAN connection or
something like that. Why not just index every
| | 05:34 | single field in the database?
| | 05:35 | Well, the reason is because you can
imagine that, that extra information makes
| | 05:39 | your file sizes that much larger. So
if you index, if you have 1500 fields in
| | 05:43 | your database and you index every
single one of them, you are going to see a
| | 05:46 | significant increase in the file size
and that could affect performance as well.
| | 05:49 | So you want to really manage these
and index as needed and you will see how
| | 05:54 | that works. If I go in here and now I
do the search and hit find, you will see
| | 06:02 | that it returns back instantly,
really not much of a performance difference
| | 06:05 | change. But now you see that it's
indexed and it's switched to all. So it made
| | 06:09 | the determination on which
one of these two switched to.
| | 06:12 | So we know that None means that it's
never indexed, and it's not indexed
| | 06:16 | at all. We see that All indicates that
everything is indexed. But what's
| | 06:21 | Minimal, how does that factor in? Well,
these radio buttons that you see here,
| | 06:25 | where we have got None, Minimal and
All, refer to how many of the field's
| | 06:29 | indexes have been created.
| | 06:31 | So All means that all possible indexes
have been created for the field; Minimal
| | 06:35 | means that either the value index or
the word index have been created, so
| | 06:40 | really only whichever one was
necessary. None is no indexes, Minimal is
| | 06:46 | whichever the value or word index and
All means both the value and the word index.
| | 06:51 | So since its different data that's been
stored depending on the type of index,
| | 06:55 | there is a lot much more data that's
been stored. You don't always want to jump
| | 06:58 | into All if you don't need a value or a
word index; you just need whichever one
| | 07:02 | is the opposite.
| | 07:03 | So most often it's best to just simply
leave the Automatically create indexes
| | 07:07 | as needed option checked here. That
means that FileMaker would create the
| | 07:11 | indexes as you need them. After just
some normal usage of your file, you are
| | 07:15 | going to see that all your indexing
will basically take care of itself.
| | 07:19 | One of the other things too to take
look at here, you will notice when we
| | 07:22 | create calculations, and we will get
into that in the Calculation chapter, but
| | 07:25 | when you are creating calculations you
see that you have got storage options as
| | 07:28 | well. Same thing here, it could be a
global, which means whatever you are
| | 07:32 | resolving, we talked about that in the
previous movie we call the Storage, but
| | 07:35 | whatever your calculation results to
every single record in the databases can
| | 07:39 | have the same value.
| | 07:40 | Or you can say, do not store the
calculation results -- recalculate when
| | 07:44 | needed, which means that for every
record, it's going to have to go and look at
| | 07:49 | the value in the record. Actually if we
go back here, you will see here in this
| | 07:54 | example we have got first name and last name.
| | 07:57 | So in the Storage option, if we say,
do not store, it's going to have to
| | 08:01 | recalculate that every time that we go
to this record. So it could add a little
| | 08:05 | bit to the performance and a little
bit of an impact there, where we can set
| | 08:08 | the calculation results to None and
Automatically create indexes as needed, or
| | 08:14 | All. You see in that case of a
calculation we need to have both indexes
| | 08:17 | created. So that's why we don't
have the Minimal option in this case.
| | 08:21 | You want to use this option actually
when you want a field to update every time
| | 08:24 | it's viewed or referenced in some
special circumstances, such as, a reference
| | 08:28 | to data from a related table or
globally stored data. This will force the field
| | 08:32 | to be unstored.
| | 08:33 | So sometimes you might get a little
frustrated because you might come here and
| | 08:36 | you say, "I want to store this because
I'm going to be searching on the results
| | 08:38 | of this calculation". But you are going
to notice that these will all be grayed
| | 08:41 | out and that's because you have got a
global value in here or you have got a
| | 08:46 | related field inside your calculation.
| | 08:48 | So you've got to keep in mind when
you are specking out your files or your
| | 08:51 | solution in that, you cannot store
that information and therefore you cannot
| | 08:55 | create indexes, and therefore
efficiently sort and efficiently search on
| | 08:59 | certain field values.
| | 09:00 | Also, because relationships are based
on the index inside of a field, then you
| | 09:06 | also cannot use some of those fields
depending on whether or not you are able
| | 09:09 | to store them; you can't use those as
one of the key fields in a relationship.
| | 09:14 | So that's something to keep in mind.
| | 09:15 | So in order to keep things like
searching and sorting working correctly, you
| | 09:19 | also going to have to do one other
thing here too. You'll notice inside, if we
| | 09:25 | say here, notice the Default
language for indexing and sorting text. Your
| | 09:30 | default is going to be set to
English if that's what you set up when you
| | 09:33 | install the application.
| | 09:35 | But there is another thing to consider
if you are using foreign languages or if
| | 09:39 | you have punctuation that you want to
take into consideration into your sort
| | 09:42 | and to these values, and you want to
distinguish those, you should choose
| | 09:45 | what's called Unicode. You see that
all the way down here in the bottom. This
| | 09:49 | is new just a couple of versions ago.
If you want to index foreign language,
| | 09:52 | punctuation or special characters,
always choose Unicode; otherwise you are
| | 09:56 | going to be okay with English. So
this is a little note there as well.
| | 09:59 | By the way, uppercase and lowercase
characters will be treated as different
| | 10:02 | characters and punctuation will then be
taken into consideration as well. So if
| | 10:06 | you want to differentiate between
finding a uppercase spelling of a word versus
| | 10:10 | the lowercase, that's where storing
things as Unicode is going to come in very
| | 10:15 | handy for you.
| | 10:16 | So a lot of ramifications here when it
comes to indexing in your field, those
| | 10:21 | will come up again as we work with
calculations and relationships and value
| | 10:24 | list and sorting. You will see
those things pop up again real soon.
| | 10:27 | Now that we have defined fields it's
time to move onto working with the records.
| | Collapse this transcript |
|
|
6. Working with RecordsCreating and duplicating records| 00:00 | So far in this title we've worked
with setting up a new FileMaker database,
| | 00:03 | creating some tables and some fields
so that you can actually start adding
| | 00:07 | records to your database. In this
chapter we are going to discuss working with
| | 00:11 | records, just covering some of the
real basic aspects of adding records to a
| | 00:14 | FileMaker database, editing them and
deleting them. First we are going to start
| | 00:18 | off with showing you the different
ways you can create records in a couple of
| | 00:20 | quick notes about creating
records in a FileMaker database.
| | 00:23 | So if you would like to go to your
exercise files folder and open up
| | 00:26 | Lucky_You_Tours_06_01, you will see
that we have got a FileMaker database with
| | 00:31 | one record in it. I would like to talk
to you about how you add records to a
| | 00:34 | FileMaker database. There are a couple
ways that you can add records and they
| | 00:38 | are the options in the File menus and
you see here that there is a File menu in
| | 00:42 | FileMaker that's dedicated
to just working with records.
| | 00:45 | You see here that we have got New Record,
Duplicate Record and Delete Record is
| | 00:48 | our first options. I'm using a Mac so
the quick key here is Apple+N as in new
| | 00:53 | record, but also if you are on a
Windows machine you can do Ctrl+N.
| | 00:57 | So either by selecting the File menu
or using the quick keys, also, you will
| | 01:04 | see here if you roll over these
toolbar icons here, you have got New Record,
| | 01:09 | Duplicate Record and Delete Record
that are built into your toolbar already.
| | 01:12 | So using anyone of these three ways,
you will see that a new record is created
| | 01:17 | within your database. The first thing
that you will notice is that the number
| | 01:20 | of records in the database is just
incremented by one. So we had one record in
| | 01:24 | the database and now we have got two.
| | 01:26 | The second thing you will notice is
that everything on screen or all the data
| | 01:29 | that was populated in the previous
record or the record that we are looking at,
| | 01:32 | at that time, appears to be disappeared,
but really what's happened is you have
| | 01:36 | just been given a new
record to fill in brand new data.
| | 01:38 | If you are an end user with FileMaker
this can be alarming, maybe the first
| | 01:42 | time around, and if you are developing
in FileMaker you might want to just make
| | 01:45 | your end users aware that this is what
is going to happen because it doesn't
| | 01:48 | take you to a whole different screen,
in this case, for adding a record. People
| | 01:52 | might get a little bit alarmed.
| | 01:53 | The next thing to take a look at here
is you will see from-- in our discussion
| | 01:57 | in the chapters on auto entry, you will
see that most of the records here have
| | 02:03 | no data in them. You see that the
Country field and the ID field both have data
| | 02:07 | already populated. That's because they
have been set up to auto enter values on
| | 02:12 | the creation of record, and that's what
we have just done is created a record.
| | 02:15 | Next, you will see that there are
these lines around all of the fields. This
| | 02:20 | indicates that you are either adding
or editing records and this is the mode
| | 02:23 | that you are in. You will notice that
when you click into one of the fields or
| | 02:26 | tab into one of the fields, that not
only is the cursor blinking in that field,
| | 02:29 | but also the lines around the field are
a solid bold, which indicates that you
| | 02:35 | are adding record to that particular field.
| | 02:37 | So it gives you a little bit of visual
feedback on which field you are in and
| | 02:40 | when you can start adding data. Now by
the way, if you don't want to have the
| | 02:44 | fields outlined, you can go into Layout
mode and Layout Setup and you will see
| | 02:52 | this area here Show field frames when
record is active, that's what we are
| | 02:57 | looking at. We're looking at field
frames and this is the active record and we
| | 03:00 | happen to be doing some editing here.
| | 03:02 | So the other thing that you can do is,
in addition to creating-- and then this
| | 03:06 | is where you would just add some data.
Now one thing to keep in mind here is
| | 03:12 | that right now this record isn't
technically saved in the database. It hasn't
| | 03:16 | actually been committed and that's what
the term is. We will talk about that a
| | 03:20 | little bit later on in this chapter,
but once I click outside it actually has.
| | 03:23 | So that's how you see things like this
up here which is a field, a calculated
| | 03:28 | field that's pointing a value from
what I have typed into this field here.
| | 03:32 | So in addition to the new records and
using the quick keys and even the toolbar
| | 03:39 | to create records, the other way
that you can create records is through a
| | 03:41 | script. We will talk more about this in
the scripting section. But just a quick
| | 03:45 | overview, what I have here is just a
graphical icon that I have created and
| | 03:49 | placed on this layout and I'm
right clicking on this icon right now.
| | 03:53 | You will see that there is something
called Button Setup, and again, we will
| | 03:56 | cover this in pretty good detail in
the chapter on scripting. But just so you
| | 04:00 | can see that, in addition to all the
other actions that you can perform with
| | 04:03 | your keyboard or through the menus that
are supported inside of the ScriptMaker
| | 04:07 | engine, one of them is the New Record Request.
| | 04:10 | So if we go back into Browse mode, you
will notice that clicking on this button
| | 04:16 | also allows me to create a record in
this database. The other way that you can
| | 04:20 | create records is, for example, if I
happen to have this record here and I want
| | 04:25 | to create a new record that is the
Kilimanjaro trip or adventure but not for
| | 04:31 | spring but for summer, then I don't
really want to create a new record and type
| | 04:36 | all this information in again
when it's relatively the same.
| | 04:39 | So what I can do, also found under the
Records menu and with the corresponding
| | 04:44 | quick key, or in the toolbar under
Duplicate Record. I'm going to duplicate the
| | 04:49 | record and now I have two records
with the same information, but you will
| | 04:53 | notice we've got A0256 and 1102 are
distinctly different Ids. But in this case
| | 05:01 | I can go in and say, Summer, change the
amount of days and you will notice that
| | 05:09 | saved me a whole lot of typing; so a
couple of different ways you can add
| | 05:13 | records to a database.
| | 05:14 | Now let's take a look at once you have
got records in your database, how you
| | 05:17 | can edit some of the values and some
of the issues related to editing records
| | 05:21 | in the database.
| | Collapse this transcript |
| Editing and locking records| 00:00 | Once you have records in a FileMaker
database then you will be able to edit
| | 00:03 | those. Now the caveat here is, if you
have Access Privileges set up, that allow
| | 00:08 | users or if you are the user and you
are logged in using an account that has
| | 00:12 | privileges to allow editing of a
record, then you can edit any record data
| | 00:16 | that's currently inside the field.
| | 00:18 | There are a couple of ways to prevent
that from happening and if we go into
| | 00:23 | Layout mode you will see that a
developer, or if you are the developer, you
| | 00:28 | could go in and change allow field to
be entered in either Browse mode or Find
| | 00:33 | mode. We will cover this a
little bit more in the Layout section.
| | 00:36 | But as long as you have access in
Browse mode-- we will go back in Browse mode.
| | 00:40 | As long as you have access to the
field in Browse mode and they have access
| | 00:45 | rights to the record into editing
records, which is all default by the way,
| | 00:50 | they can go into the field and they can click
on certain values and they can change those.
| | 00:55 | You will see it behaves in the same way
as when you're originally entering the
| | 00:58 | records and not only that but it's in
the same mode. You will notice that we
| | 01:01 | are in Browse mode. So Browse mode is
not only for viewing records and adding
| | 01:05 | records, it's also for editing the
values inside the records as well.
| | 01:09 | So you see I can just click in here
with my cursor, type in to make a change
| | 01:14 | and you will notice that the active
field and the record that I'm working with,
| | 01:19 | of course, has the bold line around
it and the rest in the record have the
| | 01:22 | dotted line and that can be toggled on
or off by the developer. Once I click
| | 01:26 | outside the field, do you see that
those lines disappear? And that's called
| | 01:29 | committing the record, which I
will cover in the following chapter.
| | 01:32 | Now, one important note about editing
the records when you are actively editing
| | 01:36 | a record, so for example, when I
click into a field, I'm not editing the
| | 01:40 | record. But when I start typing, for
example, now I have made a couple of
| | 01:44 | keyboard strokes and I have changed
the value inside the field. That's called
| | 01:48 | the actively editing the record.
| | 01:50 | When you're doing that in FileMaker
you are going to see the dotted lines
| | 01:52 | appear around the editable fields, in
the given layout and the strong bold
| | 01:56 | outline onto the field that we are
currently entering data. But while I'm
| | 02:00 | entering this information,
I'm editing their single record.
| | 02:02 | So other users cannot access this record,
if I'm sharing the file on a network
| | 02:07 | or via TCP connection. So that
means if I'm just the only user of this
| | 02:11 | database, and I don't have to worry
about any sharing issues, but if I'm
| | 02:14 | accessing this database on the server
or if someone has connected to my copy of
| | 02:19 | FileMaker and we are sharing it using
the built-in sharing functionality inside
| | 02:23 | the FileMaker Pro Client.
| | 02:25 | I'm locking out. This concept that I'm
talking about is referred to as record
| | 02:29 | locking. That means that's a period
of time when one record is locked from
| | 02:33 | allowing access by other users. This is
actually a good thing. Because what you
| | 02:37 | don't want to have happen is having
two users in this very same record.
| | 02:40 | Let's say, myself and another user in
the Kilimanjaro record, and we are both
| | 02:44 | changing the Season. I'm changing it
to Fall, someone else is changing it to
| | 02:48 | Spring, and we commit the record and
neither of us knows which one of us
| | 02:52 | actually will have our changes reflected.
| | 02:54 | It's okay for making the same changes,
but to prevent any confusion and to
| | 02:57 | allow only one person to modify the
values and then save those values in our
| | 03:01 | record, FileMaker has built in this
thing called Record Locking. This need to
| | 03:05 | be taken into consideration when you
are training your users and setting
| | 03:08 | expectations with them, and also to
alert them if they see any message that
| | 03:13 | will pop up on screen.
| | 03:14 | So if I happened to be clicking into
this record, and let's say I'm another
| | 03:18 | user on that very same record, and I
try to click into a record, you will
| | 03:22 | notice that this message comes up
that's called, "This record cannot be
| | 03:25 | modified in this window because it is
already being modified in a different window."
| | 03:29 | This is because I have opened up
multiple windows, which again is later on in
| | 03:32 | this title, but I have the same
session and what it's telling me is, even
| | 03:36 | though I have got another up in I still
have to wait until the editing is done
| | 03:41 | in the first window.
| | 03:42 | So let's go in here and I will commit
that record and I will change to the new
| | 03:46 | one. Now you see it will allow me to
make my change. That same behavior happens
| | 03:52 | when it's on the network except
instead of saying, you cannot modify this
| | 03:56 | record, it says that another user is
modifying the record and I have to wait
| | 03:59 | for them to commit.
| | 04:00 | So these are the things that are
taken to account when you are doing things
| | 04:03 | like scripting, the editing of a
value inside of a field, because if it's
| | 04:06 | locked out it's not available to a
script either. Also just as far as user
| | 04:10 | training is concerned and setting
expectations for your users, but keep in
| | 04:14 | mind, in the end, this is a very good
thing. It helps eliminate any confusion
| | 04:17 | on editing and when certain
edits are committed to the database.
| | 04:21 | Let's take a look at deleting
records from your FileMaker database.
| | Collapse this transcript |
| Deleting records and backing up files| 00:00 | Deleting records inside of a FileMaker
database is very simple. As a matter of
| | 00:04 | fact it might be a little bit too
simple and I will demonstrate why. Well, you
| | 00:07 | can see here that we've got four
records in our database and I've got these two
| | 00:12 | records here in the middle that are blank
and I would like to remove them from my database.
| | 00:16 | Well much in the same way as you can
create and duplicate a record, you will
| | 00:20 | also note that there is a Delete
Record option under the Records menu heading
| | 00:24 | with a corresponding quick key. There
is also a Delete Record button in the
| | 00:28 | toolbar and just like we've have been
able to script before, you can script and
| | 00:32 | add a script step to button,
the ability to delete a record.
| | 00:36 | So once you delete the record it's
gone forever; it actually cannot be
| | 00:40 | restored. So that's important for you
to know that, that information cannot be
| | 00:45 | reclaimed once the file is deleted. So
this is a really good time to talk about
| | 00:50 | backing up your files.
| | 00:51 | Since any user as long as they have
privileges, and keep in mind that you can
| | 00:55 | go into FileMaker security settings
under Accounts & Privileges and set up
| | 00:59 | privilege sets and accounts that
prohibit certain users or all users from
| | 01:04 | deleting any records in the database.
You can even prohibit them from editing
| | 01:07 | and really doing anything; you
have complete control over that.
| | 01:10 | With that said if you do allow users to
delete records, keep in mind that when
| | 01:13 | a record is deleted it's gone forever.
Not only can you delete one record,
| | 01:17 | but-- and I'm going into Find mode,
which we will discuss a little bit further
| | 01:21 | in an upcoming chapter.
| | 01:23 | But what I've done is I've located
the two blank records and not only can I
| | 01:28 | delete one record at a time, but what
can be just as useful as it is dangerous
| | 01:33 | is just below the Delete Record command,
is the Delete Found Records. You will
| | 01:37 | notice that when I select this,
luckily FileMaker will pop up a message that
| | 01:41 | says, are you sure you want to delete a
record or if you've selected Delete All
| | 01:44 | records it says, permanently delete ALL;
and then whatever the quantity is of
| | 01:48 | records that you're deleting,
and the default button is Cancel.
| | 01:51 | So that gives your users an
opportunity to back out of this if necessary. But
| | 01:55 | now that I've deleted their record,
you will see that I've only two records
| | 01:59 | left in my database and I cannot
reclaim the data in those other two.
| | 02:02 | So, it's always good to back up your
files. You should always, always, always
| | 02:06 | back up your files. You can back them
up on your local machine by just doing
| | 02:10 | Save a Copy As, and you've got the
ability to save a copy of a current file,
| | 02:14 | compacted file or a file shell without
any records, or if you are on a server
| | 02:19 | you can set up-- there is a plethora
of different backup schemes involved in there.
| | 02:23 | FileMaker server allows you to script
to the backing up of your data directory
| | 02:27 | that contains all your databases so
you can do that at the server level also.
| | 02:30 | But whatever you do, if you are just
developing, you don't want to be caught
| | 02:34 | with lost data.
| | 02:35 | Certainly, you want to come up with
some kind of strategy to back up your
| | 02:37 | files, whether it's got a little bit
of data or just all of your programming
| | 02:40 | into a file, make sure you back those up.
This is unfortunately a lesson that's
| | 02:44 | frequently learned the
hard way by a lot of users.
| | Collapse this transcript |
| Committing and restoring data| 00:00 | I would like to take an opportunity
here to talk to you about the concept of
| | 00:04 | committing a record. I have used that
term a couple of times, especially when
| | 00:07 | we were talking about the Auto-Enter
options. But the idea of committing a
| | 00:11 | record, first of all, you should you
know that unlike other applications, where
| | 00:15 | you would go in, when you are working
with a document like, let's say, Word or
| | 00:18 | something like that. When you've made
some changes to the document, you would
| | 00:21 | go under File and do save; you
don't have to that inside FileMaker.
| | 00:25 | FileMaker is a database. So when you
create a record in a database it's in the
| | 00:29 | database. When you delete a record
from the database it's gone. There is no
| | 00:32 | saving the application or saving the
file itself in order to make those changes
| | 00:36 | take. The concept of having a change
take in FileMaker is called committing and
| | 00:41 | that happens when you commit a record.
| | 00:43 | Now, committing is actually quite
useful and if you go back and review the
| | 00:47 | Auto-Entry section you can see that
almost every one of the Auto-Entry triggers
| | 00:51 | are all based on either records
being created or records being committed.
| | 00:54 | So, it's very useful and this is
something that if you haven't work with
| | 00:57 | FileMaker and while you probably
haven't heard of this concept of committing,
| | 01:00 | but in the current versions you do have
to commit. It comes along with a lot of
| | 01:04 | really cool functionality that we
didn't have before in this application.
| | 01:07 | So there are couple of things that you
should know are when committing actually
| | 01:10 | happens. When I'm making this change in
the record, technically it has not been
| | 01:14 | saved to the database until I commit
and there is a couple of ways that I can
| | 01:19 | commit a record, the first of which is
to click outside the area and you see
| | 01:23 | that FileMaker responds by removing
the editing lines outside of the fields.
| | 01:28 | The other way to commit a record or
commit changes, if I make these changes
| | 01:31 | here is to press the Enter key. Unless,
of course, you've changed the role or
| | 01:37 | behavior of the Enter key and we will
look at how you can do that or how you
| | 01:40 | can affect that when we
get to the Layout chapter.
| | 01:43 | The other way that you can commit a
change if your cursor is inside the field
| | 01:47 | on this record, and I've made that
change; it's not yet committed, but if I
| | 01:50 | change from Browse mode to any one of
the other modes and back to Browse mode,
| | 01:55 | the change is now committed to the database.
| | 01:57 | Also, if I'm making a change and I go
now to a different layout and I come
| | 02:04 | back, it's now committed the change to
the database. Also, if I create a new
| | 02:10 | record or if I navigate to another
record the change that I made will be
| | 02:15 | committed to the database; just a
couple of things to keep in mind there.
| | 02:18 | Now, you can add an extra layer of
protection. So, if committing the records or
| | 02:22 | the delay in committing a record isn't
enough, and what you would like to do is
| | 02:25 | have the user make sure that the
changes they've made are reviewed before they
| | 02:28 | do a commit. You can turn a feature on
and we can access this feature that I'm
| | 02:33 | going to show by going into Layout mode.
Going under the Layout menu to Layout
| | 02:37 | Setup and you see, by default, this
Save record changes automatically is checked.
| | 02:42 | Now, that means after the commit of a
record, this record change is going to be
| | 02:46 | saved. Now, if I turn that off and I
hit OK, go back into Browse mode, you will
| | 02:56 | notice that as I try to commit the
record I get a message that says, Save
| | 03:01 | changes to this record? And if I say,
Don't Save it doesn't commit the change.
| | 03:06 | Then here I will hit Enter, in this case.
I do hit Save then it proceeds on to the commit.
| | 03:11 | So again, you can manage that,
depending on what your users are used to or how
| | 03:15 | much control or warning you want to
give people when it comes to changes being
| | 03:19 | committed. So, in review this will
affect whether or not the change is
| | 03:23 | committed automatically or whether or
not the user is prompted to make sure
| | 03:27 | they want to make that change.
| | 03:28 | So, if you have users that aren't
really familiar with working with databases,
| | 03:32 | it might be a good idea to give them
that other opportunity to save. But if
| | 03:35 | you've got some advanced users that
have worked with FileMaker for a file, that
| | 03:38 | might be a little bit of a nuisance.
| | 03:40 | Now, there is also something that is
affected by the committing, but it's also
| | 03:44 | a new feature inside FileMaker 9 and
that is the ability to Undo and Redo some
| | 03:50 | of the changes you're making inside
of a field, but on multiple levels.
| | 03:53 | So in the past on versions of FileMaker,
we've got this text field here let's
| | 03:57 | say, I've just made the change to the
value and in the past you could easily
| | 04:01 | just go under Edit like in most
applications. You can either do Ctrl or Apple+Z
| | 04:05 | to undo the typing and you see it will return.
| | 04:07 | But what's interesting about this new
version in 9, here is all the different
| | 04:12 | changes I'll make. Let's just say, I go
in here, make a bunch of changes to the
| | 04:19 | text. As long as I'm not clicking
outside of this text field or committing the
| | 04:23 | changes, you will see that I'll have
access to do, Undo Typing, Undo Typing,
| | 04:31 | Undo Typing; Undo Typing again. I
can even do Redo if I like as well.
| | 04:39 | So, this is something that you will see
in other applications. Now, by the way,
| | 04:44 | like for instance, if I change this to
2008, and I commit outside the record, I
| | 04:51 | can't Undo or Redo on either values. So,
within the committing of a record, I
| | 04:56 | can now use the new multiple levels
of Undo and Redo features inside a
| | 05:01 | FileMaker Pro.
| | 05:02 | The other tip here is it's not only
available in Browse mode, but it's also
| | 05:06 | available in Find mode. If I say, I can
undo the typing completely and I can do
| | 05:22 | that on multiple levels and this is
in Find mode. The same is true also in
| | 05:27 | Layout mode. If I want to make some
modifications to some of the text on
| | 05:32 | screen, I can do multiple
levels of Undo and Redo.
| | 05:39 | So, if I'm in Layout mode it's the
text features on screen, but if I'm in
| | 05:43 | Browse mode or Find mode, it's the
changes that I'm making inside the field.
| | Collapse this transcript |
|
|
7. Creating LayoutsLayout overview| 00:01 | We talked earlier in the training
about how a typical database application
| | 00:04 | requires attention to at least three
core areas. We've already looked at
| | 00:07 | developing the proper architecture
through the creation of tables and fields in
| | 00:11 | a FileMaker database, and next we are
going to take a look at a sensible and
| | 00:15 | usable means of getting data into a
database, which is actually the design of
| | 00:19 | user interface screens.
| | 00:21 | User interface screens in FileMaker
Pro are called layouts. FileMaker Pro
| | 00:26 | layouts determine how information
is organized for viewing, printing,
| | 00:29 | reporting, finding and entering
data. But actually it's important to
| | 00:34 | distinguish that the FileMaker layouts
don't actually store the data, like some
| | 00:38 | views do in other database
application, but instead they are just used to
| | 00:42 | display the data that's
contained within the database itself.
| | 00:46 | Database files can have many different
layouts actually which display data in a
| | 00:50 | variety of different ways. For example,
with one single database file, you can
| | 00:54 | design separate layouts for entering
data, reporting summaries, printing and
| | 00:58 | mailing labels, publishing
databases on the web and so on.
| | 01:02 | You can change a layout's design
without actually affecting the data. There
| | 01:05 | isn't a direct relationship between
the data and the layouts themselves. But
| | 01:09 | when you change the data in a field,
the changes are reflected in that same
| | 01:13 | field on all layouts in the database,
and that includes in a multi-user
| | 01:16 | environment. That's why layouts are
used for data entry and data modification as well.
| | 01:21 | In a layout, you can choose which
fields to display. You can arrange and format
| | 01:26 | those fields. You can add or modify
field labels, for example. You can create
| | 01:31 | reports, and we will talk about
reports more in the Reporting chapter, but we
| | 01:34 | are going to touch on how to develop
those layouts here. You can specify how
| | 01:39 | reports are printed, how they look and
act as well, and add graphics and text
| | 01:44 | to emphasize the interest
in your layouts themselves.
| | 01:46 | So when you create a database file,
FileMaker Pro automatically creates a
| | 01:50 | Standard form layout for the initial
table in the file. So, when you first
| | 01:54 | create it, if you recall them, you are
creating a new file, whatever we name
| | 01:58 | the file, it would actually name the
first table in our database that same
| | 02:01 | name. The same is true for your first layout.
| | 02:04 | So, you would create additional layouts
by switching into Layout mode and using
| | 02:08 | the New Layout/Report assistant which
is a wizard that guides you to creating
| | 02:11 | layouts according to the options that
you choose. So, let's take a look at that
| | 02:15 | New Layout/Report wizard.
| | Collapse this transcript |
| Creating layouts| 00:00 | Anybody developing or maintaining a
FileMaker Pro database solution is likely
| | 00:04 | to spend a good part of their time in
Layout mode, and this is where you're
| | 00:06 | going to create the user interface or
reports or basically any way that the
| | 00:10 | users of your solution are
going to interface with the data.
| | 00:13 | So, in the previous chapters we've
talked about defining fields and some of the
| | 00:16 | different field options and working
with records and even creating tables and
| | 00:20 | new files. Now, we are going to
concentrate on how to create a layout and what
| | 00:24 | I'm going to introduce you to is what's
called the New Layout/Report assistant.
| | 00:29 | So first let's open up our exercise
file in the O7_creating layouts folder,
| | 00:35 | Lucky_You_07_01. What we are going to
do is start off by going into Layout mode
| | 00:40 | and we go into Layout mode by going
into View > Layout mode. Now, you see there
| | 00:45 | are already some layouts in this
file. You will see them listed here by
| | 00:49 | clicking under the Layout
dropdown menu in the status area.
| | 00:52 | The easiest way to create a layout is
going to be by duplicating and you can
| | 00:57 | all of your layouts under the Layout
menu, by the way. You can create a new
| | 01:01 | Layout/Report or duplicate an existing
one and modify in it, which is really
| | 01:05 | the same logic as duplicating a record
and modifying it. If most of it is going to
| | 01:08 | stay the same and you just need make a
couple of tweaks, but it does need to be
| | 01:11 | a different layout, then you can
duplicate the layout. That's the first way to
| | 01:15 | introduce to you how to create a new
layout and that's simply done by going
| | 01:18 | under the Duplicate Layout
option in the Layout menu.
| | 01:22 | All other layouts are going to
created by going into the Layout menu and
| | 01:26 | selecting New Layout/Report or the
quick keys are Ctrl+N or Apple+N. What you
| | 01:34 | will be presented with is what
FileMaker calls the New Layout/Report assistant.
| | 01:38 | In the following movies, we are going
to go through each of these and discuss
| | 01:41 | some of the options that you have
available to you and show you how to create a
| | 01:45 | standard form, a columnar list/report,
a table view. I will show how to create
| | 01:52 | some of the label views, the envelope
and the blank layout, which is just the
| | 02:00 | easiest one to create.
| | 02:01 | So let's start off by reviewing
how to work with the standard form.
| | Collapse this transcript |
| Creating a standard form| 00:00 | The first of the layout types that you
can create using the New Layout/Report
| | 00:04 | assistant is the Standard form. You
will notice that on this panel of the new
| | 00:08 | Layout/Report assistant, there are a
couple of things that you need to do
| | 00:11 | before you begin.
| | 00:12 | First, you need to choose where the
records are coming from. So in this example
| | 00:17 | we are going to create a series of
different reports for the customers and
| | 00:21 | you're going to pick which one of these
you want the records to show from. All
| | 00:24 | this is is a list of different
tables that you have in your database.
| | 00:28 | If you need to look at those, you can
easily access the Manage Database window
| | 00:33 | from here, in case you need to add a
table or change a name or something like
| | 00:36 | that at this point. But for this
exercise we are going to create customer, and
| | 00:41 | the other thing which you have
to do is name the layout itself.
| | 00:45 | So, we are going to go in here and
call this one Customer and then your third
| | 00:51 | option before you get started by
selecting the layout type is to determine
| | 00:54 | whether or not you want to
include this in the Layout menu.
| | 00:57 | So, the Layout menu is what you see
here at this dropdown menu that appears
| | 01:01 | when either you're in Layout mode or
Browse mode. Every one of the layouts
| | 01:05 | shows up when you're in Layout mode,
but if you check this box it will actually
| | 01:08 | show up to your users in Browse mode as well.
| | 01:11 | Now, this is independent from any
Accounts & Privileges rights that you build
| | 01:15 | in for your users but just assuming
that a user has access to everything, if
| | 01:18 | you check this box it will show up in
Browse mode, if you uncheck it, it will
| | 01:22 | not. So, we will leave that
one checked for right now.
| | 01:24 | Then you choose the layout type and
right now we are going to concentrate on
| | 01:27 | the Standard form, but you will see
in each one of these it has not only a
| | 01:30 | description of the layout, but also
sort of a graphical representation of what
| | 01:35 | the layout is going to look like. It
gives you a little bit better idea of what
| | 01:39 | these things are and helps you define them.
| | 01:41 | And further, you can read down here
below a Standard form as defined by the
| | 01:46 | assistant is a layout that shows one
record at a time and the fields will
| | 01:50 | appear on separate lines as they do
here in this example and the field label is
| | 01:54 | on the left and the field data is on
the right. These are really good for data
| | 01:58 | entry. So, if you're just beginning to
create your data entry view or what a
| | 02:03 | lot of the developer community calls
the detail views, this is a great place to start.
| | 02:07 | So, once you've selected where your
records are coming from, what you're going
| | 02:10 | to name your layout and whether or
not to include it in the Browse mode
| | 02:13 | dropdown in the layouts. We will choose
Standard form and hit Next and what we
| | 02:18 | will see here on the left, since we
chose Customer is we are going to see a
| | 02:23 | dropdown of all the different fields in
the customer table. If we want to take
| | 02:26 | a closer look at the those,
we can access Manage Database.
| | 02:30 | One other thing that you might want to
do is sort your fields to make them a
| | 02:34 | little bit easier to work with. You
can do sort by field name, creation order
| | 02:40 | or whatever you might want to do. You
will see that they reset to, in this
| | 02:46 | case, it inversed the sort order.
| | 02:48 | So, we will go in and we will collect
some information, let's say, first name
| | 02:52 | and I can either double click on the
field in the list or I can single click on
| | 02:56 | it and hit Move. If I want to make a
change, I can click on it here and then
| | 03:02 | the button changes to Clear and I will
remove it. We can pick whatever fields
| | 03:06 | we want by double clicking on them:
email, birthday, let's say, and home
| | 03:15 | address, home city, home zip and home state.
| | 03:17 | Now, the reason I've done them in that
order so that I can show you that you
| | 03:20 | can reorder these as well. So if you
really wanted this to be full name, email,
| | 03:24 | birthday, address, city, state, zip,
I just select the field that I want to
| | 03:29 | change and I can drag it up. Anytime
you see these up and down arrows, you will
| | 03:33 | see that your cursor can roll over
and allow you to move these up and down,
| | 03:36 | much like many other applications.
| | 03:38 | So, you are choosing both the fields
that you want on the layout and also the
| | 03:42 | order in which you want those fields to
appear. The other thing to note is that
| | 03:45 | you can also drop any related fields.
So, any tables that are related to
| | 03:50 | Customer are also available to you.
| | 03:51 | If you look in here, you will see all
the different fields that are available,
| | 03:56 | but keep in mind if you're in the
parent table, and we will cover this more in
| | 04:00 | the relationship chapter. If you are
in the parent table and you put in your
| | 04:02 | related fields in here, you are only
going to see one of the related values.
| | 04:06 | So, it's more likely that you will use
related values or related tables when
| | 04:09 | you're in the child table. So bookmark
that topic of parent and child tables
| | 04:14 | for when we get into the
relationship chapter. But for this basic
| | 04:17 | demonstration, we are going to pick
all the fields that we want from the
| | 04:20 | customer table, organize them appropriately
and then proceed on to the next view.
| | 04:24 | Here you can choose one of the very
attractive pre-made and pre-developed
| | 04:32 | screens if you would like. You will see
that these are all pretty standard from
| | 04:39 | previous versions of FileMaker or
what most people do is either just choose
| | 04:42 | Default or Standard, which are
basically the same, one of them has got a little
| | 04:47 | bit bigger text. So we will go with
Standard in this case and hit Finish. You
| | 04:51 | will see what it's done is now added
another layout and it adds the layout to
| | 04:55 | the end of the Rolodex list.
| | 04:57 | We will see that this layout is called
Customer and here we are on the layout,
| | 05:01 | it gave us a Header part, a Body part
and a Footer part, more on parts in the
| | 05:06 | next chapter. If we want to change the
order in which this appeared, we can go
| | 05:10 | to Set Layout Order and much like we
were moving up the fields, we can move up,
| | 05:16 | we will just say Customer Detail. And
now in the list, we see that our field
| | 05:23 | lands right on Customer. Also,
because we selected for it show up in the
| | 05:29 | dropdown, we see that although some
of them are not, it is included in the
| | 05:34 | dropdown here.
| | 05:35 | Going back into the Layout mode, the
next thing that we are going to do is take
| | 05:39 | a look at creating a list or
report view using the assistant.
| | Collapse this transcript |
| Creating a list/report view| 00:00 | The next report format that we are
going to look at creating using the
| | 00:03 | assistant is the Columnar or List option.
So again, we will start by going into
| | 00:08 | Layout mode and once in Layout mode you
go under the Layout menu and choose New
| | 00:13 | Layout/Report.
| | 00:15 | And again, just briefly to review you
choose where you want your record to show
| | 00:19 | from, let's say in this case we are
going to do guide. Then you name the
| | 00:24 | layout, we will call it Guide List.
We will see whether or not we want to
| | 00:32 | include this in the Layout menus in
Browse mode. We will say yes in this case.
| | 00:35 | Now we are going to choose the layout
type and here we are going to choose
| | 00:39 | Columnar or List. You will see what
this is going to look like. Basically,
| | 00:43 | you've got a header component
with your field labels on top.
| | 00:46 | So it sets up a columnar report or a
complex report with grouped data. I will
| | 00:50 | go through both of these here with
totals and subtotals. The difference between
| | 00:54 | a Columnar list/report and a complex
report are whether or not you have grouped
| | 00:58 | data or subtotals and totals, but it
will show records in rows and fields and
| | 01:02 | columns, similar to how a spreadsheet
would show it, but not identical. That
| | 01:06 | would be this next one, the table view.
| | 01:08 | So, I'm going to choose list and the
next view has us choose between whether or
| | 01:13 | not we are going to do a list or we are
actually going to group with the data.
| | 01:16 | Now, I'm going to choose the list for
this first one, you see I have an option
| | 01:20 | for Constraining to page width.
| | 01:22 | They give you a good example here,
because if you start loading a bunch of
| | 01:24 | fields on here, it's giving you a
standard width. If you say constrain, that
| | 01:29 | means that no matter how many fields
you choose, it's going to wrap around to
| | 01:32 | the next row. If you're planning on
printing a column or list report and the
| | 01:35 | columns extend beyond the width of the
page, you can try either reducing that
| | 01:39 | field size or the font size within
the data of the fields; basically, just
| | 01:43 | making it smaller and the amount
of data that's printing smaller.
| | 01:46 | You can go under the File menu and if
you are on Windows you can choose Printer
| | 01:50 | Setup or in this case I'm on Mac, so I
would choose Page Setup. In the Setup
| | 01:54 | dialog box that appears you can just
work with scaling in reducing the size to
| | 01:58 | less than 100%, pretty standard just
like printing anything else that's too wide.
| | 02:02 | But here we will just be careful and
mindful that we are not going to add too
| | 02:05 | many fields that it goes off the edge,
but those are a few different ways that
| | 02:08 | you can manage that. Of course, the
option that we are going to choose here is
| | 02:11 | creating a layout that will only have
the amount of fields in here that we need.
| | 02:16 | So, we will proceed then to the next
pane and here it gives us the default
| | 02:22 | table, and of course, we can go in and
resort A-Z if we want or start creation
| | 02:31 | order. The reason there is because that's
the only way that you can sort this list here.
| | 02:36 | So, now it's a little bit easier for us
to find these fields and we will choose
| | 02:40 | the fields that we want. We will say
full name, and email, and phone, zip,
| | 02:51 | state, city, bio. Actually, now we
determine we don't want the bio, so we just
| | 03:01 | choose bio and we say Clear.
| | 03:03 | Now, I will move these around a
little bit to actually replace that with
| | 03:07 | address, full name, address, city, state,
zip, email and then mobile phone. And
| | 03:16 | again, just to as a review, you can
choose related values and it's more I
| | 03:21 | prefer to that when you're in a child
table than in the parent table that we
| | 03:25 | are in, again in this case here.
| | 03:27 | So, we are just going to stick to the
Current table, we hit Next. When a user
| | 03:34 | goes to this layout it allows us to
sort these, by default, and actually,
| | 03:38 | that's if they use the script that you
will see here in a moment to actually
| | 03:42 | sort that. So, we will say
sort by the full name field.
| | 03:45 | Now, we've determined, wait a minute,
I can't sort by the full name, let me
| | 03:49 | clear that. You see here you can go
back or forward, and of course, you can
| | 03:52 | cancel the wizard and no layout will
be created. We will go back and we will
| | 03:56 | clear out full name. We'll say, first and
last instead, move first and last up to the top.
| | 04:04 | Now, we will go in there and we will
say, let's sort and then just like the
| | 04:08 | regular Sort dialog -- this is really
just a replica of the Sort dialog, we can
| | 04:12 | sort in ascending order, descending
order based on a value list and use the
| | 04:17 | reorder based on summary; all of which
we'll cover in the sorting section and
| | 04:20 | exporting section as well.
| | 04:22 | But we will proceed and then we can
choose from one of the different layout
| | 04:25 | themes. We will stick with Standard here,
we hit Next. In this option there are
| | 04:30 | some things that you can choose if you
are interested. You can choose to show
| | 04:33 | the Page Number, Current Date, the Layout Name,
some Large Custom Text that you would create.
| | 04:38 | You see you get the ability to do this,
we can just say, List Report if we
| | 04:44 | want. You can choose whether it's the
left or the top or the right. I will just
| | 04:48 | give you a quick idea of what this
looks like. I will call it Guide List and on
| | 04:58 | the Bottom footer, we can put things
like Current Date or they are completely
| | 05:03 | optional, you can just have them
all stand on the default of None.
| | 05:07 | One of the things that the FileMaker
New Layout assistant allows you to do on
| | 05:11 | some of the format types is to create a
script at the end of the assistant here
| | 05:16 | in the last pane. Now, it didn't ask
us to do this in Standard, because we
| | 05:19 | didn't have any sort values or anything
like that, but what it's allowing us to
| | 05:23 | do now is and in Standard it's only
dealing with one record, but in a List it
| | 05:27 | deals with multiple records. So, there
is a degree of organizing those records
| | 05:31 | through sorts and stuff like that.
| | 05:32 | So, as we are building this it's
actually building a temporary script in the
| | 05:35 | background and we can choose to
create the script or not create the script.
| | 05:40 | Then in the final screen we can say,
okay, let me look at report either in
| | 05:44 | Preview mode, which is just a preview
of how it's going to print, or Layout
| | 05:47 | mode, but let's select Layout mode for
this one. You will notice that what we
| | 05:52 | have here is enough fields. We can do a
little bit of work in Layout mode, but
| | 05:57 | these fields have us go
off the edge of the page.
| | 06:00 | So, of course, as I mentioned earlier
we can go under Page Setup and we can
| | 06:04 | make it Landscape if we would like. We
see that Landscape doesn't fit, so let's
| | 06:09 | resize some of these and we can take
all those fields and slide them over. What
| | 06:15 | I'm doing is I'm using the arrow keys
on keyboard. I'm arrowing over to the
| | 06:20 | left and we can just crunch these up
just a tad bit or I can go down here and
| | 06:26 | say, let me make it about 50 and then
I hit Enter. Now I can fit all of these
| | 06:34 | under one page.
| | 06:37 | So the assistant will set these up
for you and then you can go in and make
| | 06:41 | whatever modifications that you want.
Now when you are creating these, you can
| | 06:46 | change the colors all you want and we
will deal with formatting in the next
| | 06:49 | chapter, but this gives you a
good basis to create these fields.
| | 06:52 | Now, because I created a script for
this, let's take a look at how that runs.
| | 06:57 | First, we will save the changes to the
layout. What the script does is it saves
| | 07:01 | the navigation to the layout and the
sorting by last name, if you recall.
| | 07:05 | That's what we set up here; stops it
in Preview mode and when we continue,
| | 07:09 | allows the user to print from here if
we would like. You can access that script
| | 07:15 | in ScriptMaker and more on working
with ScriptMaker when we get to that
| | 07:18 | chapter. But back into Layout mode,
we can make any modifications from here
| | 07:24 | that we would like.
| | 07:25 | So, the next one that we are going to
look at is creating the report view in
| | 07:28 | the same manner. So if we go back into
the New Layout/Report and we will say in
| | 07:34 | this case, let's say customer, let's
call it Customer Report. Pick Columnar
| | 07:42 | list, go to Next and instead in this
case we are going to say, Report with
| | 07:46 | grouped data and what that means is,
we still have the column headers and
| | 07:49 | columns and rows, but it's going
to group data in a certain way.
| | 07:52 | So, in this case we will say, let's
group all of our customers by state and
| | 07:56 | then under each state would go
alphabetically by state, then under each state
| | 07:59 | it will list all the customers in that
state alphabetically by name. So let's
| | 08:02 | proceed forward here.
| | 08:04 | If I happened to have some total
fields created, we can actually do a report
| | 08:09 | that way. As a matter of fact, we will
go into, change this up a little bit.
| | 08:14 | Let's do adventure, Adventure Report,
Include subtotals and the reason that I
| | 08:24 | change that is because I know our
Adventure table has some subtotals created
| | 08:28 | and I will go in and will sort this
again, let's say by field name. What we are
| | 08:36 | going to do is say, let's pull in --
this is for each adventure so let's pull
| | 08:41 | in the country and we will
sort them by country in this case.
| | 08:44 | We will need the title of the trip and
we will say the individual price of the
| | 08:51 | trip. But we are also going to put in
the Price Total, which is the sort value
| | 08:56 | that we are going to be using. We
don't need to necessarily worry about the
| | 08:59 | order here. You will see here, we will
get a chance in a second to change that.
| | 09:03 | So, we've got the country, the title,
the price and the Price Total. So let's
| | 09:07 | go in here and now we say organize
by category and if you remember in the
| | 09:11 | previous section, we've talked
about organizing these by country.
| | 09:14 | You see that your preview changed. So
this is sort of emulating what it would
| | 09:18 | look like to have country one and then
all of the adventures in the country;
| | 09:21 | country two all the
adventures in that one and so on.
| | 09:24 | So, it's customary, it will only
really choose one of these, but you can in
| | 09:28 | some more sophisticated fashion, so
stack them in here, but we will proceed to
| | 09:31 | next pane. Now we wanted to be
sorted by country and here is where we can
| | 09:37 | provide a secondary sort order. So
what that means is if the countries match
| | 09:42 | then anything that has a matching
country will be sorted by title and you can
| | 09:47 | choose any one of the sort
options here just like in a sort view.
| | 09:50 | Now, since we pick the report with the
grouping, I can choose the summary field
| | 09:56 | and you'll see I have one summary
field created in this table and it's Price
| | 10:00 | Total. So I can select Price Total and
it knows by looking at the field type
| | 10:04 | which ones to present so it grays
out anything else and just leaves the
| | 10:07 | summaries.
| | 10:09 | I can say, Price Total categorized by
so I chose country already, that's what
| | 10:13 | it's got chosen there. It allows us
to show and you will see back here the
| | 10:20 | values, the total you can show up
either below here or on the same line as the
| | 10:25 | name of the country, but we are
going to say, below the record group.
| | 10:28 | Now, once we've done configuring now
we are going to add the subtotal, and we
| | 10:31 | see that all the different subtotal
information is added here. In more complex
| | 10:35 | list reports you can add a series of
different subtotals, but for now we will
| | 10:39 | just stick to that one. We will say
Standard again and we will proceed through
| | 10:44 | these options. We will choose to create
a script and we will look at this in Preview mode.
| | 10:52 | So, now you see what we have is a
report that says here is Argentina or here
| | 10:58 | is Australia and here is all the
ones listed in Australia and if we comb
| | 11:01 | through here, here we go. The United
States is a little bit clear. We have got
| | 11:05 | United States at the header; all the
different trips listed in alphabetical
| | 11:09 | order in United States. Then at the
bottom the total for United States with the
| | 11:13 | total value for the Price Total.
| | 11:15 | Now, if we go into Layout mode, we can
make a couple of changes like we could
| | 11:20 | delete the Price Total fields if we
would like to. Actually, we can make any
| | 11:25 | other changes that we would like. So,
we will cover a little bit more of
| | 11:28 | formatting some of these layout
objects when we get into the next couple of
| | 11:31 | chapters, working with layouts
and formatting layout objects.
| | 11:35 | We will take a look at the next layout
format type that we can create using the
| | 11:38 | assistant and that's
called creating a table view.
| | Collapse this transcript |
| Creating a table view| 00:00 | We can also use the Report Assistant to
create a table view and table views are
| | 00:05 | pretty handy because they essentially
mimic exactly what a spreadsheet would
| | 00:09 | look like with your same data. Now I will
show you how we can work that a little bit
| | 00:12 | when we build one. But as with any of
the other layout format types we start in
| | 00:17 | with Layout mode and we go out to New
Layout/Report and we will choose this
| | 00:23 | time for this exercise we
will do a customer table.
| | 00:27 | These are good for admin layouts, if
you want to just look at all the data and
| | 00:31 | fit the most data on screen that you
can and just kind of work with it and sort
| | 00:34 | it around and look for patterns and
stuff like that. In this case we will keep
| | 00:38 | it in the Layout menu and we choose
table view and you see the preview changes
| | 00:42 | a bit and now we will say
which fields that we want.
| | 00:45 | You could just go in here. The easiest
way to do it is just to double-click on
| | 00:48 | each one of these, and here is some
contact information and maybe we will even
| | 00:55 | put the ID and then we change the
order that we want this to appear, maybe
| | 01:00 | we'll put home before mobile. We say
Next and we just choose the format type
| | 01:04 | that we want and I have been sticking
with the Standard or Default but the only
| | 01:09 | real difference in Default is that
field label is in bold and the field
| | 01:13 | themselves are embossed but that won't
matter in the table View and I will show you why.
| | 01:18 | Let's look at it in Layout mode. This
looks a lot like the standard form that
| | 01:22 | you created, but one major difference
is that if you look at this in Browse
| | 01:26 | mode, you'll notice that it looks a
lot like a spreadsheet and that's the
| | 01:31 | intended result of a table view
itself. You see these question marks that
| | 01:35 | indicates that there is a field data
in here that extends beyond the size of
| | 01:39 | the field. One of the nice things about
the table view is we can just click and
| | 01:43 | stretch that over, we can make it as
long as we like, just like the same thing
| | 01:47 | which you would do inside of a spreadsheet.
| | 01:48 | When you click on these column headers,
it will sort by the different values
| | 01:55 | and we'll just go with the default of
id. Now back into Layout mode, you see
| | 01:59 | that we can control the order of the
field. So we are doing a home phone and
| | 02:05 | then mobile and if we look at this in
Browse mode, we will save those changes;
| | 02:16 | we see that those have switched around.
| | 02:18 | Now the other thing that we can do is
we can click on one of these columns and
| | 02:23 | drag it all the way over that way as
well. So we have got full name, email, we
| | 02:27 | put the phone after that. So this is a
great way to just work with your data,
| | 02:31 | sort it anyway that you want. You can
still do searches and sorting and look at
| | 02:38 | all the data in your database and you
see we have got 1500 records in this
| | 02:41 | case. It is a lot easier for us to work
with them when they are in this format.
| | 02:47 | Really the difference since in Layout
mode they both Standard form and the
| | 02:51 | table view look the same. You can see
when we go back into Browse mode, we are
| | 02:56 | viewing as a table and I'll get into a
little bit more of that in the Working
| | 03:00 | with Layout section.
| | 03:02 | So next we are going to take a look
at one of the neat features and really
| | 03:06 | useful features is the ability to
create labels and we are going to use the
| | 03:10 | assistant to create labels at this point.
| | Collapse this transcript |
| Creating labels| 00:00 | There are a couple of things you want
to keep in mind when you are printing
| | 00:03 | label layouts. Of course we will talk
about creating those label layouts using
| | 00:08 | the Layout Assistant but before you get
started you should know that labels are
| | 00:12 | very sensitive to the margins that are
on screen. So in order for FileMaker to
| | 00:16 | build those margins, it is going to
use whatever printer you have setup.
| | 00:24 | So the printer that you would choose,
you can do Page Setup and then also if
| | 00:28 | you go into -- you can also access this
information under printer. So when you
| | 00:33 | choose the driver-- So what you want to
do first is go under File, Print Setup
| | 00:40 | in Windows or File, Page Setup in Mac
and let me move this down just a little
| | 00:45 | bit and what you are going to do then
is in the Setup dialog box, you want to
| | 00:50 | first choose the printer that you want
to use and that's on Windows or you go
| | 00:53 | into Print and choose that in Mac and
then it will set it for the next time you
| | 00:57 | open up this dialog, as I just did a moment ago.
| | 00:59 | There is a couple of things to
consider here. If you are using individual
| | 01:02 | sheets for labels with like a laserjet
or a inkjet printer, select the size of
| | 01:06 | the label sheets themselves under the
Paper Size and choose your printer. What
| | 01:14 | FileMaker is now doing is pulling in
the margin specifications for this printer
| | 01:19 | and loading them into the layout when
we create this layout. If you happen to
| | 01:23 | be using continuous feed labels for a
dot matrix printer, you can create a
| | 01:27 | custom paper size equal to the
dimensions of one label if you would like and
| | 01:32 | that's by going down to Manage Custom
Sizes and then when that pops up, you get
| | 01:37 | the ability to choose all
the different custom sizes.
| | 01:41 | In this case we are going to go with
US Letter and format it for the printer
| | 01:45 | that we are choosing here now. This
might require if you have a certain machine
| | 01:49 | other than the one where you are
developing, you might want to go on and do a
| | 01:52 | little bit of tweaking to this
layout when you are done and do some test
| | 01:54 | printing. If you have the opportunity
to develop this layout on the machine
| | 01:58 | where the printing is going to occur
that's going to be the best case scenario.
| | 02:02 | So now that we have setup our printer
margins, we go into New Layout/Report and
| | 02:09 | we will create Customer Labels, and we
will choose Labels, include that in the
| | 02:17 | Layout menu. One thing to notice that
FileMaker has all these different DYMO
| | 02:25 | and Avery label templates already
built into FileMaker Pro. So you can go to
| | 02:30 | any office supply store and find all
the different Avery labels or you can go
| | 02:35 | and order them online from Avery Direct.
This allows you to just simply pick
| | 02:39 | whatever label that you want or you
can create a custom labels if you would like.
| | 02:44 | You can say how across that you want,
2 and you can see what the Width of the
| | 02:48 | labels is going to be. You can modify
your margins. So instead of going here
| | 02:52 | and using the Avery selector you can
create your custom memberships here in
| | 02:57 | this layout if you would like and for
more information on that, you can always
| | 03:00 | click on your Help window here on this
Specify Label Layout pane. But we will
| | 03:04 | choose the most popular Avery5160, we
will hit Next and since these are going
| | 03:09 | to be shipping labels let's pick a
couple of fields, home address and these are
| | 03:15 | merged fields and we will cover merged
fields in the next chapter but these are
| | 03:19 | text representation.
| | 03:20 | So you can do things like, I'm going to
hit Return and go down to the next row
| | 03:25 | where I can add city and here I can
type in a comma and even hit Spacebar in a
| | 03:30 | space and do space for state. I can
even do another Spacebar and I will hit Zip
| | 03:37 | and we can go to the next screen
where we will preview this and actually we
| | 03:41 | will go into Preview mode. Now you see
what it does is it positions everything
| | 03:46 | and I think we should go back into
Layout mode, you will see that it creates
| | 03:49 | this interesting labeled view and it
gives us some page margins and you can see
| | 03:54 | that we might have to move and this all
comes in as one text area in the merged field.
| | 03:58 | So you can select it and tab it over if
you want and tweak it a little bit but
| | 04:03 | as you print these off in your printer,
you can move them over a little bit and
| | 04:08 | the best idea here is to print off one
of these pages and put it on top of one
| | 04:12 | of your single sheet label feeds, in
this case for the Avery5160, kind of hold
| | 04:18 | it up to the light or something, so
you can see through it and see where the
| | 04:20 | edges are and just go back and forth
into Layout mode and move this over with
| | 04:24 | your arrows or tweak it as necessary.
| | 04:26 | This is just how easy it is to create
Label layouts in FileMaker Pro, then of
| | 04:31 | course you can use anyone of the Avery
labels and just as a note in FileMaker 9,
| | 04:35 | FileMaker has added about a half a
dozen or so very frequently requested
| | 04:40 | Avery label styles. So if you thought
that maybe a label that you wanted to use
| | 04:44 | wasn't in previous versions when you
were developing, take a look again because
| | 04:48 | I think you will find that there are
some new sizes in there for you to choose
| | 04:50 | from. Finally we are going to look at
creating something that's similar to
| | 04:54 | creating a label but creating envelopes as well.
| | Collapse this transcript |
| Creating envelopes| 00:00 | The last layout type that we are going
to build is the Envelope layout and we
| | 00:04 | are going to be using the Assistant for
building one of these layouts also and
| | 00:08 | that same considerations that I have
mentioned when building a Label layout go
| | 00:12 | into the building of an Envelope layout.
They have to do with the printer. So,
| | 00:15 | you are going to have to go into your
Print Setup or Page Setup and choose the
| | 00:19 | Printer that you want so that the
margins can be set and it's going to build
| | 00:23 | the margins and save your layout
sizing and configuration based on whatever
| | 00:27 | that print driver was
when you created the layout.
| | 00:29 | So if you are creating an Envelope
layout or a Label layout on a machine that's
| | 00:33 | different from the one that you will
be printing, keep in mind that you will
| | 00:35 | have to load this file on the machine
where you'll print and go in to make some
| | 00:39 | minor modifications by printing out
some test forms. So the same considerations
| | 00:43 | for the Label layouts go
into creating Envelope layouts.
| | 00:46 | So to initiate the Report Assistant
of course we go into Layout mode first
| | 00:51 | under the View menu and then under the
Layout menu, we choose New Layout/Report
| | 00:59 | and we'll create Customer Envelopes
and choose Envelope and hit the Next
| | 01:09 | button. I can Shift+Select all of these
and add fields and you will see that it
| | 01:20 | adds them in sort of an interesting way.
What I can do here is, do a little bit
| | 01:24 | of moving around and I will
copy that, I can paste it up here.
| | 01:30 | You see basically this is just a
text area; it is just allowing me to edit
| | 01:33 | inside the text area. So I can do
everything that I can do inside of a text
| | 01:38 | field and what I'll do is go in and
move these around at will. I got my Return
| | 01:46 | character after the billing address,
let's put a comma and a space after city
| | 01:51 | and a space after state and go to the
next one and view it in Preview mode and
| | 01:57 | if we go back into Layout mode, now we
are going to want to tweak the position
| | 02:02 | of our envelopes and it's a little
bit trickier than labels because we have
| | 02:06 | Avery templates to work with. If you
are using a manual feed envelope and you
| | 02:09 | are feeding it into a center feed
printer, one of the things that you are going
| | 02:13 | to want to do is to keep the Header and
just to adjust the Header as necessary
| | 02:17 | to match the printing to the envelope
size because this will move this whole
| | 02:19 | area up for you.
| | 02:21 | But if you are doing the manual feed
envelopes into a left edged printer keep
| | 02:24 | the Header adjust it as necessary
and match to the printing area to the
| | 02:28 | envelope size itself. So a good rule of
thumb here is for the Header to size to
| | 02:33 | subtract 8x10 from the height of the
envelope or if you are using manual feed
| | 02:38 | envelopes in a right edged printer,
delete the Header altogether because this
| | 02:42 | is actually the part that's going to
represent the right edge and adjust the
| | 02:45 | Footer as necessary or add in a Footer
part this way in order to give yourself
| | 02:52 | some buffer room to move this area around.
| | 02:54 | So Envelope is a little bit trickier
but you use the Wizard and then once you
| | 02:57 | have done with the Wizard, you can do a
little bit of tweaking that's going to
| | 03:00 | take some printing out and testing
your reporting. You don't have to waste
| | 03:02 | envelopes, you can just print an 8 x
10 piece of paper and hold it up against
| | 03:05 | the envelope depending on how you are
going to feed it in, then again FileMaker
| | 03:08 | Pro uses merged fields here when you
are creating these Envelope layouts.
| | 03:11 | So keep in mind you can't create any
records through these views or modify any
| | 03:15 | of data for the views but you could
easily just switch over to a table view if
| | 03:20 | you wanted to in Browse mode and make
any modifications to your data and then
| | 03:25 | switch over into your Envelope view
so that you can see the different ones.
| | 03:29 | Also if you are creating scripts, like
we did with the Guide List keep in mind
| | 03:34 | that they are going to be predicated
upon whatever the found set is when you
| | 03:36 | execute the script.
| | 03:37 | So if you create a script with an
Envelope layout or a Label layout or List
| | 03:41 | keep in mind when you are training the
users or if you are the user that you
| | 03:44 | are going to have to first isolate a
found set of records before you proceed.
| | 03:47 | So now in the next chapter we are
going to look a little bit further into
| | 03:50 | working with layouts and how to setup
the layouts and the different parts that
| | 03:53 | I have briefly discussed and navigating
to different views and how to work with
| | 03:57 | some of the objects on screen.
| | Collapse this transcript |
|
|
8. Working with LayoutsThe Layout Setup dialog window| 00:00 | In Chapter 7, Creating Layouts, we
took a look at the different ways that we
| | 00:03 | can create layouts, mainly using the
FileMaker Report Assistant, but also we
| | 00:07 | could duplicate and modify the layouts
and there are some other configurations
| | 00:11 | within the layouts after one is
created that you'll need to become familiar
| | 00:14 | with and the first of those is
called the Layout Setup dialog.
| | 00:17 | In order to take a look at Layout Setup
dialog, we will open our Exercise File,
| | 00:22 | Working with Layouts, Lucky_You_08_01
and we will go into Layout mode, do a New
| | 00:32 | Layout and we will just quickly
create a standard form here. Pull in some
| | 00:41 | address information and we will just
go here. So now once you are in Layout
| | 00:47 | mode and you have created or selected
one of the layouts and of course you can
| | 00:50 | navigate to anyone of the layouts
that already exist by going under the
| | 00:54 | dropdown menu found here.
| | 00:56 | You will find when you are in Layout
mode that there is a menu called Layouts
| | 01:00 | and there are a couple of different
things in here that we are going to take a
| | 01:02 | look at in this chapter. The first of
which is the Layout Setup. Of course you
| | 01:06 | can navigate to any one of the layouts
when you are in this. Of course you can
| | 01:10 | create new ones and that's how we
started the Assistant. We could duplicate an
| | 01:13 | existing layout and even delete one
that you don't need to use anymore.
| | 01:16 | But the next option is the Layout Setup
dialog. You will see there are a couple
| | 01:20 | of different things here that you can
control once a layout is created. The
| | 01:23 | first of which is the Name. FileMaker
will create layout names for you and if
| | 01:27 | you don't provide something that
provides a little bit more clarity, it is
| | 01:30 | just going to name it Layout whatever
number that you are on in the internal
| | 01:34 | index of the layouts. So in this case
we will just call it Customer Billing and
| | 01:39 | if I ever need to go and change the
name of the layout, I just come to the
| | 01:42 | Layout Setup dialog and I can
make that modification here.
| | 01:45 | Also this is where you can either show
it when you are in Browse mode in the
| | 01:48 | Layout view for the users and if I
uncheck that then users can not see that in
| | 01:54 | layout. Anyone who has access to
Layout mode can always see every layout
| | 01:58 | because that's the only way that you
can access those. Also we can determine
| | 02:02 | which table or base table that we are
going to be showing the layouts from, it
| | 02:05 | provides some context here, it is bit
of an advanced topic but it's important
| | 02:10 | that you determine where
these fields should lie.
| | 02:13 | Now it doesn't remove the fields if I
change something, you will notice that if
| | 02:17 | I hit OK, it just makes some related
values and the context is going to be a
| | 02:21 | little strange. So you really have to
map all that up before you even start
| | 02:25 | designing some of your layouts. But
again an advanced feature that will be
| | 02:28 | covered in the Beyond the Basics and
then we talked about this one, we were
| | 02:33 | talking about working with records but
if you want the user, every time they
| | 02:36 | commit a record to automatically save
the records to the database table then
| | 02:40 | you'd leave default setting of Save
record changes automatically checked,
| | 02:44 | otherwise if you wanted to have an
additional warning come up after they have
| | 02:48 | committed and before it actually
saves to the table, you can uncheck it.
| | 02:51 | The same is true if you want the fields
frames to show when a record is active
| | 02:55 | or when it is been edited. Also this
is covered in later titles but there are
| | 03:01 | different 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:09 | copy of FileMaker Pro Advanced which is
formally known as the Developer Edition.
| | 03:15 | Once those are created, you can
permanently relate those to a layout, so if I
| | 03:20 | want every time somebody comes to
this layout, I want the menu set to be
| | 03:24 | Customers, this is where I would set
that up. So Layout Setup if we go into the
| | 03:28 | Browse mode, you will notice that the
menus have changed and each time that a
| | 03:37 | user goes to this they will see those
layouts but we will just go back in the
| | 03:40 | Layout Setup and do Standard FileMaker menus.
| | 03:44 | Now in the next tab it's called Views
and each time you create a new layout all
| | 03:49 | the different views are chosen and you
have got three different ways that you
| | 03:51 | can look at a FileMaker layout. One is
in Form View which is just one full page
| | 03:56 | record on screen at a time, another
is in List view which shows multiple
| | 04:01 | records on screen at a time and
another is table view. When we were covering
| | 04:05 | creating layouts using the assistant
we created List view and table views, so
| | 04:09 | you are familiar with how those work
but the Form view is what we have here and
| | 04:12 | a lot of time the view is going to
match if we go into Browse mode you will
| | 04:16 | see, if I look at this as a List, it's
a little awkward because even though I
| | 04:22 | have multiple records, this is
something that should be a Detailed view.
| | 04:27 | If I go into looking at it as a Form it
is only showing me one record at a time
| | 04:31 | until I proceed to the next record.
That makes more sense for this Layout view
| | 04:36 | or I may view it as a table, doesn't
matter what it looks like in Layout mode
| | 04:40 | because it is always going to be
showing -- anytime a user is in the Browse
| | 04:44 | mode, they can toggle between these.
| | 04:46 | So going back to the Form and then
going into Layout mode, one of the ways that
| | 04:51 | you can control this is by going into
Views and saying, I intended for this to
| | 04:57 | be a Form view, so let's turn off the
ability to have it viewed in this view
| | 05:01 | and turn off the ability to have it
viewed in table view and see what happens
| | 05:05 | when we go into Browse mode. We will
save those changes and you will notice
| | 05:08 | that they are grayed out, now
those options are grayed out.
| | 05:12 | We go into Layout Setup, and again we
look at Views, now something to take a
| | 05:17 | look at when you click on the table
view in the Properties, you can either view
| | 05:21 | the table horizontally or vertically
and you can either choose to include a
| | 05:26 | Header part or a Footer part when you
are viewing it which means you can keep
| | 05:29 | the Header on there and the Footer if
you want to put like a title of your
| | 05:32 | report that you are printing in
table view, or if you want to put some
| | 05:35 | information on the Footer.
| | 05:36 | But traditionally those who are
working with table views are just kind of
| | 05:39 | working with the raw data rather than
using it as a report and also there is
| | 05:43 | some functionality of resizing columns,
reordering the columns, allowing to
| | 05:47 | sort when you selected the title, the
head itself and you can turn those on and
| | 05:51 | off in this area. Also the custom
height of the rows you can determine and you
| | 05:56 | see it by default it is 14
pixels and you can change that,
| | 05:59 | so that when a layout is used to
create a table view that it will carry those
| | 06:03 | properties along with it.
| | 06:06 | The last one is the Printing
Properties and you can configure these as fixed
| | 06:11 | page margins if you have some special
printing that you are doing, if you are
| | 06:14 | printing on to a pre-printed page or
if you have created labels, you can
| | 06:19 | determine whether or not you are
going to print in two or three columns and
| | 06:23 | whether or not they are going to
snake across or snake up and down first.
| | 06:28 | So those are the different ways
that you can modify some of the layout
| | 06:31 | preferences and some of the viewing
preferences and the next thing that we are
| | 06:35 | going 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:00 | FileMaker Pro layouts are divided
into things called layout parts and these
| | 00:04 | are sections of the layout that
determine how the data and the field is going
| | 00:08 | to be treated and displayed.
For example in the exercise files
| | 00:11 | Lucky_You_Tours_08_01, where in the
previous movie I created the standard layout
| | 00:16 | using these fields, you see that I
have these little bubble looking things here,
| | 00:20 | we have got Header, Body and Footer.
| | 00:23 | Those designate which layout parts it
is that we are looking at and you can see
| | 00:27 | that they are delimited by a dotted
line so we know where one part ends and
| | 00:31 | the other begins. These are the most
common, Header, Body and Footer, and this
| | 00:35 | Part tool allows us to resize the
different parts and even delete them and I'm
| | 00:42 | clicking on the Delete key right now
or I can right click and find out
| | 00:45 | information on the part itself.
| | 00:48 | So what we are going to first do here
is review the different roles that these
| | 00:51 | parts play and why there are separate
parts. For starters by using parts you
| | 00:56 | can control how FileMaker Pro prints
data. So for example, you could have
| | 01:00 | whatever you are working with print
only once for each record and in that case
| | 01:04 | you would have a Body. For every
record there is going to be another row,
| | 01:07 | another iteration of Body. Or in the
case of a Header, you could have something
| | 01:12 | print only on the top of the very first
page, or another example would be only
| | 01:16 | before or after groups of sorted records.
| | 01:19 | There are all sorts of different ways
that you can manipulate these with parts
| | 01:21 | in combination of parts. One rule to
remember is that each layout must have at
| | 01:26 | least one part. So if you see if I go
to Delete the Header part and then try to
| | 01:30 | delete this part, I get a message, it
says, at least one part must remain on
| | 01:34 | the layout because otherwise you don't
have anything on your layout and that
| | 01:37 | really would be counterintuitive in a
development environment. Layout parts can
| | 01:41 | contain fields or portals or buttons,
text and any other object or anything
| | 01:46 | that you draw or any kind of graphics
that you paste on to the layout as well.
| | 01:50 | The way that you can organize these,
in this case I had created this layout
| | 01:55 | using the New Layout/Report
Assistant and it automatically creates the
| | 01:58 | appropriate layout parts, depending on
what choices that you are making but you
| | 02:02 | can add or change or delete the parts
after you have finished the assistant as
| | 02:06 | needed. So for example, you will see
here in the status area I have got a Part
| | 02:10 | tool and if I click down on it, you
kind of see this dotted line appear and if
| | 02:14 | I drag and move this up to the top and
let go I see the Part Definition dialog
| | 02:21 | appear and this gives me the
opportunity to determine which part that I want
| | 02:26 | and usually at the top of the page you
either see a Title Header or a Header.
| | 02:30 | The Title Header will appear only once
at the top of the first page or on the
| | 02:34 | first screen depending on whether you
are printing it or you are just looking
| | 02:36 | at it on screen. It replaces the normal
Header, if there is a Header in there.
| | 02:41 | So if I have both the Title Header and
a Header on a report or some layout that
| | 02:46 | I'm going to print then on page one the
values that I put in the Title Header,
| | 02:49 | so in this case if I say
bring this field back down here.
| | 02:57 | If I use some text then I say Title and
now I'll add another part which is the
| | 03:07 | Header and you see that I can't add
two Title Headers. So it grays out the
| | 03:11 | Title Header and I already have a body,
so it is graying that part also. There
| | 03:15 | is a bit of intelligence built into
this part definition. So I'm going to add a
| | 03:19 | Header and we will just for the sake
of testing keep these fields in our Body
| | 03:28 | and we'll call that Header, open it up
a little bit, actually what we will do
| | 03:34 | first, quickly do the search.
| | 03:39 | Now let's take a look at that, isolate
some records because we have got 1522
| | 03:43 | customers in here as you see right there.
And we deal a bit more with that when
| | 03:48 | we get into finding and sorting of data.
But I'm just going to preview what the
| | 03:51 | report looks like. So you see that on
page one, I have got the text or I could
| | 03:56 | put graphics or logo or change the
color or put a field whatever I want to do,
| | 04:00 | the text in the Title Header appears
on page one. On the top of page two and
| | 04:05 | page three and page four you see that
only the Header appears and not the Title
| | 04:10 | Header.
| | 04:11 | Going back into Layout mode, the body
of each object that you put in the body
| | 04:16 | including fields or text objects or
graphics or whatever it maybe appears once
| | 04:20 | for every record in the found set. So
you will notice you can make this be one
| | 04:25 | line. Back in our original layout,
there is also some other parts that we
| | 04:33 | wanted to look at. If you remember we
originally had a Footer part and a Footer
| | 04:39 | part appears at the bottom of every
screen or page unless you add a Title
| | 04:43 | Footer. The Footer and the Title Footer
are really just the mirror opposite of
| | 04:47 | the Title Header and the Header.
| | 04:48 | Instead of being at the top of the very
first page or the top of each page, it
| | 04:52 | is at the bottom of the very first page
or the bottom of each page. So somewhat
| | 04:55 | self-explanatory and there are
some other parts that are a lot more
| | 04:59 | sophisticated and these are the summary
layout parts and if you want to include
| | 05:04 | summary data on a layout for example
things like subtotals or grand totals,
| | 05:07 | averages, accounts and so on, you will
place summary fields and summary layout
| | 05:11 | parts. There is grand summaries and
as you see you have Trailing grand
| | 05:15 | summaries as well.
| | 05:16 | We are going to cover those when we are
talking about putting together reports.
| | 05:18 | So we will get back to that in a little
bit more detail in a later chapter. Now
| | 05:24 | there is a dialog underneath the
Layouts menu, if we go to Part Setup that
| | 05:29 | allows to reorder these parts and you
can delete them if you would like and
| | 05:33 | delete the contents within them or you
can add a new area if you would like to
| | 05:39 | and again it logically determines
what's already in there and what order you
| | 05:43 | have already have things but you can't
errantly put in different part values
| | 05:46 | that might not make sense at all for
the report that you are trying to develop.
| | 05:50 | So if I go in, in Layout mode, you can
reorder the parts here, you can add them
| | 05:54 | or change them and delete them if
necessary or you can drag the part icon to
| | 06:01 | any location that you would like. Also
if these get in the way of the fields,
| | 06:06 | for example if we have a field on
this part and you can't see what you are
| | 06:09 | working with, down on the bottom left
hand corner you will notice just to the
| | 06:13 | left of where your mode is indicated,
you see you can click on this little
| | 06:17 | icon. That actually shrinks them up to
the left hand side. Keep in mind this
| | 06:21 | isn't counted in on the margins when
you are doing some sizing out there, but
| | 06:24 | allows you to keep these out of the way
so that you can work with the entire
| | 06:27 | printable area.
| | 06:28 | So the next thing that we are going to
look at are taking a closer look at the
| | 06:31 | Layout tools and some of the other
things that we see here in the status area.
| | 06:34 | We have already looked at the Part icon,
but we are going to look at some of
| | 06:37 | these other elements in the next movie.
| | Collapse this transcript |
| Exploring layout tools and status area| 00:00 | Once you have your layouts created and
your fields thrown on the layout or your
| | 00:04 | parts setup, it's time now to apply some
formatting or maybe add more fields or
| | 00:10 | modify some of the look and feel or the
contents of the layout, and before you
| | 00:14 | do that you are going to have to get
familiar with some of the tools that are
| | 00:16 | available to you. So in this section,
we are going to take a look at the tools
| | 00:20 | that appear in the status area
where you go into Layout mode.
| | 00:24 | So the exercise file that I'm using and
if you open up Exercise Files, Working
| | 00:30 | with Layouts_08_01 and go into Layout
mode, we will go down to the Customer
| | 00:40 | layout, which is just a blank layout
which will give me the an opportunity to
| | 00:43 | not only show what some of the tools
are but give you some really helpful tips
| | 00:46 | when you are using these tools. First
off, you'll notice that as we reviewed
| | 00:50 | when we were talking about the
different modes early on in this title, when you
| | 00:54 | are in Layout mode the status area
changes. The Layout popup will show every
| | 00:58 | layout that's available. When you are
in Layout mode, you can see every single
| | 01:01 | one of the layouts and of course
there are separators if need be.
| | 01:05 | You can navigate to each one of those
layouts through the Layout popup or you
| | 01:09 | can navigate to the layouts using the
rolodex and if you know which layout you want,
| | 01:15 | if for instance, you are in 26 and
you want to get to 11 just type in 11,
| | 01:20 | hit the Enter key and it will take you
right there. Below that you can see the
| | 01:24 | total numbers of layouts that are
available. So it helps you kind of manage how
| | 01:27 | many of these that you have got at
your disposal. And then below that you see
| | 01:30 | this little matrix of tools. It's sort
of a locked palette here and I'm going
| | 01:35 | to briefly introduce you to
what each one these things are.
| | 01:38 | The default anytime you go into
Layout mode is going to be the cursor,
| | 01:41 | the arrow selector. This allows you to
drag and select items on screen or if you
| | 01:48 | have fields, you can select the fields
and reposition them or it allows you to
| | 01:54 | drag select or select
items and delete them as well.
| | 01:59 | So unless you have selected another tool,
by default your cursor is going to be
| | 02:03 | the arrow. Next is this A, a pretty
self-explanatory text writing tool. You
| | 02:09 | will notice that it allows to write
text that you can put into your header, you
| | 02:14 | saw that when we were talking about the
layout parts, or you can use it if you
| | 02:20 | have a field on screen. Anything
that's text like a field label for example,
| | 02:27 | you can click on it then it will
automatically change to your tool, if you are
| | 02:32 | in another tool here you can select it
and double clicking will toggle over to
| | 02:36 | the Alpha tool and allow you to modify
text then when it turns back into your
| | 02:41 | Arrow tool, you can move these
things around on screen, if need be.
| | 02:45 | Also then to the right of that, you see
your Line Drawing tool. So if you want
| | 02:50 | to add some visual effects to your
screen, you can see that you can create
| | 02:55 | lines and move these lines around and
stretch out the sides if you want to, the
| | 03:02 | ones that I have actually drawn on
screen. So something that if you are
| | 03:06 | developing some pretty custom
interfaces, you might want to use that and in
| | 03:09 | addition, you have the Rectangle
Drawing tool and a Rounded Rectangle drawing tool.
| | 03:16 | If you want this to be the background
for some fields what you can do is select
| | 03:20 | it, this part that you just drew and
go under Arrange and you have the option
| | 03:26 | to bring to front, bring forward, send
it back and so on. So you can use this
| | 03:30 | to highlight certain groups of fields,
it's a common use for these tools. And
| | 03:35 | then here you have an Oval drawing
tool and once any of these are added on
| | 03:40 | screen, you can simply click on it
and drag it around to resize it, if necessary.
| | 03:45 | This tool here allows you to add
either a checkbox or a radio button, sort of
| | 03:51 | multiple selector field value to a
layout. If you select that and then you draw
| | 03:56 | a space, you will see that the Field
Control Setup dialog appears and we are
| | 04:01 | going to cover more of that when we
get into the next chapter on formatting
| | 04:05 | layout objects when we talk about
formatting fields, but just as a little bit
| | 04:08 | of a preview, here you would select,
and if you want it to be a checkbox, let's
| | 04:12 | say with ratings and then you'll see
that it draws on screen, so that instead
| | 04:17 | of just having a normal text field value,
you can have it be checkbox, so that
| | 04:22 | when you are in Browse mode, users can
go on and check some of those options.
| | 04:28 | So back to the quick tour, this tool
here and actually you will see as I'm
| | 04:34 | going to out of necessity open up the
body here. This next tool is a Portal
| | 04:40 | drawing tool and we will talk more
about that in the Portal section and also in
| | 04:45 | the next chapter we are going to talk
about using tab controls and that's what
| | 04:50 | that drawing tool there is that's a
feature that was new in 8 and a feature
| | 04:54 | that was new in 8.5 is the Web Viewer
setup which we are going to talk more
| | 04:59 | about in the Web Viewer chapter.
| | 05:01 | Then finally if want to draw a button,
and a button is something that you can
| | 05:04 | assign either a script step or a
script too and if you want to learn a little
| | 05:09 | bit more in any one of these dialogs
you can just click on the Learn More link
| | 05:12 | which is a new feature in 9. A lot of
these we are going to get back to in the
| | 05:16 | later chapters but just as a brief idea
of what some of these tools are and you
| | 05:19 | saw me using this one, if you want to
put fields on your layout, you can either
| | 05:23 | do Insert Field, Part Object, all
these different things that are also
| | 05:28 | representing here as tools, or just an
image can be inserted, the current date,
| | 05:34 | time, user name or symbols or
another type of field is a Merge Field and
| | 05:39 | that's similar to what we were using
when we were making envelopes and labels and such.
| | 05:45 | But if you want to draw a standard field,
you just click and then drag and then
| | 05:50 | release until the Specify Field dialog
pops up and you can then choose which
| | 05:57 | field do you want, from which table
or which related table and determine
| | 06:01 | whether or not you want the label to
show up. Then once that field is on screen
| | 06:05 | you can drag and create any different
size of the field that you would like to
| | 06:09 | and the same is true for the part and
if you remember when we were talking
| | 06:12 | about the parts, I just click down,
drag and release and the Part Definition
| | 06:16 | dialog will appear in that case.
| | 06:19 | Here are some of the tools for picking
fill colors and the fill style and also
| | 06:25 | when you select a field and we will
talk about these more in the next chapter
| | 06:29 | on formatting layout objects but that's
what these tools are here. A couple of
| | 06:32 | tips, when you click on an Object tool,
and you select it, you will notice that
| | 06:35 | when you are done using it and you
release it, it always reverts back to the
| | 06:40 | arrow. If you want to do a bunch of
let's sat text area, or draw a bunch of
| | 06:43 | boxes on screen, you can lock
this selection by double clicking it.
| | 06:47 | So if I double-click on it, you will
notice that it's now selected and I can
| | 06:52 | add some text here and I'm still in
Text mode, so everywhere I click I'm able
| | 06:57 | to do text until finally I click on
that again or click on my arrow again to
| | 07:03 | release it, or I can press the Esc or
Enter key to click on the Selection tool
| | 07:08 | and unselect. So when it's locked I can
hit Esc and that will unlock it for me.
| | 07:12 | So lot of those things can be done on
the keyboard and if you press the Enter
| | 07:16 | key when I have no object selected on
screen which I will do right now, this
| | 07:20 | will cause the most recently used
Object tool to be reselected. If I want to go
| | 07:24 | back to something that I don't have
selected and I have no object on screen, I
| | 07:29 | can just click on the Enter and it will
revert back to whatever that last tool
| | 07:33 | was. Another tip, as it pertains to
working with the parts is if you click on
| | 07:38 | the part label and choose a fill color
it will change the color of the entire part.
| | 07:44 | So that might be useful to you if you
want to change the background color of an
| | 07:48 | entire item and then have something
transparent laid on top of it for example.
| | 07:52 | Drag selecting when you are in the
Arrow mode over many different objects will
| | 07:58 | select all of those objects at the same
time. So if you want to select multiple
| | 08:02 | objects you can use the Drag Select and
Ctrl or Option dragging if you are in a
| | 08:10 | Mac, Ctrl dragging, you see if you just
simply drag something on screen it will
| | 08:14 | move the location but if you do an
Option+Drag on Mac or a Ctrl+Drag on
| | 08:20 | Windows, it will allow you to create
either an exact copy or the exact same format.
| | 08:26 | So if you want to have a bunch of
fields on screen that all share the same
| | 08:28 | format, just Ctrl+Drag or Option+Drag
those in each one of their positions.
| | 08:33 | Those are some tips and tricks and some
useful things as it pertains to some of
| | 08:37 | the tools in Layout mode and in the
next movie we are going to work on
| | 08:40 | arranging and grouping and locking
layout objects and then we are going to take
| | 08:44 | all of these tools and all these tips
together and then in the next chapter
| | 08:47 | we are going to work on formatting layout
objects, so we can bring together a nice
| | 08:51 | layout for creating a new
interface for our database solution.
| | Collapse this transcript |
| Arrange, Group, and Lock layout objects| 00:00 | The last set of features that you will
want to become familiar with before you
| | 00:03 | start designing layouts are a
combination of the ability to arrange items on
| | 00:07 | the layout or group or lock and size
different items as well. We will also deal
| | 00:12 | with some of the alignment. I'm going
to do a quick tour of all these different
| | 00:15 | functions using the exercise file,
found in the Working with Layouts,
| | 00:20 | Lucky_You_08_01 and we are going to
open up to a layout that's called the
| | 00:25 | Customer Detail layout and we are
going to go right into Layout mode and
| | 00:31 | a couple of things to just
quickly make you familiar with.
| | 00:34 | So when you are working with layouts...
We have already looked at the Layout menu
| | 00:39 | where we looked at creating new layouts,
duplicating, deleting, navigating to
| | 00:43 | different layouts, your layout setup
and your part setup, even your layout
| | 00:46 | order and now we are going to look in
the Arrange menu. So the first thing that
| | 00:52 | we are going to work with is arranging
objects and in Layout mode you can Group
| | 00:56 | any combination of objects so that
you can edit or move them altogether.
| | 00:59 | So for example, if I have all these
pieces, all these navigation pieces and
| | 01:05 | instead of working with them
independently I would like to group all of them
| | 01:09 | together. I can drag-select and under
Arrange you will see that now either
| | 01:14 | Group, Ungroup or Lock options are
available. So now instead of this being
| | 01:18 | about a dozen or so different
elements, it's now one big piece that I can
| | 01:23 | either copy and paste, or
move around all over my layout.
| | 01:26 | So if I have got something that I'm
going to reuse and port around to multiple
| | 01:30 | layouts, it's always a good idea to
group those together so that things don't
| | 01:33 | move and that you have consistency
from layout to layout. In addition if
| | 01:37 | something already is grouped, you can
click on it and go under the Arrange and
| | 01:42 | click Ungroup where you can then make
some modifications, possibly move things
| | 01:46 | around if need be and then go back in
and once you have one or more objects
| | 01:51 | selected, you can go and group them.
| | 01:54 | Now you can group grouped items
together until you have just one big large
| | 01:58 | group if it makes sense. So for
example I could go into each one of these
| | 02:02 | pieces and group all of them as my
navbar and I could move this navbar around
| | 02:09 | all over the application as necessary.
If I have assigned actions or scripts to
| | 02:13 | this buttons, I don't kill the scripts
when I get into Browse mode, by having
| | 02:17 | them grouped as you will see, as I
roll over, I could go into Find mode if I
| | 02:21 | want to or log out or change over to
List view or whatever it is that I would
| | 02:25 | like to do.
| | 02:27 | Another tip in addition to grouping
objects like I have done here, here I will
| | 02:33 | ungroup those and ungroup this one.
You can see you can Group and Ungroup as
| | 02:37 | necessary until finally you get down to
the very core elements. Sometimes when
| | 02:42 | you are ungrouping or when you are
Grouping something, it will say the selected
| | 02:45 | group of objects contains at least one
button, Ungrouping them will delete the
| | 02:49 | button and definition.
| | 02:50 | So what that means is that even
though the text for New and the icon for
| | 02:53 | creating a New record are Grouped
together, in this case they are grouped
| | 02:57 | together and then a Script button,
Format, Button Setup has been assigned to
| | 03:02 | them. So what the message is telling me
and FileMaker helps me manage this but
| | 03:06 | it says if I Ungroup these I'm going
to break the script because there is no
| | 03:09 | longer one item that that script
steps or that script is assigned to.
| | 03:12 | So you got to be a little bit careful
about that but the FileMaker does a good
| | 03:15 | job of managing these things for you.
You can also change the stacking order of
| | 03:20 | something that you draw on screen and a
good example of this would be if I have
| | 03:24 | a series of fields and I would like to
separate them out from the other fields,
| | 03:28 | like let's say I would like to have
the phone numbers separated from all the
| | 03:33 | other elements, I could in this case,
let's say take my Drawing tool and draw a
| | 03:39 | little box around all of those and I
could position it but what's the problem
| | 03:43 | here, well I'm masking everything behind it.
| | 03:46 | So what I need to do is to go under
the Arrange menu and work with anyone of
| | 03:50 | these four selections here that allow
me to either move this piece that I just
| | 03:55 | created, either forward or backward in
the Layers. Now these Layers that I'm
| | 03:59 | talking about there is an order to
everything based on when I put on the
| | 04:03 | layout. So the things that I put on
the layout first if I never move them
| | 04:07 | forward or backward are going to be in
the furthest back and as you see since
| | 04:10 | this is the last item that I created
on screen, it's the furthest forward.
| | 04:14 | So obviously what I want to do is move
it in the stacking order behind those
| | 04:17 | fields so that I can see the fields.
Well the way that I can do that, we have
| | 04:21 | got a couple of different options here.
In order to move it to the most forward
| | 04:25 | facing layer, I would say Bring to Front,
but as we see this one is already in
| | 04:28 | the front. The opposite of that would
be to move it to the very back layer
| | 04:32 | which is sent to back and you see here
I have sent it all the way back, so that
| | 04:37 | the fields are now in front of this layer.
| | 04:41 | So now it works really well as a
separator for the phone fields, and all I did
| | 04:45 | was actually move it a little bit
further back in the stacking order. You can
| | 04:49 | actually sort of finesse this a little
bit too by doing Send Forward or Send
| | 04:53 | Backwards just as one layer at a time.
So if you have multiple layers that you
| | 04:57 | are working with and you just want to
find exactly which layer it needs to be
| | 05:00 | in you can now either send it all the
way to the front or all the way to the
| | 05:03 | back or forward or backward one layer at a time.
| | 05:06 | In addition you can rotate different
items, any object that I have on screen,
| | 05:11 | let's say we group the List View
button and you don't have to group something
| | 05:14 | to rotate it but just for the sake
of this example. Now you need to be in
| | 05:17 | Layout mode of course to rotate
anything and you want to select the object
| | 05:21 | first. Go under Arrange and to rotate
and you see that what it will do there is
| | 05:27 | rotate the object 90 degrees clockwise
and to rotate the object or any objects
| | 05:31 | further choose Arrange and Rotate again.
| | 05:35 | So this is good if you have not
necessarily for anything with text because you
| | 05:39 | can see it might be a little bit
cryptic. Okay I would take at drawing and I
| | 05:43 | have this element here. Let's say we
changed the fill color. If I have got this
| | 05:54 | up on the top let's say since it is
rotating 90 degrees it is going to rotate
| | 05:57 | down this way. What I can do is rotate
this piece and move it over here and use
| | 06:05 | it as a side object instead. So
just an example, I mean you can rotate
| | 06:09 | absolutely anything but that's just an
example of some of the things that you
| | 06:12 | can rotate.
| | 06:13 | Now if you look on this layout one of
the first things that pops out at you is
| | 06:17 | we have got a bunch of fields on
this layout but they do not look
| | 06:19 | professionally organized. You see that
they are not in a straight line. They
| | 06:24 | are not equal on the edges, what you
can do is select the object and use your
| | 06:28 | arrow keys to move them down, well
couple of pixels at a time or select all of
| | 06:34 | the fields and then use the Align
property. But before I show you that, here's
| | 06:38 | a really important tip because one of
the things that happens all the time is
| | 06:41 | if I'm trying to select all these what
I try to do is Drag+Select, but since
| | 06:46 | they are layered on top of this element,
this Tab control element in the back.
| | 06:52 | I need to make sure that this Tab
control element doesn't move and this happens
| | 06:56 | quite a bit when you are trying to
select fields or move things around and if
| | 06:59 | you have got something precisely done,
exactly like you like it, what you can
| | 07:03 | do is select it and hit Lock and now I
can work within it as if it's the part
| | 07:09 | of the layer. Let's say I want to align
these two fields together, what I have
| | 07:13 | done is I have selected both of the
fields and under the arrangement, you will
| | 07:16 | see, underneath Rotate now I have got a
couple of different Alignment options.
| | 07:20 | I can align the left edges, I can
align the centers of all the fields if the
| | 07:24 | fields happened to be of different size.
I can do right edges top, middle and
| | 07:27 | bottom, but let's align our bottom
edges because the fields are the same size
| | 07:33 | and we see that now they are precisely
in the right spot. But since I'm happy
| | 07:38 | with that location, I can go in here,
select those by holding down the Shift
| | 07:42 | key, go in and Lock, the back area is
not moving, these fields aren't moving
| | 07:47 | and now I can use these as anchors to
lineup these other ones, because now that
| | 07:50 | they are locked they won't move.
| | 07:51 | Even though I can select them and I'm
holding down the Shift key and selecting
| | 07:55 | all these fields and what I'm going
to do now is lineup the left edges and
| | 08:00 | since one of these is Locked it is
going to act as my anchors. So I will say
| | 08:03 | Align, Left Edges and sure enough that
looks really sharp, I have aligned all
| | 08:09 | these left edges and everything looks
really good there. Also you see that I
| | 08:15 | have got three of these in a row,
there is also a way that you can align the
| | 08:19 | left edges and you can
also distribute horizontally.
| | 08:23 | So for example what I want to do is
fill in the white space in between these
| | 08:28 | three and in this case they actually
happen to be sized pretty well but if they
| | 08:31 | were off a little bit like this, could
say distribute vertically and you see
| | 08:39 | what it has done there as its evened
out the white space in between all these
| | 08:43 | fields, so that's very helpful for me.
Again just to look at these, I can do
| | 08:49 | the left edges, I can do right edges,
I can do centers if I want to, but the
| | 08:53 | other thing too is if you notice, this
field is a little bit shorter than this
| | 08:57 | field and this field is shorter as well.
| | 08:59 | What I would really like to do is make
them all, let's say the width of this
| | 09:02 | home field, well that's where this
object info palette comes into play. Anytime
| | 09:07 | you select an object you see how all
these numbers change and what it's doing
| | 09:11 | as it is giving me pixel readings and
I can click on where it says Px to have
| | 09:16 | it changed to be the centimeters, or
inches but pixels is the most common unit
| | 09:20 | for any designers to use. So we are
going to use pixels and we see that this is
| | 09:25 | how many pixels it is from the left
edge of the screen. This is how many pixels
| | 09:28 | it is from the bottom and then reverse
sides and top as well, but down here are
| | 09:33 | the ones that we are going to want to
use, we see that this field is exactly
| | 09:36 | 294 pixels long.
| | 09:39 | So if I select all of these fields and
I say 294 and press Enter, now the width
| | 09:51 | of the field the longest field is 294
and I can pick this one and say 294, 294
| | 10:03 | and finally 294. Now we have got
everything perfectly aligned and all matched
| | 10:09 | up nice and neat. So in review under
the Arrange menu we are able to Group or
| | 10:14 | Ungroup objects and we can of course
assign scripts to those grouped objects.
| | 10:18 | We can Lock or Unlock objects, so
that they can't be accidentally moved on
| | 10:21 | screen or even do that
temporarily while we are designing a layout.
| | 10:24 | I can work with the order of items
that are stacked either bringing them all
| | 10:28 | the way to the front, all the way to
the back of the stacking order or forward
| | 10:32 | and backward. We can also rotate items
90 degrees clockwise at a time and align
| | 10:36 | either fields or items. By the way we
could have done the same alignment with
| | 10:41 | these buttons or these edges right here.
So if I didn't like how this one was
| | 10:46 | off to the side a little bit and
let's say these were locked and I want to
| | 10:50 | line these up, well I can pick this
one and select that as well and do an
| | 10:56 | alignment of, in this case we will say,
right edges and you see it moves over
| | 11:00 | just perfectly enough so everything is lined up.
| | 11:03 | Then finally the ability to distribute
either objects or fields. I can use my
| | 11:08 | Object palette to resize them
appropriately also. The combination of arranging,
| | 11:12 | grouping, locking and resizing objects
finishes out all the toolset for us so
| | 11:17 | that we can start building our own
layouts and then the next thing that we are
| | 11:20 | going to look at is being able to put
different text on screen and working with
| | 11:24 | graphics and formatting some fields and
assigning some of the random behaviors
| | 11:28 | and that's coming up in the
chapter on formatting layout objects.
| | Collapse this transcript |
|
|
9. Formatting Layout ObjectsText formatting| 00:00 | In the previous two chapters we have
been talking about creating layouts,
| | 00:04 | manipulating some of the preferences
for the layouts, working with parts and
| | 00:07 | such and aligning some of the objects
that are on screen and there are couple
| | 00:12 | more things to review so that you the
full suite of exposure, so that you can
| | 00:15 | start developing your own layouts
inside FileMaker, and that is involving
| | 00:19 | formatting things like text and graphics,
the non-field objects or things that
| | 00:25 | you cannot create with the drawing
tools within FileMaker layout design.
| | 00:30 | And this movie is going to cover
placing text on a layout and how to format
| | 00:35 | that text and some of the options you
have available to you. So we will start
| | 00:38 | by opening up the 09_01 Lucky_You_
Tours exercise file, and we will go to the
| | 00:48 | TPS Report layout, view that in
Layout mode, and you'll see what we have on
| | 00:55 | screen is a bit of text.
| | 00:56 | Now before we get started with that,
you should know that in FileMaker you can
| | 00:59 | add text to a layout and of course
it makes your layout easier to use and
| | 01:03 | understand and you could text for
things like field labels and we saw that in
| | 01:09 | some of the previous chapters. When we
pick a field and drop it on there,
| | 01:12 | we can also see the layout and that just
becomes text that can be manipulated in
| | 01:16 | any way that we find necessary. And also
we can use it in column headings, if you
| | 01:22 | recall when we were working with layout
parts and we put some text in the Title
| | 01:25 | Header and then the Header of certain
reports, we could spell that out and give
| | 01:30 | our report a title or label.
| | 01:33 | And also I can just type in text and say,
give my users some instructions. For
| | 01:41 | example here I could say, "in order to
add a record please, blah, blah, blah,
| | 01:45 | blah, blah." So I can just type right
in there and then you will see that in
| | 01:49 | Layout mode. And also you can do
things like letters and I can insert things
| | 01:55 | like the current date and time and
that type of thing. So there is a lot of
| | 01:59 | ways to get text on to a layout and a
lot of ways to use text in a layout.
| | 02:03 | But once that text is on a layout, there
are some things that we can do to manipulate
| | 02:07 | the text and I want to introduce
you to what some of those tools are.
| | 02:10 | So, you see here that I have got TPS
report, but if I wanted to start from
| | 02:14 | scratch, I could click on the tool here
and type in TPS Report and what this is
| | 02:22 | serving as in this example here, what
I'm doing is I'm adding some text to --
| | 02:28 | it's going to serve as a cover letter
to a report or a list of individuals and
| | 02:32 | so what I have done is I have actually
stretched out the title headers, so when
| | 02:35 | I print this out, the very first page
is just going to be whatever we design here.
| | 02:40 | So I have placed some text on the
layout here, and if I select the text or if I
| | 02:45 | double-click I can change the text
that's inside here and there are also some
| | 02:51 | other tools, that are available to me
most of which can be accessed by either
| | 02:54 | Ctrl-clicking in Mac or right clicking
in Windows and you can see that we have
| | 03:00 | got some options here for formatting
the text. And you can also get to that by
| | 03:04 | going under the Format menu, and
choosing Format Text, and if you don't have
| | 03:12 | any text chosen, if you do Format
Text, it's going to change whatever the
| | 03:16 | default is, so the next time that I put
some text on this layout, it will show
| | 03:20 | up in whatever way that I indicate here.
| | 03:23 | I will go to the Text Format, and
let's say that we want to use a different
| | 03:26 | font, we just click on the font, and
we can pick anyone of the fonts that are
| | 03:30 | loaded into our application. So we
will pick Century Gothic, and I can
| | 03:36 | manipulate the size of the font as well,
and even the color, let's go on and
| | 03:42 | give this a different color and I can
apply some style to it, and also a little
| | 03:47 | bit of Superscript and I can also
manipulate the alignment, you see that the
| | 03:53 | text here is all the way to the left
of this text box, and the aligned text
| | 03:58 | underneath Format, I can center it, and
let's say I want to make that font size
| | 04:04 | just a tad bit bigger.
| | 04:09 | There is our TPS Report. We can
manipulate the style, let's say we give it some
| | 04:14 | Italic as well. Line Spacing if had
multiple lines, orientation and then of
| | 04:21 | course the color. Now that I have got
this text on screen, the text area can be
| | 04:26 | manipulated just like an object. So for
example, here I could click on my fill
| | 04:33 | color, and now I have got a nice
centered text with background color applied
| | 04:43 | and since this text is an object I can
also apply some border effects and I can
| | 04:50 | pick a matching color for that border
line and maybe I want to make that a
| | 04:56 | little bit thicker, a little bit more
thin. So you see the different options
| | 05:04 | that I have available.
| | 05:05 | Now, I'm placing the text right on to
this layout. All sorts of things that we
| | 05:10 | can use text for, but you see that
really the sky is the limit. If you can
| | 05:14 | manipulate the fonts, the size, the
style, the way you are aligning the text,
| | 05:18 | the space in between the text,
the orientation, and also any kind of
| | 05:24 | specialty styles here as well. And if
you have a large area of text, you can
| | 05:29 | manipulate the way that the paragraph
works, so you have indentation control,
| | 05:33 | line spacing, and alignment.
| | 05:35 | So the next thing that we are going to
look at doing is adding a graphic or an
| | 05:39 | image 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:00 | In addition to adding text that
doesn't appear inside of FileMaker fields to
| | 00:05 | your layout, you can add graphics that
are not inside of a FileMaker field that
| | 00:09 | like a container field. If you want to
add graphics to a record, you can create a
| | 00:15 | container field and then insert an
image, or a movie, or sound, into your
| | 00:21 | layout record-by-record that way, but
if you just want to have one static image
| | 00:26 | as part of your layout design--
In this case, we have got a pretty simple cover
| | 00:29 | sheet for a report that we are working on here.
| | 00:32 | Let's say we want to add a logo, let's
use the example of adding a graphic of a
| | 00:35 | logo, which is pretty common. People
add those to their reports, or layouts, or
| | 00:40 | fax sheets, that type of thing. There
are a couple of different ways that you
| | 00:43 | can insert graphics. If you are not
inserting them as a container field, you
| | 00:48 | can insert them by going under the
Insert menu and you can choose Insert
| | 00:54 | Picture. And if you want to play
along at home, you can go to the
| | 00:59 | 09_formatting_layout directory, click
on logo, hit Open, and now we have got a
| | 01:07 | logo that we can drop on screen. You
see now this logo becomes an element that
| | 01:12 | we can resize if we want to. Of course,
if the resolution of the image permits,
| | 01:18 | we can place it anywhere on screen
we'd like, we can layer it with other objects.
| | 01:29 | And let's say here we are just going to
place it right down in the middle. Now
| | 01:34 | there are a couple of things that you
might not have noticed, but if we go
| | 01:37 | back, and we go into Insert, one of the
options that we have, much like when we
| | 01:42 | are working with putting an image in
the container field, actually in the exact
| | 01:44 | same manner. When I choose this image,
I can choose to store it only as a
| | 01:49 | reference to the file. Now when you
select store only reference to the file,
| | 01:53 | FileMaker doesn't actually import the
graphic file, instead it only keeps track
| | 01:57 | of where it is on your hard disk.
| | 01:59 | Although, storing as a reference will
not add this file size. You can see in
| | 02:03 | this case this is only a 4k file, but
if you have a higher resolution image
| | 02:07 | that you want to work with, it will
increase the size of your file, really
| | 02:11 | there are a whole heck of a lot images
that makes sense to place on a layout
| | 02:14 | that are going to impact the size of
your file so much, that you are going to
| | 02:18 | have performance issues.
| | 02:18 | But if you have a special circumstance
that requires that, you can say store
| | 02:22 | only a reference to the file, but the
moment that this path to this file on my
| | 02:27 | local desktop changes, or if I publish
this on a layout, and people don't have
| | 02:30 | the same directory structure, and
path structure, they are going to see a
| | 02:33 | broken image.
| | 02:35 | So what I would recommend instead is to
not check store only a reference to the
| | 02:38 | file, and then drop that image on the
layout. Once you select the file, the
| | 02:45 | graphic appears in the document, and
then I can position and size the graphic
| | 02:48 | on the layout as needed, and you saw in
the previous movie how we were aligning
| | 02:54 | images, we can do the same thing here.
I can also lock the position so that I
| | 02:59 | can't make any changes to this,
because it's locked, and if I select and hold
| | 03:03 | down my Shift key and select both of
these, I can go to align, and let's say,
| | 03:10 | centers, and that moves the logo to
the very middle of the screen in full
| | 03:15 | alignment with the TPS report,
text area that I created.
| | 03:20 | Now a couple of notes on putting the
images into your layouts, you can insert a
| | 03:24 | graphic via copy and paste, by simply
copying it from another application, and
| | 03:29 | then coming into this layout and
pasting it. If your system has other
| | 03:32 | application support, you can take
advantage of quickly bringing graphics or
| | 03:36 | movies from another application into
FileMaker, by dragging the object from
| | 03:39 | another application window, into the
FileMaker window, but only if you're OS
| | 03:43 | supports that.
| | 03:45 | On a Window's machine, when you click
on this Windows menu, you will see an
| | 03:49 | option for Object, and that will allow
you to insert an OLE object into your
| | 03:54 | layout. But graphics can be used for
any logos, for adding a little bit of
| | 03:59 | personality to the design of your
page, or one of the common practices is
| | 04:03 | scanning some elements that you want
to trace, and throw it on the background
| | 04:08 | of your image, laying a bunch of fields
and some objects on top of it, and then
| | 04:11 | deleting that background image that you
were tracing, thus emulating that image
| | 04:16 | within FileMaker and dynamically with fields.
| | 04:19 | So now that we have looked at working
with text on a layout, in really just a
| | 04:24 | simple fashion. There is a lot more
that you can do here. Now that we have
| | 04:26 | looked at placing images and graphics
on a layout, we are going to focus now on
| | 04:31 | the next movie on formatting fields
in their field's contents and applying
| | 04:35 | field attributes to different fields.
| | Collapse this transcript |
| Formatting fields and applying field attributes| 00:01 | In recent chapters we have been
looking at formatting and the layout,
| | 00:04 | formatting graphics and images and
some of the different configurations on
| | 00:08 | layouts and layout parts and how to
design a layout. And the only thing we
| | 00:12 | haven't yet covered is the formatting
of fields and the formatting of the field
| | 00:18 | values as they appear on a layout and
that's what we are going to cover in this movie.
| | 00:22 | So we will start by opening up an
exercise file in the 09_formating layouts
| | 00:33 | exercise folder. Lucky_You_Tours_09_01.
And right away we will navigate over to
| | 00:38 | the Trip Detail layout and take a look
real briefly here in Browse mode that we
| | 00:43 | have got a series of different fields
and some of them have numeric values and
| | 00:47 | some of them have currency and date,
and some of them are just text and they
| | 00:52 | have these interesting dropdowns and
such and some of them have some effects here.
| | 00:56 | Well, if we go on a Layout mode, we are
going to take a look at how we do that
| | 01:00 | and to make these all consistent. So
we see that there is a cool kind of drop
| | 01:03 | shadow effect on this one field and a
couple of the things that we have control
| | 01:07 | over, any one of the fields we can
select and we can give it a fill color.
| | 01:12 | That's what this paint can is, is it
gives us control over the fill color of
| | 01:16 | this field and in this case we just
wanted to be white because we already have
| | 01:19 | a colored background, but we could
certainly change it to any one of these
| | 01:23 | background colors if we see fit. In
that case to remove what I just did, I just
| | 01:28 | did Ctrl+Z, which allows me to
remove the formatting that I just chose.
| | 01:34 | Now this next one here is the Fill
pattern and I have to say that all you will
| | 01:38 | ever want to do is either choose this
one or the one here and this one means
| | 01:42 | that it's going to have solid
background or whatever color that you pick, the
| | 01:46 | text will appear against that color.
| | 01:49 | If I choose this option, it's going to
appear transparent and go all the way
| | 01:53 | through to the color in the
background of the object that happens to be in
| | 01:57 | front of. So I would contain that
you can just focus on either having a
| | 02:01 | transparent background or a fill
background and then you can choose the color
| | 02:05 | of that fill right here. And the
currently chosen color appears in this box.
| | 02:09 | Also though you will notice in
this next box over we can apply either
| | 02:13 | embossing, engraving or drop shadow.
Right now we have got drop shadow, but
| | 02:17 | let's take a look at what engraving
looks like, if we toggle back over using
| | 02:21 | Ctrl+B or Apple+B into Browse mode,
we can see it's got a real -- kind of a
| | 02:25 | cool sunken effect, toggle back into
Layout mode and choose this and let's take
| | 02:31 | a look at what Emboss looks like. We
will go back into Browse mode, save our
| | 02:35 | changes, and you see that embossed
has kind of a raised effect to it.
| | 02:39 | So there are three different things
that you can do to try to give some
| | 02:42 | interesting effect to your fields, so
we will keep it on Drop Shadow, but now
| | 02:47 | let's make all the rest of
the fields consistent as well.
| | 02:50 | We will pick country, focus, price,
capacity, start and days and I can do
| | 02:57 | multiple clicking by holding down the
Shift key while I select these objects,
| | 03:01 | and just simply go in one time sort
of having to do them all one at a time,
| | 03:05 | just going once and select Drop Shadow
and make sure that everybody also has
| | 03:12 | the correct Fill pattern and this
Drop Shadow size can be manipulated, for
| | 03:18 | example, by going down here with the
line. Now this is similar here, I can pick
| | 03:22 | a Line Color and in this case we just
want it gray, and here's where all the
| | 03:28 | colors are that are available to us.
So we've got a gray that's chosen right now.
| | 03:33 | And it's the same thing here. We can
have a pattern in the Drop Shadow or we
| | 03:36 | can have a transparent line or drop
shadow but really 99% of the time for the
| | 03:41 | lines, you are going to have it stuck
on the second position here. But what you
| | 03:45 | might want to control is the thickness
of the line, and in the case of effects
| | 03:49 | you see that if we toggle over to
Browse mode, we can have a really severe Drop
| | 03:53 | Shadow effect for the field and
toggle back or we can tone that down just a
| | 03:59 | little bit and go back to the two-point version.
| | 04:02 | So in addition to managing the effect
here, you will see here is a field that
| | 04:07 | doesn't have an effect, and I can also
effect the borders by right-clicking,
| | 04:10 | and going to Field Control Borders and
I can choose a thicker border if I would
| | 04:18 | like, I can apply borders to the top,
bottom, left and right if I'd like to,
| | 04:23 | and I get a preview of what that field
would look like, but we are just doing
| | 04:27 | an experiment here showing how you can
effect the borders of the field so that
| | 04:30 | they show up in Browse mode, but we
won't actually apply any of those changes.
| | 04:34 | Now in addition to being able to apply
drop shadows and effect borders and the
| | 04:39 | fill colors and patterns in the
background, and whether it's transparent or
| | 04:43 | not, that's how we are manipulating
the formatting of the field and the
| | 04:47 | background of the field and the field
itself, but we can also do some things
| | 04:51 | that are specific type of
the field that it is as well.
| | 04:54 | We have got a couple of Date fields
here. Let's select both of these Date
| | 04:58 | fields and go on under Format and
depending on what kind of field this is
| | 05:02 | defined as, in this case these are
Date fields, so we've got either a text
| | 05:06 | option or a date option. The text
option if you remember in the previous
| | 05:10 | chapter, we can just affect the way
that the text actually looks, but going
| | 05:13 | under Date brings up a window where
we can select the Date format for the
| | 05:17 | selected object in this case the field.
This way we can change the way that the
| | 05:22 | date looks, no matter how the user
enters the date into the field, we can
| | 05:25 | select any number of different
ways to display those values.
| | 05:29 | So right now, if we look into Browse
mode, we will see that even though it was
| | 05:38 | entered as 7/11/2006, it automatically
brings in the day and the date and so
| | 05:44 | on, but in the interest of space, we
will go back here, go under Format - Date
| | 05:50 | and we will just pick either format as
entered or we can change it to December
| | 05:58 | 25.
| | 05:58 | And now if you don't want to keep
toggling back and forth in order to see if
| | 06:01 | something fits, you can also go under
here and here is a little tip, View -
| | 06:06 | Sample Data, so you see in this case,
we are going to need a little bit of room
| | 06:14 | to fit these in the format that I have
chosen, so we will go in here and then
| | 06:18 | we will toggle back over to Browse mode,
and we see we have got the months, the
| | 06:24 | day, a comma and the year formatted.
| | 06:26 | So that's the same as true for
numbers too, if we click on Price, this is a
| | 06:31 | Number field, so if we go under Format
to Number, you see that now number is
| | 06:34 | available because it knows it's a
Number field. We can have just a general
| | 06:38 | format. Leave the data formatted as
entered and also boolean where non-zeros
| | 06:42 | are Yes and zeros are No which is not
as useful to your users, or in this case
| | 06:47 | this is actually a currency.
| | 06:50 | So we can say, we can effect the
number of decimal places we have, and since
| | 06:54 | this is currency, we will give it to
the standard two decimal places to the
| | 06:58 | right of the decimal, and we can
indicate whether or not this is currency or a
| | 07:02 | percent and if we say it's a percent,
it will give us a symbol afterwards but
| | 07:06 | this happens to be currency and there
is the symbol that we are going to use,
| | 07:10 | and we can also go in and say either
don't use thousand separator or use the
| | 07:15 | thousand separator. All the while
you see here, that the value is being
| | 07:20 | previewed of us and also we can do a
bit of conditional formatting we can say,
| | 07:24 | if it's a negative value make it red,
so we will go in and will apply all these
| | 07:29 | and will stretch out field to
accommodate, and so now you see that these
| | 07:37 | currency field even not centered, it's
just 1200 gets a dollar sign, a comma
| | 07:42 | separator and some decimal points
here. Just some examples of some of the
| | 07:45 | things which you can do with dates and
numbers. There are also some options for
| | 07:50 | Time fields.
| | 07:52 | In addition, there is an interesting
new interface component that you can apply
| | 07:55 | to a Date field, and we will look
at that right here, and if we do a
| | 08:00 | right-click or Ctrl-click and we go
into Field/Control Setup, you will notice
| | 08:07 | that we have some options that how the
fields are displayed. We will cover this
| | 08:10 | a little bit more in the value list
section, but the one that I wanted to show
| | 08:14 | you here because these are dates, is
this cool dropdown calendar and what that
| | 08:20 | looks like when we go in Browse mode,
it's when a user clicks inside here, you
| | 08:26 | get a formatted date calendar and you
can go and pick any one of these dates,
| | 08:32 | and this happens to be a calculation,
so really the only one we can effect here
| | 08:37 | Is the first one and in if it's not
apparent that they can use a date-picker if
| | 08:41 | you go into Layout mode and select this,
Field/Control Setup, dropdown calendar.
| | 08:50 | Include icon to show and hide calendar.
So what that means is it puts a little
| | 08:54 | calendar icon there.
| | 08:57 | So when the users are in there
they say, oh, well, I can use the
| | 09:00 | calendar picker instead. These are very
popular online and now you can integrate
| | 09:03 | these by just doing a couple of button
presses there. You can integrate it into
| | 09:07 | your FileMaker layouts as well.
| | 09:10 | So the next thing we are going to
look at is a new feature in FileMaker 9,
| | 09:15 | which is applying conditional
formatting to objects on a layout.
| | Collapse this transcript |
| Conditional formatting| 00:01 | This next feature is brand new to
FileMaker 9 and it also involves formatting
| | 00:05 | the text found inside of a field and
also the field itself. This one is pretty
| | 00:10 | cool though. It does it conditionally
and it is called conditional formatting.
| | 00:14 | We will take a look at that
by opening up our example file,
| | 00:19 | 09_formatting_layout, open up the
09_01 file and this time let's navigate to
| | 00:27 | the Customer table and what we have
here in the Customer table is obviously a
| | 00:33 | table that we have set up with a couple
of different fields on here and what we
| | 00:37 | got is a field with the name, a home
state, and a trip count and some trip
| | 00:44 | spending, which we can open a little bit.
| | 00:48 | So what we have is a dollar value that
these individuals have spent and what we
| | 00:52 | can do is conditionally show different
colors of the text or the field itself,
| | 00:57 | based on how much they have actually
spent. So how do we do that? First, we go
| | 01:01 | back into Layout mode and this is a
lot like Excel, if you have worked with
| | 01:05 | Excel before and understand conditional
formatting, the exact same principles apply here,
| | 01:10 | but if you haven't,
let's take a look at this.
| | 01:12 | So we have got trip count and the
way that you can access the conditional
| | 01:17 | values is in one of two ways. You can
either go under Format to Conditional or
| | 01:22 | you can right-click on the field if
you like. The other I would recommend and
| | 01:25 | that's helpful in this environment is,
selecting your fields and go under Show
| | 01:30 | and then Sample Data, that way you can
see some of the conditioning applied as
| | 01:35 | you are working with it and I'm going
to right-click now in this case and you
| | 01:40 | will see conditional formatting.
| | 01:42 | Let me just take you quickly over what
some of the options are here. First you
| | 01:46 | can have as many different conditions
apply as you like, and once you have
| | 01:50 | multiple criteria, you can sort them,
you can see moving them up and down in
| | 01:55 | the list just like anything else in
FileMaker where you see these double arrows
| | 01:58 | you can move them up and they
evaluate from the top down, so they keep
| | 02:02 | evaluating as long they hit a true statement.
| | 02:04 | Every time they hit a true statement,
it evaluates and it will eventually stop
| | 02:08 | at a false if the value does not apply,
because there will be no condition that
| | 02:13 | applies. So it always applies on a true.
So if you think in sort of a boolean
| | 02:16 | fashion here, if this is the case then
the conditional formatting will occur.
| | 02:22 | You can add and delete and in this
case we will delete that, and instead of
| | 02:26 | deleting something, I can just uncheck
it and will leave that condition in there.
| | 02:30 | But FileMaker has also done a really
good job of adding, so you don't have to
| | 02:33 | do lot of math, that has added a
bunch of interesting ones here, on this
| | 02:37 | dropdown list, you can do in between a
couple of values not between equal to,
| | 02:42 | not equal some pretty standard ones
there containing and beginning with. Also
| | 02:46 | for date fields before today, today,
after today, more than x days passed, more
| | 02:51 | than x days ahead. Great for scheduling,
great for shipping dates and great for
| | 02:57 | invoice passed due amounts, some
really cool built-in features that which you
| | 03:00 | don't have think too much about.
| | 03:02 | But what we will say here in the trip
count is, let's say the value is equal to
| | 03:07 | and we will just put zero in here. Then
we are going to say that, let's say the
| | 03:14 | fill color will turn to -- let's make
something really subtle. I will just make
| | 03:20 | it a little bit of a gray hue, how's
that, so if it's empty, then it will be a
| | 03:24 | gray color, but if the trip count is,
let's say, greater than -- let's just say
| | 03:32 | ten. We will make the text color green,
because we are excited about that and
| | 03:38 | then we will make it Bold as well.
| | 03:40 | Also we have some additional
formatting options if you would like to, you can
| | 03:44 | do point Size and different fonts and
all that kind of stuff. It's really cool
| | 03:48 | which you can control here. Let's go in
and preview this though. Let's go into
| | 03:52 | Browse mode, save our changes first and
interestingly what we have here, if you
| | 03:58 | look actually, it will probably be more
helpful. Here is all the empty ones and
| | 04:01 | they show gray and if we scroll all
the way down at the bottom and see if
| | 04:05 | anybody has got more than ten, here is
one that's ten and it shows up in bold, green.
| | 04:10 | So kind of fun formatting there, now
let's say -- let's go back to this next
| | 04:15 | one, let's say that we are located in
California and we always want to know who
| | 04:18 | the California clients are. So we
will go in here, apply some conditional
| | 04:23 | formatting and we will just simply
add if the value is equal to CA. Then we
| | 04:34 | will just simply make it Bold, and we
will take a look at this one. First we
| | 04:38 | will save our changes and there is a
couple of California, so it might make it
| | 04:43 | easier for us to spot some of these
individuals in line, and then finally let's
| | 04:48 | do one with some multiple
criteria and have some fun here.
| | 04:50 | So here is the Trip Spending. In the
previous movie, we looked at adding,
| | 04:55 | formatting some numbers, let's say
that this is currency and we want to track
| | 05:04 | people. Let's say we are evaluating
whether or not we are going to do a
| | 05:06 | frequent buyer club and we have got a
platinum, gold and bronze level. Let's
| | 05:11 | apply that color to our fields, so
let's say we will add our first one, if the
| | 05:18 | value is between let's say 0 and 499,
then we will say that our text color is
| | 05:29 | going to red, just because we might
want to highlight them as someone who is
| | 05:33 | maybe new or that they are not a
candidate for or frequent traveler.
| | 05:39 | To add another one now, where we say if
the value is between 500 and let's say
| | 05:47 | 5000 actually, and let's do some fill
color here, just we will say that the
| | 05:58 | fill color is bronze for our bronze
club member and if the value is between
| | 06:05 | 5000 and 10000, then our fill color
will be and we will say gold. Let's go to
| | 06:15 | gold, that looks like a good gold right
there and we will add one more for our
| | 06:23 | platinum level, if the value is greater
than 10000, then our fill color will be
| | 06:31 | some kind of sharp fancy platinum.
We will also make the text Bold.
| | 06:39 | So let's take a look, see if our logic
applies, we will go under Browse mode,
| | 06:45 | and then it will be easier for us to
see this when we sort. So there are no
| | 06:49 | values here and here's some red zones
just below $500. Here's our bronze level
| | 06:54 | members, everybody under 5000, and
now we get into our gold level members,
| | 06:58 | everybody between 5000 and 10000 and
here are platinum level members all the
| | 07:04 | way in excess of $10000.
| | 07:08 | So some fun things that you can do
there and this again is brand new to
| | 07:11 | FileMaker 9, so you can really have
some fun with it. If you wan to know a
| | 07:15 | little bit more about some of the
stuff that FileMaker has built-in like the
| | 07:18 | containing, not-containing, beginning
with, before today, just check out the
| | 07:21 | FileMaker Help and you will be able
to find some more specifics on these.
| | 07:25 | A couple of things that might be
interesting for you to know, you can set
| | 07:29 | conditional formatting on the
following layout objects, not just fields, but
| | 07:33 | you can also include external ODBC
data sources, text merge bills, layout
| | 07:39 | symbols like date, time, page numbers,
record numbers and so on, text-based
| | 07:44 | buttons, web viewers, conditional
formatting, however is not available for
| | 07:48 | non-textual objects such as rectangles or
circles or ovals and that type of thing.
| | 07:53 | So really the sky is the limit here.
Beyond just field values and fields themselves,
| | 07:57 | imagine what you can do with
web viewers and all these other kind of
| | 08:01 | interesting things that you can affect
with conditional formatting. And just so
| | 08:05 | you know, in this case if I were to
export these values out, my conditional
| | 08:10 | formatting does not follow with the
data when I exported it. It's actually
| | 08:13 | something that the field or the
layout object has applied. So if I import
| | 08:17 | data into this field, that will
certainly apply conditionally but if I export
| | 08:23 | it out into another field, the values
are not going to follow it so to speak.
| | 08:26 | So definitely have some fun
checking out this brand new feature within
| | 08:29 | FileMaker 9, the conditional formatting.
| | Collapse this transcript |
| Field behaviors| 00:01 | In addition to controlling field
formatting, you can also control field
| | 00:04 | behavior. We are going to take a look
at controlling field behavior by opening
| | 00:09 | up our exercise file Lucky_You_09_01,
move into the Adventure Detail layout and
| | 00:21 | now switch into Layout mode.
| | 00:23 | What we will notice by right-
clicking or hitting Format Field/Control or
| | 00:28 | right-click Field/Control, we will see
one of the option is Behavior. There is
| | 00:34 | a field behavior for whatever the
field name was and it allows us many
| | 00:38 | different options on how we can
control how this field behaves.
| | 00:42 | The first of which is, if we go back
into Browse mode, just to show it in a
| | 00:46 | sort of real world example, here we
have the ID of the field and we don't
| | 00:50 | necessarily want anybody to be able to
go in and change this value, but we do
| | 00:55 | want them to be able to search on the value.
| | 00:57 | In past versions, we could just not
allow access to this field but then you
| | 01:02 | wouldn't have access in Find mode
either. Well to solve that issue, if we toggle
| | 01:07 | by going Ctrl+L or Apple+L into Layout
mode and select Behavior, now I can say
| | 01:14 | I don't want it entered in Browse
mode which means it can be read, but not
| | 01:18 | edited or changed or deleted or
anything like that. But it can be accessed in
| | 01:22 | Find mode where we can just enter into
the field and enter search criteria and
| | 01:26 | find all the matching IDs. This way
our ID value is totally protected.
| | 01:31 | Some of the other options that are
available for field are to select the entire
| | 01:35 | contents of a field when entered.
So if this is a field that frequently
| | 01:39 | changes, in this case it is not, but
if we have a field let's say that may
| | 01:46 | change frequently and we want to, when
we tab into it, instead of just having
| | 01:52 | the cursor placed in the field, the
entire contents of the field will be
| | 01:56 | captured in that way a single
keyboard click will delete all the previous
| | 02:01 | values and overwrite if necessary.
| | 02:04 | You can also control setting the input
message to Synchronize with the field's
| | 02:08 | font. So what's happening there is
each field has, for example this one has
| | 02:14 | Verdana 14 point associated with it,
but I could still go in, in Browse mode
| | 02:20 | and paste in some data that I got from
another source that wouldn't be Verdana
| | 02:24 | 14 point font. I will go back in the
Layout mode, back into our Behavior
| | 02:29 | dialog. But if I set this input
message to Synchronize with the field's font
| | 02:34 | then upon pasting the value into the
field, it will actually synchronize it so
| | 02:38 | that it looks nice and clean on the layout.
| | 02:41 | And this a new feature here, called Do
not apply visual spell-checking. You see
| | 02:45 | obviously that visual spell-checking
is enabled for the entire file via the
| | 02:51 | File Options dialog and I go up to
File Options. I will see that under the
| | 02:58 | Spelling tab that I can indicate
questionable words with the special underline.
| | 03:03 | Now, you can right-click or Ctrl-click
on the underline word much like word or
| | 03:07 | maybe your email programs or any
kind of word processing, similar type of
| | 03:12 | thing. But if we want to control it at
the field level, here is an excellent
| | 03:15 | example, this field here, let's
control it. In our case, we do want to apply
| | 03:21 | visual spell-checking, but if we didn't,
we could check this box and not see
| | 03:25 | the visual spell-checking, but if we
go back in the Browse mode, we will see
| | 03:28 | that that can actually be quite useful.
| | 03:30 | So when I click into it, it highlights
a bunch of questionable words and what's
| | 03:36 | nice about visual Spell-checking is
that if I select a questionable word or
| | 03:40 | even if I don't and it's highlighted,
I get Suggested Spellings. So I can
| | 03:45 | change that to derived, and this by
simply right-clicking, make sure I get that
| | 03:52 | there, Suggested Spellings.
| | 03:54 | I don't have any of them, so but since
it's highlighted I know I can go in here
| | 03:59 | and what I had actually meant to type
was of, O F instead of O V, and then I
| | 04:04 | can just real quickly browse through
all these and see that they are all names
| | 04:08 | and that the rest of the data is okay.
But if this is too annoying to the users
| | 04:13 | or just not useful, then you can
turn that off in the Field Behavior.
| | 04:18 | And then the last thing that we are
looking at, the last option that we have
| | 04:22 | available on the Field Behavior, is Go
to the next object using, this is a nice
| | 04:27 | feature because it's completely
platform independent. You can just choose which
| | 04:31 | key on the keyboard will actually tab
to the next object. So when you set up a
| | 04:35 | tab order which we will be talking
about in just a couple movies here. But
| | 04:38 | right now obviously the tab order
itself will help you proceed to the next
| | 04:42 | field or the next object depending on
what it is, that's set up in your tab order.
| | 04:47 | But you can replace that having it be
the Tab key and the Return key or just
| | 04:52 | the Return key or all three of these
has a possibility or just one of them or
| | 04:57 | possibly two, whatever it is, and
you can take some of the platform
| | 05:02 | considerations into account here.
It's whatever is going to be most useful
| | 05:05 | to your users. But the one thing that
you got to make sure of here is that the
| | 05:09 | Enter key in both platforms is used to
commit a record. So if you turn on the
| | 05:14 | Enter key as going to the next object,
instead of committing a record, you want
| | 05:18 | to tab into the next field before you
commit a record. So it's no longer going
| | 05:21 | to allow you to commit a record.
Instead users will need to perform record
| | 05:25 | committing tasks like that with their mouse.
| | 05:27 | So these are the different options
that you have within the Field Behavior
| | 05:31 | dialog. Next we are going to look at a
feature that was new in 8.5; it's called
| | 05:36 | using Auto-Complete.
| | Collapse this transcript |
| Using Auto-Complete| 00:01 | One of the cool new features for data
entry from the FileMaker 8.5 version was
| | 00:07 | something that's called setting up a
field to autocomplete during data entry,
| | 00:12 | and what's actually commonly referred
to as Autocomplete or Type Ahead, much
| | 00:16 | like your Web browser does. This is
something that was possible in versions
| | 00:20 | before 8.5, but really tricky. Let's
take a look at when this might be appropriate.
| | 00:26 | We will go into Open, into our
exercise files 09_formatting_layouts, into
| | 00:32 | lucky_you_09_01, and let's go to the
Adventure Detail layout. And let's say
| | 00:43 | here during data entry, a lot of
times people are spelling the names of
| | 00:47 | countries wrong. You have got a lot of
interesting country names and people
| | 00:51 | don't exactly know how to spell those,
and you want some consistency. Well, you
| | 00:55 | could certainly have a dropdown menu,
or you could add what's called the Type
| | 01:00 | Ahead feature, which means if they
just type in the first couple of values,
| | 01:04 | some selections will pop up or
they will go right to the list.
| | 01:07 | A cool feature here. Just so you know,
this can only be done on text fields
| | 01:12 | and the fields themselves have to be
indexed or able to be indexed, which is
| | 01:17 | what a text field would be. If your
field meets that criteria then you are all set.
| | 01:22 | This is how you access the feature.
Go in the Layout mode, right-click on
| | 01:28 | a field or select a field, and you can
go under Field Control Setup, and there
| | 01:34 | are two different ways that
you can apply Autocomplete.
| | 01:37 | The first is in a Edit box or a
dropdown calendar, and the next is in a
| | 01:43 | dropdown list. So let's try the Edit
box first. You see here in the Field
| | 01:47 | Control Setup dialog that you can
just check Autocomplete using previously
| | 01:52 | entered values, and what that means is
that, it's going to -- actually when let me
| | 01:57 | go back in the Browse mode. I'll
hit OK, we will save. Let's create a new
| | 02:02 | record and in this Country, I will
type in Argentina or Australia or BGU.
| | 02:14 | You will see all I have to do is type in A,
and what appears to be a dropdown but
| | 02:18 | it's really just saying, hey, within
the index we have got two things that
| | 02:21 | start with an A. If I go to Au, the
dropdown looking item disappears and I can
| | 02:28 | just now commit the record and have
it commit the Australia in here.
| | 02:32 | Now there is another way that we can do
this. If we go into Layout mode and we
| | 02:38 | say Format Field Control, and instead
of having just an Edit box, we will go
| | 02:45 | to a dropdown list, and in this case we
are going to autocomplete based on the
| | 02:51 | values that we have defined in a value
list. So we have got a value list called
| | 02:55 | Country and we are going to say
Autocomplete using the value list.
| | 02:59 | The dropdown list displays values in a
menu that drops from the field and users
| | 03:03 | choose value from the menu or
type values directly into the field.
| | 03:07 | So we will go back into Browse mode
after saving our layout changes and now we
| | 03:12 | can dropdown and if we have got
thousands of values in here, the same thing
| | 03:17 | can work. We can say, BC, but instead
now, this looks like it's the same as
| | 03:22 | before, but instead in the case of
an Edit box, all that it's doing is it's
| | 03:26 | showing us all the other values in the
field. It is showing us the index of the
| | 03:30 | field and allowing us to choose from
one of the previously entered values.
| | 03:33 | So as more and more records and more
and more different values get added to the
| | 03:36 | index, there are more and more options
available, but here the values that we
| | 03:40 | are seeing, that we are choosing from,
are actually from a value list called
| | 03:45 | Country. In this case, the Type
Ahead feature is working as part of a
| | 03:50 | dropdown list.
| | 03:51 | So we can do it in a Edit box,or a
dropdown calendar as well or as a dropdown
| | 03:56 | list, and the system must make a
suggestion based on the value list content
| | 04:00 | specified. And keep in mind again, that
only fields defined as text fields can
| | 04:05 | be set up to use Autocomplete.
Numerical fields, date fields, or any other type
| | 04:08 | of textual data can be stored in
text field as well. So keep that in mind.
| | 04:13 | Autocomplete is not supported in
dropdown list when the value list is configured to
| | 04:17 | also display values from a second field.
So there is something to be aware of.
| | 04:22 | Or also if it has show values only
from second field. That has a lot to do with
| | 04:26 | the indexing and the storage issues
involved with the field index there. So,
| | 04:32 | that's what's called using Autocomplete,
and we are going to look at another
| | 04:35 | cool layout feature in the next movie,
which is a fun one to use. It's called
| | 04:40 | creating and using the tab control feature.
| | Collapse this transcript |
| Creating and using the Tab Control feature| 00:01 | One thing you may have noticed in a
lot of the example files throughout this
| | 00:04 | title is that they all contain some
tabbed interface or some sub-tab interface
| | 00:08 | depending on what your terminology is
for that layout effect. We will look
| | 00:13 | inside our exercise file that can
be found in 09_formatting_layouts,
| | 00:19 | Lucky_You_Tours_09_01, and we will
navigate over to our Adventure Detail.
| | 00:25 | Actually you can see in several of
these examples, we have got a Tab Control
| | 00:30 | feature on almost every detail. These
are great because we can save a layout
| | 00:35 | space, we don't have to scroll down
and we can contain everything into one
| | 00:39 | layout area. You see Customer Details
has all sorts of different information in
| | 00:44 | here, all accessible by clicking on one
of the tabs. This isn't something that
| | 00:49 | is new to FileMaker. A lot of
developers have been creating tabbed interfaces
| | 00:53 | for quite some time.
| | 00:56 | In previous versions, what you have to
do is create a layout that looks just
| | 01:00 | like this one, but one that is for
Contact tab and then create another one just
| | 01:05 | looks like this, but has the Billing
tab, Trips and Notes and so on and this
| | 01:09 | would have been four different layouts.
And now with the Tab Control, it's one
| | 01:13 | layout that we can drop a Tab Control
on the layout and save a ton of space and
| | 01:18 | be able to offer this Tab Control
feature pretty easily to people.
| | 01:22 | And you see here is an example of one
of the Tab Controls. What we are going to
| | 01:26 | do is I'm going to show you how you
add a Tab Control. So let us go into
| | 01:32 | Adventure Test where we have a blank
layout and what we are going to do here is
| | 01:37 | go into Layout mode and first we will
add a couple of fields for the adventure.
| | 01:42 | Let us go down here and sort these
fields, to make it a little bit easier to
| | 01:45 | find. Here we go; we will say the
adventure title and that should actually do.
| | 01:59 | That should be good enough for this example.
| | 02:02 | So we have got a title and now what I
would like to do is create a Tab Control
| | 02:06 | that has both all the trips that
are booked under this title and then a
| | 02:09 | description of the title, but all in
this space right here. So there is a
| | 02:13 | couple of ways that you can add the
Tab Control once you are in Layout mode,
| | 02:16 | you can click on the Tab Control
button on your status bar and you will see
| | 02:20 | that your cursor turns into a
crosshair and I can pick the area that I want
| | 02:26 | covered by the Tab Control and you see
upon release I get the Tab Control Setup.
| | 02:32 | You can also add a Tab Control by the
way by choosing Insert, Tab Control, but
| | 02:39 | you don't have control over where it is
placed or what the size is, so this is
| | 02:43 | a preferable way to do this. So I can
size this out, line it up with all my
| | 02:47 | other elements and now I see the Tab
Control Setup dialog. So on the Tab
| | 02:52 | Control Setup I can type a panel name
and in this we want two panel names. So
| | 02:57 | the first Tab panel name is going to
be Trips and I hit Create and the second
| | 03:06 | one will be Description. So now I
have got two tabs, Trips and Description.
| | 03:11 | And we can also choose in the tabs
whether or not we want Rounded or Square
| | 03:16 | tabs, we will keep with the Rounded
and the Trips Front Tab and this is
| | 03:22 | something that has been in 8.5 the only
control you had over which tab was the
| | 03:27 | default when a user landed on your
layout was by which one was the last one you
| | 03:31 | accessed when you were in Layout mode
which cause kind of some confusion and
| | 03:35 | some difficulty in keeping that
consistent and setting user expectations. So
| | 03:39 | now that's part of the
Tab Control Setup feature.
| | 03:41 | So we will say that Trips is going to
be the default one and we can justify the
| | 03:46 | tabs, Center, Right or Full
Justification and we will just do the standard
| | 03:50 | Left. And something else that's new in
FileMaker 9 that has been updated since
| | 03:55 | 8.5 which is handy is the ability to
determine the Tab Width. Before it would
| | 04:01 | determine the tab width based on the
tab name. So if your names like for
| | 04:05 | instance I have Trips and Description,
so I would have two different tab
| | 04:09 | widths. So what people were doing,
what developers were doing were adding in
| | 04:13 | blank characters where the balance of
the blank characters just so these tab
| | 04:16 | names would be the same.
| | 04:17 | Well, that's no longer necessary. You
have a couple of different options here.
| | 04:21 | You can say the Tab Width will be just
the Label Width which is just how it was
| | 04:26 | before. Trips and Description would be
two different sizes or the Label Width +
| | 04:30 | the margin of: and then we can add some
pixels in there too or the Width of the
| | 04:35 | Widest Label or a Fixed Width of:
whatever the amount is. So we will say, Width
| | 04:40 | of the Widest Label and let's hit OK
and so you see that we have got our Tab
| | 04:47 | Control and we can click into each one
of these to populate it and we are still
| | 04:50 | in Layout mode here of course.
| | 04:52 | And what I'm going to do is, I'm going
to drop in and we will learn more about
| | 04:55 | portals when we get to that section.
But I'm going to drop in a portal with ten
| | 05:02 | rows, with trip information starting,
ending, enrollments and whether it is
| | 05:12 | coming soon, hit OK and in the
Description, I'm going to drop a field in here
| | 05:23 | and we will drop the description of the
field into this tab, and now let's take
| | 05:31 | a look at this in Browse mode.
Save this and you see that even though
| | 05:36 | Description was the last tab that I had
opened before I went into Browse mode,
| | 05:39 | it's still defaulted to
Trips like I had asked it to.
| | 05:43 | And now we can toggle between these
two elements with Tab Control saving all
| | 05:47 | this space on the layout that would
normally be cluttered up with a portal and
| | 05:52 | a description field, couple of things
that are important to note about Tab
| | 05:56 | Controls. First of which is, if you
need to move the Tab Control, you can go
| | 06:01 | back into Layout mode, you can just
click on it and move it and all of the
| | 06:07 | contents move around with it. So it
makes it really portable, it's almost like
| | 06:10 | all these elements are grouped together.
| | 06:14 | Also should you decide that instead of
having a field in here, you want to nest
| | 06:22 | even more tabs and sometimes the
business rules makes sense to do this. You see
| | 06:29 | you have Trips and then in Description
you have a couple of tabs that you can
| | 06:32 | choose from in there and you can pretty
those up a little up as well. So that's
| | 06:37 | something to keep in mind when you are
developing these and also when you are
| | 06:40 | changing the Tab Control, you just
toggle in the Layout mode or view Layout
| | 06:44 | mode and double-click on it and that
will reveal your Tab Control Setup.
| | 06:48 | It will allow you to add new tab panels
if you want to, rename an existing tab
| | 06:52 | panel if you wish and you click
Rename or delete a tab panel by hitting the
| | 06:58 | Delete button or you can even reorder
the tabs. So you see, again anywhere that
| | 07:03 | you see these up and down arrows, in
FileMaker means you can move things up and
| | 07:06 | down and reorder. And you can
also change the Default Front Tab.
| | 07:12 | So some things that you can do
manipulate this. Also, you can change the fill
| | 07:17 | color just like any other object on
a layout you can go on and make them
| | 07:22 | separate colors if you would like to. I
happen to pick some particularly gaudy
| | 07:26 | colors for effect. But you will see
that you can have each panel be a different
| | 07:32 | color and even have different
nested colors inside the panel.
| | 07:36 | A couple of things that you should
know is if you move a Tab Control over
| | 07:40 | another layout object, and we can go
under Browse mode, now this should be a
| | 07:46 | good example of that. You cannot make
this opaque or allow users to see things
| | 07:52 | through a Tab Control. So you can't do
different design features like that and
| | 07:57 | if you make a Tab Control smaller and
your elements don't fit, you will notice
| | 08:02 | that if you don't resize them, they
are going to end up just as part of your
| | 08:06 | layout. So you have to keep that in
mind if you are changing these sizes.
| | 08:10 | And if a Tab Control is not wide enough
to display all its tabs, the tab names
| | 08:14 | will be truncated. So you will see if
we go in and make these really small,
| | 08:21 | you see that it is just going to truncate
the name. So make sure that you size
| | 08:24 | those appropriate to the tab width.
And then finally you can lock the Tab
| | 08:29 | Control and of course can't make
modifications to the tab unless that feature
| | 08:32 | has been unlocked.
| | 08:34 | So Tab Control, a really cool layout
feature that obviously is used quite a
| | 08:38 | bit in FileMaker applications and
allows you a great deal of flexibility
| | 08:42 | without having to develop multiple layouts.
| | 08:45 | And the next feature that we will look
at is setting the tab order of fields on
| | 08:50 | a layout, not related to Tab Control,
but something equally as useful.
| | Collapse this transcript |
| Setting the tab order| 00:00 | Another very useful data entry
technique inside of the FileMaker layout is the
| | 00:06 | ability to control the order in which
users can tab from field to field and in
| | 00:11 | recent versions of FileMaker, you can
include buttons and objects in that tab
| | 00:15 | order as well. So, let us take a
look at the tab order, if we open up the
| | 00:21 | Exercise File inside 09_
formatting_layouts, the file called
| | 00:27 | Lucky_You_Tours_09_01 and if we go to
the Customer Detail layout, what we will
| | 00:36 | do then is then go into Layout mode.
| | 00:38 | Well first we can test it by hitting
the Tab button in Browse mode and you will
| | 00:42 | notice that on your copy nothing is
happening and that is because when we go
| | 00:46 | onto Layout mode, there is no tab order
setup and the way that we check that is
| | 00:50 | we go into Layouts to Set Tab Order.
Now you will notice that the Set Tab Order
| | 00:57 | window appears on screen and it says
that there is a total of 31 items and
| | 01:03 | interestingly as it is counting items,
there are not necessarily 31 buttons and
| | 01:07 | fields on screen, but some fields
qualify and some don't. For example, some of
| | 01:12 | the rules you should be familiar with
are that Buttons, Tab Controls and Web
| | 01:16 | Viewers can be included in
the potential tab order here.
| | 01:19 | Summery fields although cannot be and
the reason is the whole idea to tab into
| | 01:24 | a field is so that you can use it for
data entry and summery fields you are not
| | 01:28 | able to enter data into. Calculations
fields are similar in that manner in
| | 01:32 | that they can be included in the tab
order, but you can't tab into them in
| | 01:37 | Browse mode, they can be included in
the tab order so that you can include them
| | 01:41 | in Find mode so that you can search on
values that are results of calculations
| | 01:46 | and fields that are formatted to
prevent entry in Browse mode or Find mode
| | 01:50 | cannot be tabbed in those
particular for obvious reasons.
| | 01:54 | So to set tab orders there are a couple
of ways we can do this. You see that we
| | 01:57 | do not have a tab order set right now.
Before you get into this layout, you are
| | 02:02 | going to want to make sure you
understand the order in which you are going to
| | 02:04 | want things to tab. So what you can
do is you can say -- if you want to do
| | 02:09 | everything you can say, Add
remaining objects, which is fields and buttons
| | 02:12 | together, and if I just hit Add, you see
that it populates, in the order in which
| | 02:17 | they were added to the layout, it
populates a tab order. Sometimes it is useful
| | 02:21 | if you took some thought into how you
place fields on a layout. If not, then
| | 02:25 | you can hit Clear All or maybe you
just want to add all the fields only.
| | 02:31 | The same logic can be applied there and
of course the same is true by hitting
| | 02:35 | Buttons only and then Add.
| | 02:37 | You can also use this tool to remove,
so if I want to remove the fields only
| | 02:41 | and leave just the buttons, you see
that I picked Buttons only and then remove
| | 02:45 | all fields or I can remove all buttons
as well and that leaves me with nothing.
| | 02:50 | But the way that a lot of developers
use is to manually select a tab order. So,
| | 02:55 | again I will Clear All. And keep in
mind that when you get to this point,
| | 03:00 | you really should have some idea how you
want your tab order to be reflected. And
| | 03:04 | all we have to do is click on this
arrows and you see the number appears.
| | 03:07 | There is number 1, I will say number 2,
number 3 and I'm going to click inside of the
| | 03:13 | tabs and I'm doing this, so that I
can show you something here momentarily.
| | 03:18 | So I will say 1, 2, 3, 6, 7, 8, 9 and
we go down here and then we will go into
| | 03:29 | the Print button and I'm going to hit OK.
Now, I'm also going to right click on
| | 03:37 | this and do a dropdown calendar, so
that we can see this in Browse mode and now
| | 03:45 | let us go into Browse mode and let us
tab around. So I have got let us say a
| | 03:49 | new record and the first button is
highlighted here because that is the number
| | 03:54 | 1 in the tab order and as I hit Tab,
you see it goes to the second field, third
| | 03:59 | field and technically the fourth field
is on Billing. What happens is anything
| | 04:04 | that in Browse mode tabbing will only
traverse objects that are currently in
| | 04:08 | the active layout, so that means it is
going to disregard any objects that are
| | 04:11 | in the inactive tab panels.
| | 04:13 | In the way that we can remedy that at
least to some degree, we will go into
| | 04:18 | Layout, Tab Order. You see this arrow here.
This is actually meant for if we do
| | 04:23 | a Clear All, we can do 1, 2, 3, 4, 5, 6, 7.
Go back here and we will say 8, 9,
| | 04:37 | and then 10. We will say OK and now let
us go onto Browse mode and look at how
| | 04:42 | this behaves just a tad bit differently.
So we have a new record, we start off
| | 04:47 | with tab. Now instead of going into a
field inside of the Tab Control, I can
| | 04:53 | use my left and right arrows when it is
selected so if we go back and we go all
| | 04:58 | the way through our tab order, I can
go to Billing, I can do Trips, I can do
| | 05:02 | notes to activate any of those. I mean
I just continue on with my tab order.
| | 05:08 | Now this doesn't only just work for new
records. If we go back to a record that
| | 05:15 | already contains values, we see that
we can tab into these values and let us
| | 05:21 | say we pick one of these fields, let us
go back in here and see that we can go
| | 05:29 | around and around in our tab order and
manipulate the order in which people are
| | 05:33 | entering data or accessing data. Now it
is pretty self explanatory for the most
| | 05:37 | part, but here are some things that
you need to remember when you are working
| | 05:40 | with tab order.
| | 05:42 | If you tab onto a button and in our
case if you remember we are tabbing onto
| | 05:49 | the New button, a user can trigger the
script that is actually assigned to the
| | 05:53 | button by either pressing the Space
key or the Return key. So if I hit Space,
| | 05:57 | it just triggered the script and
allowed a new record to be created and then
| | 06:01 | the user can advance into the tab
order and type in some names. So that is a
| | 06:06 | useful tool and that is going to
require a little bit of training. We discussed
| | 06:09 | the limitations of Tab Control and it
is also possible to change field behavior
| | 06:14 | for your field, so that the Enter or
Return keys as we talked about in a
| | 06:18 | previous chapter take the user to the
next object in the tab order, but only
| | 06:22 | the Tab key can be used to
navigate away from a button.
| | 06:26 | Also tabbing into a field formatted
with a dropdown list or a dropdown calendar
| | 06:30 | for example this one, we will trigger
the list or calendar only if the option
| | 06:35 | to show the list or calendar icon
has not been selected. So if we go into
| | 06:40 | Layout mode here and go back into Field
Control Setup and say, do not show and
| | 06:49 | hide icon and calendar go back into
Browse mode, find a record with some data
| | 06:56 | and now tab around, you will see that
now triggers the dropdown in the same
| | 07:02 | manner as it would with a value list.
| | 07:04 | And if a user tabs into a field that is
formatted as a checkbox or radio button,
| | 07:08 | which means it has got multiple options
within it. Instead of tabbing, it kind
| | 07:13 | of operates in the same way as a Tab
Control. Once you get into that field,
| | 07:16 | you can tab using the left and right
arrows to make various selections.
| | 07:20 | So using tab order you make it so that
people who have a lot of data entry to
| | 07:24 | do can just type away on the keyboard
and never let their fingers off the keys
| | 07:28 | just using tab orders and some of the
rules here that apply to dropping down
| | 07:32 | and using your arrows keys to navigate
within fields or within Tab Control features also.
| | Collapse this transcript |
| Resizing layout objects| 00:00 | There is another really cool new
feature in FileMaker 9 that solves kind of an
| | 00:05 | ongoing problem. As a consultant, we
have developed applications on behalf of
| | 00:10 | other users and one of the things that
has always been kind of a challenge for
| | 00:14 | us is that if we build a solution
that let us say is going to be hundred
| | 00:18 | different people, that the amount of
different screen resolutions and sizes
| | 00:24 | and available screen real estate
really is difficult to wrangle. In a lot of
| | 00:28 | cases you have to develop a special
layout just for someone who has got a
| | 00:32 | larger or higher screen resolutions,
so you can take advantage of more real
| | 00:35 | estate or really what you end up
doing is finding out which user has the
| | 00:41 | smallest available screen real
estate and you develop the entire solution
| | 00:45 | around their needs.
| | 00:47 | An example of that if you open up the
Exercise Files for 09_formatting_layouts,
| | 00:54 | open Lucky_You_Tours_09_01 and you see
here what we have done in the default
| | 00:59 | layout for Customer Details, is we had
the expectation that the user had a large
| | 01:03 | enough screen real estate, so we are
able to put everything on in a logical
| | 01:06 | fashion. But you are developing an
application and even a couple of the key
| | 01:11 | users have screen real estate or
resolution that is not as large as the one
| | 01:16 | that I have here, you might end up--
users have an experience like this which is
| | 01:20 | very frustrating and really doesn't
show FileMaker at its best and having
| | 01:24 | people have to scroll for a
smaller screen resolution size.
| | 01:27 | The same kind of challenge you run
into when developing websites, but in
| | 01:31 | websites the way that you can remedy
it is build the website let's say in
| | 01:35 | Flash or a vector-based graphic that
will stretch and shrink with the allotted
| | 01:40 | size. And FileMaker has now taken on
a new property similar to that. Let me
| | 01:45 | show you what I'm taking about. Let us
go in the Layout mode and all the way on
| | 01:48 | the bottom you see a layout called
Resize. We will go back into Browse mode and
| | 01:52 | here in the situation that I described
in order to prevent any scrolling for
| | 01:58 | any users, you would create a layout
that was this small and unfortunately
| | 02:03 | there might be some values for example,
if we go in and we put in some values
| | 02:07 | let us say we just take, go back up.
So, we are going to have to go in the
| | 02:13 | layout first, go down to Resize,
Browse mode again and we will paste those
| | 02:21 | fields in here.
| | 02:22 | Without adequate screen real estate, we
can't really see all the fields and we
| | 02:26 | can't see all the data and even if
we fill up for those of us that high
| | 02:31 | resolution, we still can take
advantage of the additional screen real estate.
| | 02:34 | Well, FileMaker to the rescue.
FileMaker has created really cool feature that
| | 02:39 | is called Setting Auto Resize options
for layout objects. And I will show you
| | 02:44 | how we can modify these. If you recall
or if you worked with FileMaker 8.5, you
| | 02:50 | remember that this Object palette or
Object Info palette that you suggest
| | 02:55 | really allow you to see the
measurements of different objects that you have
| | 02:58 | chosen much like this, now it has
become a object naming tool and now an auto
| | 03:03 | resizing tool.
| | 03:05 | First off, the default every object
that is placed on the FileMaker layout like
| | 03:09 | these we have not even addressed and
resize, but you see that they all share
| | 03:13 | the same thing in common. The default
is that they are anchored on the top and
| | 03:17 | to the left and really that is just
the standard behavior, so that means if I
| | 03:21 | stretch, these stay anchored up in
this corner and over here which means they
| | 03:27 | won't move out in any direction or
they won't move down to the right in this
| | 03:31 | direction, but now we can change that.
You can set objects to automatically
| | 03:35 | resize or move horizontally or
vertically when the FileMaker Pro Window is
| | 03:41 | resized and these horizontal
settings also apply to the Preview mode and
| | 03:45 | Printing when the page size is wider than
the size of the layout being viewed and printed.
| | 03:49 | So it is kind of stretch to fit on both
printing and in the Browse mode, which
| | 03:53 | is really cool. This is something
that is actually pretty revolutionary for
| | 03:57 | FileMaker layout design and it all
boils down to these anchor points here and
| | 04:01 | when layout objects are set to resize,
they actually maintain a constant
| | 04:05 | distance from the object to which
they are anchored. This allows objects to
| | 04:09 | move and expand or contract when
the FileMaker Pro Windows resize.
| | 04:14 | So for example this field would be
anchored to the object to the field of it
| | 04:19 | and the object above it, so that
distance would never change and so for
| | 04:23 | instance, Button would be anchored to
the left of the screen and also to the
| | 04:27 | top, so that way we want to resize this,
nothing stretches or moves. And by the
| | 04:31 | way we don't necessarily want
everything to stretch in the same manner. For
| | 04:34 | example, if I stretch an icon it is
just going to stretch it out and not make
| | 04:38 | it look like the icon any more. So in
that case I would want to anchor it down
| | 04:41 | to the bottom right no matter what the size is.
| | 04:44 | And a photo is a great example of
something that we don't want to resize,
| | 04:47 | because it is just going to stretch it
out, so that we can't even recognize it
| | 04:50 | anymore. So there are different
strategies to which anchor positions that you
| | 04:54 | choose depending on what type of
object it is that you want to resize and if
| | 04:59 | want to get more familiar with this,
just go into FileMaker Pro 9 Help and
| | 05:03 | check out some of the examples of
what happens with an object position and
| | 05:07 | width when the windows at original
size versus the position of the resize
| | 05:11 | window for each one of the different
combinations of the Auto Resize setting.
| | 05:15 | So there are four different anchors and
you can do any combination of them. So
| | 05:18 | really there is a logically about four
real combinations that you are going to
| | 05:23 | work with, but let me actually show
you some live examples of this, so I can
| | 05:27 | anchor my objects. Now right now by
default I'm anchored to the next object
| | 05:31 | above it or the edge of the window or
anchored to the left of the object in
| | 05:36 | this case the name or the field label.
So if I want my fields to stretch to the
| | 05:42 | left, I would add an anchor to the left.
Let us select all the fields, so we
| | 05:52 | want all these fields when I move to
the left to stretch to the left. So what
| | 05:56 | that means is I'm going to want to
anchor them to the right, so that means that
| | 05:59 | they are anchored to the item on the
left, they are anchored to the anything
| | 06:02 | above it and they are also going to be
anchored to the right hand side of the
| | 06:06 | screen or the right edge of the screen.
| | 06:08 | So let us take a look and see what
happens -- we go into Browse mode. Curiously
| | 06:16 | we don't have any reactions, do we?
Well the reason is because I have actually
| | 06:20 | embedded all of these fields inside of
the Tab Control and so the Tab Control
| | 06:25 | is going to have to be addressed as well.
So here we see the Tab Control is in
| | 06:28 | default, so we will say -- let us try
all four of them and see what happens for
| | 06:34 | the Tab Control.
| | 06:35 | Now we get kind of an interesting
effect here, don't we? The Tab Control will
| | 06:38 | stretch and shrink, but looks like we
have some kind of weird things going on
| | 06:44 | here. First we still can't see all of
these fields. We have got this picture
| | 06:48 | now covered up all over these
values and we have got this image sort of
| | 06:51 | floating here. So if we use this
anchor concept and we know that we want the
| | 06:57 | image here to always be anchored to the
bottom of the page and to the right, so
| | 07:01 | we actually have to go with the
opposite of what we got here and let us go into
| | 07:05 | Browse mode and see if that made a difference.
| | 07:08 | Sure enough, now as we change in
resize, we see that we have to that issue
| | 07:15 | taken care of. Now let us see what we
do with the photo and it will be pretty
| | 07:19 | standard that as far as a photo is
concerned, you won't want to anchor to the
| | 07:24 | left if you are stretching to the right.
So let us anchor to the opposite and
| | 07:28 | this is pretty standard for photos.
This is what the original size was, that is
| | 07:34 | why our scroll start in that area, but
here we go, we have got the photo in the
| | 07:38 | container field resizing, we have got
the image staying anchored and we have
| | 07:42 | got fields resizing to as much
screen real estate that I have got.
| | 07:46 | However we still got an issue here
with the field values. If I did both of
| | 07:52 | these fields in the same manner --
what I did all four. Let us just see what
| | 07:56 | that looks like. You see that it is
actually stretching and shrinking to all
| | 08:01 | directions. Now that works for this
field, doesn't it? But it doesn't work for
| | 08:06 | this field. So let us click back into
Layout mode and it takes a little bit of
| | 08:09 | experimenting, so you can get used to
it. But we will remove anchoring to the
| | 08:13 | bottom so that way it doesn't stretch
down and the notes -- we are anchoring in
| | 08:18 | all four areas, but you see that we
still don't have any space between these
| | 08:22 | fields because it is
anchoring all the way to the left.
| | 08:24 | Why don't we remove that and try this
with the notes fields? And sure enough
| | 08:30 | now we have got the notes fields
are stretching down and we still have
| | 08:36 | maintained the space between these two
fields and of course we can go back and
| | 08:40 | say, we wanted to stretch in all four
directions and here we can get rid of
| | 08:45 | that left side if we want to solve
that issue. So now there is our perfect
| | 08:49 | resolution. So no matter what the
screen resolution if I blow this up onto a
| | 08:52 | large screen, we can stretch and shrink
these values. Something that is really
| | 08:57 | exciting and pretty cool, something
that the development teams in the past
| | 09:02 | really had some difficulty with. So,
now if you are new to FileMaker 9, you
| | 09:05 | don't know any different. You can take
advantage of any kind of user screen size.
| | 09:10 | By the way, things beyond the body can
take advantage of this as well. So, let
| | 09:16 | us say the header and the body. You
see that there is all sorts of different
| | 09:22 | combinations, that you can work with --
let's anchor there. So now with a full
| | 09:27 | screen, even elements that are in the
header can stretch and shrink. So play
| | 09:32 | around with this example and you can
follow along with the video, with some of the
| | 09:35 | things that I tried, but I wanted to go
on progressive methods so you can see
| | 09:39 | that there is a bit of experimentation
involved with this. But have fun with
| | 09:42 | playing with resizing of layouts.
It's definitely one of the FileMaker 9's
| | 09:46 | coolest new features.
| | Collapse this transcript |
|
|
10. Web Viewer EssentialsUsing the FileMaker Web Viewer| 00:00 | Since the Web Viewer is really a
radical new component inside FileMaker Pro and
| | 00:04 | actually really, you can't find
anything like this in any kind of database
| | 00:08 | platform, in order for you to
understand, let's first take a look at Web
| | 00:12 | Viewer in action and then we will go
under the hood and take a look at how to
| | 00:15 | set one of these up into your
FileMaker solution. I have got an example file
| | 00:18 | here that by the way ships with
FileMaker Pro. If you look inside your
| | 00:21 | documentation folder you will see a
file that is called Web Viewer Example, if
| | 00:25 | you have copy of FileMaker 8.5.
| | 00:27 | But let me show you Web Viewer
working inside a FileMaker Pro database.
| | 00:32 | Essentially Web Viewer allows
developers to integrate Web browser viewing into
| | 00:36 | their existing FileMaker Pro database
layouts and it also ships with a couple
| | 00:40 | of templates which we are going to go
through on a later chapter. Some really
| | 00:43 | easy things that allows you to just
point FileMaker Pro data to this really
| | 00:48 | cool Web Viewer and then you will see
things like Google Maps and MapQuest and
| | 00:51 | FedEx Tracking and Wikipedia and
different things like that and we will cover
| | 00:54 | that in the templates chapter.
| | 00:55 | But here are some examples of what
this looks like, just so you can visualize
| | 00:59 | what Web Viewer looks like inside a
FileMaker layout. So just to be clear, this
| | 01:03 | is a FileMaker layout, no tricks up our
sleeve, and this new Web Viewer control
| | 01:09 | which is a new feature on the palette
is just simply drawn into the areas where
| | 01:13 | you are seeing web viewing.
| | 01:15 | Now it is not a browser, but it takes
does advantage of the native controls
| | 01:18 | provided by the operating system and so
since I'm working on a Mac, that means
| | 01:22 | that I'm really using -- the best way
to put it as the engine of safari on OS
| | 01:27 | 10. If I was working on a Windows
machine, it would be IE. Really the
| | 01:31 | limitations of Web Viewer are only the
limitations of Web Browser. So, anything
| | 01:36 | that you can view inside a Web
Browser like for example, Google Maps or a
| | 01:42 | plethora of other things, PDF or Flash
and we will look at some examples of all
| | 01:46 | of these, but in addition to that
rather than hard coding in an address and
| | 01:50 | this is really the most powerful
feature of Web Viewer and in all of these
| | 01:53 | examples you will see this -- notice
here that this Google Maps has an address
| | 01:57 | in it, but when I switch to the next
record in the database, notice that the
| | 02:02 | address changes because that is the
address coming from the local fields in
| | 02:06 | this database.
| | 02:07 | So it is way the FileMaker data can be
represented in a way Web Browser in a
| | 02:11 | number of different ways, but there
are a couple things that are important to
| | 02:15 | note about what Web Viewer is not. It
is not an actual browser itself, it does
| | 02:19 | not inherently provide navigation or an
address bar, or history or preferences
| | 02:23 | or menus and all that kind of stuff
and it won't launch additional Web Viewer
| | 02:26 | windows either. It is more like a
container field inside a layout that plays
| | 02:30 | web pages than it is not an actual browser.
| | 02:32 | So the key is that is intended to
view web content, not replace all the
| | 02:36 | functionality of a Web Browser. That
is why FileMaker carefully name this the
| | 02:40 | Web Viewer, not the Web Browser
control. Let us have some fun with this and
| | 02:44 | take a look at some of the stuff that
we can do. First off, we noticed that we
| | 02:47 | have got maps; we can build the
functionality in for Map Quest for example.
| | 02:51 | Really any contact database can
benefit from having Map Quest in here. As a
| | 02:55 | matter of fact not only can you display
it, but this is the data in the record
| | 02:59 | and you see I can use that as the
starting location and I can feed that to my
| | 03:02 | Web Viewer and get directions as well.
| | 03:06 | What application can't use that? Also
there is some built-in Google searching,
| | 03:10 | Wikipedia. Let us go find somebody here
from a company that we have heard of --
| | 03:16 | Oh! Yes, Google. We can Google Apple
computer and with just a click of a button
| | 03:21 | we can get all of the Wikipedia
information; News, Dictionary, Wikibooks all
| | 03:28 | sorts of stuff here as well and just
with a press of button -- and these are
| | 03:32 | templates which I will show you how to
use in the next chapter. Also shipping,
| | 03:36 | how much would you like to be able to
embed FedEx tracking or UPS tracking or
| | 03:41 | any kind of tracking?
| | 03:42 | Here we have FedEx tracking embedded
right into the database. So here what we
| | 03:46 | have got is a portal of a bunch of
packages that have been tracked in our
| | 03:48 | FileMaker system and just by
selecting one of these buttons, it loads this
| | 03:52 | information and automatically jumps
out to FedEx and finds our tracking
| | 03:57 | information for us and you can even
present signature proof for example if that
| | 04:01 | is available so, another really
useful tool that we can embed into our
| | 04:05 | FileMaker solutions.
| | 04:07 | Also let us say, we want to keep
onto top of our stocks. Here is a great
| | 04:11 | example and things seem to be doing
well with the Apple Stock. One of the more
| | 04:15 | exciting pieces and we are going to
cover this in the last chapter here. I'm
| | 04:19 | going to show you a lot of really fun
examples of integrating Flash. Here is an
| | 04:22 | example of Flash running in a website
for example. If we click here we will
| | 04:28 | choose Website and then will launch and
this is something that FileMaker can do
| | 04:32 | before you couldn't put a Shockwave
file inside of a container, you couldn't
| | 04:36 | put it in a layout element. Now you
can have it run seamlessly and natively
| | 04:41 | within your FileMaker application.
| | 04:43 | Now not necessarily a web page let us
say, but just to prove that it does run
| | 04:46 | Flash, you can see this example here
or let us say what you want to do is run
| | 04:52 | something that you have encoded in
Flash like in this example, we can see there
| | 04:55 | is a tutorial. So all sorts of fun
stuff they are barely any limitations of
| | 05:03 | what you can do UI with Flash, so
you have just been able to add on that
| | 05:06 | functionality within FileMaker as well.
| | 05:08 | In addition, browsers don't only just
display websites or flash, they also act
| | 05:13 | as a front end for shared database
system. So let us say we want to embed a
| | 05:18 | knowledge base or if you have a
support section or an ongoing FAQ on your Web
| | 05:23 | Server, in this case you can load
FileMaker Help. Here you see it is the web
| | 05:29 | based FileMaker Help can be embedded
right into any one of your solutions and
| | 05:32 | you can also embed the FileMaker
product updater which is all off on
| | 05:36 | FileMaker's website, so basically all
these additional functionality in your
| | 05:39 | database and you don't have
to do any additional work.
| | 05:42 | And also browsers don't only allow
front ends for databases either, Web
| | 05:45 | Browsers can also view PDF pages,
granted you can embed a PDF or any other kind
| | 05:52 | of document into a container field,
but now you can actually view the PDF
| | 05:55 | itself using the Web Browser engine. In
addition to PDFs and other web viewing
| | 06:00 | type capabilities, you can run reports.
In this case what we have got is a
| | 06:04 | Style Sheet. There is an example of
XSLT Style Sheet that will transform data
| | 06:08 | from the database, but then present it
because it will create an HTML document.
| | 06:13 | So again even though you are not
publishing a web page using HTML, this is an
| | 06:18 | HTML viewer so if you want to transform
data into a certain format here is how
| | 06:22 | you can view it in a Web Viewer. And
also it still curious with some of other
| | 06:26 | characteristics of the container
field, for example here we can play a
| | 06:30 | QuickTime Movie inside a container as
well, but then we will have to deal with
| | 06:33 | the issues of embedding it into the
file or possibly not embedding it into the
| | 06:37 | file or we have to deal with linking it
and not moving the source file. But if
| | 06:43 | we use a Web Viewer to display anything
with the supported functionality in the
| | 06:47 | browser, you can have audio, you can
have images, you can have animation, you
| | 06:51 | can have Quick Time Video; whatever it
is that you want, whatever plays in --
| | 06:54 | Browser will actually play
here inside your solutions.
| | 06:57 | And then finally, you can use web
technologies like Flash for example. Here is
| | 07:03 | an example of a Charting application
that was created using Flash and then
| | 07:07 | published into a Shockwave file and
then this can retain data that comes from
| | 07:12 | FileMaker Pro either locally or through
a server or whatever it is and it will
| | 07:16 | display different types of charts,
but the data that you are having in your
| | 07:19 | FileMaker database, you can
display in a plethora of different ways.
| | 07:22 | So here you see any kinds of charts
with rollovers and interactivity and all
| | 07:27 | sorts of really cool stuff and you
could buy a plug-in for this if you would
| | 07:30 | like or you can build it in Flash and
then embed it inside your Web Viewer and
| | 07:35 | it looks like it is just part of the
FileMaker layout. You can see seamlessly
| | 07:37 | there is no difference here. Another
version of a different chart and by the
| | 07:41 | way this chart is actually a product
that if you go to isolutions-inc.com
| | 07:48 | you can subscribe to a web service and
there is going to be a ton of different Web
| | 07:51 | Viewer based services or tools that
developers are going to build out there and
| | 07:55 | here is the first one to hit the
market and it is really exciting.
| | 07:58 | So to review you can do charting, you
can do maps, you can do searching with
| | 08:04 | some of the templates, you can do
tracking and stocks and all sorts of Flash
| | 08:09 | movies and support and PDFs and reports
and all sorts of stuff. Now that we have
| | 08:15 | seen what Web Viewer can do, let us
take a look at adding Web Viewer to an
| | 08:19 | existing database.
| | Collapse this transcript |
| Adding Web Viewer to your layouts| 00:01 | So, this new functionality is pretty
exciting and in order to be able to
| | 00:05 | integrate web browsing or the web
browser engine in to your FileMaker
| | 00:09 | layouts, you first have to add your Web
Viewer control to one of your existing
| | 00:13 | FileMaker layouts or create a new
layout so that you can add this control. So,
| | 00:17 | let us take a look at how we do that
in the different ways we can do that.
| | 00:20 | We'll open our Exercise Files, go in to
10 Web Viewer and open up the orders.fp7
| | 00:26 | file. And you will see what we have
here is on screen, we have got a Tab
| | 00:31 | control, but keep in mind that
you do not need a Tab control.
| | 00:34 | You can put a Web Viewer anywhere
in the body of your layout or you can
| | 00:38 | actually put a Web Viewer in the
header or footer or title header and title
| | 00:43 | footer but keep in mind if you are
going to provide any data to it, it's kind of
| | 00:46 | like if you took a related field and
put it outside of a portal row; it's only
| | 00:50 | going to show the first related record.
| | 00:52 | So, in the case of putting a Web Viewer
on a title header or a header, it will only
| | 00:57 | load data from the first record in
the found set and the opposite of course,
| | 01:01 | working conversely, if you are to put
a Web Viewer in the footer or a title
| | 01:07 | footer. Now, it's not to say that
you want to do that because you can have
| | 01:10 | sound playing there, have some kind of
cool animation. So there are all sorts of
| | 01:14 | different things that you can be using
in the Web Viewer for other than actually
| | 01:17 | loading the webpage.
| | 01:18 | So, with that being said, let us go in
to Layout mode because you can only add
| | 01:23 | a Web Viewer in Layout mode, and
there is couple of things that you need to
| | 01:27 | know about the Web Viewer. First is
when you select a location for the Web
| | 01:32 | Viewer on your layout, there cannot
be anything behind it because the Web
| | 01:37 | Viewer cannot be transparent and
anything behind it will simply not be visible
| | 01:42 | or not be accessible at all in the
layout. So you can have like a graphic
| | 01:45 | behind it that shows when the Web
Viewer is not active or anything like that.
| | 01:49 | It does not really make sense for the
functionality either. So, you can add it
| | 01:53 | only in layout mode, there is a couple
of ways that you can do it, you can go
| | 01:57 | into the Insert menu and choose Web
Viewer and it will pop up the Web Viewer
| | 02:03 | setup dialog, but it will just
arbitrary draw small Web Viewer elements, kind
| | 02:08 | of like how the Tab Control works, if
you just click insert tab control. But
| | 02:12 | the more sensible way to do it is to
click on the Globe icon and then your
| | 02:17 | cursor will turn into a crosshair and
then you can draw it precisely to the
| | 02:24 | area in what you want to and will
just okay right now but precisely to the
| | 02:28 | location on your layout that you want
to have contain the Web Viewer itself.
| | 02:33 | Now, a couple of tips about the sizing
the Web Viewer, by the way when you have
| | 02:39 | a Web Viewer on a layout, you will
notice that it will look like a container
| | 02:42 | field with a little globe in the
middle. So, you know that you added it
| | 02:46 | correctly if that you are seeing that
on screen much like I have got here on
| | 02:49 | this screen. If you are selecting the
size, you have to take some thing in
| | 02:51 | consideration and we are going to cover
in the essential training here, how to
| | 02:55 | add some webpages using FileMaker
content to your layouts but really the most
| | 03:00 | amazing part of the Web Viewer are
things that are covered in the beyond the
| | 03:04 | basic title, that involve loading
applications or loading local files or some
| | 03:10 | Java or some Flash or some
really cool things there.
| | 03:14 | In the case of the higher end
development anything that is Vector based that
| | 03:17 | you have control over the UI,
specifically for implanting into a Web Viewer.
| | 03:21 | You do not have to worry about the
following, but if you are putting WebPages
| | 03:24 | in there, keep in mind that in the
same manner that if you opened up your web
| | 03:28 | page and logged onto a website and
shrunk up the size of your browser to be
| | 03:34 | this exact size there will lot of
cropping that would occur with most websites.
| | 03:38 | So, for example if you went to a
website that was designed for 800x600
| | 03:42 | resolution, you would have to design a
Web Viewer at 800x600 sizewise in order
| | 03:49 | to - in actually all of the viewing
area, otherwise with interaction with the
| | 03:54 | Web Viewer content you can scroll back
and forth up and down it is really not
| | 03:57 | that critical, but keep in mind that
unless it is Flash website and only
| | 04:01 | because Flash is Vector based or a Java
driven website which can also be Vector based.
| | 04:06 | It is not going to stretch and shrink
or resize within your Web Viewer. So as
| | 04:11 | long as you have that expectation
moving forward, you won't be surprised. So
| | 04:15 | what you can do though if you want make
sure that you have precision here, you
| | 04:19 | could use the object palate here and
you if I did want to do the 800x600, you
| | 04:26 | will see about what that size would be
and of course it would be too big and it
| | 04:29 | would go off my layout here. So, I'm
going to say that will make this 693 to
| | 04:37 | get that back inside the viewer.
| | 04:39 | So, that is a little information on
the sizing of the Web Viewer, the only
| | 04:43 | location where you cannot put a Web
Viewer would be on a portal row. So, you
| | 04:47 | cannot place it on a portal row it just
does not have the ability to index one
| | 04:51 | level down and then load local data.
So that is something that probably be
| | 04:56 | little of overkill on your UI any ways.
So, once you pick a location where the
| | 05:01 | Web Viewer actually can be played and
once you find the right size and location
| | 05:06 | for that Web Viewer, then what you are
going to do is setup the Web Viewer and
| | 05:12 | there is couple of things that you can
do when you get the Web Viewer. You can
| | 05:14 | either do a custom URL or you
can use one of the templates.
| | 05:18 | What we are going to look at in this
title in the next movie is how to use one
| | 05:22 | of FileMaker's many templates that are
available to load webpage data into your
| | 05:27 | FileMaker layouts using data
from your FileMaker database.
| | Collapse this transcript |
| Setting up the Web Viewer using templates| 00:00 | So, at this point we have
determined that we want to add web viewing
| | 00:03 | functionality to our FileMaker layout.
We have picked a location that we know
| | 00:07 | is acceptable for the Web Viewer
to perform and we have also sized it
| | 00:12 | appropriate to whatever the
application is. Now, what we are going to do is
| | 00:15 | configure the Web Viewer Setup dialog
because that dialog is going to allow us
| | 00:19 | to actually have data displayed in the
Web View. Let us take a look at that
| | 00:23 | dialog. Here we have the Web Viewer
Setup and you see that there is couple of
| | 00:26 | different ways that you can
load data into the application.
| | 00:29 | The first of which is a custom web
address, but we will be covering how to do
| | 00:32 | that in the Beyond the Basics title.
It is a little more complex. But the real
| | 00:37 | easy stuff here is all these different
templates that ship with the FileMaker
| | 00:41 | Pro application. You see we have got
Google Maps for US, Canada and UK,
| | 00:45 | MapQuest, all sorts of different Googles,
FedEx Tracking and the entire Wiki
| | 00:51 | family here also. So not only we do
have that functionality built in and by the
| | 00:54 | way this in no ways they perform the
limitation of what you can display in a
| | 00:59 | webpage inside a FileMaker layout.
| | 01:00 | These are just the ones that
happen to ship with FileMaker and that
| | 01:03 | is what we are going to cover in this
title. But if you click on Google Maps
| | 01:06 | for example, you will see that each
one of them has different fields that you
| | 01:09 | can map to data in your database. Now,
every record that I would view would
| | 01:14 | have the same value in it, now that
might make sense, I might want to use a Web
| | 01:17 | Viewer in an area almost as a Global
Web Viewer and in that case I could just
| | 01:22 | hard code in what the address in going
to be and that is really what you are
| | 01:24 | doing when you are doing a custom address.
| | 01:26 | But if for some reason on every single
record, I wanted to have the same map
| | 01:30 | then that it would make sense to hard
code this in. But instead we are going to
| | 01:32 | dynamically map these required values
to a field in the same manner what is
| | 01:39 | called the name Value Pair we are
going to map it to a field within our data
| | 01:43 | base and here, note that I'm using
the table occurence or the relationship
| | 01:47 | address of billing, if you are playing
along at home and what I'm doing is I'm
| | 01:53 | saying, each time I go a record load
the value that is in this field in to this
| | 01:58 | string and you will see here when I
done, see how this string is slowly
| | 02:02 | building it is using -- it is exactly
doing the name value pairs so that each
| | 02:06 | record is going to have
different value that gets it loaded.
| | 02:09 | So, we will go address billing, state
and now this is an example where we could
| | 02:23 | hard code in USA if we knew record in
our database always have the value of
| | 02:27 | USA, then we do not need to do a name
value pair in that or if we do not have a
| | 02:30 | country field or something like that.
So now we can take a look at this and you
| | 02:34 | will see the string that we have
created is just what this is the actual Google
| | 02:40 | Maps, then you see there some text that
concatenates the q= which is also part
| | 02:44 | of the address but then there are some
specific place holders in here. So, the
| | 02:49 | address = will be populated by the
value in the field Address if Billing:: that
| | 02:54 | is relationship at the field based on
that relationship called AddressLine1.
| | 03:00 | Just take look in Browse mode and we
will hit OK and going to browse mode will
| | 03:07 | save our changes to our layout and here
we are, we are on the record for Steve
| | 03:11 | Jobs and you will see what happen is,
it loaded a Google Map and now you see
| | 03:16 | this is where we are getting in to kind
of size issue if we could just show the
| | 03:20 | map and hide this area here, about the
direction and we want to this kind of
| | 03:25 | issue and notice that I cannot
interact with this it is just simply visible.
| | 03:29 | So, somewhat useful but let us go
back in to layout mode and make some
| | 03:33 | adjustments here that is right, I
would like to introduce you do this button,
| | 03:37 | Allow interaction with Web Viewer
content, let us see how that changes the
| | 03:40 | experience.
| | 03:46 | And now I can actually move this map
around and you will see that this gives me
| | 03:52 | full interaction, so I can find
businesses or I can get directions or search
| | 03:57 | the map or sign in to my own Google
Maps account or get help all of these I can
| | 04:04 | do by interacting with the web browser.
So, you can see if I made this full
| | 04:06 | screen like I showed you in the
demonstration video earlier, right now as we
| | 04:11 | can all the functionality built
right into this application and it is
| | 04:18 | contextual to the record. So, let
us see if this is in actual address.
| | 04:25 | Now it is loading and it gives us as
an approximation in that case, so if we
| | 04:32 | went in and change this to and we will
say -- how about we do this instead and
| | 04:47 | you can see that, that is now the Web
Viewer accesses an unstored calculation
| | 04:53 | because now I have just made some
changes and if I go from record to record, it
| | 04:58 | is going to store this new map. So, now
I have got Meni Waters and here's where
| | 05:02 | Meni lives, right over here by Pan
Pacific Regional Park on West 3rd Street
| | 05:07 | across when we go over Los Angeles.
| | 05:10 | And what is cool is I can do the
satellite if I want to and allow that to load
| | 05:14 | momentarily and get a cool view and
-- so really, I have just added entire
| | 05:19 | mapping functionality into my
FileMaker layout, but all I did was just setup
| | 05:22 | the Web Viewer, well there is a couple
of other things here too that I want to
| | 05:25 | show you, if we go back in the layout
mode, we have got Allow interaction with
| | 05:31 | Web Viewer content, we will talk about
displaying content find mode Beyond the
| | 05:35 | Basics title.
| | 05:36 | But display progress bar and display
status messages, if you want to learn more
| | 05:41 | information about this you can hit the
learn more by the way. Okay and we have
| | 05:45 | technically made changes to our layout,
so we will save those, now instead of a
| | 05:49 | white screen and actually in 8.5 it was
a different view, it actually populate
| | 05:54 | with the whole string of data and
frankly nobody needs to see that, it is not
| | 05:58 | useful for anybody to see it and
sometimes it is proprietary information, when
| | 06:02 | it comes to applications.
| | 06:03 | So, it is good that that is gone, but
even better if you notice if I search for
| | 06:11 | Steve Jobs, notice now instead of a
white blank screen where I think nothing is
| | 06:17 | going on, it loads just like a webpage
would and that information gets loaded
| | 06:21 | down below and I do not have to show
that status at all if I do not want to. So
| | 06:25 | let us look at another one of the
templates here very quickly, we will do
| | 06:29 | Google web search and in this case it
is just what term do we want to search.
| | 06:33 | So we will say full name, okay
and let us see what that looks like.
| | 06:40 | So now I have just switched it over to
Steve Jobs and I have got full page in
| | 06:47 | Google which in nice I have allowed
interaction with the content so I can see
| | 06:51 | images of Steve Jobs and any video
of Steve Jobs. So some interesting
| | 07:00 | functionality built-in there, lastly
another one and if I had feel to tracking
| | 07:06 | in for my FedEx, I can just map it
right here or Wikipedia and I think we might
| | 07:10 | have gotten a little bit of inside there.
So we will say full name, will be our
| | 07:19 | search term for Wikipedia, go back in
the Browse mode and we see it loading, it
| | 07:27 | tells us what page it's loading.
| | 07:28 | And after that is done loading, we
see that we have got the Steve Jobs
| | 07:32 | Wikipedia page loaded, if the ability
for us to drill down and find all sorts
| | 07:43 | of information in here by drilling
down and pull some pictures out and that
| | 07:47 | type of thing and by the way if you
click on something that is supposed to
| | 07:50 | launch a new window, it will just
replace the Web Viewer with that content. And
| | 07:54 | also if you do get a new window, you
can right click on or actually script, and
| | 07:59 | we will cover that more in Beyond the
Basics, but if you right click you can go
| | 08:01 | back you can keep going backwards or
you can go forwards or you can even reload
| | 08:07 | or refresh. So, it is just like browser.
The buttons that you do have access to
| | 08:11 | now because you are in a Web Viewer,
you can just right-click on on the Web Viewer
| | 08:15 | and get that same functionality.
| | 08:17 | So just by adding a Web Viewer you can
add a plethora of external data source
| | 08:22 | information into your FileMaker layout.
You can add FedEx tracking, you can add
| | 08:26 | the Google mapping and looking up of a
searching terms but the real power comes
| | 08:30 | into play with creating custom URL
addresses for linking in your own websites
| | 08:35 | and the possibilities are endless in
those cases and we will cover that in more
| | 08:39 | depth in the Beyond the Basics title,
but hopefully this gives you good taste
| | 08:42 | of what is a revolutionary and
really proprietary functionality to only
| | 08:47 | FileMaker Pro. So, enjoy playing
around with this and experimenting a little
| | 08:52 | bit within your own existing FileMaker layouts.
| | Collapse this transcript |
|
|
11. Finding DataBasic find| 00:00 | So far in the training we have been
working with either creating a database
| | 00:03 | through tables and fields and all the
different types of things that involve
| | 00:07 | putting together the schema of our
database and then we worked a little bit
| | 00:10 | with records like adding records,
editing them and deleting them and even
| | 00:13 | duplicating them. So we have really just
been working with one record at a time.
| | 00:17 | So in this section which is called
finding data, we are actually going to be
| | 00:22 | working with multiple records and how
we manipulate multiple records within the
| | 00:26 | database and there is a couple of terms
that I want to establish before we get
| | 00:29 | started, so we'll go ahead and open
up the exercise files in 11 Finding and
| | 00:35 | open up the List View file and in the file
that you have-- in my copy I have got 15
| | 00:42 | records and you should have 15 records
with the same information. Basically,
| | 00:45 | this is a database that has a bunch of
paintings. It's got paintings, the year
| | 00:50 | they are painted and then the artist.
| | 00:51 | Now the first term that I want to
establish and that's an important one, I have
| | 00:55 | used it a couple of times so far in
the title, but I'm going to use it a lot
| | 00:59 | moving forward when we talk about
things like scripts and sorting and different
| | 01:03 | things like that. I'm talking about
the term that is called the Found Set.
| | 01:07 | A Found Set in FileMaker is a group of
records that you are working with and it
| | 01:10 | could possibly be the entire amount
records in a database but you can create
| | 01:14 | sub-sets. So in a lot of cases, Found
Sets are sub-sets and sometimes the Found
| | 01:19 | Set happens to be all of the records
in a database. Now, if that sounds a
| | 01:22 | little bit cloudy, let me give you an analogy.
| | 01:25 | Imagine you have a deck of cards in
your hand, and all the cards with spades,
| | 01:29 | you take out of that deck and you leave
them in your hand and you put the rest
| | 01:32 | of the deck on the table. Now, when you
began, you had originally 52 cards. You
| | 01:37 | still have 52 cards but now you've
separated them out. You have taken out a
| | 01:41 | sub-set of the 52 cards, all of the
spades and that is your Found Set.
| | 01:45 | Let me show you different ways we
create Found Sets and hopefully give you a
| | 01:49 | little bit of clarity on what a Found
Set actually is. First of all, in the
| | 01:53 | database list view, you see that we
have got 15 total records and if we look on
| | 01:58 | the status area, it gives us some
information about the total number of records
| | 02:02 | in our database, and that is listed
right after the word total. But also we
| | 02:06 | have information on all the individual
records themselves, and now you notice
| | 02:09 | as I navigate through and we happen
to be in a List view right now, you see
| | 02:13 | here. But as I navigate through, notice
one thing you see this little Black Bar
| | 02:18 | that is indicating the active record
at any given time, and the active record
| | 02:22 | is important to us especially when we
get into scripting. But you're probably
| | 02:26 | familiar with the effects of having
one record be active when we talk about
| | 02:31 | things like deleting records.
| | 02:32 | So for example, if I go under the
Record menu right now and I hit Duplicate
| | 02:35 | Record or Delete Record, which record
is it going to delete or duplicate? Well,
| | 02:39 | it's going to delete the active one
or duplicate the active one. So it is
| | 02:42 | important the other term here is when
I talk about what the active record is,
| | 02:46 | that's the one that the action is going
to be performed against. And one of the
| | 02:49 | things that we can do under the Records
menu, you will notice that there are a
| | 02:54 | series of things here that are called
show all records and then some omit records.
| | 02:58 | The action of omitting a record means
that it's still on the database, we are
| | 03:01 | not deleting it, but we are removing it
from the Found Set and show all records
| | 03:06 | means that we are making every record
in the database our Found Set. So let me
| | 03:09 | show you an example of what I'm talking
about there. So I will choose the Still
| | 03:14 | Life by Erek Daves and I will
go under Records to omit records.
| | 03:18 | Now look what happens in our status area.
You see that I'm on record number 5,
| | 03:23 | and that has a change because even
though I omitted the record, it move the
| | 03:26 | active record up to the next record
above it which happens to also be number
| | 03:30 | five now. But look at here, we
still have a total of 15 records in the
| | 03:34 | database, so none of them have been
deleted, but we are only viewing 14 of
| | 03:38 | them, and that is the Found Set. So
you will see inside of the status area,
| | 03:42 | FileMaker will isolate how many
records are in your Found Set.
| | 03:45 | And we can continue to omit records,
thus creating a Found Set of 12. So these
| | 03:55 | 15 records are still in there, but now
we have 12 in our Found Sets. We have
| | 03:59 | just performed something that is sort
of the analogy of placing the three cards
| | 04:05 | out of the deck in our hand and placing
the rest of them on the table. So that
| | 04:09 | is the connection there to what a
Found Set in FileMaker, and you see here we
| | 04:14 | have got in this case quotes is an
example of a document is the active record
| | 04:19 | and we have manually created our
Found Set by going through and omitting.
| | 04:23 | There are other ways to create a
Found Set. Now omitting certainly with a
| | 04:28 | database that has 15 records in it, is
a viable way to isolate certain records
| | 04:33 | that we want to work with and by the way,
why would we create a Found Set? Well
| | 04:36 | let's say we have a script that we
want to go in and perform some action
| | 04:40 | against certain records or let's say we
just want to print out a report, but in
| | 04:44 | either of those two cases we don't
want to print out a report with all 15
| | 04:48 | records or we don't want to perform
actions against all 15, we just want to do
| | 04:51 | it on some specific records. Well
that's when we need to create a Found Set. So
| | 04:55 | there is easier ways to do that.
| | 04:56 | First, let's go into the Records menu
and hit Show All Records and you see now
| | 05:03 | what it's done is, it's taken all
those records that I have omitted and put
| | 05:05 | them back into our Found Set. So we
have a total of 15 records, and even though
| | 05:09 | it's not listed there, we know
that our Found Set is 15 as well.
| | 05:14 | So let's go into Records and perform
a Find. So you will notice that after
| | 05:20 | showing all, the Show All Records just
grayed out and that indicates to us that
| | 05:25 | all records are already showing.
| | 05:27 | So now let's go into the another mode
that we haven't worked with yet, but we
| | 05:30 | will go under View to Find mode, and
now not to be alarmed, it looks like all
| | 05:35 | of our records are deleted and the
status area has changed a little bit, but
| | 05:40 | all that's really happened is it's
taken us into a mode that allows us to enter
| | 05:43 | criteria, so that we can isolate
certain records based on the criteria that we
| | 05:47 | type in here and once we isolate those,
it will perform a Find and then compile
| | 05:52 | a Found Set based on our criteria.
| | 05:54 | So once we are in Find mode, let's go
into here, and in our Painting name,
| | 05:58 | let's put in -- we will put TW LOV,
and now you will notice that I can access
| | 06:08 | all of the different layouts and the
database when I'm in Find mode. So I can
| | 06:10 | pick any one them, it doesn't have to
be the one that I was on when I initiated
| | 06:14 | the Find, and you see here that there
is something called Request which we will
| | 06:18 | talk about in the next chapter. And
also you notice the Omit. I was manually
| | 06:23 | omitting here but if I wanted to omit
some records based on a certain criteria,
| | 06:27 | I will just check this, and more on that later.
| | 06:29 | What I'm going to do now is press the
Find button that you see is active and I
| | 06:33 | can hit the Enter key if I'd like to
as well but we will hit Find button, and
| | 06:36 | we see that there is one record that
matches the criteria that we entered in.
| | 06:41 | So FileMaker Pro performed this search,
and we have got this one record, Two
| | 06:45 | Lovers by a Tree, and now we could
have typed TW and come up with the same
| | 06:50 | results as a matter of fact. I will show you.
| | 06:57 | This is because of the way that FileMaker indexes.
If you remember when we talked about indexing fields,
| | 07:01 | it indexes a certain number of
characters in a field and anything that -- any
| | 07:07 | criteria that matches any of the
indexes that it has, it then says that the
| | 07:11 | records in that index qualify.
| | 07:13 | And if you remember, the index says,
I'm going to go through and say well,
| | 07:17 | I have got the word Two is in the
following two records and it goes and stores
| | 07:21 | that information. So it doesn't have to
go check all 15 records on the search;
| | 07:24 | it just checks the index and then comes
back with the two records stored in the index.
| | 07:29 | So this is how we do what is called a
Single Find Request. Now in the next
| | 07:34 | movie, we are going to talk
about working with multiple requests.
| | Collapse this transcript |
| New requests in find mode| 00:00 | Now, we have looked at how to create a
Found Set in FileMaker. First thing that
| | 00:05 | we did is manually omit records from
the database and then we used FileMaker's
| | 00:10 | Find mode to isolate certain
records that we are looking for.
| | 00:13 | Now I'm going to talk a little bit
about what a request is and how we can work
| | 00:17 | with multiple requests. If we go in to
Find mode again we will see that if I
| | 00:21 | enter in to a painting name, I say Tree
and let's say I say ALV. I can put--
| | 00:31 | no matter how many fields that I have on
screen and actually I can do, if I have a
| | 00:35 | field on one layout and a field on
another, I can enter data into a field a
| | 00:38 | here, go switch over to another layout,
enter data into a field there, and all
| | 00:42 | the while what I'm doing is I'm
compiling a find request, but that find
| | 00:46 | request is saying find all the records
where painting name is either Tree or
| | 00:51 | has the term Tree in it and the
artist also has the words ALV in it. And so
| | 00:59 | what I'm doing is entering multiple
criteria, but each record that comes back
| | 01:02 | in a Found Set has to match these criteria.
We'll see what I get when I do a Find.
| | 01:07 | If I enter in criteria that
FileMaker has no matches for in its field of
| | 01:11 | indexes, it comes up with this dialog,
no records match this set of find
| | 01:16 | request, and you have two options where
you can either go back and modify your
| | 01:18 | request or just hit Cancel. And in
this case, we will go back and show all
| | 01:24 | records by the way, it's either Ctrl+J
or Apple+J, that's a helpful key. So if
| | 01:28 | we look at let's say instead SATW, and
ALV, and then hit the Find button, I see
| | 01:40 | that I have one record that has both
TW and Marta Alvarado. So we'll go back
| | 01:47 | and I'm going to hit the Ctrl+J or Apple
+J here and it gives me my Found Set of 15.
| | 01:52 | Now, what I'm going to do is, go in and
do a search for let's just do Find and
| | 01:59 | I'm going to do Ctrl+F as in Find, and
I'm going to enter in into the artist
| | 02:04 | name just Alvarado, and we will see
what I get. You see that I have four
| | 02:12 | records that are all by an artist
called Marta Alvarado. I could have put in
| | 02:17 | the entire name Marta Alvarado or I
could have put in ALV or ADO or anything
| | 02:21 | that would have matched the
value index inside of this field.
| | 02:24 | Now what if I want and let's say I
go into Find mode again and I know I'm
| | 02:29 | looking for some paintings by an
artist named Gibson. Okay, so now I have a
| | 02:34 | Found Set of three. So this is great,
if I wanted to print a report of just all
| | 02:37 | the Norma Gibson's paintings, I could
create this Found Set in a way that I
| | 02:41 | just did and then now I will go print
this layout but what if I wanted to print
| | 02:46 | a report that has both Marta Alvarado
and Norma Gibson. Let's go back in the
| | 02:51 | Find mode, Ctrl+F, Apple+F. Now, if I
put in Alvarado, Alvarado and Gibson into
| | 03:01 | the Artist field, let's see what I get.
Well, there are no records that match
| | 03:06 | with Alvarado and Gibson, and the
reason is it is not looking for Alvarado or
| | 03:09 | Gibson; it's actually looking for, if
I do show all records, Ctrl+J, it is
| | 03:13 | looking for a value of Alvarado and
Gibson together. So that is what -- as
| | 03:18 | opposed to the and search that we are
looking for, what we want is an or search
| | 03:24 | which means give me either criteria
of Alvarado or a criteria of Gibson.
| | 03:30 | So let's go back into Find mode and
enter in my Alvarado search term. Now this
| | 03:38 | is where the request comes into play
and you'll notice when you are in Find
| | 03:40 | mode that your Records menu turns
into the Request menu. And what I will do
| | 03:44 | here, you will see that we can add or
duplicate requests. Well, what happens
| | 03:47 | when I do an Add request?
| | 03:48 | You see that I get another area where I
can enter in some additional criteria.
| | 03:53 | So in this case, I will put Alvarado
in the first request, Gibson in the
| | 03:58 | second, and then I will hit Find. And
now I see I have got a Found Set that has
| | 04:03 | both Alvarado and Gibson combined. So
what we have just done there is we have
| | 04:08 | performed what is referred to as an
or search. So we are saying give we any
| | 04:13 | records that are Marta Alvarado or Norma Gibson.
| | 04:16 | Now if we go back into Find mode, we
will see that there is this Omit button
| | 04:20 | here, and if you remember we were
doing searches for Two, so we have got Two
| | 04:26 | Lovers by a Tree and Two Pots.
| | 04:29 | Well, let's say I want to look for a
painting with Two in it, but not the
| | 04:37 | painting from Alvarado. So I know
there is one in there for Alvarado. That's
| | 04:45 | not the one that I'm looking for; I'm
looking for another painting with two.
| | 04:47 | Now in this case, I'm doing multiple
requests, but I'm not putting values in
| | 04:51 | the same fields. I'm just saying give
me all the paintings with two and then
| | 04:53 | after I have got all the paintings
with two, pair that down by removing or
| | 04:57 | omitting any one that has a matching
artist of Alvarado, and what I do there is
| | 05:03 | when I have this request just like
there is an active record, there is an
| | 05:06 | active request, I'm going to check
the Omit button there. So what I'm
| | 05:11 | instructing the database to do is, find
all the records with the painting name
| | 05:14 | Two, and then omit any of them that
have Alvarado on the artist name. See what
| | 05:18 | happens when I hit Find.
| | 05:20 | So now I have just the one record Two
Lovers by the Tree, even though really
| | 05:25 | there are two records in here, but I
wanted to omit that one there. I will go
| | 05:31 | from here into Find mode, and
FileMaker allows you to enter multiple find
| | 05:36 | requests. But if we notice, we will
enter a bunch of new find requests, we can
| | 05:40 | say add new request or we will do the
keyboard keys, Ctrl+N or Apple+N and I
| | 05:45 | keep adding request and adding request,
and all of a sudden I get this message
| | 05:49 | that says by the way, you are in Find
mode and appeared to be entering new
| | 05:52 | record data rather than find request
criteria. And this is just a reminder
| | 05:56 | because since the New Record view and
the New Request view look very similar,
| | 06:02 | some users can get confused and they
might accidentally be in Browse mode and
| | 06:06 | thinking that they are adding new
request, but in fact what they are actually
| | 06:09 | doing is adding new records or what
the alert is more specific of here is in the inverse.
| | 06:15 | If we are in Find mode and we think
that we are adding new records, we could
| | 06:18 | get 10 records into it thinking that
we are adding records in database but
| | 06:21 | really we are just doing find request.
So here if I say No, it will cancel out,
| | 06:26 | but if I say Yes, it will just
allow me to continue and add more.
| | 06:30 | Keep in mind that although you can have
multiple find requests, your criteria,
| | 06:35 | you would have to have a significant
amount of data even to have 13 requests in
| | 06:39 | here and to be able to get a Found Set
that matches all of this even with omits
| | 06:43 | involved. So just a little note there as
well. The next thing that we are going
| | 06:47 | to take a look at is working with
things like Ranges or using FileMaker's built
| | 06:51 | in search symbols.
| | Collapse this transcript |
| Search symbols| 00:00 | As we have been working inside of the
Find mode, which we are in at the moment
| | 00:06 | inside of our List View file. We have
determined that we can toggle between
| | 00:10 | layouts and of course the modes as
well and we can move to different requests
| | 00:13 | and in this case we have multiple
requests, and I can see the active request.
| | 00:17 | And we have discussed the role of the
Omit button and the Find button which
| | 00:20 | executes the find. But notice here
there is something that is called Symbols
| | 00:24 | and if we click on this arrow we see a
list of a lot of different symbols. The
| | 00:29 | symbol is the item on the left, and
then its description is on the right.
| | 00:33 | These are wild card characters that we
can enter in to the FileMaker fields in
| | 00:38 | Find mode, and it won't actually find
matching for example symbol for Less Than
| | 00:43 | but what it will do is, it will
tell us if we were to going to a field we
| | 00:48 | could say enter in the Less Than
symbol followed by the year 2000, and we
| | 00:54 | execute a Find. That is telling us that
there are 13 out of 15 records actually
| | 01:00 | have years that are less than the year
2000. So we can create a Found Set using
| | 01:05 | some of these search symbols.
| | 01:07 | So let's take a look at some of the
other search symbols. We will go into Find
| | 01:11 | mode and I will just give you a couple
of examples you can go onto your Help
| | 01:15 | system and find out detailed
descriptions of each one of these. But we looked
| | 01:19 | at Less Than and you can
understand how less than or Equal To or
| | 01:22 | greater than or greater
than and Equal To will work.
| | 01:25 | Exact match is a good one to use as well.
This is most commonly used if you are
| | 01:29 | trying to find an empty value or for
example when we're putting in TW, we know
| | 01:36 | that FileMaker has a certain index
that it uses. So it's going to return back
| | 01:40 | any record that has TW in that field,
but what if what I really wanted was just TW.
| | 01:46 | Well, that's where I can enter and
either select from this list or just type in
| | 01:50 | the equal symbol and if I enter in
TW, now it comes back. It says No, we
| | 01:55 | don't have any records that match that
criteria. A couple of other ones that
| | 01:59 | are useful entering Find
mode again, are the Range.
| | 02:03 | Range can be used if you have a Date
field or a Number field which, it means
| | 02:09 | that I can enter in a minimum and then
a maximum. So for example, let's go into
| | 02:14 | the Year field because we know that
that's a date Field. And I'm going to enter
| | 02:17 | an 1872, and then ... or I could have
selected Insert the range, but I'm going
| | 02:22 | to type in ... manually, and type in
1937, and then when I hit Find, I get the
| | 02:30 | three records that are within the
years 1872 and 1937 and you see that all
| | 02:36 | these years match.
| | 02:38 | You may have noticed that some of the
records don't have years, if we go back
| | 02:42 | into Show All Records. The more common
use for that exact match by the way, we
| | 02:48 | enter Find mode, this is what most
developers use exact match for, simply
| | 02:53 | putting in exact match all by itself
and what that means is, give me only the
| | 02:58 | records that match the following and
since I'm not putting anything after that,
| | 03:01 | I'm saying give me all the
records that have nothing in the field.
| | 03:04 | So this is a great way to find records
that have fields that have incomplete
| | 03:08 | data. So you see when I say Find,
there are in fact two records in here, that
| | 03:12 | have no values. So using the Equal
Sign is a great way to find those
| | 03:17 | records when you are
trying to do some data clean up.
| | 03:20 | So back with show all records, a brief
review of some of these other symbols.
| | 03:26 | If you want to find any duplicate
records, so if I go in to Artists, and I put
| | 03:31 | in an exclamation point, and we see
that we have no records that match this set
| | 03:35 | of find request. Now that is
interesting because if we look in here, we have
| | 03:38 | got several different artists
that all have matching values.
| | 03:42 | Well, if we go into Layout mode and
look at that, and we will see why and this
| | 03:46 | is helpful. You will notice that
these two fields are the fields in the
| | 03:50 | painting table and this one is
actually from the artist table and inside the
| | 03:55 | artist table, there are no duplicate
records. We are just borrowing this field
| | 03:59 | from the Artist table and putting it
onto each painting record. So we will deal
| | 04:04 | with this in the relationship section.
This would be different if let's say we
| | 04:09 | change 1972 to 1872. We enter Find mode
and put duplicates in here and it sees
| | 04:17 | it finds the two records
that have duplicate values.
| | 04:21 | Now this is helpful if you want to
go in and find duplicate Ids. This is
| | 04:27 | something that most developers use
for finding duplicate ID. It's something
| | 04:30 | that should not be duplicated, but
needs to be unique. You can go in and use
| | 04:34 | the duplicates exclamation point to
isolate those. Now keep in mind, it is
| | 04:38 | going to find the duplicate and the
original because FileMaker doesn't know
| | 04:41 | which one is the duplicate.
So it's going to give you both.
| | 04:43 | So if you have 20,000 records and 1,
500 of them are duplicates, you are going
| | 04:48 | to get 3,000 total records back in
your Found Set. And just to quick look at
| | 04:53 | some of the other ones, you can find
anything in the Date field with today's
| | 04:56 | date or if you have got alpha
characters in a Number field or text in the Date
| | 05:02 | field, you can just put in a Question
Mark and if you've imported some data
| | 05:06 | and you don't have always validation
on or you don't have validation on. This
| | 05:10 | is a way that you can look through
your imported records and clean up some of
| | 05:13 | the data before you enter it
into the regular population.
| | 05:17 | If you are looking for and we talked
earlier about how if I said TW, the other
| | 05:21 | option instead of putting the equal
sign TW is to wrap these in quotation
| | 05:29 | and that means find me the only
where the literal text TWO is in there. So
| | 05:34 | if we had the word Potstickers and I
did a search for Pots, it will give me
| | 05:39 | this record and a record that says
Potstickers, but if I put in wrapped in
| | 05:44 | quotes "pots" then it would
return back only the one record.
| | 05:48 | So it's a good idea to get yourself
familiar with some of these because they
| | 05:51 | can be very useful and you can script
these as well. You will see when we get
| | 05:55 | into scripting to find, in that
chapter, that these are useful within your
| | 06:00 | scripting environment also.
| | 06:02 | So the next thing that we are going to
take a look at then is something that's
| | 06:06 | called constraining and
extending Found Sets and Find Requests.
| | Collapse this transcript |
| Constraining and extending a find request| 00:00 | In addition to just creating a Found Set,
many times you want to use Find mode
| | 00:04 | and search criteria to drill down into
your data. So you might start off with
| | 00:08 | one request and then keep drilling
down and drilling down until finally you
| | 00:12 | have created the Found Set that you
are looking for, and this is useful in
| | 00:15 | doing some administration on data and
looking for a certain criteria and trying
| | 00:20 | another theory and trying something
else until finally you isolate some
| | 00:23 | specific records.
| | 00:25 | We can do this manually. For example if
I first said give me all Alvarado and
| | 00:32 | then I think oh, actually I want
Alvarado and Gibson. If you remember, we did
| | 00:37 | Alvarado and then I can hit new
request, Apple+New or Ctrl+New.
| | 00:43 | So this entire activity and I'm
going to Hit Show All Records again, this
| | 00:47 | entire activity can be accomplished
in a different way. So we go into Find
| | 00:51 | mode, and our first criteria was
Alvarado and I hit Find, and now what I want
| | 01:00 | to do is I want to add to my Found Set.
I want to keep this Found Set, but I
| | 01:03 | want to add the Gibson records to it.
| | 01:05 | Well, if I go back into Find mode and
this time I put in Gibson. Now if I just
| | 01:12 | hit Find, if I hit the Find button
right now, it's just going to find Gibson,
| | 01:16 | but I want Gibson and Alvarado, but
I don't want to have to enter another
| | 01:19 | search request.
| | 01:20 | Well, if I look down here, I see that
in addition to performing Find which is
| | 01:24 | the same thing that hitting this
button will do. I have got a couple of other
| | 01:27 | options, I have got Extend Found Set
and Constrain Found Set. Well, constrain
| | 01:31 | means make your Found Set smaller
based on whatever criteria I have just
| | 01:35 | entered, and extend means make my Found
Set larger or add to my Found Set based
| | 01:39 | on the criteria.
| | 01:40 | So I will say extend my Found Set
based on Gibson, and I could go into Find
| | 01:46 | mode again to add Daves as well. So I
say Extend. So what it's doing is, it's
| | 01:54 | remembering your last criteria, and
allowing you to either append it by adding
| | 01:59 | or you can remove criteria from it that way
as well and the same is true in Reverse.
| | 02:04 | So let's say now I said, I wanted
Alvarado, Gibson and Daves and now I
| | 02:09 | remember, I just want Daves. So I will
type in the Daves criteria, and then hit
| | 02:14 | Constrain Found Set and then what it's
going to do now is constrain that Found
| | 02:19 | Set that I had of three different
artists and it's only going to show me the
| | 02:22 | ones that match the criteria I put in
before I hit Constrain. So we can keep
| | 02:25 | doing this over and over, Alvarado,
Extend and okay, now I have got Erek Daves
| | 02:35 | and Alvarado. Oh, let me go in and constrain
based on that and just give me the Alvarado.
| | 02:42 | So working with constraining and
extending Found Sets will allow you to vary
| | 02:46 | groups of records and it's really
actually quite powerful and you can easily
| | 02:49 | view some trends and data, search for
exceptions or problems in the information
| | 02:53 | that you have entered or again review
imported data to make sure that you are
| | 02:57 | quickly accessing specific records
that might not need to be into the general
| | 03:01 | population.
| | 03:03 | Now next, I'm going to show you how you
can find records without even entering
| | 03:06 | Find mode, the quickest way to do searches.
| | Collapse this transcript |
| Finding date/time and timestamp data| 00:00 | I'm going to demonstrate to you now
some interesting ways to search for data
| | 00:04 | that's in a date field, a time field or
a time stamp field, using some kind of
| | 00:09 | cool new wildcard characters and
syntax, and this new not in 9, but in 8.
| | 00:15 | So if you open up the file in the
exercise folder called Orders, and let's
| | 00:21 | switch over to the Order Detail.
I'm going to be demonstrating some searches in
| | 00:25 | the Order Date field, the Order Time
field and the Order Timestamp field, but
| | 00:29 | what you should notice here is that
these fields, Time is a Time field, Date is a
| | 00:34 | Date field, and Timestamp is Timestamp,
and that's critical because otherwise
| | 00:38 | the wildcard syntax that I'm putting in
here wouldn't work. So I'm going to search
| | 00:43 | through some orders here and first
what I'm going to do is enter Find mode,
| | 00:48 | and by the way you can do Ctrl+F or
Apple+F and for rest of these examples,
| | 00:53 | I'm going to be using the keyboard
shortcut of Ctrl+F or Apple+F and I will be
| | 01:00 | hitting the Enter button to execute a
Find. So just we don't have to go up to
| | 01:05 | the Menu every time. Just you can play
along with me at home, using your Quick-Keys.
| | 01:11 | The first thing I will show you is, if
I put in 6/2005 for example. Normally it
| | 01:21 | would just return back anything that
actually has the value 6/2005. But now
| | 01:27 | FileMaker has a new logic build into it,
and you can probably see for a split
| | 01:31 | second there, puts in some wildcards.
But what it does is it returns back
| | 01:36 | anything from the month that I
designated and the year that I designated. So in
| | 01:40 | that case anything that was written up
in 6/2005, or June of 2005, we can look
| | 01:45 | at that in the same manner we can
enter in just the month. If I just put the
| | 01:52 | month, it assumes the current year. If
the year is 2007, then it is going to
| | 01:57 | show me only everything in 6 of 2007.
If I put in other values in here, we have
| | 02:04 | got 5 of 2007, and I put 3 in there,
it's 3 of 2007. So you get the idea, you
| | 02:13 | can either put in just the month, and
you can see I have got two records that
| | 02:21 | match that criteria. So couple of
different ways that you can enter in values into.
| | 02:26 | This one is real cool, in a Date field
if you put =fri, equals the abbreviation
| | 02:32 | Friday. And hit Enter, this gives me
regardless of what the date was. This
| | 02:37 | gives me any order that was written
up on a Friday. So if you are ever
| | 02:40 | interested in what your numbers are
in sales on Fridays, or weekends versus
| | 02:45 | weekdays, or something like that, you
just type into a Date field, hit Enter,
| | 02:51 | and boom, up pops. Even although there
isn't a field to find anywhere in this
| | 02:55 | database that says what day this
actually is? FileMaker has the built-in
| | 02:59 | internal intelligence to do so.
| | 03:02 | Now there is some support for brackets
too, and brackets are found when you hit
| | 03:05 | the Shift key to the right up the P on
our keyboard, and they look like this,
| | 03:12 | and it allows me to, for example in
this case, and you recognize the ranges
| | 03:18 | from, when we are using search symbols.
In this experiment what I'm doing is,
| | 03:23 | I'm searching for anything, any order
that was created in the month of April
| | 03:28 | through the month of June in the year
2005, and sure enough we see we have
| | 03:33 | seven records that were either from,
June, April, June, May, June, May and the
| | 03:41 | wildcard can work on either side a well.
So we go back into Find mode, add a
| | 03:48 | bracket for ...6, close out that
bracket, put my / in there. Now I'm going to
| | 03:54 | put in another bracket in here, and
I'm going to say. 2004...2005, so what I
| | 04:02 | asking it to do now, is find any
order that was written up in April, May or
| | 04:06 | June of the year 2004 to 2005. So it's
really -- this kind of replaces adding
| | 04:12 | an additional request. So kind of a
neat feature here and you see we have got
| | 04:17 | ten of them, May of 2005, June of 2004,
April of 2004, all those match our
| | 04:22 | criteria.
| | 04:24 | We have some for the Time field as well,
and again, I have to go into this Find
| | 04:29 | mode, I'm going to Apply or Ctrl+F,
and then to execute the Find I'm hitting
| | 04:33 | the Enter button. In this case I can
find out when an order was written up. I
| | 04:39 | can just put in 3 pm, and this gives me
any order that was written up between 3
| | 04:44 | pm and 3:59 pm on any given day
basically, or I can go into Find mode and do
| | 04:50 | 3...6, and as you can imagine, this
is going to return back any order,
| | 04:55 | irrespective of the date, that was
written up between 3 and 6 am, or if I
| | 05:02 | designate 3 pm, this will give the pm.
So if I don't put am or pm, it's going
| | 05:12 | to do am, so it kind of think 24 hour
clock type logic there. The Timestamp has
| | 05:17 | some searching capabilities. If we do =
Thursday 2007, and I got one order that was
| | 05:27 | written up on 4/12/2007 in the 3
o'clock hour. So some kind of cool ways that
| | 05:32 | you can integrate in searching through
your keyboard shortcuts and through some
| | 05:37 | wildcard features. If you get familiar
with those wildcard syntax, it can make
| | 05:42 | it real easy to drill down into
your Time, Date, or Timestamp data.
| | Collapse this transcript |
| Finding matching records without find mode| 00:00 | Now we have been working Find mode and
entering Find mode by going in to the
| | 00:04 | View > Find mode and adding new request
through the menu and performing finds
| | 00:10 | through the menu and through the button.
All of this can be done a lot quicker
| | 00:13 | by using quick keys and frankly even
when you get a little bit of experience
| | 00:16 | you are going to find yourself doing
Apple+J for Find All, Apple+F. Of course,
| | 00:23 | Apple and Ctrl are interchangeable
based on what operating system you are
| | 00:26 | working with and Apple+N for adding new
request and then just hitting Enter for
| | 00:31 | Find and that type of thing
and even Escape for cancel.
| | 00:35 | But there is another way that you can
do it all with your mouse as well. I'm
| | 00:39 | going to show you right-click feature
which is a kind of extended menu that is
| | 00:43 | hidden inside FileMaker fields, what
you will get if you look at this there is
| | 00:47 | a lot of different things about the
field, you can go to the help system you
| | 00:51 | can get some suggested spellings. We
have looked at that in previous versions.
| | 00:54 | You can change the fonts, style, text
color, insert some values and do some
| | 00:59 | sorts, which we will cover in the next chapter.
| | 01:01 | But the feature that I'm talking about
is Find Matching Records. I can find all
| | 01:06 | the matching records for Marta Alvarado
without even going into Find mode. Let
| | 01:10 | me find matching Eric Dave's records,
never left Browse mode. Pretty impressive
| | 01:16 | stuff and this is more impactful of
course if you have larger sets of data. I
| | 01:21 | mean if you have got thousands of
records and you see a bunch of orders in here
| | 01:24 | and you find a customer ID let's say
and you say well, let me find out the
| | 01:27 | other orders for this customer you just
right-click into the customer ID, Find
| | 01:30 | Matching Records and you are all set.
| | 01:32 | The other thing that you may have
noticed in here too is I can Find Matching
| | 01:36 | Records and then I can click into
another field then I can say Constrain the
| | 01:41 | Found Set and I can go in and pick
this value extend the found set and extend
| | 01:47 | it even further and I can end up with
found set with three different criteria
| | 01:51 | all the while never having to go into Find mode.
| | 01:54 | So a helpful little tool there that
allows you to drill down into your data in
| | 01:58 | a much quicker fashion and
this is called fast match.
| | Collapse this transcript |
| Find and Replace| 00:00 | There is another type of finding
within FileMaker that I thought would be
| | 00:03 | appropriate to mention here and
that's the ability to find and replace. Now
| | 00:07 | instead of finding records what we are
talking about there is finding values
| | 00:10 | within either records or within the
entire database and this find and replace
| | 00:15 | is similar to any other application
that you have worked with for example Word
| | 00:18 | or something like that, but just want to
take your minute to show you how that works.
| | 00:22 | So if you go into the Edit menu you
will see the Find & Replace options and
| | 00:26 | when you click on Find & Replace, you
will get the Find & Replace dialog and
| | 00:30 | let's say what we want do here is we
want to change Marta to Martha, just like
| | 00:38 | in any other application we can do
replace and find. But since we are dealing
| | 00:41 | with database records, there is
couple of other options. First there is the
| | 00:44 | Direction and we can either say
Backwards or Forwards and what that means is
| | 00:48 | where is the record in the found set.
| | 00:50 | So if I have 50,000 records in here and
I'm on record 15, do I want to just to
| | 00:54 | search everything moving forward. So
for example, in that case may be I have
| | 00:57 | already manually changed the ones
behind, so I just want to check Forward or
| | 01:01 | the opposite Backwards. You see here
we are on the last record, so we could
| | 01:04 | check Backwards instead, or really just
All. The other thing is to this can be
| | 01:09 | case sensitive, so we can omit any
Martas with the lower case and if we wanted
| | 01:14 | or we can search either just the
Current record to make these changes, or All
| | 01:18 | records and just the
Current field or All fields.
| | 01:21 | We are going to say everywhere in the
database where it says Marta replace it
| | 01:25 | with Martha, we hit Replace All. It
asks to confirm, we say OK and then we get
| | 01:31 | Find/Replace summary that indicates
Number of occurrences found, were one. The
| | 01:35 | Number of occurrences replaced were
one and that's because this is actually
| | 01:39 | related field. What it really did is it
just only made one change but that one
| | 01:42 | change was reflected many times.
| | 01:44 | Again, we will deal with that in the
related records in relationships chapter.
| | 01:49 | But it did search a total of 15 records
and 46 total fields and we see now that
| | 01:54 | it has changed Marta to Martha. So
Find & Replace, just like in other
| | 01:58 | applications another handy way to
find data, rather than finding records.
| | Collapse this transcript |
|
|
12. Sorting DataSorting with one criterion| 00:00 | In the previous chapter we looked at
how we can create a Found Set, or isolate
| | 00:04 | certain records within our database.
And now we are going to look at how we can
| | 00:07 | organize, or sort those records in our
Found Set, or in all the records in the database.
| | 00:12 | If you open up your exercise folder,
go on to 12_sorting, and open up
| | 00:17 | ListView_11_01, you will see that we
have the database that looks similar to
| | 00:23 | the one we used in the other exercise.
So let's say I have created a Found Set,
| | 00:30 | I'm using Quick Keys now, Ctrl+F or
Apple+F. I have created the Marta Alvarado
| | 00:35 | records, and I want to go do a report,
and of course, this has more of an
| | 00:39 | impact if there are a lot of different
records here. Let's say it's a little
| | 00:42 | difficult for me to look at these out
of chronological order, so what I want to
| | 00:46 | do is, sort them in chronological order.
| | 00:49 | If I go into the Records menu, you will
see Sort Records and really you should
| | 00:54 | get used to just using the Quick Keys
here. Apple+S as in Sort or Ctrl+S as in
| | 00:59 | Sort. It's a lot easier to do these
types of things on the fly, when you are
| | 01:03 | using Quick-Keys rather than the menu.
And if we take a look at this Sort
| | 01:06 | Records dialog window, we can see
what the couple of the options are.
| | 01:10 | First off, you will notice on the left
hand side, this is the all the different
| | 01:13 | fields that we can have in our Sort
criteria and what's nice is that it
| | 01:20 | separates it out based on the fields
that are defined in the layout, which is
| | 01:24 | the default, or the fields in the
Current table. The reason for that is, in
| | 01:28 | versions before 8 that didn't have
this function, end users would go in, and
| | 01:33 | they would say, okay, I want to sort
these records that I'm looking at that on
| | 01:35 | screen, but they would get this huge
long list of developer fields, and they
| | 01:39 | wouldn't know what they are looking
at, and there will be questions about
| | 01:43 | what's keyForeign_artist, and all that
type of thing, since it is a really good
| | 01:46 | idea to use naming conventions that
might not be as plausible, or easy to
| | 01:50 | understand to your end users, as they
are to the developers. This created sort
| | 01:54 | of a void of understanding here for the
users that are sorting. So instead what
| | 01:59 | it does now by default is it isolates
only the records on the screen at the
| | 02:03 | time, which makes sense, because if a
user is initiating a sort, they are only
| | 02:07 | going to want to sort by the
values that they can see at the time.
| | 02:09 | So here we will click on, and we can
either click and hit Move, and if we got
| | 02:14 | the wrong one, we can hit Clear, or
we can double-click on it, and it will
| | 02:19 | automatically move it over for us. Now
we can then go ahead and just hit Sort,
| | 02:24 | or hit the Enter button. But first we
will look at this little thing here, you
| | 02:28 | see this cell phone reception bars here.
What that actually is, is not only I'm
| | 02:33 | sorting by the year, but it's asking
us also, do we want to sort in Ascending
| | 02:36 | order. So for example, if this was the
alphabet, do we want to start from A to
| | 02:40 | Z, or do we want to start from Z to A,
and we will look at a couple of these
| | 02:44 | other options here in just a moment. In
this case we will say, we just want to
| | 02:49 | do Painted_Year in Ascending order, and
we can hit the Sort button, and we see
| | 02:53 | that it sorts those values in
chronological order based on year.
| | 02:58 | A couple of things to note here, if
you are sorting numerically, and you are
| | 03:02 | not sorting on a number field, if you
say you want to sort for example one
| | 03:06 | through ten, those values are in a
text field, that will actually sort number
| | 03:10 | one, number ten, then number two, three,
four, five, six, seven, eight, nine.
| | 03:15 | So if you want things sorted
numerically, or by date specifically, you are
| | 03:20 | going to have to make sure that the
fields you are sorting on are defined
| | 03:22 | appropriately. So for example, if I
didn't have this defined as a date, it
| | 03:26 | might not give me the responses that I expected.
| | 03:29 | The other thing that's important to
note is, this empty field at the top here,
| | 03:34 | FileMaker, if you are searching on a
field, and there are some records that do
| | 03:38 | not have that value, I mean you will
see this, if we do Apple+J, Apple+S, Sort,
| | 03:45 | you will see that both of the empty
records show up on top. So just so that you
| | 03:50 | now you can also set expectations
when you start working with scripting or
| | 03:52 | training some of you users, you should
know that empty values will appear on
| | 03:56 | top, and I think the logic there is
that it gives it the best visibility to
| | 04:01 | isolate those records, but keep in mind
that if there are values in there that
| | 04:04 | don't match your criteria because they
are empty, those will appear at the top
| | 04:07 | of your list. So that could be helpful
in locating these records, but also you
| | 04:11 | want to prevent any confusion by
letting your users know that as well.
| | 04:14 | Next, we are going to look at using
related fields or fields from other tables
| | 04:19 | in our sort criteria.
| | Collapse this transcript |
| Sorting with related fields | 00:00 | So we see that we can sort by values
that are either on our layout or defined
| | 00:06 | within our table. Well let's take a
look at sorting from values that are in a
| | 00:16 | related table. So if you open up
SortTwotables and the difference here is that
| | 00:23 | what I have got is, if we look into
Manage, Database. This file has two tables
| | 00:30 | in it and they are related and we will
talk about relationships and setting up
| | 00:34 | relationships between two tables in
the relationships chapter. But what you
| | 00:38 | need to know here is that we have got a
table with Artists and that's where we
| | 00:42 | have one record equals one Artist and
we define things like the name and the
| | 00:45 | type of the Artists.
| | 00:47 | Then we have another table for
Paintings and that's the table we have been
| | 00:50 | working with. But there is only one
record for an Artist and we don't want to
| | 00:55 | have to type in the Artist's name
every time on to each one of the
| | 00:58 | artist-related painting. So we see that
Marta has several different Paintings.
| | 01:03 | So instead of putting Marta's name in
here each time and again and not getting
| | 01:07 | too far into the discussions on
relationships, but you will see here as I
| | 01:11 | pointed out earlier, we have got
Painting_Name which comes from this existing
| | 01:16 | table, Paintings.
| | 01:17 | Painting_Year also comes from the
existing table of Paintings. But Artists,
| | 01:23 | comes from the Artists table. So
that value just gets replicated on each
| | 01:28 | related record. But that doesn't mean
we can't sort by that value. If we look
| | 01:32 | into the Sort dialog we can select,
not only values in the Current table but
| | 01:40 | values that are in other tables as well.
| | 01:42 | So here if we want to sort by Artists,
happens to be a related value, we can
| | 01:46 | move that over. And also by the way
it shows up under the Current Layout
| | 01:51 | because it is one of the fields
defined on the layout to make it easier to
| | 01:53 | find. But I hit Sort, and you can see
that we sorted alphabetically by Artists
| | 02:00 | or I can go in and sort in reverse or
alphabetical order and we can get the
| | 02:05 | same effect.
| | 02:06 | So you see here that you can use not
only fields in your sort criterion that
| | 02:10 | are local to the table, but also any
field that's in any related table can be
| | 02:14 | used to sort and of course it will
make sense, if those fields are actually
| | 02:18 | used on screen as well. So the next
thing that we are going to look at is using
| | 02:22 | more than one criteria in our sort.
| | Collapse this transcript |
| Sorting with multiple criteria| 00:00 | In addition to sorting with single sort
criteria from either the local table or
| | 00:04 | related tables, we can also search
with multiple criteria as well.
| | 00:08 | Let's look at some examples of that. If you
open up Number 12 Lucky_You_Tours and go into
| | 00:15 | the Customer List, you see now that we
have got 1500 records in here. This will
| | 00:19 | give us little bit better idea of how
important sorting is because instead of
| | 00:22 | just having 15 records, we have got 1500
that are harder for us to look at all at once.
| | 00:29 | We can go into Sort, and let say we
want to sort by last name. One thing to
| | 00:38 | pay attention to by the way is if you
look here, we have got an order. We have
| | 00:42 | got a default sort order already in
the database. So every time I open up the
| | 00:46 | table, it reverts back to this sort
order. Now I could have a script in here
| | 00:50 | that says every time I open the file,
it sorts in a certain way. But this is
| | 00:53 | the order in which the records were
created in the database, and you will
| | 00:56 | notice that the active record -- if
I put the active record on the first
| | 01:00 | record, let's watch what happens to the
active record when I do a sort. We will
| | 01:04 | just say, sort by last name first here.
| | 01:09 | Now it keeps the active record on
screen, but instead of be in record number
| | 01:12 | one, like I was before, you will see
that I'm on Record 658. So down at 658,
| | 01:22 | it's our active record. So you got to
keep in mind, if you are sorting for the
| | 01:27 | reason of doing a script, or if you had
the first record in your list selected
| | 01:32 | before you did a sort, you want to
just go ahead and hit Duplicate or Delete,
| | 01:36 | keep in mind your active record
visually isn't the first record anymore, old
| | 01:41 | versions are found like it did it that
way. So it could might be a little bit
| | 01:44 | tricky, if your grandfather did on
that logic. But the active records still
| | 01:48 | remains the active record before the
sort, which is useful. You can make that
| | 01:52 | work in your advantage if you are
doing scripting. But let's take a look at
| | 01:55 | doing the sort by last name, and we
will notice that in our database we have
| | 02:01 | got, here is a group of
individuals who have the same last name.
| | 02:04 | Now if you determine that it would be
easier for us to sort by last name, and
| | 02:08 | then have a secondary sort by first
name, which means sort everybody by last
| | 02:13 | name, but if you find any duplicates or
any matches, then revert to a secondary
| | 02:18 | sort order of first name, and that is
possible for us to put into the database as well.
| | 02:23 | You can put as many different sort
criteria into a database as you wish. So in
| | 02:28 | this case, I will double-click on first,
and we will see, I can sort by last
| | 02:31 | name, and when those match, sort it by
first name, and if for whatever reason,
| | 02:37 | name is a bad example, but if I said,
sort by State, and then by City, and then
| | 02:42 | I can say by Zip Code, I can drill down,
and it's going to work in a reverse
| | 02:47 | pyramid here, which means it starts
with all the records, and then it filters
| | 02:52 | down my criteria based on whatever the
first start criteria is. Then it filters
| | 02:57 | down my Found Set even further by that.
So if I put in State, City, Postal
| | 03:03 | Code. Postal Code sort of criteria
only comes into play if there are true
| | 03:08 | statements on the first ones, if there
are matching values in every criteria
| | 03:12 | above it.
| | 03:12 | In this case the chances of us having
matching first names and last names are
| | 03:17 | pretty rare, but let's see what happens
when we do that sort. Now we say Sort,
| | 03:21 | and we see that it does sort all the
last names, but now it goes A, C, C, J, R,
| | 03:26 | S, in this order. So it allows us to
sort by the first name, and then sort by a
| | 03:33 | secondary criteria, and also if we
look at sorting by, let's say in this case
| | 03:38 | Type. So in Type, we want to match all
the records by Type, so we see here is
| | 03:46 | our Bronze, Gold, Silver. But then
within that sort order, let's say we want to
| | 03:52 | sort it by last name, so that we can
look at everything grouped in Bronze, Tin,
| | 03:58 | let's say, but then within those
groups, it's a little bit easier for us to
| | 04:01 | read this criteria, and actually I
could go in and say, and if any of those
| | 04:05 | match, do first.
| | 04:08 | So you can see that in the case of
these records here, they are all in Tin, so
| | 04:14 | they are sorted in that area. Then
they are sorted secondary as a last name,
| | 04:19 | and then by the third criteria A, J,
R, S, they are sorted by the third
| | 04:22 | criteria, only because criteria one
was true, criteria two is true, and then
| | 04:27 | therefore it reverted to the third criteria.
| | 04:30 | So you can put as many as you want in
there. The other thing to know is that,
| | 04:34 | you can also, this could be descending,
this could be some other criteria, and
| | 04:41 | you see that we have got here custom
values, and that is something that we are
| | 04:46 | going to cover in the next chapter.
So you can use multiple criteria with
| | 04:49 | different orders, but in order to
learn a little bit more about this order,
| | 04:54 | let's take a look at how to
sort by a custom criteria.
| | Collapse this transcript |
| Sorting using custom values| 00:00 | I'm going to show you know how we can
sort by custom values and some of the
| | 00:04 | sort values that we have been
working with so far are pretty logical. For
| | 00:07 | example, if I sort by last name, in
ascending order, I know that that's going
| | 00:13 | to do it alphabetically, A through Z,
as it has done here. Or if I were to sort
| | 00:19 | by a number field in ascending order,
I know it would go one through however
| | 00:23 | many values. Or in descending order,
this would be A through Z, this would be Z
| | 00:27 | through A.
| | 00:29 | What happens if I'm going to create a
report and I want to group my values by
| | 00:32 | let's say Type? We see here, each
customer has a Type and the different types
| | 00:38 | that we have are Tin, Silver, Gold,
Bronze, and so on. If I go in and sort by
| | 00:43 | Type, let's see what we get.
| | 00:50 | So it sorts Bronze first, and then it will go to
| | 00:54 | Gold, Silver, Tin, and so on. But
those are the alphabetical order of those.
| | 01:01 | But let say the business rule within
our organization determines that, we have
| | 01:04 | a different level of customer, and
Bronze is not the top one that we want to
| | 01:08 | look at, or even the last on.
| | 01:09 | Well, the way that we can do that is by
sorting by a custom value, and you will
| | 01:13 | see that option is found right here.
So instead of Ascending or Descending, I
| | 01:18 | can say, based on the Order in the
Value List, now how do we set that up? If we
| | 01:23 | go back into -- and we will talk about
this in the Value List Chapter coming up
| | 01:27 | immediately following the Sort chapter,
but just as preview, if you go into
| | 01:31 | File, Manage and Value Lists, we will
just look at this for right now, you see
| | 01:36 | that we have set up custom values. One
of the things we can do is, just simply,
| | 01:41 | to find a list of values, order them
in the way that we want, or in the way
| | 01:44 | that makes sense for our business rule,
and then save them inside our database.
| | 01:48 | So here, this is actually the order
in which the customer should be, Gold,
| | 01:52 | Silver, Bronze and Tin. Not Bronze, Gold,
Silver and Tin. So this is the order
| | 01:57 | that we actually want. So we have
created a Value List called Customer Type in
| | 02:01 | our Value List, Editing dialog, and
now we choose Type, and FileMaker makes
| | 02:10 | these values available to us. We can
choose which one of these we want, and we
| | 02:13 | are going to say, Customer Type. So
now it's got kind of a funky little bar
| | 02:17 | there, but what that means is, it is
just going go defer to the sort order
| | 02:20 | that we gave it, and you will see now
that sorting based on that, I have got
| | 02:27 | Gold, Silver, Bronze and
Tin. Just like we wanted.
| | 02:31 | One last note there is that, we can Un-
sort these values. Just look, what it
| | 02:38 | would look like if we did Ascending.
Again, Bronze, Gold, Silver and Tin, but
| | 02:45 | then we go back here without even
removing it, and we will say, sort by
| | 02:50 | Customer Type. And now we
get the proper sort order.
| | 02:54 | So that's how we sort by Custom Values.
If you ever have a custom value that
| | 02:57 | you need to sort by, just go create
one under your File > Manage Value Lists,
| | 03:03 | and you can also see, like for example,
if I wanted to do it numerically but
| | 03:06 | in a different order, I could 6, 4, 3,
8, 7, 2, 1, whatever I want and it will
| | 03:12 | defer and sort by that value. So this
could be helpful too for you, when you
| | 03:16 | do your scripting or do
manual sorts of your Found Sets.
| | Collapse this transcript |
| Sorting using buttons| 00:00 | So we have been working with sorting,
and we have been working with sorting so
| | 00:02 | far all through the Sort dialog and
of course, you can access it through the
| | 00:06 | menu. But again, you should really
get used what your Quick Keys are,
| | 00:11 | so you could do Apple+S, and get your sorts together.
| | 00:15 | Now your end user, who might not be as
savvy with FileMaker as you are, they
| | 00:20 | might not really understand the sort
dialog or possibly you don't want to have
| | 00:25 | to train them every time for this.
Well, what you can do is create buttons on
| | 00:29 | screen 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:38 | for. If it's a canned sort, if it is
something that sorted the same way all the
| | 00:41 | time or something that logically would
be useful to the user, what you can do
| | 00:44 | is create a little button, and you
will see in your layout mode there is a
| | 00:48 | finger and a button tool here, which
you see the first thing is in button
| | 00:53 | setup. You can scroll down and any one
of these actions can occur when the user
| | 00:58 | hits the button. But when we stop on
Found Sets, since we have been working
| | 01:01 | with Found Sets, we will notice that
we can assign sorting to a button. So
| | 01:06 | whenever a user hits the button, it will sort.
| | 01:09 | So let's say we know that the people
don't want to look at the default list,
| | 01:12 | but instead want to have this sorted
by last name. What we do is, we click
| | 01:17 | Specify Order, and we get the same
dialog box, and here we don't have the
| | 01:25 | ability to just look at the once in the
layout, because this button could be on
| | 01:29 | multiple different layouts. So there is
no context of a layout here. So it's a
| | 01:34 | little bit tricky. You are going to
have to go in and find last name, and we
| | 01:40 | want it sorted in ascending order, and
we hit OK. We don't want the dialog to
| | 01:45 | pop up, since we are just going to do
this on behalf of the user. So we hit
| | 01:49 | Perform with dialog, and there is an
option here that says, Change to hand
| | 01:54 | cursor over button, and then we can
choose a Rectangular or Rounded button, and
| | 01:58 | we get back into Layout mode.
| | 02:00 | We type in what we want the button to
say, and we commit that button. Now let's
| | 02:04 | go into Browse mode, Save that. We
see the button here on screen, and users
| | 02:10 | will know it's a button, because you
will see that the cursor turns into a hand
| | 02:15 | or a finger, so they know that they
can click on this. So now a user can just
| | 02:20 | hit the button, and
automatically sort everybody by last name.
| | 02:24 | Now a common technique for a
FileMaker developer is that they have a button
| | 02:29 | that just says, one sort order possibly
give the user multiple sort orders. So
| | 02:34 | if we go back into Layout mode, one
thing that you should know is that, not
| | 02:39 | just buttons can have scripts assigned
to them, anything on screen can, a field
| | 02:44 | can, or in this case let's say a field
header. So why don't we consider each
| | 02:49 | one of these -- well, these two don't
make too much sense. But let's say, Type
| | 02:52 | and Customer, in addition to doing
Format button, we can also right click, and
| | 02:57 | go to a Button Setup. So there we are
going to go down to our Found Sets and we
| | 03:07 | have got last in ascending order, so
we will say OK to that. Perform without
| | 03:12 | dialog. So now when users click on
this, it becomes a button and now we are
| | 03:16 | going to go in and have a different
sort type and go in and do Button Setup again.
| | 03:22 | I just right click for Button Setup,
and this case we'll go down and have a
| | 03:27 | different sort order. Perform
without dialog. In this case we will say,
| | 03:33 | Customer Type. Move that over, and we
will choose to sort by a Customer Type
| | 03:40 | Value List, and within the Customer
Type let's say, any matching type we want
| | 03:45 | to have last name in ascending order,
and if the last names match, we will say,
| | 03:53 | first name in the ascending order as
well. So that's the criteria for this
| | 03:56 | other button, and we will hit OK there.
| | 03:58 | And now if we go into Browse mode, we
will Save those changes. Now we see that
| | 04:05 | the headers -- and this makes a lot of
sense to users, because this works in
| | 04:10 | Excel, and even in table View within
FileMaker where you click on the headers,
| | 04:14 | and you can sort the values. So
this gives list views a really powerful
| | 04:18 | organizational aspect. So you see here
I click there, and we have already got
| | 04:23 | it sorted by last name, so no sort had
to occur. But if I click on Type, you
| | 04:30 | see that it's doing that sort for us,
the Gold, Silver, Bronze in that custom
| | 04:35 | order, and then doing the
secondary criteria within each one of those
| | 04:41 | categories. Then I can click back to
Customer on last name, and all this assigning
| | 04:45 | the Sort Script step to a button.
Now this can be more complex if you want
| | 04:50 | to design your own script and we are
going to cover this again when we get to
| | 04:54 | relationships, but just a little
preview here on assigning sort order to
| | 04:57 | buttons within list view.
| | Collapse this transcript |
|
|
13. Value ListsCreating static value lists| 00:00 | In the chapter on sorting, we took a
look at defining a list that we could use
| | 00:05 | as a custom sort order. FileMaker
allows you to store lists inside of your
| | 00:09 | FileMaker files and it's called Value
List. These Value List can be used for
| | 00:14 | sort orders or as data entry options;
the couple of different things that you
| | 00:20 | can do use these for and we will talk
about those at the end of this chapter.
| | 00:24 | But right now, let's take a
look at how we setup a Value List.
| | 00:27 | You go into your exercise folders and
we will choose Lucky_You_Tours_13_01 and
| | 00:34 | let's go to the Adventure Detail. So,
let's say, for example, on this database,
| | 00:40 | we have got 44 records in here and
each time that we are entering in, we see
| | 00:44 | that they have got different Seasons;
Winter, Spring, Summer, Fall and
| | 00:49 | Year-round. So, let's say, instead of
having the user type these values in all
| | 00:55 | the time or maybe even we want to be
able to sort these values based on a
| | 00:59 | Custom Value List, we are going to
first set up that list. So each FileMaker
| | 01:04 | file you can store as many Value Lists
as you like and you under the File, to
| | 01:09 | Manage and then Value List and up pops
the Manage Value List dialog and you see
| | 01:15 | that we have got some Value Lists
already created in here and each one of them
| | 01:18 | are Custom Values. We use this one in
the previous version and we see we just
| | 01:22 | type in to this text area a
Carriage Return separated list of values.
| | 01:27 | The order is also important if this is
the order in which we want the options
| | 01:31 | for data entry to appear. So, if we go
into create a new one, which we want to
| | 01:37 | create our Seasons, see we have got a
couple of other option which we are going
| | 01:40 | to talk about these options in the next
couple of chapters. But first, we name
| | 01:44 | our Value List and we are going to want
to name it something that makes sense,
| | 01:48 | in case we need to use this again for
either sorting or putting into a Value
| | 01:51 | List on a different layout. This will
be the one that, when we see the name,
| | 01:54 | makes the most sense to us.
| | 01:56 | So, we say, Winter, Spring, Summer, Fall,
and Year-Round and we hit OK and now
| | 02:09 | we have got this list that's stored in
here with both the order and the values
| | 02:14 | themselves that could be useful to us
in all sorts of different activities. The
| | 02:19 | one activity here will allow us if we
extend that sorting example, we can sort
| | 02:26 | by Season, using a Custom Value List;
sort and you see that it sorts in Winter,
| | 02:36 | Spring, and then Summer, Fall
and the last one is Year-round.
| | 02:45 | Now, we are going to look at assigning
these Value List to fields in just a few
| | 02:50 | chapters. So, we are going to come back
to that Seasons one and show you how we
| | 02:54 | can use it for data entry as well. But
for now, let's stick in the Manage Value
| | 02:58 | List and look at the different types of
Value Lists that we can set up and the
| | 03:01 | next one that we are going to look at
is creating Value Lists that are using
| | 03:05 | field indexes or field values.
| | Collapse this transcript |
| Creating a value list from a field| 00:00 | So, there are other types of list that
we might want to create as well. Let's
| | 00:04 | say, for example, we looked at creating
a static list through the Manage Value
| | 00:10 | Lists dialog. But let's say, we want
to create a Value List of, let's say,
| | 00:15 | countries and we want it to be a list
of all the countries that we currently
| | 00:20 | have entered into the database already.
If we look at, we can tell what that
| | 00:25 | is; we can either go record by record
or if you recall, if we click into this
| | 00:29 | dialog and we do Apple+I or Ctrl+I,
that will allow us to view the Index. So,
| | 00:38 | we see almost everyone of these 44
records or at least, some of them have
| | 00:42 | duplicates. But here is an index, an
alphabetized list of all the different
| | 00:46 | countries that we have got. So if I
was having a lot of time in my hands, I
| | 00:50 | could print this out or copy these
values and then go into Manage Value List
| | 01:00 | and we are going to create a new one.
Let's call this one Countries and I could
| | 01:07 | type everyone of those values or I
could paste everyone of those values into
| | 01:10 | this list.
| | 01:12 | Now, there is an easier way to do
that and also, there is a dynamic way of
| | 01:15 | doing that and that is to use values
from a field. So, in this case, what we
| | 01:20 | are doing, you will see by clicking
on this button here, it changes to a
| | 01:25 | different dialog. So, it says, okay,
what field am I going to use to populate
| | 01:29 | this Value List. This is a nice one
because what it does is it pulls not only
| | 01:32 | the countries at the time that I'm
making the Value List, but if someone else
| | 01:36 | adds another record to the database
with a new country, it's going to, of
| | 01:39 | course, update the Index and then
therefore, update the Value List that I'm
| | 01:43 | defining. So, it's not really use
values from a field so much as it is; it's
| | 01:49 | really use values from the field's index.
| | 01:52 | So, if we go under Specify Fields for
Value List "Countries", the new one that
| | 01:57 | we are setting up, I'm going to choose
the table and we will choose adventure
| | 02:02 | and then we see all the different
fields inside that table will appear and I
| | 02:05 | can pick any one of the tables inside
this file or anyone of the tables related
| | 02:09 | to this files or the tables within
the file. So, if we look for country, we
| | 02:14 | will say Include all values and then I
will say OK and OK again and what I can
| | 02:23 | then do and we will look at that in
couple of movies here, is assign that Value
| | 02:28 | List to the County field. Couple other
quick things to take a look at before we
| | 02:33 | move on to that Managing Value Lists,
Country, Specify Fields. You can also
| | 02:43 | say, which language you want to sort
in and this is where you might to choose
| | 02:47 | Unicode in case you have got foreign
language characters, special characters
| | 02:50 | that type of thing. So ,if you are
dealing with countries, it might be a good
| | 02:53 | idea depending on how you are spelling
those out if it's all English language or not.
| | 02:56 | You do have the ability to Re-sort
something in a different language.
| | 03:00 | Basically, you are just changing the
Index for the case of this Value List
| | 03:03 | here. So, there is another way to
setup Value Lists as you can see here and
| | 03:09 | that's using Value List from another
file. So, let's take a look at how we
| | 03:12 | borrow a Value List from another file.
| | Collapse this transcript |
| Using value lists from other files| 00:00 | We have looked at setting up a Value
List based on custom values, for example,
| | 00:04 | the Customer Type one that we created
and not only does the order of the values
| | 00:10 | come into play when we are sorting by
them, for example, but also the values
| | 00:13 | themselves. If it's not static list of
values, we have also looked at making it
| | 00:19 | a dynamic list, it's based on a
field's Index. What if we want to use a field
| | 00:23 | index from a field that's not defined
within this file and this is probably
| | 00:29 | more common if you have migrated
solutions that are multiple files all related
| | 00:33 | to each other and sort of having
everything in one area. But let's say, in this
| | 00:37 | case, we have another file that is
called adventures and we want to use a Value
| | 00:42 | List that we set up in that file.
| | 00:43 | Well, in that case, what we would do is,
we would create a new Value List and
| | 00:48 | call it Adventures and so we have used
the values from the field but what we
| | 00:53 | want to do is use the values from
another file instead. So, we select Use value
| | 00:57 | list from another file. First we have
to link to that file, so you see that we
| | 01:03 | can either link to and this is
actually pretty interesting and this is the
| | 01:06 | stuff that is going to be covered in
Beyond the Basics, but we can link to an
| | 01:11 | external source outside a FileMaker.
So, I can create a Value List named
| | 01:15 | Adventures that is populated and again,
we will cover this in Beyond the Basics
| | 01:19 | but this is a little preview.
| | 01:20 | I can have a let say a sequel table
somewhere of Adventures on a completely
| | 01:26 | different server, in a completely
different database format and I can link to
| | 01:29 | that and pull in values from that
field if I want to. But here, what we are
| | 01:34 | going to do is Add a FileMaker Data
Source and we will look in the Value Lists
| | 01:40 | for, if you want to play along, we have
got Adventures. So, right now, adding a
| | 01:44 | FileMaker data source allows us to
simply add any FileMaker files as a data
| | 01:49 | source here, but we do have options and
we will cover that in Beyond the Basics
| | 01:53 | to add other non-FileMaker data sources.
| | 01:56 | Now, once we have linked to the file
or if we already have a link to the file
| | 02:00 | or a file reference created for other
purposes and we just select that file, we
| | 02:05 | see that we have got all the Value
Lists that are defined in that file are now
| | 02:09 | available to us here. So, all I have to
do then is select a file and select the
| | 02:15 | Value List inside that file and now,
I'm sharing a Value List which could be a
| | 02:20 | dynamically generated from a field in
a completely different FileMaker file.
| | 02:24 | Now, I have got that defined as a Value
List within my existing FileMaker database.
| | 02:28 | The next thing that we are going to
take a look at is to have two different
| | 02:31 | values show up and use the second
value in our list and then we are going to
| | 02:35 | talk about how we can assign these
values to fields in our layout and you are
| | 02:39 | going to see why using second value is
actually so useful. So, let's move on
| | 02:42 | and 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:02 | The last type of configuration of the
value list that I wanted to cover is
| | 00:05 | actually already defined inside of this
file. We take a look at the guide value
| | 00:10 | list; let me look a little bit closer.
We see that it's setup as a value from a
| | 00:14 | field, but notice that we have got two
different fields defined here. Let's say
| | 00:18 | the reason that we would want to do this,
and you will see in the next chapter
| | 00:21 | how we are going to assign these value
lists, and the different type of value
| | 00:24 | list that we can assign to a field.
Let's say for example we are creating a
| | 00:27 | child record, and that will be
further defined in the relationship section.
| | 00:31 | Let's say we have got customer records,
we have got invoice records, and on
| | 00:34 | each invoice record we want that to
have the customer id. Well, when you are
| | 00:38 | creating an invoice, we can have a
dropdown menu assigned to a field, let's
| | 00:41 | say, and that's using a value list of
all the different customers but if you
| | 00:45 | show the customer id, or more
specifically in this case, if we are showing all
| | 00:50 | the different guides in a dropdown
list in a field on a booking record.
| | 00:54 | Let's say, what we really want to have
is the guide id populate the field, for
| | 00:59 | which we have assigned the dropdown
list, but to a user, they don't know the
| | 01:02 | guide ids, and they don't know what
all these numbers are. So instead what we
| | 01:05 | would do, is we would setup a value
list that has from guide, show all of the
| | 01:12 | ids, but what we would also like to do,
you see these check-box down here, is
| | 01:18 | show values only from the second field,
or we could sort values in a different
| | 01:23 | way as well.
| | 01:24 | So the first thing that we are going
to do, we could set up a value list that
| | 01:28 | shows all the guide ids, assign this to
a field inside booking, and every time
| | 01:33 | a user creates a record, they have to
pick one of the guide id as well. The
| | 01:36 | guide ids may be don't make sense to
the users, so what we will do, is click on
| | 01:42 | also display values from the second
field, and in that case, we would have the
| | 01:46 | full name of the guide.
| | 01:47 | So this way what the user is going to
see is the id value, and then the full
| | 01:52 | name to the right of it, and when they
choose one of those values, what it's
| | 01:56 | actually going to do, is populate the
id into the field, which is ultimately
| | 02:00 | what we want. But maybe the ids are
confusing to the user, or possibly they are
| | 02:04 | sorted by all the ids, and it's
hard for them to find the guide names
| | 02:08 | alphabetically. So what you can do
here, is sort by the second field.
| | 02:12 | So instead of sorting by the ids, it
will show all the ids, but it will be
| | 02:17 | sorted by the name. So someone can
click into a guide field, see all the guide
| | 02:21 | names alphabetically, click on one,
and it will populate the value of the id.
| | 02:26 | Now if we don't want the number showing
there at all, and it will just be what
| | 02:30 | appears to be a dropdown list of all
the full names of the guides, but when
| | 02:33 | they choose a guide, it's actually
going to populate the id. Then we say, show
| | 02:37 | values only from the second field.
| | 02:40 | So this value list when assigned to a
field will only show the full names of a
| | 02:46 | guide, but when selected, it will
actually populate the id value into the
| | 02:51 | field. Now this is a critical exercise
when it comes to creating child records,
| | 02:55 | either through a portal, or just
manually, and we will get to that more when we
| | 02:58 | talk about the relationship section.
There has been some interesting updates in
| | 03:02 | current versions of FileMaker, but right now
this option is as powerful as it's ever been.
| | 03:06 | So keep this in mind when we start
working with the relationships in creating
| | 03:09 | child records, through things like
portals. Now I have made reference to
| | 03:14 | assigning these value lists to fields
on a layout, so in the next chapter we
| | 03:19 | are going to look at how we do that.
| | Collapse this transcript |
| Field control setup| 00:01 | So we have looked at all the different
ways to set up a value list within the
| | 00:05 | FileMaker and one of the ways that we
looked at using those value lists was to
| | 00:09 | use it as a custom value for a sort
order. But the more common use, if we look
| | 00:14 | into our Exercise files we will see
an example of this is for assigning to
| | 00:19 | fields and let's go into Adventure Detail.
| | 00:23 | We know we have a value list for
Countries, we know we have a value list for
| | 00:26 | Seasons, let's make it easier for the
users, so when they create a new record
| | 00:30 | they don't have to go in and type
the country and if you look at the auto
| | 00:34 | complete option which is also based on
an index, but let's look at a way that
| | 00:37 | we can present all the options on
screen to users so that they don't have to
| | 00:41 | type in values each time.
| | 00:43 | It's also good to be able to enforce
the way the countries are spelt, so if you
| | 00:48 | don't want someone to type in USA
and instead want them to type in United
| | 00:51 | States, well then instead of having
them type in, give them a list of values to
| | 00:54 | choose from instead. How do we do that?
We do that by assigning a value list to
| | 01:01 | a field in a value list style but it
has to happened in Layout mode and the way
| | 01:05 | that we can access this,
first let's start with Country.
| | 01:08 | We want to select the field and we can
do Format, Field/Control, Setup. We are
| | 01:13 | looking for the Field/Control Setup
dialog. We can also manage this with the
| | 01:17 | contextual menu by Right-clicking on a
field or Ctrl-clicking on a field. So we
| | 01:21 | see here we have got the field that we
want. We got country and this is also
| | 01:25 | the field that pops up, if you want to
change this from country to region or
| | 01:29 | something like that.
| | 01:29 | But we are going to keep it on country
and we are going to focus on the Control
| | 01:34 | Style here, the default for a field
that's created in FileMaker is Edit Box,
| | 01:39 | but we can change that to anything we
like. You see we have a few different
| | 01:42 | options here. We have explored in an
earlier chapter the dropdown Calendar, we
| | 01:46 | will take a look at that again, but
we have got dropdown List, Pop-up Menu,
| | 01:50 | Checkbox and Radio Buttons.
| | 01:51 | Let's take a look at what these look
like. Each one of them has a different
| | 01:54 | series of options as well. So first
looking at the dropdown List option, then
| | 01:58 | next thing that it asks us to do is
choose one of the value list that we set up
| | 02:03 | and if we don't have a value list yet,
we can hit Manage Value Lists. So we can
| | 02:07 | look at the values or maybe we just
want to say, Oh! Yeah which one was it that
| | 02:10 | I set up. Oh! Yeah, okay
its Countries, that's right.
| | 02:14 | So we can choose Countries from our
list and there are couple of options that
| | 02:18 | we have in a dropdown List. Well,
let's take a look at it first and you will
| | 02:21 | see why those options are necessary.
So now we are in Layout mode, we have a
| | 02:24 | Value List assigned to this. If we
go into Browse mode after we save our
| | 02:29 | changes, we can see how this looks.
| | 02:31 | You see now, when the user clicks
or tabs into a field that our entire
| | 02:35 | countries value lists shows up as
options for them and they can select one of
| | 02:41 | those if they like or when they
click into the field they can type, for
| | 02:45 | example, the first letter on their
keyboard U and it will show United States
| | 02:49 | and help them get down to that area
quicker, if you are training data entry
| | 02:52 | personnel to use the solution that you
have created. You might want to pass on that tip.
| | 02:55 | But also you see here that we this kind
of value list that we have assigned or
| | 03:00 | this value list type, users could
still go in and click USA. Well, what if we
| | 03:04 | want to strictly enforce and make sure
that they are only choosing from values
| | 03:09 | that are in the field already. Well,
there is another way that we can get the
| | 03:14 | same type of the fact but in this time
I'm going to right click on this down to
| | 03:18 | Field/Control Setup, instead of the
dropdown List, I'm going to say a Pop-up
| | 03:22 | Menu and a Pop-up Menu has the ability
to pick a value, but it's a little bit
| | 03:27 | more restrictive.
| | 03:28 | You will notice that the format
changes a little bit because it's not a true
| | 03:31 | field; it's just a field value selector.
We will go into Browse mode by hitting
| | 03:36 | Ctrl+B, save out changes and now when
a user tabs into that field or clicks
| | 03:43 | into the field, you see that they can
only choose one of the values that are in
| | 03:46 | the field. They don't have any other
options here. They can only choose one of
| | 03:49 | those values and they can't
click in and type something else.
| | 03:52 | So depending on how much you want to
restrict their options or their ability to
| | 03:56 | add values that are not on your value
list, you can either use, again if we go
| | 04:00 | Ctrl+L or Apple+L into Layout mode, you
can either use the dropdown List, which
| | 04:06 | gives them the options and the Pop-up
Menu which only gives them these certain options.
| | 04:12 | Now because the dropdown List still
looks like a field, you have another option
| | 04:15 | on here, if you choose it to Include
an arrow to show and hide list. Go into
| | 04:20 | Browse mode again, hit Save, this
let's the user know when they are in the
| | 04:24 | field that sure you could type
something in but there is a value list assigned
| | 04:27 | to this field.
| | 04:28 | So a little bit of a visual icon to
assist them there. There is also some other
| | 04:33 | options here. You can choose from the
Pop-up Menu, include other item to allow
| | 04:44 | entry of other values. So if you want
sort of the restrictions are somewhere in
| | 04:47 | between a field that you enter in or a
dropdown List and restricted to Pop-up
| | 04:52 | Menus, you can allow them
go into Browse mode, Save.
| | 04:59 | You can allow them Other and Other will
allow other items to be added into the
| | 05:04 | list, other than what are previously
in there. But really the best rule of
| | 05:08 | thumb or the best practice here is to
use Pop-up List for when you want to
| | 05:11 | restrict only to particular values and
use a dropdown List, if you want those
| | 05:16 | to have optional values to save some
user some key strokes that they might
| | 05:19 | enter in a new value and in this case
if you remember, we set up the Country
| | 05:23 | Value List based on values inside the
country field. So if we use a Pop-up List
| | 05:27 | here, we would never have any values
in it, instead we are going to use a
| | 05:31 | dropdown List that will allow user to
type in some values that will then append
| | 05:35 | the existing value list for future data entry.
| | 05:38 | There are some other options that we
can choose from in addition to what we
| | 05:43 | have looked at here already with the
Pop-up Menus and dropdown Lists. If we
| | 05:49 | look into Seasons, let's say we want to
add and we know we are here; there are
| | 05:55 | only certain options that we can allow
a user to choose from. So if we go into
| | 05:59 | Field/Control Setup and let's say that
we want a Radio Button Set and we can
| | 06:05 | choose anyone of these and were are
going to choose seasons because this is the
| | 06:08 | Seasons field and we see a little bit
of a preview of it and that it tells us
| | 06:14 | that I might need a little bit of
space and let me select and with my arrow,
| | 06:22 | I'm going to move these field over to
the right, and of course I could just
| | 06:25 | select them all and slide them and if I
hold my shift key, it does it laterally.
| | 06:29 | Now what's nice about this Radio
Button option is it previews in Layout mode,
| | 06:35 | so we can move these fields around if
we need to be and just for the sake of
| | 06:42 | example, now we will go into the
Browse mode and click Save and we see here,
| | 06:48 | now we have got Radio Button options
so the user can choose Winter, Spring,
| | 06:52 | Summer, Fall or Year Around, just by
clicking on one of the Radio Button options.
| | 06:56 | Another example of that is in Fun
field and this is an example of showing how
| | 07:04 | we don't have to have a field that
matches the name of the value list. Here we
| | 07:09 | are going to display values from Yes
or No to allow users to select in Browse
| | 07:14 | mode, either Yes this is fun, No it
wasn't. You see there is little bit of a
| | 07:19 | formatting difference, here this
doesn't have a field filled in the
| | 07:23 | backgrounds. You can see radio buttons
look a little bit crisper and clear that way.
| | 07:27 | So another example that I wanted to
show you if we go to Guide Detail, let's
| | 07:32 | look at we have got a hire date in here,
let's go into Field/Control Setup and
| | 07:39 | we already looked at these other
options here, Radio Buttons, we are going to
| | 07:41 | look at Checkbox, is in a second but
the one I want to show you now is the
| | 07:44 | dropdown Calendar. This is another data
entry option. If we go into Browse mode
| | 07:49 | and hit Save. Now when a user clicks
into this field they can change that date
| | 07:54 | to whatever date that they like. So a
dropdown is another value list that we
| | 07:58 | can assign to a field but it just
happens to be a value list of all the
| | 08:02 | possible dates that there was.
| | 08:04 | Let's see there are a bunch of
different specialties and we want to choose each
| | 08:09 | one of them as we set up a guide in
the system and again we will right click,
| | 08:14 | Field/Control Setup, let's look at this
last one Checkbox Set and we are going
| | 08:21 | to assign Specialties to the Check box
set and we will go into Browse mode and
| | 08:25 | again you can see that we are previewing
it in Layout mode, but we will save that.
| | 08:29 | And what's nice about this is unlike in
a radio button which for the most part
| | 08:33 | are mutually exclusive options, here I
can do multiple options and what this is
| | 08:39 | actually doing in the background, if I
go back into Layout mode and drop the
| | 08:45 | Specialty field, Current table guide
and there is Specialties. It's interesting
| | 08:54 | when you get into more sophisticated
development techniques that might use
| | 09:00 | arrays, you can see that what's
actually being built into the field are a
| | 09:05 | return or carriage return separated
array of values and what's even more
| | 09:10 | interesting as you see it follows the
certain order. So if I do Wildlife first
| | 09:14 | then Bouldering then Hiking, it
changes the order as opposed if I just did it
| | 09:18 | Bicycling, Bouldering, Climbing.
| | 09:21 | So that's helpful, a little bit of a
preview there for things when you are
| | 09:24 | working with arrays or creating arrays
this could be helpful, the order of how
| | 09:28 | you are parsing these out might help
you for instance if you are doing a survey
| | 09:32 | with you know pick all these in the
order in which you prefer. So a couple of
| | 09:36 | different methods there, we have got
radio buttons, we have got dropdown Lists,
| | 09:41 | Pop-up Lists, the Calendar itself is
the only one that's not based on a value
| | 09:45 | list that we have already set up.
| | 09:46 | So now in the next one, we are going
to look at a couple of quick additional
| | 09:49 | examples of other uses of value list
aside from assigning them to a field.
| | Collapse this transcript |
| Additional uses of value lists| 00:00 | We have looked at a couple of ways to
use value list that are set up in the
| | 00:03 | database but let me do an overview here
of all the different ways that you can
| | 00:07 | use a value list. First let's open up a
file, Lucky_You_Tours_13_06 and we see
| | 00:15 | that we have got some value lists set
up within our database and we have got
| | 00:23 | Customer Type, we have got Specialties
and Seasons, Yes No, Adventures and all
| | 00:28 | these are different types
of value list that we set up.
| | 00:31 | Well if you remember in the sort version,
we know that we can use a value list
| | 00:37 | as a sort type. So if we go into
Layout mode and we look at the Button Setup,
| | 00:47 | we see that we are sorting records
without a dialog based on Type but we are
| | 00:53 | using our custom value list that we
created for Customer Type to be the sort
| | 00:59 | order in this case, so one of
the uses is as a custom sort order.
| | 01:03 | If you remember when we were talking
about setting up a validation on fields,
| | 01:09 | let's go into the Adventure table and
let's look at the field Season, let's say
| | 01:17 | we have got season use throughout our
database and we want to make sure that
| | 01:20 | users aren't entering anything in but
just the certain seasons that we have set
| | 01:24 | up or maybe the certain way that we
have spelt the seasons or abbreviated them
| | 01:27 | or whatever it is.
| | 01:28 | This validation of course is
something that allows you to be restrictive or
| | 01:32 | controlled the entry of data to
maintain the integrity of that data with the
| | 01:35 | new database and we can set up a
validation in a number of different ways all
| | 01:39 | of which we cover in the validation
chapter, but this one here Member of a
| | 01:44 | value list, if we click on that, we can
choose the value list and in this case
| | 01:49 | for Seasons we can
choose the seasons value list.
| | 01:52 | And now if I hit OK and let's say I go
into -- we will save that change there,
| | 01:59 | but if we go into the Adventure Detail
view. If I'm a user and I want to type
| | 02:08 | in Summer which is my favorite season,
when we commit we see Season is defined
| | 02:14 | to contain only specific values. Allow
this value? And of course that's just
| | 02:18 | because I have a allowed user
overwrite on there but in this case we will say
| | 02:21 | Revert Field back, we could just
simply assign by right clicking on the field
| | 02:27 | or Ctrl-clicking on the field going to
Field Setup, we could assign a Pop-up
| | 02:32 | Menu for seasons to the season value
list that we will accomplish the same task
| | 02:38 | and then we go into Browse mode and Save,
it only allow users to enter in these
| | 02:41 | values. But if we happen to use it
elsewhere where we don't have dropdowns or
| | 02:44 | we are setting this to something else,
keep in mind that the validation is
| | 02:48 | another one of the uses for a value list.
| | 02:51 | And then finally introduce you to this
use but in a calculation, there are also
| | 03:00 | uses for, and we will cover this in
Beyond the Basics, but just to give you a
| | 03:04 | preview, we can set up value lists and
we can parse out value list items, we
| | 03:13 | can use values to create arrays, we can
set up arrays using value list, either
| | 03:18 | through the data entry or through a
dynamic value list itself and then parse
| | 03:21 | out certain values that way and there
will be more on this in Beyond the Basics.
| | 03:25 | But the idea is you can set up values
inside your FileMaker file through File,
| | 03:30 | Manage Value List and these values can
be used in a number of different ways,
| | 03:34 | for custom sort orders, data entry,
validating on scripts or validating on
| | 03:39 | fields and use them in any Calculation
dialog whether it be setting up a field
| | 03:45 | calculation or when you see the
calculation dialogs when you are setting up
| | 03:49 | script steps as well or conditions
in script steps, all of which will be
| | 03:52 | covered in Beyond the Basics.
| | Collapse this transcript |
|
|
14. PrintingPrint layouts| 00:02 | We discussed earlier how a typical
database application requires attention to
| | 00:05 | at least three core areas, proper
database architecture, which is what we
| | 00:10 | covered when we defined tables and
fields in our solution and a sensible and
| | 00:14 | usable means of getting data into the
database for data entry, which is what we
| | 00:18 | had covered when we developed the
layouts and also some of the other field
| | 00:21 | specific data entry tools and then the
last thing to pay attention to here is
| | 00:27 | accurate and useful output of the data
in the form of reports. Now you could
| | 00:31 | also export data, but in this next
section we are going to concentrate on
| | 00:35 | creating reports within FileMaker Pro.
| | 00:38 | A couple of points before we get
started, you can print database records in
| | 00:42 | List View or in Detail View, and you
can print single records at a time, or
| | 00:47 | entire found sets or even blank
records that you can use as forms. FileMaker
| | 00:51 | has a mode that's built in, that's
specifically for previewing what your
| | 00:55 | layouts are going to look like when
they print and that's called Preview mode.
| | 00:58 | We are going to take a look at all
of these in the printing section.
| | Collapse this transcript |
| Previewing pages and print options| 00:00 | One of the nice things about FileMaker
is that you can print any layout that
| | 00:04 | you have created in FileMaker Pro.
Sometimes that's a good thing when they are
| | 00:08 | designed properly and sometimes it
could be a bit problematic and we will take
| | 00:11 | a look at how you can foresee,
how your layouts are going to print.
| | 00:15 | Let's open up the exercise files,
printing, Lucky_You_Tours_14_01 and we see
| | 00:22 | that in this database, we have got a
series of different layouts. And we can
| | 00:27 | print any one of them; we can print
any one of these layouts. Let's take for
| | 00:30 | example, this layout, and see what it
would like if we printed it. And I'm just
| | 00:35 | going to do a preview of this.
| | 00:36 | We see that this layout, although I
can't print everything, maybe I might not
| | 00:40 | want all these, all this stuff over on
the side, but the one important thing we
| | 00:43 | see is that this got cut off. So in
this print, I was able to see that I need
| | 00:48 | to move this around and make a little
bit more sensible or printable layout
| | 00:52 | here, and we will look that inside
Layout mode to see that we do have some
| | 00:58 | control over that. If you see this line
right here, and also on the bottom, it
| | 01:04 | tells us based on the print driver
that's set up, and in the next movie we will
| | 01:07 | talk about setting up the print driver
and some of the print options, you will
| | 01:11 | see that this is a cropped area.
| | 01:12 | We know even when we are in Layout mode,
that the header is going to get cut
| | 01:15 | off and that the photo is going to get
cut off here too, and you see that every
| | 01:20 | layout has these in here. We go to
the layout that's called Adventure Sales
| | 01:25 | Detail. This shows us a good
example of these layout parameters in use.
| | 01:30 | Let's take a look at what this record
would look like if we printed it also.
| | 01:33 | You see here that we have got some
data, but that it's cut off here and it
| | 01:39 | presents a margin and we don't have our
rounded out areas there. That could be
| | 01:44 | a bit troublesome. So what we would
know that we would do is resize and we can
| | 01:51 | use our Resize tool here, to simply
say 600 or may be 590. Now if we print
| | 02:01 | this, we print this, it fits perfectly.
| | 02:08 | Now, you will notice that we have got
fields here and data in this section, but
| | 02:14 | instead of having to print and kill
paper, use this preview feature. FileMaker
| | 02:18 | has a mode that's dedicated solely to
looking at what a value will look like
| | 02:23 | and also being able to cycle through
the different records. To see what these
| | 02:27 | will look like also.
| | 02:29 | So this is called Preview mode. So if
you want to see what your documents are
| | 02:33 | going to look like when it prints, just
go under View to Preview mode. Now some
| | 02:38 | of the things that affect what things
look like when they are being printed
| | 02:41 | are, for example, the paper that you
have set up, the drivers that you have set
| | 02:45 | up and we can look at how we can
control those and some of the FileMaker
| | 02:48 | specific options for those drivers to.
| | 02:50 | So 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:00 | I mentioned a couple of times in some
of the previous movies about how the
| | 00:04 | print driver is going to affect the
area within layout that we have to design
| | 00:09 | or determine what the margins are on
our printable layouts. Well let's take a
| | 00:12 | look at how we control them; it's very
similar to a lot of other applications
| | 00:15 | you have probably worked with, with the
same logic. But the other thing is too,
| | 00:19 | I have a specific print driver set up
on this machine that I'm using for the
| | 00:23 | instruction here, but you may have
a completely different print driver.
| | 00:26 | So don't be alarmed if when I open up
some of these dialogs, it doesn't look
| | 00:29 | anything like what you are looking for.
Do a little bit of digging around you
| | 00:32 | can find the same dialogs as I have or
who knows we might have the same printer
| | 00:35 | and yours does look exactly the same.
| | 00:38 | But either way there's a couple of
things that you want to set up and just for
| | 00:41 | your reference these are things that
can be controlled in the scripting and we
| | 00:45 | will talk about that in the
scripting chapter. First of which is the Page
| | 00:48 | Setup.
| | 00:49 | Page Setup just like in any other
application can set your page attributes, and
| | 00:55 | format for one of the printers that you
have set up and this is a printer that
| | 00:59 | I have got set up here and I can do
printing size and of course that's going to
| | 01:04 | affect what my margins are and how, of
course, how big it prints but then also,
| | 01:09 | what my printing area is, when I'm in
Layout mode. And also you can see we have
| | 01:13 | got control over the Orientation. Let
me switch the Orientation from Portrait
| | 01:18 | to Landscape, and see how that
affects things in Layout mode.
| | 01:23 | Notice now that my print area is much
wider, you see I can fit everything into
| | 01:30 | this now, although it gets a little
bit shorter. So if I go in and change it
| | 01:37 | back to Portrait. You see now how
it's changed back to the edges that I was
| | 01:42 | using earlier. So just like any other
application, you can control what paper
| | 01:47 | size you are printing to and the
orientation and such on the outputted
| | 01:50 | document. But you will see within
FileMaker that it affects the margins that
| | 01:54 | you have available to you also.
| | 01:56 | Now the next thing to look at is when
you actually get into the Print dialog.
| | 02:00 | Again, your Print dialog is
completely different, if you are on Windows, it
| | 02:03 | will sure look different. There might
be a little bit of digging around to do,
| | 02:07 | but in addition to the printer that you
are choosing, in my Print setup what I
| | 02:12 | have got is a series of different
options here. But you will notice when you
| | 02:15 | are printing out of FileMaker Pro,
there's going to be a FileMaker Pro Options
| | 02:19 | and what that allows you to do is
choose one of these three options here.
| | 02:23 | Print either the records being
browsed, the current records or the blank
| | 02:27 | records showing fields. Now, the
records being browsed, we will talk about that
| | 02:31 | when we look at printing lists
versus detail, that's in the upcoming two
| | 02:35 | movies. But the one that I wanted to
show you here, is if I want to just print
| | 02:39 | out one of my records, and I don't
want any fields in there, I can say print
| | 02:43 | out this layout and represent my
fields as boxes or with the underlines in
| | 02:49 | here, as you see it or as formatted.
| | 02:51 | And it's a helpful tool for previewing
what your reports are going to look like
| | 02:55 | and if you ever form setup as a report
and you just want to print out blank, so
| | 02:58 | someone can hand fill it out, for
example, just one of the uses there. But
| | 03:02 | records being browsed versus current
record is something that you can store in
| | 03:06 | as a setting in your
scripts, in your print scripts.
| | 03:09 | But keep in mind that in FileMaker, if
you are sitting at your machine and you
| | 03:13 | choose current record, and then the
next time you print something in your
| | 03:17 | FileMaker database, it's going to
default to the current records. So keep in
| | 03:21 | mind that, if you have made a change
or if the script has made a change, it's
| | 03:24 | going to stay that way until somebody
changes it back and you will see when we
| | 03:27 | talk about the difference between
printing lists and printing details in this
| | 03:30 | next movie, you will see why that
can make a pretty big difference.
| | 03:34 | So let's take a look at the
difference between printing lists and then the
| | 03:37 | difference between printing details.
| | Collapse this transcript |
| Printing lists| 00:00 | There are basically two types of print-
outs that you are going to want to make.
| | 00:03 | And one is, looking at one record at a
time and another is looking at as many
| | 00:06 | records as you can at a time in a report;
and we'll categorize the many records
| | 00:10 | as printing lists, and printing a
single record is printing detail views.
| | 00:15 | Let's first look at printing lists.
We'll go to a layout that has been set up
| | 00:19 | to print lists. And there are a couple
of ways you can control how many records
| | 00:22 | show up on your list and what those
records look like when you print them.
| | 00:26 | First of all, inside the layout level.
If we have a layout that, let's say,
| | 00:29 | looks like this. If we go into our
Preview mode, we can see that -- and one of
| | 00:37 | the things by the way about Preview
mode is that it determines how many
| | 00:40 | different pages it is going
to take to print these records.
| | 00:43 | So if we go back to Browse mode here we
see that I have got 22 records or if I
| | 00:49 | find all I've got 44 records. So if I
go and do Preview mode, we can see how
| | 00:55 | many pages that it is going to
take to print. Well that's 5 pages.
| | 00:58 | Well I have a little bit of control
over this. I can go into Layout mode and
| | 01:01 | make sure that my body, in my List View.
Now we go back to Browse mode, save
| | 01:07 | our changes. The body is only as high
as that needs to be with the height of
| | 01:11 | the field.
| | 01:12 | So that's important to take into
account and then that way we see that these 44
| | 01:16 | records, and of course I'm going to
modify font size as well. But if we go into
| | 01:20 | Preview mode, we can see that we have
cut that down for 5 pages to just 2 pages
| | 01:26 | which is a lot more
efficient for generating these lists.
| | 01:29 | We might not always necessarily
want to print all of the records in the
| | 01:32 | database. In Adventure list that might
not have that much of an impact but if
| | 01:36 | you look at Trip list or Customer list
-- and in the case of Customer list I
| | 01:40 | could print this list 1522, which
you will see that could be 77 pages.
| | 01:46 | Now granted, maybe I want to have a
hard copy of all my clients but another way
| | 01:50 | to affect the amount of pages in a List
View or the amount of records that you
| | 01:53 | are viewing is, of course, to isolate
only certain found sets, and we talked
| | 01:58 | about this in the Find In chapter.
| | 01:59 | But let's say I just want to print
out that have a designation or a type of
| | 02:04 | Tin. So I can control the amount of
records on a page by how I design a layout
| | 02:08 | with the format, and then I can also
control based on the found set on how many
| | 02:14 | records are going to be printed. Also I
can control -- if you remember from the
| | 02:19 | sorting, I can control what that
found set looks like when it prints.
| | 02:23 | So the things to remember here is that
either manually or for scripted actions
| | 02:28 | you can create a Found Set and look at
that found set in List View and then you
| | 02:33 | can control the sort order and you can
control how many records and how many
| | 02:36 | pages will be printed, all through
some of these different techniques that we
| | 02:39 | just discussed in this movie.
| | 02:41 | Let's take a look at now, instead of
printing list, let's look at printing
| | 02:44 | details of one record at a time and
some other considerations there as well.
| | Collapse this transcript |
| Printing detail| 00:02 | Instead of trying to fit as many
records on a print out as necessary, sometimes
| | 00:06 | you only just want to isolate one record.
Couple of things to take into account
| | 00:09 | there. We looked at earlier about how
the first thing that we want to look at
| | 00:14 | when we are in Layout mode is making
sure that all of our and we'll see here
| | 00:22 | 586. We want to make sure that
everything fits within the print area and, of
| | 00:26 | course, we can control the print area
by which printer driver that we set up,
| | 00:31 | and you see here that as long as
everything fits within these margins on the
| | 00:35 | right and then also, on the bottom of
the screen that everything is going to
| | 00:39 | print under one page.
| | 00:42 | That's the idea when you print in a
Detail view. So if you want to print just
| | 00:47 | taking a look at one adventure at a time,
there are a couple of things you want
| | 00:52 | to do. First off, it's Okay to have
one layout for data entry and then a
| | 00:58 | completely separate layout for printing.
You see this on the web all the time
| | 01:01 | with Print ready layouts.
| | 01:03 | So really this is similar information
but we don't need all this. We don't need
| | 01:07 | the buttons, we don't need a lot of
the information that we see or maybe some
| | 01:11 | of the information is private. All we
need is the description and some info
| | 01:14 | that we can share with people. And
that is what we have added here the
| | 01:18 | Description and the Price and a picture
and then just some branded formatting.
| | 01:25 | So the other things to take into
account when we are printing just like we
| | 01:27 | talked about with Found Sets, is if I
went and printed -- now I'm looking at
| | 01:31 | the Kilimanjaro and Safa Adventure, if
I go in Print right now I want to give
| | 01:37 | somebody a copy of Kilimanjaro and Safa
record. And you see that it has printed
| | 01:43 | one record.
| | 01:43 | Well, the reason for that, if you
recall when we were setting up the print,
| | 01:47 | looking at our Print Setup we have got
our Preview open here and we notice that
| | 01:55 | we can dig down into some of the
features here. We can choose either records
| | 01:59 | being browsed or a current record. We
want to be careful there because if I
| | 02:04 | have the records being browsed and I
have a Found Set of 44. I'm going to get
| | 02:07 | 44 of these pages printed out of my printer.
But instead I'll want the Current record.
| | 02:12 | Well instead of nesting with your print
area, I can omit the record, and one of
| | 02:18 | the tricks there is either for
scripting you are manually is to omit the Record
| | 02:21 | which is Ctrl+T, and then Show Omitted
Only, and that isolates the one Record.
| | 02:26 | Or I could just go in the Find mode and
choose Kilimanjaro and Safa and isolate
| | 02:32 | one record and then go into
my Adventure Sales Details
| | 02:36 | So there are some ways to control not
only the number of records and the print
| | 02:39 | area and also the items that are
printed so you can create a layout that has
| | 02:44 | only the items that you want to
print out and remove all the other extra
| | 02:47 | curricular items there that you don't
need. Make sure that you are within the
| | 02:50 | margins and control the number of
records you are printing, either through
| | 02:53 | creating a Found Set, through script,
or manually before you print, or by
| | 02:58 | working with the print options.
| | 02:59 | There is another way that you can
manipulate the way that fields on screen will
| | 03:05 | be printed and also, Omit some items
from being printed. And, that's through a
| | 03:10 | dialog that's called Sliding and Printing Objects.
So, let's take a look at that one now.
| | Collapse this transcript |
| Sliding objects| 00:00 | Here is another helpful tip when it
comes to your print ready layouts. You'll
| | 00:05 | notice that no matter how hard you
try when you are creating a print ready
| | 00:08 | layout that's really heavy on text
fields or even a text area or just a lot of
| | 00:13 | fields, you are going to notice the
discrepancy. For example, I created this
| | 00:18 | layout where you can show some sample
data by sizing out the fields and the
| | 00:23 | font, the styles and such, so that on
the record that I have happened to be
| | 00:26 | looking at, I minimize white space.
| | 00:29 | The problem was, when you go into
Browse mode, you'll notice that there is a
| | 00:35 | difference from record to record in
the amount of text that's in each one of
| | 00:39 | these fields. So how do we remedy that?
Well, FileMaker has a function, when
| | 00:43 | you are in Layout mode, where if by
selecting all of the values we can slide
| | 00:49 | them for printing, and of course when
we are in Preview mode, we are actually
| | 00:52 | looking at what something
looks like when it prints.
| | 00:54 | You can find these Set Sliding/
Printing dialog under the Format menu and when
| | 00:59 | you select Set Sliding/Printing, you
can either turn on or off Sliding up based
| | 01:05 | on and here is a couple of different
options that you have here. Notice that
| | 01:08 | I've selected all of the items and I'm
using the top part of this page as an anchor.
| | 01:12 | You have three options; you can slide
to the left or you can slide up and the
| | 01:18 | sliding to the left might be more
useful, if you were doing something like
| | 01:21 | this, like if, some values didn't have
a data in the Adventure field, you can
| | 01:26 | slide the Price and Country over to
the left, if it make sense, it doesn't
| | 01:29 | always make sense to do so.
| | 01:30 | We're back on the Sales Detail, you
select all these items, go to Format, Set
| | 01:38 | Sliding/Printing and what we want to
choose from is either All above or Only
| | 01:41 | directly above and really the
nomenclature here doesn't make much sense, but
| | 01:45 | what your decision really is, if you
look at the graphs, is you either slide it
| | 01:49 | up to the bottom most part of
whatever value you have and we only have one
| | 01:53 | field here so our decision is easy, we
just go to the bottom or you do to the
| | 01:57 | highest areas.
| | 01:58 | So we've two different areas, this is
really the choice that you are making
| | 02:01 | but, in this case we are going to slide
All above and let's take a look at what
| | 02:05 | impact that has when we are in
Preview mode. So here's our first record and
| | 02:10 | notice the next record. Everything
slides up, all our white spaces minimize.
| | 02:13 | The one thing you'll notice is we have
a lot of white space on the bottom of the page.
| | 02:17 | Now in this case it doesn't matter
because we are purposely making an 8 x 11
| | 02:20 | tear-sheet, but if you'd want to
eliminate that, you can select the couple of
| | 02:28 | the items and check the Also reduce
the size of enclosing parts. So what
| | 02:33 | that'll do is shrink up the body, so
that it has adequate white space between
| | 02:38 | the edge of the body and the first
field. So, also in this dialog is another
| | 02:43 | useful setting.
| | 02:45 | Let say you haven't created a print
special layout, but you want to just print
| | 02:50 | this page but only the items that
make sense, like none of these data entry
| | 02:55 | areas and not this photo image here.
So what you do in that same dialog, go
| | 03:01 | into Set Sliding/Printing and
select Do not print the selected objects.
| | 03:06 | Now when you go into Preview mode,
you'll notice that those objects are gone.
| | 03:11 | So this is a helpful task for when
you've got a print ready layout that might
| | 03:15 | have a button on it, like a Print button,
it's very common use for a Print button.
| | 03:19 | Or you can make a print ready
layout and all the while not lose the
| | 03:24 | functionality these things are
completely activity, they just simply don't
| | 03:27 | print, when you are in Preview mode.
| | 03:28 | So, here is a couple of helpful tips
on a generating a print ready layout for
| | 03:33 | layouts that have either text that you
want to slide or items that you don't
| | 03:37 | want to print.
| | Collapse this transcript |
| Printing merge letters| 00:00 | One very popular printing option
outside of a FileMaker database that a lot of
| | 00:04 | users require is the ability to print
letters. Now, if you are familiar with
| | 00:08 | applications like MicroSoft Word, for
example, you know that you can create a
| | 00:12 | template and then you can throw
different tags or what are called the Merge
| | 00:16 | Fields into your template, that then
dynamically pull data from a Datasource
| | 00:20 | whether it's a static file or in some
case you can even connect a database to that.
| | 00:24 | Well, all that functionality is built
right in the FileMaker Pro, if you create
| | 00:27 | the appropriate layouts and use what
are called Merge Fields. Let me show you
| | 00:31 | an example of that. If you go into
your printing, Lucky_You_Tours_14_09 and
| | 00:40 | what I've done is I've set up a
Confirmation Letter. Now, you see that we've
| | 00:44 | got, for each booking there is 1522
bookings in here. Let just say the business
| | 00:49 | rule here is each time of booking, it's
sent out. The president of the company
| | 00:53 | Boo Radley wants to send a
Thank you letter to that individual.
| | 00:57 | Well, we've got all the data that we
need inside the database and what I've
| | 01:00 | done is created this letter and we'll
look at in Layout mode. Now I did is,
| | 01:07 | create some formatted graphic areas
and put some text in here and then I have
| | 01:11 | two text areas where I just typed in
pick some fonts that I want, I've typed in
| | 01:16 | the values that I want to show up in
this letter and I've left the little bit
| | 01:20 | of space because that's where I'd
like my dynamic values to show up.
| | 01:23 | So let's experiment first with looking
and trying to put a FileMaker field in
| | 01:28 | that area. If I put a placeholder
here of let's say the first name of a
| | 01:34 | customer and fit it in that area. I can
also then use a placeholder for let see
| | 01:43 | what's the trip that they booked.
We'll say trip Name and if we want to make
| | 01:50 | sure that we look in at that. So I see
there is and Cris Everest. So that's all
| | 01:54 | great, well actually what I'm doing
here is -- and I'm trying to size it to the
| | 01:58 | name, so that maybe I could size it to Everest.
| | 02:01 | But, what I'm doing is creating a
scenario here for you that are going to have
| | 02:05 | problems and I want to show what
problems these Merge Field solve. But first
| | 02:09 | let's looks at this in Preview mode,
that's all finding good. We can get rid of
| | 02:14 | some of that formatting and maybe fix
the fonts and tweak that a little bit.
| | 02:18 | The problem is though, not all the
names or the same width, so I'm going to
| | 02:22 | have a ton of really kind of kludge
white space there and I don't have any wrap
| | 02:27 | effect here. I guess I could space this
out to fit the largest Adventure name,
| | 02:31 | but what's the real alternative? Well,
the alternative is just to use a Merge
| | 02:34 | Field instead, so let's get rid of these fields.
| | 02:36 | An Emerge Field that falls under the --
it's not a different type of field that
| | 02:43 | you define. It's just a different way
to place a field on your layout. You can
| | 02:47 | find that under the Insert menu along
with all the other things you can insert
| | 02:50 | into a layout, at the very bottom
you've got Merge Field. So, if I go into the
| | 02:55 | Layout mode and say Insert > Merge
Field, let's just take a look at what the
| | 03:02 | Merge Field will look like, we'll
just pick any field here, just for
| | 03:06 | demonstration.
| | 03:07 | You see that it drops on the layout
and it's really just in the form of the
| | 03:11 | text and all you do - you don't even
need to use the Insert button, you can
| | 03:14 | type it in manually by doing the
bracket, bracket, name of field and then the
| | 03:19 | opposite closing brackets, and what
that looks like in Preview mode; of course
| | 03:27 | not all of our customers have a
birthday in there, but for this one you see
| | 03:30 | that it shows up is the value and I can
change that to insert a different Merge
| | 03:34 | Field if I'd like, first name, for
example, we go onto Preview mode and it
| | 03:45 | dynamically gives me all those values
in a style that I can use and it's easier
| | 03:50 | to work within the file.
| | 03:51 | Well, the true magic of this is not
inserting it separately, but instead,
| | 03:56 | already going into the text area that
I've already created. Just let me get rid
| | 04:01 | of some of that white space and just
say; what I want to do is now Insert in
| | 04:09 | the Merge Field for a first name and
it's a adapted in the same font and style
| | 04:15 | as my text area and I can also control
the spacing between the record before it
| | 04:20 | and any kind of
characters are or record after it.
| | 04:23 | And now, that I'm viewing and I'm
showing Sample Data, we see that looks real
| | 04:28 | nice there and also here is the other
bonus as I get rid of all this white
| | 04:32 | space that we thought, we needed here.
Insert in a Merge Field and I'm pulling
| | 04:38 | this in from trips, so it's going to
give me the related Trip Name and you see
| | 04:42 | that's formatted a little bit
differently, it's just << name of relationship,
| | 04:47 | :: and then the field that you want.
| | 04:50 | And now we see that I've got some cool
wrapping that occurs here too. So Trip
| | 04:53 | Name shows up with the date and if I go
into Preview mode and look at this, we
| | 05:03 | get this cool wrapping effect here,
that happens because I'm using the Merge
| | 05:08 | Field as well and since the Merge
Field itself is actually looked at as if it
| | 05:13 | was just text, if I grab the field,
let's say and I'll right-click and give it
| | 05:20 | a Style of Bold and then now
we look at in Preview mode.
| | 05:27 | You see that it will bold the entire
contents, if In fact there are contents.
| | 05:32 | Here we have some other contents, at
all different sizes and they all stretch
| | 05:36 | and shrink and it's not just one
single field. I can have the entire
| | 05:40 | description show up here as a Merge
Field. Obviously I've got the name, the
| | 05:44 | description, I can put any kind of
dynamic information in here, a very, very
| | 05:48 | handy tool when you are planning on
printing letters outside of a FileMaker Pro
| | 05:51 | and this is what is called
Printing or Generating a merge letter.
| | 05:55 | The next thing we are going to look at
uses similar principles. You may have
| | 05:58 | recognized these Merge Fields from,
where we create envelopes and labels. We
| | 06:02 | are going to take another quick
look at that in the next movie.
| | Collapse this transcript |
| Printing labels and envelopes | 00:00 | Since we are talking about Merge
fields here, I just wanted to revisit the
| | 00:04 | concept of printing labels and
envelopes because they too use Merge fields and
| | 00:09 | this is a quick review.
| | 00:10 | When you are in Layout mode, you can
use the New Layout/Report wizard to create
| | 00:16 | either envelopes or a labels and if
you recall, can use a standard; in this
| | 00:24 | case let's say Avery Label 5160.
Layout and pick all the fields that you want
| | 00:30 | to have show up, but after you've
created something like that, what it looks
| | 00:33 | like is, what you have here are the
Merge Fields and since we've looked at the
| | 00:38 | Merge Fields and I'll zoom this up.
| | 00:40 | I wanted to show you that what I've
done here and this in part of the standard
| | 00:45 | is I've made the name Bold or I could
make the name a different Color if I want
| | 00:50 | to, but the idea is, it's a same
concept is the letter that we just showed and
| | 00:56 | if you look, for example, I can print
and for each record it goes into this
| | 01:00 | format, it's not a huge letter, but it
happens to be a label that we can print
| | 01:04 | out in their Merge Field, so I can
affect them in the same way that I do with
| | 01:08 | text.
| | 01:09 | Or if I want to, I can even get fancy
and in one of our previous modules, let's
| | 01:17 | take this one here. We've got this logo
and I can even put that on there. I'll
| | 01:27 | just move it up, that just
to give you the general idea.
| | 01:32 | So I can put a little logo or maybe it
would make more sense possibly in this
| | 01:36 | case too. I've logo B to the right and
move this over a little bit, but you get
| | 01:45 | the basic just. These are layouts that
you can affect and you can change and do
| | 01:49 | whatever you'd like to. I mean the same
is true with the envelopes. Depending on
| | 01:53 | which envelope size you've created,
your header is going to be different and
| | 01:56 | there is some rules that apply and
if you recall we reviewed those in the
| | 02:00 | section on creating those layouts for envelopes.
| | 02:03 | So you'll notice that we can do the
same here. We can print, we can go on and
| | 02:07 | type in, Address that type of thing and
when we look in Preview mode, we'll see
| | 02:16 | that we can print out. So, we don't
have to go buy envelopes. We can customize
| | 02:19 | and create our own and we can because
these are Merge Fields, we can effect the
| | 02:25 | way that it looks bold or it could
even get fancy with super script, whatever
| | 02:36 | kind of things that we want to do here.
| | 02:37 | But you get the idea that because
these are Merge Fields, you have a complete
| | 02:40 | controlled over the formatting and the
fonts and such so you don't have to use
| | 02:44 | it just as is, I want to take the time
to, take a look at how this works and if
| | 02:48 | you want a refresher on how you create
these layouts, you can go back into the
| | 02:52 | Creating Layout section and take a look
at the sections on creating labels, and
| | 02:56 | envelopes using the New Layout/Report wizard.
| | Collapse this transcript |
| Summary reports| 00:00 | Thus far in this chapter, we have
talked about different ways to print out of
| | 00:03 | FileMaker, but printing something out
of FileMaker doesn't necessarily mean
| | 00:07 | that it's a report.
| | 00:08 | FileMaker also has the ability to
report on data and that could be very useful.
| | 00:12 | Really the distinction that I'm making
there is sometimes you can just simply
| | 00:16 | look at the same thing you see in the
database. Sometimes you look at something
| | 00:18 | that organizes your data in a way
that provides additional information that
| | 00:22 | wasn't there, if you were just
looking at in a Browse mode in the database.
| | 00:25 | And the example that I'm going to use
would be to create a list and create
| | 00:29 | something that I would call a Summary
Report. So the example that I would use,
| | 00:32 | what we have got here if we go into
Adventure List, let's go into Layout mode.
| | 00:38 | What we see that we have here is, we
have got a layout that's created with the
| | 00:42 | Body part and a Header and all I'm
doing here is, I have got some fields on
| | 00:48 | here, I have got the field for Country,
I have got Title of the Adventure and
| | 00:52 | then the Price.
| | 00:53 | If I look at this in Preview mode
and what I did there is you can go into
| | 00:58 | Preview mode by doing Ctrl+U or Apple
+U.? I happened to have this sorted
| | 01:05 | already but if I was scripting this or
even if I was doing it manually, I would
| | 01:09 | sort first and then I can look down
here and see all the different prices. Well
| | 01:12 | this is look, just like
looking at List View in FileMaker.
| | 01:15 | There is something I can do in Layout
mode by adding. If you recall, we have
| | 01:19 | talked about how we add a part, I'm
going to add a part to the bottom of this
| | 01:25 | and the part that I'm going to add is
Footer in this case. When I hit OK on the
| | 01:29 | Footer, now this gives me a little
additional space to add another field down
| | 01:33 | here and that's just what I'm going to
do. I'm going to grab this and if I hold
| | 01:36 | down the Option key and drag, it's
going to-- let me Specify another field and
| | 01:43 | in here, I happened to have a field
that's called Price Total and it's what's
| | 01:46 | called a -- and actually
let me put the label on there.
| | 01:49 | We will talk more about this in the
upcoming Calculation chapter but Price
| | 01:55 | Total is a Summary that is Total of
price and one of the cool things about the
| | 01:59 | Summary fields is, it's based on
whatever found set of data that you are
| | 02:03 | actually throwing at it. So let's go in,
I will right click on this and do a
| | 02:07 | little bit of formatting here, make
it Bold and we remember I can go on and
| | 02:14 | Format a Number, as we have got
the Decimal places in the Currency.
| | 02:17 | If I go into Preview mode now, we will
save these changes, looks the same, I
| | 02:22 | got my same list all sorted in a
certain way. But if I scroll down a little bit
| | 02:27 | to the bottom, I see now that the
going into Preview mode and then ultimately
| | 02:31 | printing this of course has triggered
that Summary field to calculate all of
| | 02:36 | the totals of all the prices that I have here.
| | 02:38 | So now this is become not just a list
but a report which is pretty cool here.
| | 02:42 | Now you see that this is showing up
on both of the pages in the way I can
| | 02:46 | change that to show up just at the end
if I want is to make it a Title Footer
| | 02:52 | and let's look at how that changes
things. That would show up only on the first
| | 02:57 | page or if I just wanted to be a -- I
will experiment with a couple of these
| | 03:05 | and show you how these change, how
things look on the page. I got no total
| | 03:10 | there, but I have a total at the
very end. That only shows up at the end.
| | 03:14 | So experimenting with the couple of
these options, we see that the Footer shows
| | 03:19 | up on the bottom of every page, the
Title Footer only shows up on the bottom of
| | 03:22 | the first page. The thing that we are
going to want to use is the Trailing
| | 03:25 | Grand Summary and that specifically
used to allow a summary and you can put
| | 03:30 | only Summary fields in there. At
least only Summary fields won't work and
| | 03:33 | provide useful information. Put that
information in there and it will follow
| | 03:36 | your list and the cool thing is we
were looking at Find all right now.
| | 03:41 | Let's go into Find mode and we can go
into Find mode by going under View or
| | 03:46 | like I did on the keyboard shortcuts
doing Apple+F as in Find and I will say do
| | 03:53 | a search for United States and we see
that I have got a Found set of 12. Well,
| | 03:58 | I'm not changing any layout, and I'm
going to stay in the same layout we have
| | 04:01 | just created, but this time I'm going
into Preview mode and I have a one page
| | 04:05 | report that shows a different value 13,
879. So what you are seeing here is that
| | 04:11 | the Price Total is triggered off of
whatever your Found set is and here I have
| | 04:18 | a Found set of 3 and now we see it changes.
| | 04:20 | So I can script in these Found Sets
and I can sort them differently and have
| | 04:25 | create a different Summary Reports
based on whatever criteria I'm putting in my
| | 04:29 | search criteria. So this is what
would be called a Summary Report.
| | 04:32 | In the long versions of the Summary
Report, for example, if we go back into
| | 04:35 | Browse mode, where we have got a lot of
data here. It might be more useful for
| | 04:40 | us to group this data a little bit
and when it be helpful if we could also
| | 04:43 | group these by whatever groups that we
are creating. Well that's what's called
| | 04:47 | a Sub-Summary Report and we are going
to take a look at creating one of those
| | 04:50 | in the next movie.
| | Collapse this transcript |
| Subsummary reports| 00:01 | So we were just taking a look at how
we can create what referred to as a Summary
| | 00:04 | Report, by defining a Summary field
and placing that Summary field on the
| | 00:09 | layout of what was before just a
list view and we know that it will then
| | 00:13 | summarize based on whatever the found set is.
| | 00:15 | Now we are going to take that to the
next level and actually the other part
| | 00:18 | about that that was interesting is
that, it creates data that was not there
| | 00:23 | before. So instead of just looking at
a list of values which is really not on
| | 00:27 | report, it's more of a print out; the
difference I'm saying there is that it
| | 00:32 | tells me something that I didn't know
before let's say, that's how I'm defining
| | 00:34 | what report is.
| | 00:35 | So we've got the Summary report which
I can print out for any Found set I can
| | 00:40 | find every country and print out a
report individually, find everybody who
| | 00:43 | ordered something since this month and
print out a report for their totals, or
| | 00:47 | we are going to take that to the next
level and in this movie, we are going to
| | 00:49 | create what's called a Sub-Summary
Report and let me explain a little bit about
| | 00:52 | what we are going to be doing here.
| | 00:53 | So first of all we are looking at our
file Lucky_You_Tours_14_09 and we are on
| | 01:00 | the layout for the Adventure report and
we are looking at it in a Browse mode,
| | 01:06 | so let's get over to Layout mode,
quick review, we've three parts and, if you
| | 01:11 | go on the bottom left-hand corner and
click on this icon you can see what the
| | 01:14 | reports are. We've got the Header
that just contains our field label
| | 01:18 | information.
| | 01:19 | The Body, which by the way contains
the Country, the Title and the Price and
| | 01:26 | then we have a part that's called a
Trailing Grand Summary, that just follows
| | 01:30 | at the end of the report and totals up
all the different prices and of course
| | 01:33 | that change is based on whatever our
found set is. Well, one of the reports and
| | 01:37 | let's look at -- see what this looks like,
I'll save the changes here, let's sort
| | 01:43 | by Country.
| | 01:44 | Okay, so if we sort these, it kind of
helps us out a little bit because I can
| | 01:48 | visually group all of Argentina
trips, let me see there is a couple New
| | 01:52 | Zealand, Switzerland, a bunch of United
States and I can get a general idea of
| | 01:57 | at least visually what the quantity is
on this as well one of the things might
| | 02:00 | be interested in doing in this case
is Sub-Summarizing by Country perhaps.
| | 02:05 | Like instead of showing United States,
United States, United States, rather
| | 02:08 | than presenting that in each record
in the set, there'll be a Header before
| | 02:12 | each country's list of trips sort of
indenting in kind of an outline forum and
| | 02:17 | then we could even total up what
that country's Price Totals are, without
| | 02:21 | actually have any define any further
fields we'll still be using that Price
| | 02:24 | Total field and this is called the Sub
-Summary Report and when you create a
| | 02:27 | Sub-Summary Report, this field that I'm
talking about that you choose to group
| | 02:30 | the records by and in this example,
I'll be grouping by Country, that's called
| | 02:35 | a Break Field and the Break Field is
important when it comes to developing a
| | 02:38 | Sub-Summary Report because typically
the Break Field would be a categorical
| | 02:42 | variable, for example, things like
status or the type or month rather than a
| | 02:47 | continuous free entry like amount or
invoice date or invoice number, something
| | 02:51 | that's unique.
| | 02:52 | It's something that -- Country is a
perfect example because we see it repeated
| | 02:55 | over and over and over again, in this
report that we are looking at now. So
| | 02:58 | Sub-Summary Reports are constructed in
FileMaker by adding these parts that are
| | 03:03 | called Sub-Summary parts and we are
going to do those in Layout mode. Once we
| | 03:06 | add those parts, you'll see how we are
going recycle the Price Total fields.
| | 03:09 | So without further due, let's going
into Layout mode and we are going to start
| | 03:12 | off an Adventure Report and we are
just going to build off of the report that
| | 03:17 | we'd already created out of the List
view, but first, if you want to take a
| | 03:21 | look at the Adventure Sub-Summary Report,
I already have a Sub-Summary Report,
| | 03:25 | somewhat created here and if we look at
this in our Preview mode, I'll just use
| | 03:30 | the icons here. I have switched from
Layout mode to Preview mode and Preview
| | 03:34 | mode, just to introduce to you because
I'll be switching back and forth these a
| | 03:36 | lot. This is Browse mode, Find mode,
Layout mode and Preview mode and I'm going
| | 03:40 | to be toggling between Preview and Layout mode.
| | 03:43 | Now, you see that, I don't have
multiple Argentinas. It just says Argentina and
| | 03:46 | then lists all the different invoices
for Argentina. It says United State and
| | 03:51 | then list all those independently, and
it gives me a more visually organized
| | 03:56 | grouping of my information. We are
going to add a little something to that as
| | 03:59 | well, but let's take a
look at this in Layout mode.
| | 04:04 | Go back to the Sub-Summary; you'll
notice the differences between the two. So
| | 04:07 | I've got -- let me Save that. So here
is the report. I've got Header, Body,
| | 04:11 | Trailing Grand Summary and here I've
got a Header Sub-summary and Body. So what
| | 04:15 | I want to do is add a Sub-summary part
to this layout right now. So the way we
| | 04:20 | add parts is we click on this, you'll
see it turns into a hand and I want to
| | 04:25 | put a Sub-summary between
the Header and the Body.
| | 04:27 | And you'll notice that I've dropped it
up there, a little bit of space, can't
| | 04:32 | really zoom that up but, instead of a
Leading Grand Summary in which was the
| | 04:35 | default, we are going to choose Sub-
Summary when sorted by and you'll see that
| | 04:39 | it's asking you to pick a field and you
might think to yourself what field am I
| | 04:46 | suppose to be looking at here.
| | 04:47 | Anytime you need to choose a field,
that's always going to be the break field
| | 04:49 | and if you recall, the idea here is
that our break field is going to be the
| | 04:52 | Country, so it's whatever the field is
that we are grouping by. So I'm adding
| | 04:56 | to Sub-Summary Report, grouped by
Country and let me zoom in a little bit here,
| | 05:02 | so you can see what we are doing.
| | 05:03 | So in the Body, what I want to have is
here is our Subsummary Report, you see
| | 05:09 | how in the Body I have the Title and
the Price. We are going to do the same in
| | 05:14 | this field as well. So let's drop the
Title and Price field down and what I
| | 05:18 | have done is I have held down on the
Shift key and I've clicked on each field
| | 05:20 | then I'm going to use my down arrow
to move both of those down with in the part.
| | 05:26 | So you can see now that it's zoomed up
that I've got this dotted line here. But
| | 05:29 | I'm going to leave Country and I'm
going turn these off momentarily and I'm
| | 05:33 | toggling these on and off by clicking
on these button down below. You can still
| | 05:38 | see the names there, but the Country
needs to go into the Sub-Summary when
| | 05:43 | sorted by Country. Therefore the
field -- the break field means to be here.
| | 05:47 | So A: the break field needs to be
designated in our Sub-Summary part
| | 05:51 | definition, the break fields needs to
be included in the part definition and
| | 05:56 | I'll mention it another time when the
break field is necessary, but see what
| | 05:59 | we've got now are a few different
parts, actually we've got a Header,
| | 06:03 | Sub-summary part, a Body
and a Trailing Grand Summary.
| | 06:07 | What would this will give us right now
is -- actually let's go ahead and run
| | 06:11 | this, if we take a look at this, we
Save it and we toggle onto Preview mode. We
| | 06:17 | see that we've improved the report
a little bit here. We've got all the
| | 06:21 | country's grouped and each individual
title is there and we've got all the
| | 06:25 | information grouped and at the end
we've got the overall Total. Now we are
| | 06:29 | going to add one more component to it,
that is going to really open up this
| | 06:32 | report and that is going to be another part.
| | 06:36 | The reason that I'm doing this is
because now I want to summarize each Country;
| | 06:40 | I want the Total Price for each Country,
not only the Total Price, Total Price
| | 06:44 | at the end or the Grand Summary. I
want individual summary's at each Country
| | 06:48 | break point. So, I'll say Sub-Summary
when sorted by and you can probably guess
| | 06:53 | by my break field. So I choose Country
and since I already have a Sub-Summary
| | 07:02 | part that has the break field in it.
Here, I'm free to put in my Summary Field
| | 07:09 | because this is what's
called a Trailing Summary.
| | 07:12 | So what I'm going to do is I'm going
to select this and I'm going Option+Drag
| | 07:16 | it up, creates a copy of the very same
field and let's Copy and Paste the field
| | 07:22 | label and now I use my arrows to
position it and I double click on there so my
| | 07:28 | cursor turns into my text writing tool
and I'll say this is my CountryTotal,
| | 07:34 | let me open that up a little bit more,
there we go and may be -- okay, so we'll
| | 07:41 | keep it that way.
| | 07:42 | Now, let's Save this and we'll go into
Browse mode, Save and let's lower this a
| | 07:53 | bit. Go into Preview mode and now
you look what we've got here. We have a
| | 07:59 | report that tells country, trip, trip,
trip Price for each trip, Total for
| | 08:04 | Argentina and we can go back into
Layout mode, instead of CountryTotal, now I'm
| | 08:12 | going to use the concept of a Merge
Field, so if I click in here you see what
| | 08:26 | I'm doing is I'm putting the Country
into the Merge Field so I can Copy the
| | 08:30 | same text formatting and such and
let's see what they looks like in Preview
| | 08:34 | mode, fantastic we've got Country
Argentina. Lists of all the Adventures in
| | 08:39 | Argentina, Total Price for Argentina
and so on. It goes all the way through for
| | 08:43 | every one on these country's.
| | 08:46 | Now, all this report needs is a little
bit of formatting and we can go in here
| | 08:52 | and one of the things you might
remember from the Formatting chapter is if you
| | 08:56 | select a part and select the Fill and
we'll do a really saddle gray and I'll
| | 09:04 | right-click here and I can see I
could have done that here as well, but I'm
| | 09:09 | going to change the Format to Bold and
what else can we do, let's add a Line
| | 09:17 | here, so that it looks more
mathematical and at the end we'll give this some
| | 09:26 | Fill as well. Let's just give it a
different shade of gray, there we go, okay.
| | 09:33 | So now we are going to go into Browse
mode and we are going to Save this and
| | 09:39 | look at it in Preview mode.
| | 09:40 | We've a pretty sharp looking report
here and the key is that we've got the
| | 09:45 | Grand Total on the bottom. We've got
this summarizing by Country, we've got it
| | 09:48 | itemizing by Country and now there is
one piece -- there is one other role of
| | 09:53 | the break field that you have not seen
here and that is something that we did
| | 09:55 | at the very beginning, when we go into
Browse mode, before we run our report
| | 10:01 | like this, we have to sort the
records by guess what? The break field.
| | 10:08 | So before you can run this report,
or if you script the creation of a
| | 10:12 | Subsummary or if you use the New
Layout/Report assistant to create a script
| | 10:17 | for you, it's going to ask what you
are break field is so that I can save in
| | 10:21 | that sort order. But all you need to do
to run this is sort by the break field.
| | 10:26 | The other thing is there are really two
cardinal rules to keep in mind when you
| | 10:29 | are using Subsummary parts in your layout.
| | 10:32 | You need to be in Preview mode to see
the Subsummary data because you seeing in
| | 10:35 | Browse mode this doesn't look very
compiling and the found set needs to be
| | 10:38 | sorted by the break field. Absolutely
both, there are no exception to that and
| | 10:43 | when you do those, you get this
beautiful Subsummary Report and if you check
| | 10:47 | out the Beyond the Basic title, you see
that we've some even more sophisticated
| | 10:51 | ways to use Subsummary Reports, that I
think you'll find pretty cool as well.
| | Collapse this transcript |
| Saving as an Excel file| 00:00 | There are a couple of different ways
to output documents from FileMaker Pro
| | 00:04 | that have been added in recent
versions of FileMaker, but they are not
| | 00:08 | necessarily printing because
printing carries with the connotation of
| | 00:11 | generating a hard copy. The specific
functionality that I'm speaking of are the
| | 00:15 | ability to save FileMaker documents as
Excel documents, as Rich-Excel documents
| | 00:20 | and also as PDFs and so I'm going to
show you those in the next couple of
| | 00:23 | movies here.
| | 00:24 | We are going to start off with saving
as Excel. We will start off first with
| | 00:28 | opening up the 14_printing. We have got
Lucky_You_Tours_14_09 and we are going
| | 00:37 | to go to the Adventure List report.
So what we are going to do now in this
| | 00:41 | example is save this FileMaker data as
an Excel spreadsheet, now creating in
| | 00:45 | the next chapter we'll talk about
exporting out that data into an Excel
| | 00:49 | spreadsheet, but every so often, we
hear clients or developers, talk about the
| | 00:54 | need for giving an Excel
spreadsheet with their data to, let's say, the
| | 00:59 | accounting department or someone who
needs the data, who doesn't have FileMaker
| | 01:03 | or someone who just wants to reformat
the data or share it with their client or
| | 01:06 | something like that. So FileMaker now
has the ability to generate these on the fly.
| | 01:10 | There is a couple of ways you can do
that. The first way to do this is open the
| | 01:14 | Toolbar. You see that we have both the
Save Records as Excel and Save Records
| | 01:18 | as PDF. Otherwise, the second way to
do it is; in the File menu, you see we
| | 01:24 | have got Save/Send Record as, and you
can choose Excel or PDF, and also you can
| | 01:29 | script this. We haven't talked about
the scripting section yet in this title,
| | 01:34 | but I will get to it, in the next movie,
I'm going to talk about appending the
| | 01:36 | PDF, but everything I'm
about to show you scriptable.
| | 01:40 | We want all this data, all the different
data in the Adventures, export it out
| | 01:43 | as an Excel spreadsheet. Pretty easy to
do. We just hit this button here and we
| | 01:47 | pick a location and a file name.
We'll call it Adventure.xls, and just like
| | 01:54 | when you are printing, you can choose,
whether you are going to Save; all the
| | 01:58 | Records being browsed, in this case,
the found set of 44 records, or just the
| | 02:02 | Current record that were on, but we
are going to go at the Records being browsed.
| | 02:06 | Next, you see that there are
series of Excel options. We can name the
| | 02:10 | Worksheet; Adventures and the Title of
the document could be 2010 Adventures,
| | 02:21 | Subject, Author, all these sort of
things and we'll look inside the Excel
| | 02:27 | Options in a moment here after we save it.
| | 02:29 | Automatically open the file and we can
also create an e-mail with the file as
| | 02:35 | an attachment. Now, I don't have an e
-mail client on this machine, but I
| | 02:39 | promise you that by simply checking
this box and all these options are
| | 02:43 | scriptable as well, it will open up
your e-mail client and attach the document
| | 02:47 | that you are sending. So if somebody
calls you on the phone and says "Hey! Can
| | 02:49 | you send me a spreadsheet of all the
different adventures in your FileMaker Database?"
| | 02:53 | Before you've even done hanging up
the phone, you do find out records, sort
| | 02:56 | them as you want them, export it, hit
that little button up here, click Create
| | 03:01 | email, send file's attachment, name it.
It's saved and before you know it, you
| | 03:06 | have got an e-mail with this attached
to it. You see here you have got the
| | 03:10 | ability to now work with all these data.
| | 03:11 | You have got every adventure, the
country from which it's associated and the
| | 03:15 | price, and you see that your field
labels were used as the Column headers. And
| | 03:20 | also, if you look inside the Properties
in Excel, you see that the information
| | 03:26 | that you saved; the name of the
Worksheet, down here but also the Title and the
| | 03:30 | Author information would saved along with this.
| | 03:36 | And just as a note, you can script all
of this, so that you don't even have to
| | 03:41 | name any of the information. You can
have dynamic values entered in ScriptMaker
| | 03:45 | and even though, maybe this might be
your first time looking at ScriptMaker,
| | 03:49 | we will just quickly show you what it
is that I mean. So save records. Perform
| | 03:55 | without dialog. Specify output file.
You can name it and save the path and the
| | 04:00 | location and here are the
options just like I mentioned before.
| | 04:04 | These can be pointed to a field so
instead of you typing in the name of the
| | 04:08 | Worksheet, you can just dynamically
name it something or this could be the
| | 04:13 | account name. For example, instead of
me typing in, my name, you can just put
| | 04:19 | in the account name instead
and do all these via scripts.
| | 04:22 | So now, I would like to show you how to
output this same information as a PDF.
| | Collapse this transcript |
| Saving as a PDF| 00:01 | I'm now going to show you how to save
your FileMaker layout and data as a PDF
| | 00:06 | file much in a same way as I just
showed you how to save it as an Excel.
| | 00:09 | They are initiated in about the same
way as well. You can either click on the
| | 00:12 | new button in FileMaker 9 on the
toolbar for Save Records as PDF, or under the
| | 00:17 | File menu, I can do Save/Send Records
as PDF or I can create a script because
| | 00:22 | all of these actions are scriptable as well.
| | 00:24 | I'm going to go under Save/Send Records
as PDF, and what I have done is, I have
| | 00:30 | decided, at this point, one of the
things you want to keep in mind is that
| | 00:34 | whatever your Found Set is, is what's
going |
|
|