FileMaker Magazine

  • Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by FileMaker Magazine

  1. One of the most enjoyable things about working in FileMaker, or any development environment where looping is supported, is the pure joy of automation. Even thinking about checking off any more than a few records at a time brings me to a mental state of counting the number of seconds it takes for the single action itself, then multiplying times the number of objects I need to affect. So the question arrives. “How do I automate this?” or “How do I make this process easier for the user?”. The answer, quite simply is applying the knowledge you have about solving it. There are, however, times when you just don’t know what can be done to make it even easier. In this video, I showcase a technique and method for offering users with the ability to checkmark whole sub-ranges of records by simply clicking a button within a sub-summary area of a list view. It’s a wonderfully sublime method of solving the problem. And, understanding the fundamentals means you can use the method for a lot more than just a simple checkbox. Click the title or link to this article to view the video. View the full article
  2. Planning out your UX (user experience) obviously requires less work on a smaller solution than it does within a larger solution. I guess that goes without saying, but no matter what solution you start working on, it will always seems to grow and expand to add new features and functionality. While you can’t always plan for what you don’t know is coming down the road, you can certainly work with what you have in front of you. Trying to prototype and account for how your solution will be used is what your primary focus should be. For the most part, this comes in two different forms. There’s the build it, then test it camp, and the get feedback/suggestions, then build it camp. In this video I start with the process of building first and then asking for feedback. This is typically my first approach because I simply lack the resources to take the other route. The big trick with creating your UX is the fact that when users start using it, they establish mental pathways of how to get things done. It’s very hard to change things on your users once a “certain way” of doing things has been established. So, the best approach is to think really hard about how users will use the software and go as simple and minimal as you can. Don’t try to put everything in within the first release. You can always add more to a user interface and keeping things simple makes it really easy to get feedback when people start asking the inevitable question “can it do this?”. Click the title or link to this article to view the video. View the full article
  3. What would software be without icons? Would it be like looking at a tree without leaves? For some reason, a tree just looks more like a tree when it has leaves. Right? So, this video is about how FileMaker uses SVG icons within it’s buttons. If you’ve always wondered how to make the most of FileMaker’s support of SVG icons, then look no further. In this video I’ll show you my own personal workflow for creating and integrating icons into a FileMaker solutions. You can integrate icons into your solution in a surprisingly quick fashion if you’re willing to get familiar with a bit of node and gulp. Of course, even if you have no desired to install node.js, you may very well find tips and tricks which will help you expedite the process of integrating icons. Click the title or link to this article to view the video. View the full article
  4. There comes a time when every great database must acquire a brand new look. This really applies if you’ve never even given your database a user interface or you’re looking to revamp the one you currently have. The best place to start, I find, is with the “primary objective” of the interface. In fact, I would argue that it’s best to focus on the number 1,2 and 3 aspects or goals of the user interface. I do this for every single layout being designed. By doing this before you start to throw fields on the layout, you afford yourself the ability to keep things simple before getting too complex. Many of the most popular products and software interfaces start out super simple. Some of them become bloatware, like many of the Microsoft Office products, but they had a good foundation when it came to how users have learned to use them. In this video, we take a look at starting the user interface for our Custom Function database. I provide some foundation and the basis for how I approach the process and showcase how I implement based on the decisions I’ve made. Click the title or link to this article to view the video. View the full article
  5. Lately, here at ISO FileMaker Magazine we’ve been covering a lot about web services and using technologies like REST, cURL and JSON. Well, that’s not about change with this video. We’re now needing to move forward with our Custom Functions database and make a connection to the web site where the custom functions are hosted. We do this with a dedicated Custom Function which takes advantage of the Base Elements plugin to make HTTP requests. With the knowledge learned in our cURL video about request & response headers, we can connect to the web site and get the id values of any new custom functions. Making this type of request means we are relying on code which can break at some point in the future, should the web site itself change. So, I talk about how to deal with this and how to parse the data in the most efficient manner. Let’s scrape some web data and get it into our database! Click the title or link to this article to view the video. View the full article
  6. While FileMaker’s script step Insert from URL does allow for basic communication with web services, it is, by no means, comprehensive enough to provide all the features necessary. What’s really needed is the full cURL library. This open source tool has been available for over 15 years and is baked into a ton of software packages, including FileMaker itself. However, it’s really only exposed within plug-ins such as Base Elements and the MBS plug-in. So, in order to fully understand what going on, it’s best to start with the source. And, that’s understanding cURL itself and how options are managed and how you set and parse HTTP headers. This video walks through the process of using cURL within the context of a plug-in. Once you understand how to set and control settings through the plug-in, you’re off to the races and working with any web service you can think of. Click the title or link to this article to view the video. View the full article
  7. When you know just a little part of how FileMaker works under the hood, you can come up with creative solutions to everyday problems. Take web services as an example. They use defined structures such as XML and JSON. And, when you consider that you’re using this third party defined structure and the need to mix in your own data, you want to find the easy way to solve the problem. In my case, I really like the path of least resistance. Of course, there are many ways to solve a problem. Let’s consider a FileMaker script. It can be self contained and have no dependencies on any other FileMaker elements. It can be called by another script and can be completely disassociated from any and all context. Context, within FileMaker, if you didn’t know, is the situation where a script can only do something if it’s executing in the right place. The right place would be the current Layout in which the script is running. If we don’t fight context, however, and simply make our scripts only operate within the proper context, then we can simply handle the error when the right context doesn’t exist and let the proper people know about it. I’ve coded solutions in both ways. Context independent and context sensitive, and it really boils down to use, preference and perspective. So, for this video we’re taking the context approach and using FileMaker’s ever so easy ability to merge in field data or global variables into text objects in order to make things easy for us to copy our Custom Functions to the clipboard. This information in this video and file have “Oh so many implications.” Click the title or link to this article to view the video. View the full article
  8. As you’re probably aware, whenever a great craftsman has a project in front of themselves, they’re likely picking from not just one tool but many. What this means, in the context of FileMaker, is that you can’t just stop with using FileMaker alone. There are many times when it makes more sense, or will net bigger benefits, when you go outside of FileMaker. The trick is this, you don’t necessarily need to go too far outside of FileMaker to accomplish some amazing things. Right within FileMaker is the Web Viewer object with direct access to JavaScript and just a little beyond that are plug-ins which can access pretty much anything else you could ever want. On the Macintosh, we find that we have access to a plethora of tools which can sift through data like nobody’s business. On the Windows side you’re a simple install away from having the same power. This video is all about going outside of FileMaker in order to leverage a treasure trove of tech for parsing HTML and beyond. Watch this video if parsing anything you could ever want out of a web page is something which appeals to you. Click the title or link to this article to view the video. View the full article
  9. View the full article
  10. In the world of software development, you’re basically taking things apart. Adding data here, taking away data there and remixing things. Simply put, it’s all just a matter of how the data needs to be presented to those who wish to see it. In the first video in this series, we did the data collection and now we need to do something with that data. In most cases, you’re typically going to be parsing data if it’s not in a format ready to be stored. So, we need to parse the custom functions and their details from their source. We’d like to store them in a format which will meet our own objectives. Fortunately, there are a number of ways to parse data. When it comes to native FileMaker parsing, you’re inevitably going to be using Left(), Right(), and Middle(), functions. But, when you’re working with well structured data, such as HTML, you have to do a bit more work than just using a simple Middle() function. That’s what this video is all about. Click the title or link to this article to view the video. View the full article
  11. Developing software is simply a matter of solving a problem by organizing and collecting data in a manner which makes the data useful to the end user. So, we’re just a bunch of data organizers and presenters. One of the biggest benefits to a software developer is their known resources. There are tons of resources available to us every day. Sometimes, it’s a matter of knowing where those resources are and others it’s a matter of taking advantage of what we already have. In this video, I start a brand new project which will be a Custom Function database. Along the way, while coding the solution, we’ll be taking a look at a lot of features present within the current FileMaker development environment. Learning how decisions are made and what influences them is a great way to learn how to ask questions about your own creation process. Click the title or link to this article to view the video. View the full article
  12. Click the video to watch. Click here for more details about the Focus on FileMaker Development Course Click the title or link to this article to view the video. View the full article
  13. Each time a new version of FileMaker is released there are more features and more information about what’s possible with the software. More functionality means more learning in order to take advantage of those features. There are, however, core features which should be known by all developers. This includes knowing how to script Find mode and building an interface around the search functionality. Knowing how to script an omitted find request may not be super obvious unless you think of Find mode as being the same as Browse mode. Yet, scripting Find mode is exactly like scripting Browse mode. You can create an automated find which can be as complex or as simple as desired. It’s all a matter of translating what you would do with the normal native functionality and wrapping a user interface around it. That’s what this video is all about. Taking the native methods for finding data sets and putting a user interface around them. When combined with a thought process towards lower maintenance costs, you can create some efficient methods of finding data. Click the title or link to this article to view the video. View the full article
  14. It’s so easy with FileMaker, to simply add, add and add some more - especially to the Relationship Graph. You get the request to see a different set of data, and you hop right to it by adding a new relationship and table occurrence. Wait a second! Each time you add something new to your FileMaker solution you’re making an agreement with yourself that you’re willing to maintain an ever growing garden of technological spaghetti. With a bit of planning and know-how, you can easily satisfy a growing number of data requests by making your portals able to filter out whatever you desire to show. In this video, I walk through the use of a dynamic portal by way of filtering data using the Custom List function. It’s the ideal solution to being able to see whatever data you want to see from a relationship where the data is already being loaded from FileMaker Server. If you’re interested in a FileMaker solution which both performs well and also offers user flexibility, then you’ll find some answers within this video. Click the title or link to this article to view the video. View the full article
  15. I can certainly understand why the Let function isn’t the first thing newer FileMaker developers decide to learn. First, it’s a very complex looking function, and it isn’t inherently obvious in terms of the benefits you’ll receive for knowing it. And, second, it likely just doesn’t show up on the “must-know” radar until you see it used in an effective way. However, the second you realize its true value, it becomes a must use function. I actually can’t see how someone would develop in FileMaker Pro without using it. It’s the ultimate code organizer. It makes things clean and provides so many opportunities to keep your overall code base much smaller. In this video, we take a look at the Let function and my top 5 reasons for why you should know and use it. If you’ve got more reasons, then please add comments on the article page! Click the title or link to this article to view the video. View the full article
  16. For some developers who are new to FileMaker, they may not come from a background of having worked with SQL or some other query language. Creating joins on the fly, as data is needed, is a foreign concept. Yet, when you create a relationship within the Relationship Graph, you’re creating a join which will be permanent for the life of the file or until deleted. This isn’t the case with SQL based solutions. With FileMaker, the notion of joins comes in the form of persistent relationships within the Relationship Graph. These persistent joins add to the complexity of your solution but stand at the ready to return whatever data you wish to present. In this video, I walk through the process of breaking down how to extract specific data via relationships. It’s the dark arts of showing exactly what you want to show on screen or being able to isolate that data using a Go To Related records script step. Whatever your needs are, knowing how to filter out your desired data is a key skill to have when working with FileMaker Pro. Click the title or link to this article to view the video. View the full article
  17. With most software, especially a growing software solution like a FileMaker database, you inevitably end up with settings and preferences. These settings may be used for the solution itself, certain features or even user specific settings. No matter what the settings or preferences, you often need an easy way to manage and access them. In this video, I showcase a method for handling settings which may be required for a server side script or client side operations. No matter when or how the settings are used, providing an easy way to get at them is always and ideal solution. Using the example of sending an email via an SMTP server, we can take a look at a creative approach to accessing settings which are managed within $$GLOBAL.VARIABLES. Click the title or link to this article to view the video. View the full article
  18. We’ve all been inspired by the creativity and wide array of UI widgets which have come from the mobile side of computing. In fact, what you present and when/how you present it always offers the opportunity to find new ways if doing so. The whole swipe down to “rubber band” a refresh was a breath of fresh UI air. When presenting users with options, one of the more common methods for presenting these is using a Pop-up menu. After making a selection in an initial menu a second menu presents options specific to the selection made in the first and so on down the tree. It’s a very common UI pattern. Sometimes, however, this doesn’t quite work from a UI standpoint. It’s at this point in time when another option may be desired. If you’re comfortable with learning and using ExecuteSQL and how Virtual List works, then you’ll find that presenting a hierarchical tree of options can easily be managed within a single portal. Drilling down through the options and having a way to traverse back up the tree is everything you’ll find in this video. The sample file will have all the parts you need in order to copy into your own FileMaker solutions! Click the title or link to this article to view the video. View the full article
  19. If you’re capturing photos with an iPhone or iPad and FileMaker Go, then everything should work just fine as long as you do everything within FileMaker Pro. You see, FileMaker takes care of presenting the user the picture in the proper way. But, this isn’t how the photo is stored. As soon as you need to do any type of manipulation to the photo, then you’re headed for a shock when the picture turns out upside down or sideways. This video discusses what you need to know in order to manipulate photos captured with a mobile device using FileMaker Go. If you’re in need of server side cropping of photos then pay attention to the details covered within this video! Click the title or link to this article to view the video. View the full article
  20. Earlier in the year I released a video about using Google Forms in order to capture and then import data into FileMaker Pro. The code I was personally using was a bit more advanced than what I wanted to show at that time, so I simplified the process. Having implemented, and used, many more Google Forms since that time, and knowing that I was exercising a great degree of control over the import process, I decided to reveal it all. So, in this video I showcase the method I use to verify that an import is exactly what you expect it to be. I use an MD5 hash, which FileMaker implemented in version 13 under the somewhat hidden feature of GetContainerAttribute(). Using an MD5 hash it’s possible to uniquely identify anything you could ever want to identify. It’s a fast hashing algorithm and it can be used for all kinds of features within your FileMaker database. You can determine if a collection of fields has been changed. Whether an image has been modified or, in this case, whether an import file meets your exact criteria. If you deal with imports and you like knowing that a file will match the expectations of your scripts then this video will provide a wealth of information regarding that process! Click the title or link to this article to view the video. View the full article
  21. While recently teaching the layout/design portion of an in-person FileMaker training course, I found myself showing off one of the features which FileMaker has had since version 12. It’s an often overlooked feature which can be used quite creatively when you know how it works. It’s the Layout Background style of the layout theme. When you understand the order in which FileMaker displays things, you’re free to create nice modern looking layout designs. Further, when you combine this with knowledge about themeing and styles, you can create a look and feel which is quite flexible as well. In this video, I walk though an example database where I grab an image from Flickr and integrate it into a new custom theme for a FileMaker file. If you’ve never used images as part of your theme design, then watching this video will give you a great level of insight into what’s possible with layout backgrounds. Click the title or link to this article to view the video. View the full article
  22. When was the last time you opened the Relationship Graph and heard that little voice say “Wow, you’ve gotta clean this up!”? Maybe it was yesterday, maybe it was just a few moments ago. Whenever the voices come, it’s a pretty easy task to accomplish when you apply some solid understanding to how the graph works and what it represents in the whole of your solution. If code could write itself, then organization would never be necessary because no one would need to maintain or revise it. It would simply rewrite itself as needed. Sort of like how a tree grows. When a new branch is needed, it just starts to grow. Unfortunately, you’re the gardner of your own creations so you need to apply some forethought to what you create when working in the Relationship Graph. In this video, I provide my own personal insights into how I approach the graph and what I think makes for an easier solution to maintain. When you consider how complex a FileMaker solution can quickly become, the notion of keeping things easy to work with should be a high priority. Click the title or link to this article to view the video. View the full article
  23. Providing visual feedback about the sort state, and direction, of your list views is always a nice feature to have. Not only does it fulfill the expectations of what users are already used to within the OS, but it let’s users know they can actually sort on those columns. In this video, I walk through the use of a Button Bar object in conjunction with some other common tricks in order to provide dynamic column sorting indicators. This is one of those standard must-have features within your FileMaker solution! Click the title or link to this article to view the video. View the full article
  24. Knowing which features to use and when to use them is great skill to have with FileMaker Pro development. Anytime you can determine when a certain script step, structure, web viewer or plug-in should be used is what makes for a productive developer. In this video we’ll take a look at a long standing script step called Copy All Records. Using this core script step allows us to optimize a lot of things so we end up with a faster FileMaker solution. With the additional tips and education in this video, you should be that much closer to solving a number of various issues for your FileMaker database. Make sure you know how to use Copy All Records in the most efficient manner! Click the title or link to this article to view the video. View the full article
  25. BodyYou like being in control don’t you? Being able to control things exactly as you wish? Well, it’s one of the more addicting qualities of creating solutions quickly within FileMaker Pro. When you’re working with dates, there are times when the native date picker just doesn’t cut it. You can’t make it larger or smaller, you can’t change its colors, and if you’re on iOS then you’re limited to the default iOS date picker. You’ve got no control. When a user is choosing a date from a calendar, you should probably have a bit more control. This means you need a calendar widget which is under your total control. In this video I showcase a calendar picker I’ve been using for years and years. In this case, however, I’ve updated it to fit the more modern methods of doing things within FileMaker Pro. If you’ve ever needed full control over a custom calendar widget then look no further than this video! Click the title or link to this article to view the video. View the full article