Using Object IDs for safer programming

FileMaker flexibility is completely transparent to any new user of FileMaker. Add a new field, script, layout, table or value list and you're free to rename that element at any time. It won't matter if you do, because FileMaker is using ID values to track all the objects. This happens behind the scenes.

However, if you become even slightly better at creating FileMaker solutions, you quickly dive into the power-user functions like SetFieldByName (new in FMP 10), GetField, Evaluate and others. One of the biggest gottchas can hit you in the form of passing a 'hard-coded' value within a Script Parameter.

Once you 'hard-code' any string as a reference to a FileMaker object, you can't easily rename it. Enter the use of the internal ID value instead of the name. This can be done today and is easier than you may have previously thought!

AttachmentSize
ObjectIds.zip228.98 KB

Field Features

Fields are pretty much the lowest level object you can manage in a FileMaker database. Without fields, you're not going to store much data.

When it comes to fields, there are many features you can set. Some of them are pretty obvious, others require a bit of creativity.

In this video, I walk through a variety of native and configured features which you can add to fields. While FileMaker does not offer a fully object-aware layout, there are some tricks you can employ to make your solution do the things you envision.

AttachmentSize
FieldFeatures.zip229 KB

Satisfying Required Criteria

It doesn't matter how advanced you become as a FileMaker user/developer, there are still those times when you find yourself puzzling over how to accomplish a certain feature or data structure.

In this video, I introduce and solve a problem which was sent in by a subscriber. The solution provides some valuable insight into any situation where multiple criteria is required in order to satisfy the desired results. The problem sounds simple enough to solve, at least when you read it - here it is.

"A vacationing member of a time share collective, who will have multiple vacations over time (booked through your solution) wishes to find a property which matches certain criteria. It should offer X, Y & Z amenities and also meet other criteria such as location and availability."

How would you solve this problem if is was your project? How many tables? How many relationships are used? Remember, thinking critically is a skill which will help you keep your FileMaker gears turning effectively!

AttachmentSize
SatisfyCriteria.zip18.76 KB

Developer Efficiency

In the world of text-based development (php, python, javascript, etc.), there are many tools created to make the development process easier and more efficient. In the world of FileMaker, the number of tools isn't quite as great. This is primarily because FileMaker is the tool.

If FileMaker Inc. doesn't add syntax highlighting to the calculation dialog box, or let you choose which font you use for editing a calculation, then you're pretty much out of luck - unless... you use the powerful Evaluate() function and simply make your own editor which will provide the features you seek.

In this video, I show off my own method of editing code when working on a FileMaker solution. I also provide many other tips and techniques for making the development portion of your FileMaker projects more efficient.

If you have your own development tips, then please leave them as comments below!

AttachmentSize
CodeEditor.zip57.17 KB

Zero to Awesome: jQuery Tools & Web Viewers

Presenting information in FileMaker can be very simple. Just drag some fields to the current layout, arrange them as desired and away you go. Throw in some tab panels and you can really clean things up.

But, what happens when your data structure doesn't accommodate this type of free form design. Maybe you need to anticipate data growth or use a design which is a bit more flexible.

Well, you can't get much more flexible than using a Web Viewer. The browser, HTML and CSS are not going anywhere. The benefit to us is that FileMaker integrated web viewers.

If you'd like to take full advantage of web viewers, then you'll need to become a bit more comfortable with Javascript. Or do you? Actually, you may only need to know how to integrate code which has already been created. In fact, in this video I show you how I simply took some code from the jQuery Tools site and realized some instant benefits within my FileMaker web viewer's data display. Watch this video to be inspired by what is out there right now!

AttachmentSize
MyInvoicer_090713.zip184.54 KB

Zero to Awesome: Using XML Data Objects

Having worked with FileMaker since 1990, it's great to see new features added in with each release. Despite my personal desire to see more drastic changes in the application, I'm still extremely impressed with what it can create in such a short period of time. I've said it before and I'll say it again, FileMaker helped me learn how to program in other languages.

Which is what this video is about. Using another language, although right within FileMaker, to accomplish something that would be much harder with FileMaker alone. Spread across the Internet landscape are tons of standards. One of these is XML. It's hard to envision a day where something else (human readable) may be used more widely for information exchange.

Since FileMaker doesn't offer a true language based iterator (such as doing loops within calculations), you need to go outside of FileMaker. ScriptMaster and Java (Groovy in particular - which is Java at its core) to the rescue! This video is about the super simple, but immensely powerful Groovy XmlSlurper function. If you're going to deal with ANY type of xml EVER, then considering this option can save you TONS of time as opposed to trying in FileMaker alone!

AttachmentSize
MyInvoicer_090711.zip313.93 KB

Using Constant Global Keys

In pretty much every database solution, you'll inevitably have the need for temporary data. This can be anything from configuration settings for the solution to run, to the header lines of an email - you know, subject, from, to, etc.

When it comes to storing and using this temporary data, you can typically (and should) use variables. However, there are times when you need to use FileMaker's unique feature of multi-keys, if not just for the purpose of a GTRR (Go To Related Record). If not familiar, this is simply storing a return-delimited list of record keys within a normal text field or a global text field.

Concerning the later, the big problem with using a global text field is one of indexing. In order for relationships to function properly, the field at the receiving end must be indexed. If there's no index, there's no way for FileMaker to lookup the relevant matching records.

So, we need a solution, and it comes in the form of a Constant Global Key. This is simply a mechanism for allowing you to use a stored global field within a dedicated global table, so you can link to other related records. If that sounds confusing, then hopefully the video will clear things up!

AttachmentSize
ScriptMasterMatt2.zip0 bytes

Learning & Using ScriptMaster

If all you know is FileMaker, great! You're able to create a functional solution which helps other people get stuff done. It's the problem-solving-addiction that makes FileMaker so much fun to use.

However, what happens when FileMaker simply can't do what you want it to do? What happens when FileMaker just isn't up to the task? What if things are just too slow? Can you possibly learn more about another technology?

I hope you can! Because, at the very least, knowing what is possible helps you accomplish more. This is "Oh, so true", when it comes to what a FileMaker plug-in can do for you. In the case of ScriptMaster, you can do ANYTHING that Java can.

Wait, ooh SCARY! Matt said the "J" word. That's the super-complex, wayyyy confounding über language that runs many of the worlds most powerful web sites and technologies, right? Yep, sure is, but I want to you approach it from the mindset of "Hey, this is easy". Here's a 35 minute video that will make you feel right at home!

AttachmentSize
ScriptMasterMatt.zip128.77 KB

Highlight List View Rows

You'd think highlighting the current record row within a FileMaker list view would be a simple thing. Turns out, there have been a number of attempts at making this easy - it just hasn't been the case. The older method found in Highlight Record Row in list view used a script-trigging plug-in and there was another method that used a hyper-extended web viewer to force row background color.

With FileMaker 10, the easiest way, to-date, is here. In the associated file, it's just a straight simple Script Trigger. All you really need to do is set a global variable and this can be done with a layout script tied to OnRecordLoad.

However, I take an extra bit of effort to use conditional formatting to make the effect happen. My reasoning is described in the file.

If you haven't added this feature into your own solutions then you need to watch this video. It's just way to simple to add this feature in!

AttachmentSize
HighlightListRows.zip226.48 KB

Field-free Checkboxes

Oh, FileMaker! How I simply love adding a new field to the database just to provide some transient user interface widget. It's a small price to pay isn't it? For such a flexible and forgiving environment?

Wait a second, don't pay that price! You can have your check box interface widget without having to add any fields or any graphics. The response is snappy, the look matches the native OS and it's "Oh so easy to copy!".

In this video, I show you a great technique about using a web viewer to accomplish the use of field-free check boxes. Of course, this applies not just to check boxes but any widget you can show in a web viewer. Getting data out of a web viewer isn't that easy. But the real question is, "Do you really need to?". Watch the video to see for yourself!

AttachmentSize
InstantSearch2.zip22.26 KB

Pages