Article Tags

Click or tap one of the article tags to filter down to a smaller selection.

Our Library of Videos

845 videos found.
Boolean Checkbox Efficiencies 11/16/2010 - 7:20pm

On/Off checkboxes are wonderful things. While, in life, we often wish we had an on/off checkbox for certain people, it certainly is much easier within a database - and quicker to accomplish.

In fact, it's so easy, you can have an unlimited number of on/off checkboxes without ever having to write a single script. Yes, you heard it. No scripts.

"But wait?" you say, "I simply add my on/off checkbox to my layout. I didn't need any scripts in the first place." To answer, I say "Yes, but they probably aren't being stored as efficiently as they could be, and if they are, you're not following conventions which users are already use to, in particular, being able to to click the checkbox label as well as the checkbox."

So along comes this video about scriptless checkboxes and being able to select ranges of checkboxes within a list view. It presents the best options for checkbox storage, it allows you to limit the amount of database clutter and reduces the amount of time it takes to add them. Combine these all together and you wonder if you couldn't be doing it better than you are right now. Need to figure it all out? Watch this video and you'll soon know!

Even Easier Error Logging 11/03/2010 - 5:02pm

About 10 months ago, I released a video and file about Error trapping and logging. Since that time, I've improved my system and made it even easier to log the errors. As I mentioned in the previous article, it's really nice to see where errors are happening. You get a much clearer picture of any issues when they happen. When it comes to users, knowing as many details about the error the better - it sure does beat the conveniently vague "It doesn't work".

So you start using Set Error Capture [on] and you think you're good to go with Get ( LastError ). This is, of course, until you start performing multiple steps within one script which could cause errors and you want to log those errors to a log in order to review them.

Being notified about when an error happens and what type is also nice. Wait, "type of error"? Isn't FileMaker the only potential for an error? Nope, not quite.

You can experience any number of errors in your FileMaker solution. FileMaker errors, plug-in errors, custom function generated errors and your own application errors.

This means you need a robust system for handling and managing these errors. Fortunately, I've given you a great head start with this video and technique file!

Helpful Developer Properties 10/27/2010 - 3:31pm

There are certain things in FileMaker you do day in, day out. One of them seems to be the familiar "dialog dance" - where jumping down the dialog chain is a normal part of every day development.

FileMaker calculation code is almost always buried a few dialogs down. I seem to always be hunting for information about what I'm working with, whether it's the field name, the table occurrence name, the relationship I should use, value list, what have you.

So it goes without saying, we'd all like the development environment to be more fluid within FileMaker. FileMaker 11's addition of the Inspector palette was a nice big jump towards more helpful tools.

While the Relationship Graph could still use a ton of polish in the realm of organizational tools, there's enough already in the application for us to create some of our own helpful resources. Using tool tips, and some creative inspiration, we can inject some nice environmental information which helps us know what's going on with the database. Watch this video for a great tip which will help you prevent sloppy coding and having to open a few more of those embedded dialogs!

Snapshot Launcher 10/18/2010 - 8:09pm

One of the new features released in FileMaker 11 were Snapshot links. While perfectly fine for your average FileMaker solution, they aren't quite as useful when you've got a really custom setup running.

I'm talking about the kind of setup where your interface is driven based on global fields used to store keys in order to view related data. So, the assumption Snapshot links makes is based on your use of FileMaker the way FileMaker is designed - not necessarily the way you've designed your solution. They don't quite work for your custom layout based on one single record from a table full of globals used to view related data.

When you're using global fields to drive what is shown in a portal, or for showing related data then you've got to get creative to use this useful new feature. Fortunately, as is the case with many situations, you just have to "code it up" and make the solution work for you as well as it works for FileMaker's default behavior.

Thanks to Tim Anderson and a technique he sent in, I've added a few changes and made his Snapshot Launcher a solution you can use on an interface which uses global fields to drive the user interface output.

Whether you email, attach to a calendar, or simply save for later reference, you can use this Snapshot Launcher technique to bring back any set of data you can possibly imagine. It really is a powerful technique for today's cloud-based always-connected world!

Defensive coding with literal references 10/11/2010 - 5:36pm

Wow, if that isn't a mouthful! "Defensive coding with literal references". This likely wasn't even on your FileMaker radar. In fact, FileMaker takes care of so many things for you, it's easy to think your FileMaker solution will just run forever. Funny thing is, there still are FileMaker 5/6 solutions running to this day - I've seen them!

In the days prior to the .fp7 file format, it was actually quite hard to create your own solution errors outside of the possible errors which FileMaker already accounts for. Unless, it was something silly like deleting a layout entirely when it was used by multiple scripts.

However, with today's more powerful FileMaker, you can certainly create a solution which will break in a heartbeat. As you add more and more complexity, you also increase the potential for things that may break. Here's what I mean. You use a Go To Layout [] script step, and you select the option to go to a layout by name - via calculation code. You input the name of your layout as "Customer list". Three months down the road you rename that layout to "Customer filter list" because it now more appropriately identifies its application.

Guess what broke? Your code! While this example is likely easy to track down and fix, it's even better to build in some preventative checking for these types of situations. That's exactly what this video is about. Using a dedicated technique for making sure your literal references can be more easily fixed when, and if, they break.

The easiest fix is to catch the issue before you release or set up some type of notification. Here are just a few of the ways you can cause yourself some headaches using literal references.

  • Go to Layout [ "some layout" ]
  • Go to Object [ Object Name: "some object" ]
  • Set Field By Name [ "literal field"; "some value" ]
  • Select Window [ Name: "some window name"; Current file ]

These script steps all provide possible literal references, and you want to make sure you won't get in trouble with them! Fortunately, I have a great solution!

FileMaker Coding Conventions 09/29/2010 - 5:15pm

Almost every, and I mean EVERY, developer has their own take on FileMaker development. I guess it's one of those aspects of FileMaker which is so appealing. Every developer can feel like they're controlling their own destiny and exercising their own creative power - even when they come up with their own standards.

Yet, in many, and I mean MANY (read, almost ALL) other programming languages (if you permit me to compare FileMaker to a programming language), there are conventions (or standards - of which I'm semantically using both words interchangeably). Not to say that FileMaker doesn't have these. In fact, over my many years of working with FileMaker, I've heard of hundreds of attempts to establish a standard for coding in FileMaker. Even FileMaker, Inc. released a white paper in 2005 after FileMaker 7 had been out for a while, where they documented a variety of suggestions. Even still, these suggestions came from many developers, of which each had their own styles of creating a solution - so the white paper read like suggestions instead of conventions or standards.

After attending Pause on Error in Portland, and hearing the number of people "claiming" they wanted such standards, I decided to start to do this for myself - knowing that decision by community is a slower process. While working on my upcoming product release called the Theme Studio, I spent a good deal of time focusing on making the code within the solution as readable as possible. The goal was the ability for any developer to be able to open the solution (even though it's a closed solution) and understand. Hence, I'm calling this the "open and understand" initiative.

This meant many iterations where I would head back into scripts and calcs which I had completed months prior. If I couldn't immediately understand my own code then I rewrote it. If something was extraneous, I cut it. Finally, after doing this for about a year, I sat down and created documentation about my own conventions. I then decided to release it to the public.

While not fully complete, what I've started is documentation for others to follow - and contribute to. I have no illusions that what I've documented will become the single standard - that's the dream world where we have "one" OS, "one" web browser and many other "one's" which makes it easy to do seemingly simple things, like create one css style sheet instead of 2 or 3, or be able to pick up a FileMaker solution and easily figure out what the heck is going on.

If collaborating on, and leveraging a set of standards, which frees you from the confusion of a database without order, sounds interesting, then this video should give you and idea of what I've started. My approach is one of openness. While some of what I've documented will stay the same, some of it will change based on input from the wealth of knowledge and experience which extends beyond my own. One final thing I found interesting while researching standards was the opening section of the Java Code Conventions document from 1997.

  • 80% of the lifetime cost of a piece of software goes to maintenance.
  • Hardly any software is maintained for its whole life by the original author.
  • Code conventions improve the readability of the software, allowing engineers to understand new code more quickly and thoroughly.
  • If you ship your source code as a product, you need to make sure it is as well packaged and clean as any other product you create.

Enjoy the video and if so compelled, join in. Let's create something useful that benefits those who adopt it!

Using Web Services 09/29/2010 - 4:30pm

The world of the web is rapidly becoming the world of the web & cloud. Where much of what we consume, such as data, resources and media is not stored, manipulated or managed on the devices we use. The laptop you used a while ago, with the stored sales data, will soon be replaced by the tablet with 4g or super wi-fi access to immediate data results.

The concept of web services isn't new, it's been around for more than a decade now and it's only now that the reality is actually happening. One of the central issues behind this finally happening is not just technology, but a willingness to trust.

The "convenience factor" is winning out over any lack of trust - look at how much stuff people upload to Facebook! Of course, it's convenience, and a bit of ignorance by the less technically inclined. So what does all this talk about trust, ignorance and convenience have to do with FileMaker. Well, it's all about web services.

Two of those funny-sounding protocols for web services have been available in a very convenient plug-in for FileMaker. Creating a Mashup (a combination of a variety of technologies or technological services) is certainly doable within a FileMaker solution. All you need to know is a little bit of how things work and you're off to the races.

This video will give you the basics of using web services, and if you're left wondering what you might use web services for then how about these suggestions.

Package delivery confirmations from FedEx or UPS
Uploading designated pictures to Flickr
Pulling down invoices from PayPal
Pulling real-time stock quotes (an oldie but a goodie)
Generating barcodes which FileMaker can't do without an additional plug-in
Integration with AdSense and AdWords accounts
Integrating with eBay or Amazon marketplaces for selling things
Weather based operations
or Simply getting a listing of movies

Plus many more possibilities!

Function Scripting Evolved 09/15/2010 - 8:28pm

When FileMaker 8 was released in 2005 it was a game changer for the world of FileMaker scripting. You could now pass data into scripts from buttons - added to already being able to access data from within the script. It wasn't long after its release that developers wanted to pass information to scripts in a more structured fashion. "Passing multiple parameters" is a common term in FileMaker development and there are many ways to accomplish it.

In 2006 I released a video about the topic of "Function Scripting". It was a very popular article which advanced the idea of using scripts as something similar to functions and treating them more like methods in object oriented languages.

I simply combined two different sets of custom functions from two very smart developers. Over the years, I've used the method almost exclusively for passing information into scripts. Recently, however, I've started to use an evolved method of passing information into scripts.

The method I'm now using, focuses a great deal on code readability and facilitates both strict and relaxed parameter requirements. The function is a multipurpose function which can be used in many areas of your FileMaker solution. In this video, I walk through the evolution, some of the other options you have available and why I've chosen to adopt this new method of passing parameters into scripts.

Understanding Sessions 09/07/2010 - 4:35pm

Sessions and using a Sessions table is one of those advanced concepts, which you really don't add into a solution until you're really comfortable with building a robust database within FileMaker. The concept itself isn't that hard to grasp, more it's the implementation where things get sticky.

You really need to know what's going on with regards to how FileMaker deals with context in relation to what the current layout is tied to, and how that relates to the graph - which represents the structure of your data.

Sessions, within FileMaker, require you to become familiar with creating user interface abstractions. Straight forward, simple FileMaker means the layout your user is on, is tied to the same table the user is interacting with. When a user edits a customer, they're on a layout tied to the customers table - really simple, right?

It's the inevitable growth that all database solutions experience which cause you to either require or desire the use of a session model. Using a session record as your primary interface means you need to create links to the various data sources you're representing.

If this all sounds too complex to understand within a few sentences, then watch this video for a solid understanding of how it might work in your solution.

Making the most of Advanced Conditional Formatting 09/07/2010 - 4:32pm

Providing users of your database with every possible clue, indicating the status or state of things, is something you should seriously consider - every time you start to work in Layout mode.

I must admit, I was personally a slow adopter of Conditional Formatting when it was introduced in FileMaker 9. It's been a few years now, and there are a lot of things you can do with it. Yes, it's lacking, in terms of being feature complete. You can't change the color of lines, it only applies to fields and text (none of the vector objects like rectangles, ovals, etc.) and you can't make things disappear with it. However, what you can do with it, should certainly be used.

When you combine useful logic, understand how to "sort of" hide things, and know a few of the behind-the-scenes tricks, you can really leverage this FileMaker feature. In this video, I present pretty much everything I know about using this feature for the purpose of adjusting what your layout will display. If you have your own tricks for using Conditional Formatting I'd love to hear them! Post a comment below.

Pages