Survey Graphing Magic

I've used graphing plug-ins with FileMaker. I've also used the Google Chart Tools at http://code.google.com/apis/charttools/. But, for some reason, having the charting integrated into FileMaker directly... well, it's become a new obsession.

It's like having your toothbrush right next to your sink, versus downstairs in the kitchen. You don't have to "go get it" in order to use it. Whereas, with a plug-in or service based api, you're adding a level of complexity. "Does the client have the plug-in?", although easily solved with Auto-update or "Will the Internet go down?" when using a service.

So my latest and most exciting use of FileMaker 11 graphing, is one where I use a free service to collect survey responses, easily export them import into FileMaker and I have my survey responses within a super short period of time - it's all about leverage these days.

Add on some visual appeal, print to PDF and you've got some happy people. Because everyone likes looking at a graph instead of hard numbers. It creates relevancy and meaning where the numbers alone are just plain boring.

In this video, I present some VERY valuable information with regards to working with the graphing tool in FileMaker 11. Add to this, my secret information about how I easily collect the information for free and you've got one heck of a solution!

AttachmentSize
SurveysGraphingMagic.zip22.95 KB

Default Merge Variables

FileMaker 11 introduced the very exciting merge variables feature. Somewhat self-explanatory, in that, you can merge variables into text which is on the layout. This is great, because it will REALLY cut down on the number of calculated fields needed for the user interface. In fact, you could potentially create a whole solution with just data fields and global variables for screen output.

However, there's one GIANT oversight (actually intentional) that really goes against any common sense approach to good UI design. The decision was made to actually show the variable name AS A MERGE FIELD when there's no data in that particular global variable. I mean really, which user ever said "Yeah, I want to see <<$**_developer_variable>> in my layout."

Once again, the thought process behind this was probably along the lines of "Hey, we can't count on your average FileMaker user/developer to remember that the layout should show something, when in fact, there is nothing to show. Why don't we just show the funky looking merge variable as a reminder?". Never mind how much confusion this would lead to for your average end user. I know I would think the database was broken!

Ok, so enough of my rant about this very poor UI decision (yes, my personal, and strong, opinion). Let's solve the problem.

The solution is to create a method where you can actually use this feature, with the peace of mind that the ugly merge variable format won't ever show. Fortunately, with the help of conditional formatting, some creative custom functions and script triggers, this is totally possible! Watch this video for a great solution to using default merge variables. Thanks to Oreste Schiavone for sending in the starter file!

AttachmentSize
DefaultMergeVariables.zip230.63 KB

Learning Looping Power - Part 2

This is the second part of a two part series dealing with really understanding how to take advantage of loops within FileMaker scripting.

Using the example of an event seating solution, I walk through data loops, portal loops, counter loops (commonly known as a for loop) and embedded loops.

The video showcases how to really optimize your loops for the fastest possible execution. Added to this are some really great tips about making your loops both as short as possible and super easy to read!

AttachmentSize
LearningLoopingPower2.zip0 bytes

Learning Looping Power - Part 1

One of the first times I really started feeling like I "knew" how to "really" do things in FileMaker, was when I started to take serious advantage of loops.

In many processes, which have a sequence of recurring steps, the most efficient, and certainly most effective, way to tackle the task is with a loop.

Here's a very simple example. Which is more flexible?

Set Field [ some_field ; some_field & data_1 ]
Set Field [ some_field ; some_field & data_2 ]
Set Field [ some_field ; some_field & data_3 ]
Set Field [ some_field ; some_field & data_4 ]
Set Field [ some_field ; some_field & data_5 ]

or

Set Variable [ data_to_process ; data_1, data_2, data_3, data_4, data_5 ]
Loop for each piece of data
Set Field [ some_field ; some_field & current_data_piece ]
End Loop

Obviously, a trick question, because the later is more flexible. It can use an indeterminate number of pieces of data, whereas the first example is currently limited to five. To extend beyond the limit of five, you'd have to modify the script.

And the advantages go beyond just this one simple point.

In this video (and it's second part), I walk through a number of looping scenarios and show you some very powerful stuff. Stuff which not a whole lot of FileMaker developers know. Mixing in some record creation techniques, which is very common within loops, and you've got some extremely powerful knowledge.

If taking full advantage of looping and what FileMaker can do is one of your primary goals, then this video, and it's companion, are sure not to disappoint!

AttachmentSize
LearningLoopingPower.zip248.58 KB

Data File Calculations

Before you think the thought "Oh, I'll just add another calculation", you need to ask yourself, "Seriously, how many calculations is too many?", and while the real answer to that question is entirely subjective, there is a real consideration when it comes to solution bloat. I'm sure you've never experienced that - right?

As you likely already know (or maybe you don't), one of the biggest challenges of any growing solution is the management of its multiple facets. Too many table occurrences on the graph -- it seems messy. Too many fields in a table -- you end up asking "What does that field do now?". Too many hidden tabs on a layout -- you're scratching your head about what you did and hoping you don't mess things up.

Simply, there are times when all you need is some type of calculated value. When you finally realize this, the solution is simple. Just one convenient script may be all you need.

Watch this video for a great technique for passing calculated information between files. This works not only for a Data/Interface separation model, but also for useful FileMaker development tools - of which one is included with this video.

AttachmentSize
Solution.zip261.66 KB

Web Viewer Progress Indicators

A native FileMaker solution is certainly capable of creating progress bars. I've seen all kinds of solutions. From those using the text "pipe" character to those using repeating container fields with each stage of a growing, multi-colored progress bar.

Lately, I've been working on my Theme Library solution and I was reminded of a technique where I could use a web viewer to show the progress of a long process - in my case downloading and importing a file. This worked out perfect for my solution because I could simply open a new window and show an indeterminate progress spinner.

In this video, I present all the tools and knowledge to replicate this same feature into your own solutions. Enjoy the progress!

AttachmentSize
WebViewerProgress.zip250.53 KB

Reusable Scripts

One of the most helpful aspects of creating any FileMaker solution is taking the time to create reusable scripts as you code along. While it does take a bit more effort to think things through, it creates a repository of resources you can pull from any time you start a new project or add a similar feature to your current one.

Leverage is what you're after. If you've seen any code you've written once before, and you start to enter that same code somewhere else, then you need to figure out how you can isolate the code so it can be reused.

In this video, I walk through the steps I take to make sure as much of my code (scripts and calculations - including custom functions) can be reused.

AttachmentSize
ReusableScripts.zip241.54 KB

User Dashboards

Software users want to accomplish things as painlessly as possible. They want the big picture, they want it fast, and they becoming quite used to it. With companies like Google making it seem so simple to manage so much information, you can't afford to have your database look and feel like a software dinosaur.

You need to present the information from your solution in the most accessible and efficient manner possible. The most popular method of doing this is via a user Dashboard. A central location where each user of the software can call it their "home". It used to be that providing a menu of options, or the "Button Jungle" as I like to call it, was the "common thing to do" in a software solution - especially a database.

In this new world of software sophistication, presenting a user Dashboard is par for the course. The question you may have is "How can I add this to my solution as painlessly as possible?". Well, I'm always glad you ask, because it affords me the opportunity to simply show you how. Here's a video which walks through the finer points, and easy steps, to implement a fully flexible user Dashboard!

AttachmentSize
UserDashboards.zip237.23 KB

Hidden Utility Windows

If you haven't used them before, then it's probably time you should check them out. What I'm talking about are Hidden Utility Windows or the more commonly referred to "Off-screen Windows".

This has been a common developer trick in many software solutions. FileMaker is no stranger to this process. The know-how behind this trick, however, may be more simple than you think - or could be more simple than you're used to.

By creating some generalized routines, we can optimize the process of creating and using off-screen windows for the purpose of state-saving scripting. This video will present all the information you need in order to get a handle on using these useful tools!

AttachmentSize
HiddenUtilityWindows.zip230.19 KB

Pages