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 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
- Windows
- XML
Our Library of Videos
The wonderful thing about creating software is it feels like you're able to create your own universe. You're the master of that universe and how it functions and reacts to its users. It's a very empowering feeling to know you can direct and control data in a way that makes it useful to others.
When considering all the directions that software can take there's always that simple fact that different people like different things. Heck, someone buys the Rhubarb from the grocery store - because they keep stocking it - right?
So, what is the best way to offer user specific preferences to your solution users? Well, as always, this depends on the type of preferences you're trying to offer. If you're looking for a streamlined and efficient method of storing and referencing user specific preferences, then we may just have the solution you're looking for. In this video, we walk through a very straightforward solution to both storing and updating user preferences for a wide array of solution functionalities.
Portals are wonderful tools for showing related data relevant to what your solution is solving. Sometimes, however, there's a trick to getting them to show exactly what you want. The combination of functions required may not always be obvious and it can be hard to achieve the desired result.
Essentially, you have to know how to extract the specific key values which allow you to filter only the desired rows. In this video, I walk through all the specifics of creating a custom function which allows you to filter unique keys such that only the desired records will be shown.
If you've ever had the need to filter your portals in a highly specific way, then this video and the associated technique file will likely provide you with some great insight. In a short amount of time, you'll get those portal filters to work exactly as you need!
There's this special feeling you get when developing software where you feel like you've created something magical. Sometimes, it doesn't even matter if you've done the same type of thing before. It just feels like you're the master of the universe and you've created something super useful.
This may even be the case when you're simply creating a virtual trash can and providing users with the ability to reverse course on that accidental record deletion.
In this video, we're taking a look at a super simple trash can metaphor. It's easy-to-implement and allows users to bring records back from the dead.
While there are multiple ways to handle record deletions, many of which are discussed in this video, the whole concept of being able to dig in the trash and take something out is familiar territory for many computer users. We're just going to emulate it within our FileMaker systems.
Do you need to work with online APIs and find yourself wishing there was an easy way to accomplish it? Well, there actually is. In fact, in much of technology, there's something or someone somewhere which has likely already solved the problem.
In the case of using REST (Representational state transfer) to interact with service APIs within FileMaker, it's nice to have a single tool which will handle most of the heavy work for you. When native JSON was added to FileMaker, the last piece to the puzzle was a more expanded method of interacting with the network. The cURL library was already being used by FileMaker and it was simply a matter of "opening things up" so developers could use the full suite of the cURL library.
By adding the cURL options calculation to the Insert From URL script step the world of the web opened up for our humble FileMaker Pro.
This video provides a comprehensive understanding of how curl is integrated into FileMaker and how you can use a freely provided script to manage all your REST based interactions. Knowing about HTTP status codes and request/response headers is what you'll find covered in this video and the associated file.
Over the years I've spent a lot of time working on a wide variety of themes for FileMaker Pro. Many of those themes involve taking advantage of every possible display mechanism which FileMaker portals offer.
When getting started with creating solutions in FileMaker Pro you don't always know what you can take advantage of. When it comes to portals there are a variety of settings and theme aspects which allow you to create some really creative looks. In this video I strive to show you all those hidden features and how they might impact the look of your designs.
With this video, I hope you learn all the little details which make it really fun to create great looking portal designs!
Here's an interesting dilemma. How do you track when specific fields are modified and adjust your JSON object so it only includes the data which was modified? Or, how about knowing when a user has modified specific fields, then having the user interface direct them down a different path than if they had modified others?
In both situations, you simply need to know when a field was modified. Using the Get ( RecordModificationCount ) function we can know THAT a given record was modified and using a modification field we can know WHEN it last happened. What we don't know is when only a specific set of fields is modified. We also may need to know exactly which fields were modified in order to take some type of action. This is where Detecting Data Changes is quite helpful. There are a number of ways this can be accomplished and the solution, as always, depends on what your needs are.
In this video, I showcase a method I use to detect data changes and then generate a JSON object based on specific fields which were changed. If you find your solution needing to work with an external API or needing to simply know when certain fields have been changed then you're sure to find some valuable info within this video and technique file.
While working on a solution which made heavy use of an online API for REST based communication, the solution slowly revealed it had a large number of "specially dedicated" data processing scripts. Many of these scripts were quite normal in the realm of "I have some data, I want to put it into the right place." You know, your typical Go To Layout then Set Field script steps.
The issue, however, was that most all of them did somewhat they same thing - a lot of code duplication. They either put the data into a field on some layout or they moved it into a global variable.
For myself, while developing within any solution, I always try to see where efficiency can be improved and implement as needed. The result of some recent efforts was creating a generalized data writer for JSON based data. It turns out that this solution is quite efficient and allows you to not only reduce your total number of solution scripts, but also makes it quite convenient to provide instructions about where data needs to be stored.
If you enjoy optimizing your solution's method of handling data, then it's very likely you'll benefit from a number of the valuable lessons within this comprehensive video about a JSON Data Writer script.
While taking the time to write a four hour custom function the other day, it occurred to me that some viewers may think that complex custom functions are just something which pops out of your head and immediately ends up on the screen.
When, in fact, the truth is it takes a lot longer than you expect because you rarely get things perfectly the first time. It's all about wading through the errors and issues and ending up with the desired result.
In this video, I walk through my process of composing Custom Functions and talk about every detail I can think of. Many of the tips and tricks will also be applicable to your normal process of composing calculations. There are a few nuances which are specific to composing Custom Functions and it's well worth the watch if you're dealing with any kind of JSON based data. If you've always wanted to improve your confidence related to composing code for calculations, then I'm sure you'll gain a good bit of insight when watching this video.
Who doesn't like the simplicity of using a single field to search across many. That's essentially what Quick Find is. In fact, by default FileMaker makes the silly assumption that every field you add to a layout is something you want the user to be able to search.
Essentially, you want to take control of the user experience in terms of search and make sure the user is not only searching what you want them to search, but also able to search in a fashion which is both familiar and comfortable.
This technique file and video will walk you through the details needed to take full control of the Quick Find experience. You can enforce desirable effects such as sorted record sets and keep the user within the search field ready for multiple repeated search attempts.
By taking advantage of a variety of FileMaker features, we can create both an easy-to-implement and universally powerful Quick Find feature. Watch the video and use the associated technique file in order to have a better understanding of how Quick Find truly works within FileMaker Pro.
In many situations, you'd think the easiest solution would be the best. Saving time and getting the job done quickly. This, however, just isn't the case if you're going to allow users to use a simple text field for managing keywords or tags. A tagging system relies on making it easy for the user, but it may not be so easy to implement itself. Here are a few questions you might be faced with.
What happens when one user enters "devloper" on record 1 and another user enters the correctly spelled "developer" on record 2? How do you make it easy to rapidly enter multiple keywords with a high degree of accuracy? What about removing keywords from this simple text field? Does the user just get to remove any portion of a whole word - causing a data nightmare? What about those commas being used to separate the keywords? Do you really trust users to get it right all the time? Can users be trusted to add multi-word keywords and get the commas correct?
The answer to all of those questions comes down to you. As the developer controlling the situation, you get to make sure the data is entered as desired and is still easy for the end user. And, in that case, the system is going to be a bit more complex than using a simple text field to allow users to enter whatever they want.
The video and technique file for this topic showcase a wonderful system of being able to enter and remove keywords used for data segmentation. If you've implemented a tagging system prior, then make sure and take a look at this one because you may find some UI niceness that's just too good to pass up!