Article Tags
Click or tap one of the article tags to filter down to a smaller selection.
- Accounts
- Add-ons
- AI
- Alerts
- Analysis
- APIs
- Apple Maps
- Auto-Enter
- Barcodes
- Base64
- BaseElements Plugin
- bBox
- Breadcrumbs
- Button Bars
- Caching
- Calculations
- Calendars
- Card Windows
- Charting
- Checkboxes
- Code Editing
- Code testing
- Coding
- Color Picker
- Colors
- Conditional Formatting
- Containers
- Context Management
- Cropping
- Crypto
- CSV
- cURL
- Custom Functions
- Custom Menus
- Data API
- Data Capture
- Data processing
- Data structure
- Data Viewer
- Date Ranges
- Dates
- Debugging
- Deployment
- Developer Tools
- Dialog Boxes
- Docker
- Drag-n-Drop
- Drop-down List
- Dropbox
- Duplicates
- Duplicating records
- Encryption
- Error handling
- Events
- Excel
- ExecuteSQL
- Exporting
- External Authentication
- External Files
- Field Formatting
- Field Storage
- Fields
- File IO
- File Management
- File Sharing
- FileMaker Go
- FileMaker Server
- FileMaker Settings
- Filtering
- Find & Replace
- Find Mode
- Found Sets
- Functions
- Fundamentals
- Global Fields
- Global Variables
- Google Forms
- Google Maps
- Google Services
- Graphics
- Grid
- Grouping
- Hierarchies
- Highlighting
- Icons
- Images
- Importing
- Indicators
- Inspector palette
- iOS
- Java/Groovy
- JavaScript
- Join Tables
- JSON
- Key fields
- Layout Design
- Layout Mode
- Layout Parts
- List function
- Logging
- Looping
- Mapping
- Marking Records
- Media Storage
- Menus
- Merge fields
- Messaging
- Microsoft Surface
- Mobile design
- MonkeyBread plug-in
- Multi-key fields
- Multi-option fields
- Naming Conventions
- Navigation
- New Release
- Node-RED
- Notifications
- Oauth
- Object management
- OCR
- OnGestureTap
- OnLayoutKeystroke
- OnObjectKeystroke
- Parsing HTML
- Perform Script on Server
- Performance
- Permissions
- Photo manipulation
- Pickers
- Pivot tables
- Pop-ups
- Popovers
- Portals
- Preferences
- Printing
- Privilege sets
- Product review
- Productivity
- Progress Bars
- PSOS
- Python
- Quick Find
- Record Locking
- Regex
- Relationship Graph
- Reporting
- REST
- Sankey
- Schema
- Script Parameters
- Script Triggers
- Scripting
- ScriptMaster
- SDK
- Searching
- Security
- Separation Model
- Set Variable
- Settings
- Shortcuts
- Sliders
- Snapshot Links
- Sorting
- Spelling
- Spreadsheets
- Startup
- Summary Fields
- SVG
- Syntax
- Syntax Highlighting
- Tab Controls
- Table View
- Tagging
- Terminology
- Text Parsing
- Themes
- Time fields
- Time Savings
- Tips
- Tools
- Transactions
- Tricks
- Twilio
- UI
- Updating
- User Interface
- Validations
- Value Lists
- vCalendar
- Virtual list
- Web Forms
- Web Scraping
- Web Services
- Web Viewers
- Webhooks
- Windows
- XML
Our Library of Videos
There are all kinds of little tidbits of information about how to accomplish things. I often overlook some of the things I know about, and assume that everyone else knows them too.
I was told, quite effectively, that this knowledge isn't always common. So I bring to you 3 random tips I pulled out of my recent experiences with FileMaker Pro development. Here they are in no particular order.
Tip #1: Using a RAM disk to significantly speed up data intensive operations. Useful for database analysis or importing or exporting.
Tip #2: Making the most efficient counter loop (actually a 'for' loop) possible.
Tip #3: Using the new SSL/TLS feature in FileMaker 11. I show you how to use your free Gmail account (or Google Apps if you're using it) to send email from FileMaker.
If you have your own tips then send them to editor@filemakermagazine.com!
"Can FileMaker automatically apply formatting to my fields?", this is not just a common question, it's been a critical complaint as well. What many other desktop database solutions have offered was an easy way to apply masking. Often as easy as setting the mask into the properties of the field itself - a super simple solution - yet, not so simple in FileMaker.
Well, the day has come and you can now do the type of masking you're actually thinking about. Not just post-field-entry masking or using one field to overlay on top of another field, what we're talking about is as-you-type field masking.
It's easily accomplished with an OnObjectKeystroke trigger, the not-so-easy part is managing all the different possibilities of what can be happening when a user is typing content.
Hopefully, by using this file, and the included video content, you'll realize that the automatic field formatting you've always dreamed of, is actually here. Add any of your tips or suggestions to the bottom of this article!
Wow, that whole iPad thing sure has taken off. Drag this here, drag that there, you know, it's a whole lot of dragging goin' on.
Why not do the same in your FileMaker database. Nope, there's no iPad native version of FileMaker (yet?), but this shouldn't stop you. There are a lot of things you can do in your interface when you consider drag-n-drop as an option.
Watch this video to see a very effective method for performing data manipulation within your interface. Import a few images, create a few portals and start to drag away. If you didn't know FileMaker could do this, then you'll certainly enjoy what you'll find in this video.
Adding a clean and efficient visual interface to your FileMaker solution will certainly give it that 21st century Web 2.0 look and feel!
The desired result, from this particular technique, has been around as long as the feature has existed. As you type, results are shown in a filtered down listing. The fact that it can now be done within FileMaker, as long as you have FileMaker 10 or higher, makes this a "household technique".
So, you know the drill, use two or more key values (or one calculated key - as shown in this video) in your relationship in order to extract records based on the matching index between the low and high ranges of a character sequence - because even a string of text has a numerical value.
Well, that's how it essentially works - if you didn't already know. However, there's typically more than one way to solve any given problem! In this video, I take a look at the fundamental pieces of the Filter As You Type, also known as the Clairvoyance technique. I cover what can be done, where it falls short, which method to choose, and how you can really put this technique on steroids for the ultimate in performance and ease-of-implementation!
Update: Jake Traynham wrote in to tell me the following, "Near the end of this video, you mention using "LIMIT" in the SQL query. I'm guessing you didn't actually try that, because it's not going to work. FileMaker's internal SQL engine does not support the LIMIT keyword, so unless ScriptMaster is doing some manual parsing and handling of that limit... :)" - Ouch, my bad - I guess I've been working with MySQL too much lately. Fortunately, yes, you can use ScriptMaster to force your limit of what is returned. Java will handle A LOT of data, it's just that it still has to come over the wire since FileMaker's SQL does not support LIMIT - too bad. Unless ScriptMaster, on the server side, will do the limit before being sent to the client - which would require some testing - of which I didn't do!
It seems that over time, you can always make a nice technique even better. As you code more and more in FileMaker, you start to make your code more modular.
That's what this video is about - along with a nice enhancement to your standard web viewer being used to show navigational progress.
Included in the file, and the video, is information which will help you break your scripts and calculation code into smaller bits of reusable code. You'll also end up with a very functional progress indicator for use with record navigation.
The big lesson here is there's a multitude of ways to break down a solution to a problem. Personally, I like using custom functions for the primary reason of being able to code something once and be able to affect global changes - however, some times you don't need this, and keeping things localized to a small scope is a great way to go too.
Either way, if you're looking for a method to use for displaying navigational status and you find that web viewers are great for this task, then this video has what you need!
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!
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!
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!
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!
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.