My new site

I've moved my old Onega Software web site to new domain: mikhailedoshin.com. Please update your bookmarks. By the way, the new site is a home of DDR Viewer, a lightweight browser for FileMaker Database Design Reports. There's also a Cookbook section, which at the moment has a description of Window Controller module that provides high-level interface to open properly sized and positioned windows on both platforms.

Hierarchies in FileMaker

Wrote an whitepaper on how to implement hierarchical structures in FileMaker 8 or above. Here's the PDF and a sample FileMaker file.

Does anyone know how to suggest whitepapers to FileMaker, Inc.?

Miscellaneous tips

Three simple tips: what to use for a temporary mark, how to test different privilege sets, how to develop for two platforms at once.

Continue reading "Miscellaneous tips" »

How to bypass the IWP login page

Since v8 FileMaker® Server Advanced got a new IWP login page.

Screenshot of the IWP login page in FM 8

It's better than the previous authentication scheme in a number of ways. The most important one is that you can use non-romanized account names for non-English applications. If you application is entirely in Russian or Japanese, romanized account names look quite awkward. With FileMaker 8 romanized ‘Petrov’ and ‘Ueda’ can be changed to real ‘Петров’ and ‘上田’.

Yet it also has some disadvantages. Though you can customize the IWP home page, there's no instructions on how you can place the authentication form on this page and save your users a few clicks. If you want to allow both guests and authenticated users, guests will have to go through the same authentication page as well. The form is implemented in such a way that users can no longer have their browsers to remember the login and password. Unless they use some other password management utility like KeePass, they will have to type both their login and password every time. As I see this is intentional (the form has the autocomplete attribute explicitly set to off), but such a strict policy is not always necessary.

On FileMaker Forums I've seen some requests about this problem. There are also answers, but none of them gives a complete solution and some suggestions are a bit too complex. So here are exact recipes that work.

Continue reading "How to bypass the IWP login page" »

Cross-tab reports made easy

Here's a simple and powerful method to create cross-tab reports in FileMaker.

Continue reading "Cross-tab reports made easy" »

Soundex sample

I didn't post a sample file for Soundex article, so here's a test file with about 14k names along with their Soundex codes.

Linked fields

FileMaker auto-enter capabilities make it possible to create “linked” fields that are directly editable and update each other to keep them in sync.

What I personally like about this technique is they way it works: no buttons to press/scripts to run/events to trigger, but everything “just” changes to keep things linked. To me this makes a very smooth working experience, maybe because it visualizes the internal logic of the application.

QuickTime video.

Check the sample file I used to prepare two samples I describe.

Continue reading "Linked fields" »

Modular XSLT, part 2: Simple export

As you know you can export or request data from FileMaker in XML and then transform the XML using a XSLT stylesheet into some other format. The question is: how do you approach writing such a stylesheet? Are there some universal techniques? Can you save some effort?

Here's a general tutorial, covering a basic export to simple XML format. As you'll see it isn't just a look-ma-it's-XML sample, but more like a foundation for any many well, at least some XSL-transformation problems.

The tutorial assumes you know XSLT basics and maybe have even tried to export something from FileMaker using the built-in XSLT processor. For example, you must understand what <xsl:temlplate> or <xsl:param> are for. If you don't know XLST, you might want to start from some XSLT Tutorial, like this quick one by W3Schools or that more detailed one by Zvon; this is where I started.

Technorati Tags:

Continue reading "Modular XSLT, part 2: Simple export" »

Options

Here are two functions I use to pass parameters to scripts: Option() and Get Option():

Continue reading "Options" »

Fraction(): approximate a number as a common fraction

The Fraction() function approximates a number as a common fraction. For example, Fraction( 0.625, 16 ) = 5/8. Here 0.625 is the number being approximated and 16 is the maximum allowed denominator of the result.

The function considers the maximum denominator only as a limit it cannot exceed, but uses the denominator that gives the most precise approximation. For example, Fraction( 3.1415926, 100 ) = 3 1/7, because 3 1/7 is the most precise approximation of 3.1415926 among all fractions with denominators less than 100; only 106 will give better precision.

Continue reading "Fraction(): approximate a number as a common fraction" »