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
Despite the FileMaker platform being several decades old, the original design of Layout mode and the ability for developers to harness existing tools to either mimic operating systems like iOS or craft entirely unique user interfaces remain monumental advantages for those who opt for this platform.
One of the most significant additions to the Claris/FileMaker platform was the introduction of Card Windows. I remember creating some of the initial videos showcasing this feature; the capacity to exercise complete control over a rendered window was an immensely valuable advancement in FileMaker development.
Granted, there are areas where this feature could be refined to enhance its functionality even further. However, the current capabilities allow us to effortlessly generate our own windows whenever and, more notably, wherever we desire.
This video, along with the accompanying technique file, introduces a feature I refer to as "Object Card Windows." To put it simply, you specify a target object that will determine the boundaries within which a new card window will appear. The advantage is a straightforward yet incredibly practical script for generating new card windows in specific locations. This utility script is an absolute necessity for any solution, and its inclusion in your toolkit is highly recommended.
Even when discussing seemingly mundane topics like Default Fields, there are always valuable insights to uncover. This video offers an exploration of the default fields I consistently incorporate into every table I create. While you might be familiar with or have utilized some of these fields, there could still be a surprise or two in store.
For those who are relatively new to Claris/FileMaker development, this video holds significance. Learning about core techniques for data loading and effortlessly achieving desired results is crucial. Whether it involves displaying a count of related records or utilizing the internal Record ID for various UI functionalities, understanding how to accomplish a range of tasks within our preferred database software is truly beneficial.
Discovering ways to make software faster and more efficient brings a great amount of joy to developers. The reason behind this is simple: with enough experience, you come to realize that straightforward and simple code is much easier to maintain than complex and hard-to-maintain code. Self-contained code with fewer dependencies is both easier to understand and refactor.
In this video, I share one of my all-time favorite functions in Claris/FileMaker development, the Custom Function named CustomList. Although this function has served me well, it has now been surpassed in terms of speed and optimization by a newer method - the ValuesWalk function. This video demonstrates how you can utilize FileMaker's calculation engine to calculate the results you need and then seamlessly display those results within your user interface using the ValuesWalk function.
Moreover, the ValuesWalk custom function extends far beyond the simple use case presented. It can be employed to process any type of data, from generating ad-hoc delimited text files to processing simple lists. The ValuesWalk function is absolutely a valuable tool that every developer should be familiar with. With built-in performance testing, you can determine the optimal chunk size for processing the data you are working with. This knowledge is essential for advanced Claris/FileMaker development and is a must-know piece of information for developers aiming to optimize their solutions.
If you don't pay close attention to the fields you add to your record load in Claris/FileMaker, you might end up facing a transfer penalty, especially when dealing with container data. In many cases, your end users may not require the data from heavy multi-megabyte container fields. Nevertheless, every time the record data is loaded, that large container data gets included as part of the transfer.
Unlike SQL or a document database, where you can request only the necessary data, FileMaker provides the entire record, including all field data. Therefore, it is essential to create a structure which optimizes the utilization of containers. While I have previously covered this topic, this video offers a walk-through experience as I demonstrate how to implement support for a singular Files table, which can be used in multiple locations across a solution. I also discuss various options, such as one-to-one, one-to-many, and many-to-many relationships, when it comes to loading associated file data.
If you have ever wondered how to further enhance the speed and performance of your FileMaker solution, this video provides valuable insights into how you should likely structure your use of container fields. Understanding the concepts covered in this video will likely improve the performance of your solutions.
One of the major challenges that any solution or developer encounters is effectively managing the growth of their solution. As the solution expands, the issue of "dilapidated code" arises. This refers to code that either gets replaced or continues to be used without being updated to leverage the latest enhancements in FileMaker. Consequently, a significant portion of the code may become obsolete over time.
One of the most effective solutions to tackle this problem is the use of utility scripts or code that addresses a wide range of use cases. This video showcases the implementation of a commonly used pattern, namely, obtaining user confirmation to ensure that their intended actions align with the expected outcome. By employing a utility script called "Confirmation Prompt", we can prompt users not only for record deletions but also for various other situations.
This powerful utility script allows us to manage a variety of user interactions, such as setting a temporary $$UI.VARIABLE or modifying the value of a hidden field. Furthermore, the video presents one of the best approaches to learning and utilizing JSON, in case you haven't embarked on that journey yet. JSON proves to be an excellent method for managing serialized data within Claris/FileMaker. If you aim to streamline your solution and reduce the total number of scripts, incorporating the utility script from the provided technique file will undoubtedly save you a significant amount of time.
Being able to develop and test your solutions within a FileMaker Server environment is the ideal scenario. You can test Perform Script On Server, external binaries, and plug-ins that perform a variety of tasks. Essentially, you can perform all the necessary tasks in a real solution.
When you develop your FileMaker solution locally with a single copy of Claris/FileMaker Pro, you not only face limitations in what you can test but also risk the possibility of a crash. While running FileMaker Server on your local machine is a satisfactory solution, the next step is being able to run multiple versions of FileMaker Server without the need for multiple uninstall/install scenarios.
This video showcases my return to using Docker Desktop on an M1 Mac Studio ARM-based machine. Previously, I had to stop using Docker and resort to a full virtual machine when I switched to using Apple Silicon. However, with the release of an ARM-based version of FileMaker Server and most plug-ins being available for the ARM architecture, we are now able to use Docker Desktop again. The trick lies in learning how to use containers. This video provides a great opportunity to learn a new skill. If you want to run multiple variations of FileMaker Server on your M1 or M2 Mac, this video has what you need.
One of the most valuable features you can incorporate into your Claris/FileMaker solution is a back button. This feature is deeply ingrained in every individual who has ever used a web browser. It represents the common scenario where your mind recalls the previous location and seeks to return to it. However, the challenge lies in the complexity of your solution's navigation system. Without careful attention to simplifying navigation, there can be an overwhelming number of options that most people struggle to remember.
This video focuses on implementing a few relatively simple scripts which can greatly enhance the usability of your solutions. Providing end users with the ability to retrace their steps and easily return to their starting point is an invaluable offering. The beauty of this feature is that once it's integrated into your solution, it will seamlessly work. It will track and remember the desired state information without any additional effort. All you need to do is add it to your solution.
If you are building a complex system, which is the case for most solutions, incorporating a Back Button feature is an obvious choice that requires no second thought.
While learning to develop within any environment, it's common to develop habits which keep you within a consistent framework. However, occasionally looking outside of your current framework and observing how others accomplish similar tasks can be both affirming and instructive. You may discover valuable tips and tricks from other developers from which you can adapt to enhance your own practices.
This video focuses on script writing and explores various techniques employed by different developers, specifically regarding the documentation and structure of scripts. By examining multiple files and exploring different scripting methods, we can gather helpful insights. Additionally, I will present what I consider to be one of the best approaches to managing a complex script that utilizes multiple inputs and outputs.
The beauty of Claris/FileMaker is that you have the flexibility of keeping things simple or making them as complex as desired. Drawing from my decades of experience, this video offers numerous tips to improve your script writing skills. You're likely to find valuable insights that can elevate your approach to scripting.
While Claris International has made little to no changes to the FileMaker code editor (also known as the calculation dialog) in over two decades, there is no need for you to remain stuck in the past. Fortunately, for those of us using a Macintosh for solution development, the MBS (Monkeybread Software) plug-in offers modifications and enhancements to the code editor, which we often spend countless hours working in.
This video focuses on utilizing syntax highlighting within FileMaker to provide the best possible coding experience. While I've long installed the MBS plug-in within FileMaker, I rarely took advantage of the full feature set possible with its syntax highlight capabilities. Typically, I just went with the defaults. However, in recent years, there has been a growing desire for a more modern and capable code editor when working with Claris/FileMaker. Thankfully, this is achievable with MBS and some other coding tools. The only drawback is that it can be somewhat "mystifying" to achieve the exact appearance and understand how everything works. Often, you just want it to be "ready-made" for you, allowing you to choose a theme. In this video, we will explore how to make code editing within FileMaker as enjoyable as possible.
While Claris/FileMaker offers a convenient Duplicate Record menu option, of which there's always a companion script step for most menus, there's more to the equation than simply duplicating your primary record. In fact, in most situations, it is necessary to duplicate both parent and related child records. You will likely need to duplicate a complete set of records to address the entire entity. For example, think of the relationship between Order, Line Items, Ship Address, and so on, in order for a customer to place a duplicate order.
To accomplish this, there are various native methods available, often involving multiple GTRR (Go to Related Record) steps. Additionally, within your script, you will need to carry a newly created primary key to all the newly created child records. Therefore, the question arises: "What happens when you need to duplicate a large number of record sets?" This was the question posed by Daniel Wood, who proceeded to test and document the methods and their benchmarked results in an article published on their blog at the FileMaker consultancy Digital Fusion.
When confronting this same question, there is a method that I personally favor and know to be quite fast, and I was eager to see how it would perform. I integrated this method into Daniel's file and discovered that by utilizing a plug-in, a significant speedup can be achieved. This article focuses on the fundamentals of how this technique works and provides guidance on its implementation in your own solutions. I'd like to express my gratitude to Daniel for his hard work and for granting permission to distribute a modified version of his file.