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
With a handful of simple scripts and just a few fields, you can easily accomplish some powerful image organization both inside and outside of FileMaker. In this video, we take a look at how FileMaker can be used to organize a collection of images. This is prior to sending them out or making them available for a web server to host them.
If your FileMaker solution needs to work with images used for verification or any form of media communication, then learning how you can make FileMaker bend to your media will can have a number of big benefits.
Need to know how to manage the whole process and create an optimized approach to capturing and managing a digital collection of assets across a large number of users? We'll address that issue too!
Using JSON for passing multiple parameters can be a real life saver. Because JSON keeps all individual parameters separate from each other, you can pass pretty much any type of data except for container data - although you can pass a reference to a container easily enough. Your parameters can also have as many levels as necessary and the JSON can easily be modified as it moves from script to script.
When writing a complex and large collection of scripts, you eventually hit errors and issues. You end up spending extra time hunting down problems and eventually you find out it's a simple issue where you just "forgot" to include that one additional item the script needed in order to handle the process properly.
This is where validation comes into play. It's a perfect solution for making sure your scripts work the way you expect them to. Rather than letting the script fail, then determining whether it really did fail or not, you're telling the script it MUST fail unless it has all the required parts.
Thus, a single script, with a multi-dimensional JSON validator is a wonderful tool to have for your complex scripting situations. In the associated video and technique file, you'll find a complex script which will save hours and hours of time by validating your JSON data before the script even tries to use it.
FileMaker natively provides us with some really nice tools for user feedback. We can use the Show Custom Dialog or even create a dedicated dialog using a Card Window and Layout.
There are, however, times when you need something a little more subtle. Just a simple message on screen will often suffice. The next question is whether you need the user to interact with that message or not. The solution is simply to provide both options of course.
In this video and technique file, we explore a super simple method for providing user feedback via a simple message which is shown using a dedicated Button Bar. Scripting the message happens within two lines of code and doesn't have to add a whole lot of scripts to your solution. It's quick, easy and a great way to provide user feedback.
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.