Administrative Files on the website will be posted in pdf for compatibility Website is now mirrored at: http://www.deltacollege.org/emp/ckirschenman/ Project 1 will be assigned next Friday A sign in sheet for groups will go around today Groups should contain from 2 to 3 people Short lab today; finish lab 3
Summary Lecture 2 Fundamentals of good UI(user interface) design. Different types of layouts Designing Standard and Columnar pages Part Setup (and printing pages) Cool tips and tricks Utilizing FileMaker graphics
Review Any questions concerning previous material?
Topics What are scripts used for Designing scripts (before coding) How to define scripts Most useful script steps Templates
What scripts are used for Simplify the database for the user Perform multiple steps with one script Do manipulations on data that are not possible without scripts Get information from the system Build dynamic charts etc. The possibilities are endless
Designing scripts Scripts can get very complicated, before you start do the following Ask three important questions What is the problem Have I done something like this before How can I break this up(modularize) If your script is going to be more than a couple lines write it out in plain English before you start scripting
Designing scripts What is the problem Just like before when defining the problem for the database Don’t be afraid to put too much automation in a database as long as the automation is intuitive to the user Have I done this before Save time use Script from before
Designing scripts Saves development and debugging time Modularize! A good scripting practice is to break your script into parts (modules) this has several advantages Reusability: you can reuse one part in several scripts Easier to read: try to keep your script to one page or less
Designing scripts Paper Your best defense against buggy scripts is to write it in English before you begin scripting This helps because it forces you to think out your script rather than just using the script-debug method For now don’t worry about modeling your language after what FileMaker can do instead just write and then code, you’ll learn what FM can do
How to define scripts Defining scripts is easy Most of your time will be spent making sure it works as intended Don’t rely on your users to debug your scripts for you, do your own testing first OK on to the first step: Pull down the Script menu.
How to define scripts Then choose scriptmaker The following screen will appear:
How to define scripts You will notice all the buttons are dim except include in menu is checked If the include in menu button is checked the user will be able to access your script directly from the menu this provides a convenient alternative to buttons Be careful though because you have no idea where the user is when they select this Type the name of your script and the create button will become available Click Create
How to define scripts You will be presented with this screen:
How to define scripts The left hand column describes all the script commands The right hand side lists the current script steps You can double click or click once and hit move to move from the commands to your script Many of the script steps are self explanatory, for those that aren’t you can check help topic “script steps” or the FileMaker Pro Bible for a better explanation
How to define scripts When your done editing your script hit ok to save it. To use it define a button and choose the perform script option That’s it, Now we’ll go to the fun stuff: making it do something useful
Templates Templates: Go to layout and do something (I.e. print, sort etc.) Go to find screen, find record(s) and display Cool Extras: using custom messages to create a print preview button
Templates Making a script that goes to a layout and does something to the records before displaying This is one of the easiest scripts to write, but it is also one of the ones you will use the most It can be used to show a sorted list or go to a print screen to print Usually used with a button
Templates To do this you should have two helper scripts One uses the “go to layout” script The other does whatever you want to do after you are at the layout (I.e. sort or print) Finally, define one script that calls both of these scripts If you always start a database by making go to layout scripts for all your layouts this becomes even easier
Templates Can anyone tell me why we would want to separate these steps even though it would only be one or two lines per script? Reusability Find script This is most often used in combination with a special find screen, the steps are: Enter find mode
Templates Go to layout “find screen” Pause the script so the user can type in the find criteria On the find screen will be a Find and (optional)Cancel button If Cancel is allowed and clicked this will exit the current script and run a special cancel script that finds all and goes back to the previous screen If find is clicked the script will proceed The find will be performed Finally a layout will be shown One important thing to note is that the user should not be allowed to cancel this script, so add the Allow User Abort as the first option in your script and choose false as its option
Templates Also this is a simplified version of this script, later we will look at a better (but not as simple) version of this script with conditional statements(“if”) We can also use user input to make decisions within a script. This requires using conditional statements which you’re not required to know yet, but it is in the lab for you to try
Templates In this script we can have the database prompt the user when they click on the print button it will say “Print” and also “Print Preview” If print is clicked we can use the same print script from above If print preview is clicked we can take the user to a print preview and pause before printing (this should be a separate script) To accomplish this we need the show message script step and also a way of telling which button was pressed We do this by having an “if” statement which checks this and then takes the appropriate action from above this will be explained in more detail in a later lecture.
The end? This lecture was just meant to be a first exposure to scripting. Scripting will be gone over in much greater detail in a later lecture. Try the lab and read the help concerning scripting steps, most importantly have fun with it. Scripting is my favorite part of working with FMPro. You’ll see why in our second Scripting lecture (week after next)