Planet FileMaker
... helping to feed the FileMakers ...
Contact | Random URL | FM Help Daily | Forums
May 18, 2012
Newest FileMaker Pro Custom Functions
GetUTCOffset
eX Cetera Blog
Drag and Drop using the Separation Model
Due to popular demand, Andy Persons has updated and overhauled the drag and drop demo for use with the separation model. This updated demo Includes an updated the white paper as well.
The demo includes consolidation of several of the ‘Move’ scripts and removal of extraneous ones. We’ve also included a new approach for the ‘Sort’ technique that removes the need for two adjunct TOs. There have also been various smaller enhancements/cleanups.
This file demonstrates how to use FileMaker Pro’s event-based scripting features to allow the use of drag-and-drop interfaces. It has been updated to demonstrate how to use the technique with the data separation model, as well as streamlining certain elements:
- The Move tab shows how to allow users to move items from one portal to another by dragging them.
- The Sort tab showcases the ability to drag items in a portal to any position in the list.
- The Hierarchy tab demonstrates how users can assign hierarchical items and groups to new parents by dragging and dropping them. This example is built on the “Hierarchical Portals” file, available at the link below.
Enjoy!
Andy Persons
What did you think of this tip? Let us know in the comments section!
The Philadelphia FileMaker User Group
Please join us May 22: FileMaker Go at the Philadelphia Apple Store!
RSVP: http://www.fmpug.com/rsvp.php?eventID=1324
Please join us this May 22 for a very special gathering of Philadelphia Area FileMaker User Group with a focus on the latest version of FileMaker Go. Our location this month is the downtown Philadelphia Apple Store Briefing Room. Representatives from FileMaker, including regional Systems Engineer Matt O’Dell, as well as FileMaker Business Alliance members will be highlighting the FileMaker Go 12 features as well as productivity-improvement solutions built on the FileMaker Go 12 platform.
We will also be reviewing FileMaker Go solutions from Kevin Ayers and a few surprises as well. Seating will be limited for this unique evening so reserve your spot today!
Date & Time:
Tuesday May 22, 2012
6:00pm – 8:00pm
Location:
Apple Store, Philadelphia Walnut Street
1607 Walnut Street
2nd Floor Executive Briefing Center
Philadelphia, PA 19103
Map of location: http://tinyurl.com/6rw8egv
RSVP: http://www.fmpug.com/rsvp.php?eventID=1324
(NOTE: We have no plans to serve food at this meeting. We usually provide dinner for the user group, but since this is our first time using the Apple Store’s facilities, we can’t do it this time. I’m not sure if it’ll ever be possible at that location, but we’ll find out.
If you can, try to get there early and pick up food in the area. The Apple Store’s well situated for both fast food and more sit-down type eating. Or if you can hold out you can make a night of it and go for food after 8. There are some higher end restaurants in walking distance (http://www.butcherandsinger.com/, http://eatmarathon.com/, etc).)
About the Presenters
Matt O’Dell is a Systems Engineer with FileMaker in the Northeast. He has 10+ years experience using FileMaker and building web solutions. Along with being a certified FileMaker Developer, he also is an authorized FTS trainer and a certified MySQL 5.0 developer. Prior to working for FileMaker, Matt was an application developer, trainer, tech support with Soliant Consulting in Chicago.
Kevin Ayers has been the in-house FileMaker developer for Drexel University’s College of Engineering since 2002. He is a certified developer for FileMaker 9, 10, & 11. In addition to his FileMaker work he also guest lectures to the students at Drexel about the design process and engineering disasters.
About the Philadelphia FileMaker User Group
The Philadelphia FileMaker User Group was founded in 2004 as an initiative by FileMaker Business Alliance Platinum member IT Solutions Consulting. The group’s goal is to provide an open forum for FileMaker developers and those interested in FileMaker to meet, brainstorm and network.
We hold meetings the 4th Tuesday of every month at 6PM, in the office of IT Solutions Consulting, Inc., at 414 Commerce Drive, Suite 150, Fort Washington PA, and other locations when the opportunity arises.
Meetings are open to all, regardless of background and there’s no charge to attend.
Please subscribe to our Mailing List to get announcements on upcoming meetings. The list is set to Announce only, so the volume is typically between one and 2 emails a month.
http://fmpug.com/mailman/listinfo/philly_fmpug.com/
You can read our blog to get updates and meeting recaps:
http://www.phillyfilemaker.org/
Twitter here:
http://twitter.com/phillyfilemaker
We’re also an FMPug Chapter: http://www.fmpug.com/ Consider membership today, especially if you purchase training, plugins, 3rd party products, or web/filemaker hosting – FMPug membership affords considerable discounts across a range of offerings.
Finally, The Philadelphia FileMaker User Group is hosted by:
IT Solutions Consulting, Inc.
Employee ownership – fueling our innovation, strengthening your business.
http://www.itsolutions-inc.com/
IT Solutions is proud to be a member of FM Academy, a consortium of leading FileMaker development companies in the United States whose purpose is to further educate FileMaker users and developers to encourage best practices and foster further adoption of the software through online webinars. Learn more here:
Newest FileMaker Pro Custom Functions
IPLong ( number )
YouTube :: FileMaker
FileMaker 12 Script Trigger Enhancements - Webinar 11
|
FileMaker 12's new ExecuteSQL function opens up the power and flexibility of the SQL query language to any FileMaker calculation. This webinar will present techniques for using the ExecuteSQL function within calculations to gather and manipulate data for reports, charts, dashboards, and more. We'll use a variety of built-in and custom functions to slice and dice data in any context. We'll also cover the basics of the SQL SELECT statement so anyone can get started quickly. |
From:
filemakeracademy
Views:
2
![]() 0
ratings | |
| Time: 35:17 | More in Education |
Anteprima Omnia Sales
|
Omnia Sales è il software per iPad della Omnia Studio, dedicato agli agenti e ai venditori che desiderano uno strumento veloce ed efficace per la registrazione degli ordini. Il software contiene i listini di vendita e tutto il portafoglio clienti. Per ogni cliente è possibile visualizzare lo storico degli ordini effettuati, degli articoli acquistati, delle scadenze di incasso. E' sviluppato con FileMaker GO e disponibile per iPad 1,2 e 3 |
Views:
4
![]() 0
ratings | |
| Time: 06:05 | More in Science & Technology |
May 17, 2012
MightyData
Don’t Eat Bon Bons and Get Fat – 7 Ways to Avoid Interruptions
I’m sure you’ve all seen the 2012 DirecTV commercials – they result in awesome lines like, “Don’t end up in a roadside ditch”, “Don’t have a grandson with a dog collar” or “Don’t re-enact scenes from Platoon with Charlie Sheen.” I love these commercials because they are about how a little thing (like arguing with your cable company) can result in these hugely ridiculous life-changing events. Not managing interruptions can have the same effect, so forgive my blatant plagiarism, but:
- when you get interrupted, you yell at coworkers
- when you yell at coworkers, you get fired for anger issues
- when you get fired for anger issues, you watch soap operas all day
- when you watch soap operas all day, you eat bon bons and get fat
- don’t eat bon bons and get fat – learn to manage your interruptions!
In my last post, I wrote about taming your phone. Of course, the phone isn’t the only problem in this world of interruptions. Since my job as a project manager consists of a constant flow of interruptions, I forget that the rest of the world needs time to think through things and focus on either a series of little details or tackling a huge project. Interruptions during those types of tasks can greatly reduce productivity. So, besides the phone problem, we are all getting texts, instant messages, emails, following twitter and Facebook feeds, and for those of you in the same building with your coworkers – physical interruptions by people intruding into your cubicle or office space – or offering you cake in the lunchroom for someone’s birthday. (Yum… cake!)
So, how do you actually have time to do your work? To be able to accomplish anything, YOU must control how and when you are interrupted – or at least minimize the interruption’s effect on you. Here are my top 7 ways to continue working on the important tasks and not to end up eating bon bons and getting fat:
- Be consistent by following communication etiquette. Physical interruptions (going into someone’s office) requires an immediate interaction. Text messages and chats are expected to be answered within minutes. Emails are generally expected to be returned within 2-4 hours. Phone calls, these days, are expected to go to voice mail and be responded to “as soon as you get the message” – let’s go with 4-6 hours. Twitter & Facebook comments can be ignored for days – or even forever. If you respect the expectation, you can prevent someone from hunting you down multiple ways. For example, if you leave a voicemail and don’t get a response, you’re likely to send an email. If there is not a response in a reasonable time, you are likely to try to IM or text the person. Last resort is usually showing up in a person’s office. So, respect the communication both ways – follow the “do unto others” Golden Rule and also make sure you are allowing yourself windows to respond within a reasonable time frame. You don’t want a line of people outside your door!
- Turn it off! Turn off the phone, your cell phone, chat, email, the intertubes – turn all of it off! You can turn it on when you’re ready to take a break and address those items. You won’t miss anything. I promise. Emergencies are the only concern with this method. So, provide a way for someone you trust to interrupt you only if absolutely necessary. Perhaps set a ring tone on your cell or office phone to alert you that you need to only answer that call and ignore the others. Provide a separate number for your family in case of a personal emergency. You get the idea.
- If you can’t turn chat off, change your status. If you work where it is required to be available via chat all day, set your status to “busy.” You can even make a creative personalized message or auto response like, “I’m focused on solving a problem right now. If this is an emergency, ping me again and I’ll respond.” People are less likely to interrupt you if they think you are focused.
- Close the door. If your focus is required, close your office door. If you don’t even want people knocking, put a “do not disturb” sticky note on it that tells them when you’ll be available. This works for cubicle “doors” too – just put the sticky note underneath your name tag.
- Automatic email responses. Use the vacation or “out of office” message on your email to let people know when they can expect to hear back from you. You can usually set these to automatically respond during certain hours. Letting people know that you will respond to them between noon and 1pm can avoid future interruptions from the same person showing up in your office. Setting expectations – and then meeting them consistently – will train those who communicate with you to do it as you’d like.
- Work from home. It is proven in countless studies that if you are allowed to work from home, you can accomplish more in a short period of focused time. See if your company will allow you to leave early or come in late to focus uninterrupted on a task. If not, changing venues can sometimes help – see if you can reserve a conference room and close the door, or go to the Starbucks around the corner. Anywhere people don’t know how to interrupt you will help. (BTW, MightyData is virtual company so if working from home appeals to you, take a look at our job application.)
- If you are interrupted, handle it right. Some interruptions can’t be helped and will happen. But, make sure you determine the level of urgency before you start addressing the issue. Make sure the person interrupting understands that you are in the middle of something. “Can this wait?” is always a fair question. Be polite, but be firm.
In the end, these tactics will work, but not if you use them all the time. Remember to put these tips to good use, but only when you truly need to focus. You don’t want to cry wolf and end up eating bon bons and getting fat for a completely different reason!
If you have any tips to avoid interruptions, I welcome your comments and suggestions. Bring ‘em!
YouTube :: FileMaker
FileMaker 12 - Moving to FileMaker 12 - 12 Days of FileMaker 12 Series #12
|
You really want to start taking advantage of all the great new features in FileMaker 12 but you don't know where to start? Join FM Academy for a great session about deploying FileMaker even if your environment already has an older version of FileMaker. |
From:
filemakeracademy
Views:
1
![]() 0
ratings | |
| Time: 48:48 | More in Education |
FM Success Tips
193_FM_Success_Tips
YouTube :: FileMaker
Meet FileMaker 12 - US Webinar Recording - April 2012
|
Meet the new FileMaker 12 product line! Discover how the new themes, Starter Solutions, design tools and charts in FileMaker Pro 12 can help you instantly create stunning databases. You'll also learn how the new 64-bit version of FileMaker Server 12 improves the speed, stability and performance of your FileMaker solutions. Plus, get up-to-speed on all the new enhancements in FileMaker Go 12 for iPad and iPhone -- now available free on the App Store. |
From:
UKFileMaker
Views:
6
![]() 0
ratings | |
| Time: 57:45 | More in Science & Technology |
FMPro.org
Troi Activator Plug-in 3.1 for FileMaker Pro 12
May 16, 2012
The Philadelphia FileMaker User Group
Secure reporting through the web viewer and Javascript
You might have already known that you can program data to the web viewer on the fly using the “data:,” prefix in your web viewer location. So for example, if you wanted a web viewer on your layout to always display the data in the field SampleTable::HTMLText field, you could have the web viewer display that as if it were a hosted webpage by making your web viewer’s location “data:,” & SampleTable::HTMLText. You might even have used global variables to store highly variable HTML on the fly.
Now let’s take it a step further. Let’s say you need to build a report in your system. This report will be highly complex. The requirements are also a bit tricky:
- The report will contain multiple table-occurrences with highly variable data in a single view that flows, or may even be a columnar report with completely different data in the two columns, or have a variable number of columns in the output depending on the data for the found set. FileMaker’s layout tools unfortunately cannot deliver the level of drill-down that the report requires, and might result in too much white-space in your portal rows.
- The report is sensitive, and access to the file must be tightly-controlled to prevent editing.
- Users should be able to preview the report before printing
As you begin to review your options for constructing such a report, you might realize that the format requires something a little more fluid than FileMaker’s layout objects can reasonably provide, and even if the two-column format was negotiable (it’s not, according to the manager), it can be difficult to append to a PDF in order to create your next volume of data while also maintaining the desired security settings. Besides, if you generate the file down to the Pro Client’s desktop, that becomes a potential point of failure for the report if you have to store it back up again.
Let’s say for an inventory request, you need to generate a table that contains sizable rows that list all of the required parts for a given order, and that those parts will change from order to order. For example, let’s say your report needs to look something like this:
Now, this report wouldn’t be impossible to develop in FileMaker, but it might be a bit inelegant in places, particularly if your row heights on those tables were variable. Whereas, with a little scripting, you could spit this exact report out in HTML format with fairly little effort, especially if your company logo was available on an intranet or in another readable network location. And now assuming that the management at Sci-Fi Outfitters Ltd. wanted inventory reports to be Matters of Record at their generation, the HTML generated by the report would remain constant even in the face of evolving data, like if someone went in and changed a part # later on, or added another flux capacitor to the day’s order after the report was run.
Obviously, HTML has its drawbacks: If your report uses container field pictures, for example. But in this case, with a bit of scripting and basic knowledge of HTML and css, you could generate this report fairly easily from FileMaker data and store that in a field without the data ever leaving the server or generating a file on the client’s computer.
Now let’s talk security.
Since HTML is a text file that could be manipulated fairly easily if it is allowed to be exported, it’s not exactly the first thing that pops to mind when you think “secure report.” And obviously, anyone with enough time and effort could create a reasonable counterfeit of your report in a word processor for the purposes of sending to the printer (which, frankly, they could do with any report). But if the HTML itself is stored in a FileMaker field, and in fact is never exported as a file that can be tampered with, it becomes a pretty reliable means of storing your report data in a snapshot way, plus you have the added bonus of having a “report preview” function simply by virtue of loading up the HTML. Furthermore, in this example, we want people to be able to SEE the webpage, and to PRINT the webpage, but not otherwise INTERACT with it–no “view source” option in the context menu that will allow them to copy the data to a text editor, change the 10 to an 11, and then save the file someplace or print it outside of FileMaker. With some creative scripting, you could put hidden fields with serial numbers in them to further thumbprint the file. If you script your report generation so that the HTML is generated and stuck in a field, but once the report is generated that field is now locked and un-editable, you can basically have your document digitally signed by FileMaker and protected by the file’s security layer, indicating the timestamp and account name of the person who generated the report and then the report is read-only from there on out.
There is a problem, however, in turning off user interaction on a web viewer to prevent a person from right-clicking and selecting “view source” to potentially copy and manipulate–that right-click context menu is how we tell the web viewer to print, after all!
We can get around this using simple Javascript. And this is where the system can really shine. Even if you don’t need to strictly lock out the user from interacting with the web viewer, having a button to Print Report clearly visible is just better design than expecting them to right-click in the web viewer to select Print. By embedding a little javascript in our <head> element of the HTML, we can trigger calling that code when we apply the HTML to the report.
<script type="text/javascript">
function printrpt()
{
window.print();
}
</script>
We can trigger this bit of script with an onLoad() element in our body tag:
<body onLoad="printrpt()">
Rather than hard-code that line into our HTML when we generate it, we want the body tag for the scripted HTML generation to simply be <body>. This way, when we set the web viewer’s location to data:,[HTML], the user isn’t prompted to print when they just want to look at the report. However, what we can do is create a Print button on the layout that’s uses a Substitute function to force the print dialog:
Substitute([HTML]; “<body>”; “<body onLoad=\”printrpt()\”>”)
By doing this, you have created a Report Preview window that allows the user to view the report in a tamper-proof environment, while still allowing them to print the window’s contents.
Sample File!
Here is a sample file — this is in FMP12 format. Login YourNameHere, no password. It’s full access… have fun!
On the Report Manager layout, a list of reports appears on the left. Select a report (there should be 1) and it will appear in the preview window. Note that you cannot right-click or otherwise interact with the web-viewer. Clicking “Print Report” will cause the global variable to swap out the body tag with a body tag that contains the onLoad call to print.
Go to Inventory Activity and add a few line items, obviously QtyOrdered will put the line in the left column, QtyRcd will put the line in the right column, then Go back to Reporting and Generate the report. Once a report is generated, it cannot be re-generated for that day (fortunately you have full access and can go into the Reporting table and delete the record and try again). As you can see from the data, I tried entering an order for 2 light cycles after I generated the report — they will not appear, which is a completely arbitrary rule depending on the requirements of your reporting module, as the HTML generation is controlled through scripting, there’s no reason the report couldn’t be re-generated if you want to allow people the ability based on your own business’s rules.
FMPro.org
Dacons LLP Toolbar 1.0.4.28 released
YouTube :: FileMaker
FileMaker 12 Script Trigger Enhancements - Webinar 11 PART 1
|
FileMaker 12's new ExecuteSQL function opens up the power and flexibility of the SQL query language to any FileMaker calculation. This webinar will present techniques for using the ExecuteSQL function within calculations to gather and manipulate data for reports, charts, dashboards, and more. We'll use a variety of built-in and custom functions to slice and dice data in any context. We'll also cover the basics of the SQL SELECT statement so anyone can get started quickly. |
From:
filemakeracademy
Views:
44
![]() 0
ratings | |
| Time: 15:46 | More in Education |
May 15, 2012
The Beezwax Buzz
Getting a FileMaker label's text in a conditional formula
I wanted to do some conditional formatting, such that when a global field had a certain value the label would change its appearance. For example, if my sort column was “address”, then I wanted the column header containing the text “Address” to highlight.
I had a hunch that the Self function could help. I tested this by attaching a conditional formula to a label:
Let ( $$n = Self; 0 )
Using the Data Viewer in FileMaker Advanced I could see that the label’s name was then getting “leaked out” to the global variable $$n in the conditional statement. So, for my use case above, I could simply write the following:
TABLENAME::globalField = Self;
FMPro.org
Free Webinar: Implementing Effective Security
by Kirk Bowman (info@mightydata.com) at May 15, 2012 04:14 PM
MightyData
Free Webinar: Implementing Effective Security
Announcing our next free webinar “Implementing Effective Security” on Wednesday, June 6, at 12pm CST. The webinar is part of a series of one-hour lunch-and-learn sessions for intermediate FileMaker Pro users and developers.
Implementing a proper security model often requires going beyond controlling whether or not someone can log into a database. FileMaker Pro includes a robust set of features for controlling which users have access to what information and what they can do with that information via the accounts and privileges settings. This webinar will explore how to isolate legitimate users from sensitive operations or information within a database, how to associate privileges with authenticated accounts, and how to control specific features within a database based on a given user’s assigned privileges.
Register online today!
ZeroBlue Blog
Converting Files to FileMaker Pro 12
- FileMaker Image Management – Container Field Behavior and Much More One of my clients called this week and told me...
- Top 10 Suggestions If You Want To Hack At A Database Yourself – For In-house FileMaker Developers All FileMaker developers start somewhere, and that place is definitely...
- Differences Between FileMaker And Excel Everyone I know is familiar with Microsoft Excel to some...
fmSimplicity
How to be the fmserver user
If you are ever trying to troubleshoot a system script that will be run by the fmserver user on OS X you can do the following to replicate what the server is doing with terminal.
1. Type su
2. Enter the root user password
3. Type su fmserver
4. Type whoami and it should return fmserver. This last step verifies that you are in fact the fmserver user.
This is what it should look like in terminal:
servername:~ currentuser$ su
Password:
sh-3.2# su fmserver
bash-3.2$ whoami
fmserver
An example of what you can do at this point is execute a shell script as fmserver.
sh /Library/FileMaker\ Server/Data/Scripts/example.sh
May 14, 2012
MightyData
12 Days of FileMaker 12 — New Calculation Functions
One Tuesday, May 8, I had the privilege to present the new calculation functions in FileMaker 12. This was the eighth webinar in the 12 Days of FileMaker 12 series by FM Academy.
There are over a dozen new functions in FileMaker 12, several of which accompany significant new features such as enhanced container fields, new window styles, and a new plug-in updating methodology. Yet it doesn’t end there, as there is a pair of functions that deal with ID values, some FileMaker Go specific functions, and native access to FileMaker’s SQL engine with the ExecuteSQL function.
Container Functions
Two new categories appear in the calculation dialog: Container Functions and Mobile Functions.
The former provides the ability to get the height and width of content in containers using GetHeight() and GetWidth() functions. This returns height and width in pixels for images. Other items in the container field, such as movies or files, return 0. In addition, we have the ability to generate a thumbnail of an image with the GetThumbnail() function.
Since FileMaker 12 now enables us to store containers in external folders, checking the validity of the stored data reveals whether this has been changed or tampered with outside of FileMaker. Using VerifyContainer() shows 0 or 1 depending on whether the files have been changed or deleted, or if there are no changes.
Mobile Functions
There are two specific mobile functions that deal with Location information: Location() and LocationValues(). Previous versions of FileMaker in mobile devices were forced to get geolocation information using JavaScript. By making this native you can get longitude and latitude from Location and store these in your database. LocationValues displays a return-delimited list containing longitude, latitude, altitude, horizontal accuracy, vertical accuracy, and age in minutes.
Both functions accept two parameters, one required and one optional. The first is the accuracy in meters, and the second is the length in seconds allowed before timeout.
Updating Plug-ins
Another new feature in FileMaker Pro 12 radically changes the method to update plug-ins. Previous versions managed this through a daunting and often complex AutoUpdate process via FileMaker Server. There is now a new Install Plug-in script step, and a function to get a return-delimited list of currently installed plug-ins: Get( InstalledFMPlugins ). This returns the plugin name, version, and current state – Enabled, Disabled, or Ignored. One thing to note is that the version is only returned if the developers entered this in the resource file (Windows) or info.plist.file (Mac), so keep this in mind when setting up this process.
ID and Tab Panel Functions
The new pair of ID functions each return a long string of alphanumeric characters, but are completely different in purpose. Get( UUID ) returns a universal unique identifier, a unique 16-byte string in the format 8-4-4-4-12, such as E10FD6CB-2CB3-471A-B4B5-3CC2509F49EE. This function lets users create unique keys, and avoids key collision when merging records from multiple tables, for example.
Meanwhile, Get( PersistentID ) captures the unique identifier of the device accessing your solution, either desktop or mobile. Whereas you still can get the account name or user name, the new string like AF376F280690001931BFED4E890FADDB shows the device ID.
Along with some new tab control script triggers there are two new functions.
- Get( TriggerCurrentTabPanel )
- Get( TriggerTargetTabPanel )
When coupled with the script triggers, navigating from tab to tab will return values via these functions. The first shows the originating tab panel (number and object name) and the second the current tab panel (number and object name). The naming might be a little confusing, as the values are activated when going to a new tab, so the “current” is actually the target. Still, with these values we have a way to track and control navigation between tab control panels.
FileMaker Server has an option for SSL certificates. The new Get( ConnectionState ) function will show the security state of the file’s current network function, such as if it uses a non-secured network or a fully verified SSL certificate.
Connection and Window-Style Functions
A new feature in FileMaker 12 is the ability to have two new window states. Previously new windows were all document windows, so if you wanted to prevent the users from closing them you needed to set up a script, pause and then start the script again, or use script triggers to validate some action prior to allowing the users to continue.
Now you can set up a floating document window and a dialog window. So, to go along with this, we have a function that returns a number as to the state of the window, which we can use to determine action based on that window. Get( WindowStyle ) will return the following:
- 0 – Window is a document window
- 1 – Window is a floating document window
- 2 – Window is a dialog window
Execute SQL Function
Finally, a function that deserves a webinar all on it’s own, and in fact FM Academy just had such a webinar: Greg Lane’s walk-through of the ExecuteSQL() function.
This is a function that previous required plugins. There are some limitations compared to the plug-in functionality, because ExecuteSQL() only permits use of the SELECT statement. This means no ability to update, insert, delete, drop, or replace via SQL. Yet, having this as a new tool in FileMaker creates great opportunity. The function is formatted as follows:
ExecuteSQL( sqlQuery ; fieldSeparator ; rowSeparator { ; argument … } )
The sqlQuery is the SELECT statement, placed inside double quotes, such as “select first_name from contacts”. The fieldSeparator and rowSeparator default to a comma and return when you use “” for the parameters. You can use other separators such as tab, pipe, etc.
The optional arguments parameter lets you use a record’s field value as a parameter, useful when querying the context of individual records. I’ve previously blogged about ExecuteSQL (insert link). Learning this function will give you a great new tool in your FileMaker development.
Watch the recording of the webinar below for more coverage of these functions.
<iframe width=”640″ height=”390″ src=”http://www.youtube.com/embed/jMWaILE-Rws” frameborder=”0″ allowfullscreen>
Newest FileMaker Pro Custom Functions
list.intersect (listA; listB)
MightyData
12 Days of FileMaker 12 – Week 6 – Additional Sessions Added
FM Academy, a collaboration of leading FileMaker development and training companies, is proud to announce the 12 Days of FileMaker 12 webinar series. Each Tuesday and Thursday for six weeks (and more!) the Academy will host a 60-minute webinar on a new feature of the FileMaker 12 product line.
Because of popular demand, 3 sessions are being added, following the original 12 Days of FileMaker 12. Registration information is included below. These new sessions will all be at 2pm EST:
- Tuesday, May 22: Window Styles Windows
- Thursday, May 24: Server Performance
- Tuesday, May 29: Accessibility Section 508
This week features:
TUESDAY, May 15, 2pm EDT
Webinar 11: Script Trigger Enhancements. Using Script triggers has become common place in the FileMaker development world – and with the new enhancements in FileMaker 12, we will have even more power. We’ll be taking a look at a FileMaker Pro Advanced-only update in the script debugger for globally enabling/disabling triggers, as well as new indicators, and new triggers.
Sameer Khan is the presenter. He is a FileMaker 9-11 Certified Developer and Authorized Trainer employed by Anvil Dataworks, a development firm outside of Washington DC. He has been working with FileMaker for over 8 years. His students say that he is an interesting person and a knowledgeable teacher. Follow Sameer on Twitter @ dcfilemaker and read his blog posts.
THURSDAY, May 17, 2pm EDT
Webinar 12: Moving to FileMaker 12. You really want to start taking advantage of all the great new features in FileMaker 12 but you don’t know where to start? Join FM Academy for a great session about deploying FileMaker even if your environment already has an older version of FileMaker. Topics Include: Test your existing solution with FileMaker 12, How to Convert your existing solution to FileMaker 12, Back up your data and settings from your current version of FileMaker, Uninstall the older version of FileMaker Pro and FileMaker Server, Create a custom installer so users do not need to enter license information with each install, How to deploy FileMaker server and connect it to your existing Web Server, Manage existing plugins with the new FileMaker 12.
Tim Neudecker is the presenter. He is a leading software engineer who has over 20 years’ experience as a professional FileMaker developer. He spent over 10 years as an in-house developer for companies such as Macy’s/Bloomingdales and AGA. In 2003 he joined Kyo Logic as co-founder and CTO. He has presented four times to the FileMaker Developer Conference on topics including security, system performance and developer tools. Tim has published articles in FileMaker advisor on system integration and performance tuning. In 2003 he was honored with a FileMaker Excellence Award for his contributions to the developer community.
Free registration for the complete series schedule is available immediately. Once you register for the series, you will receive email reminders for each session. The only thing you need to attend is a computer, iOS or Android device and a WiFi connection.
About FM Academy
FM Academy is a consortium of seven FileMaker Business Alliance Platinum companies. Our goal is to educate FileMaker users and developers, encourage best practices, and foster adoption of the FileMaker platform. The members of FM Academy are 360Works, Anvil Dataworks, Fiddlehead Software, IT Solutions, KyoLogic, MightyData and Skeleton Key.
FMPro.org
"12 Days of FileMaker 12" - Week 6 - Additional Sessions Added
by Susan Fennema (susan_fennema@mightydata.com) at May 14, 2012 04:19 PM
myFMbutler Blog
AutoSender 3.1 Public Beta brings FileMaker 12 compatibility
We are pleased to announce the availability of a public beta of our AutoSender 3.1 product for Mac & Windows.
AutoSender is a tool that runs on the FileMaker Server, and allows you to automatically send mail messages from your FileMaker solutions.
So what's new in AutoSender 3.1?
- Compatible with FileMaker Server 12 and 12 Advanced
- Fixed an issue with HTTPS
Download AutoSender 3.1 public beta for Mac
Download AutoSender 3.1 public beta for Windows
FileMaker Weetbix
Sweet Scrolling in FileMaker Go 12
by Daniel (daniel@digitalfusion.co.nz) at May 14, 2012 06:06 AM
May 13, 2012
FileMaker Thoughts
Fixing FileMaker Macintosh Outlook Carriage Returns With A Custom Function
From Dwayne Wright PMP
Certified FileMaker Developer
WEB: www.dwaynewright.com
EMAIL: info@dwaynewright.com
TWITTER: dwaynewright
YOUTUBE: FileMakerThoughts
Please Note: If you are viewing this page in a news feeder, the images may get munged up a bit or other formatting of the posting may fail. For the best experience, please visit the journal directly by clicking (here).

Back in February 2012, I wrote a post titled "FileMaker, Microsoft Outlook 2011 And Missing Carriage Returns". Since then, I've been updating different scripts that integrate email messages that consist of concatenating multiple FileMaker data fields.
Last week I let out an audible groan when I came across another script that was affected by the Macintosh Outlook users. Only then did is occur to me to create a custom function to make it easier for me and other developers.
The Beezwax Buzz
Using Cocoa's PDFDocument class from FileMaker
I’ve been looking for a way to interface with some Cocoa classes in the Mac OS X API from FileMaker for a while. My initial target was PDFDocument, part of the PDF Kit suite of classes. For more information on Cocoa’s PDF Kit see here: Introduction to PDF Kit Programming Guide
I’ve had a couple versions of this working for some time, but I could never get anything that worked consistently across the various OS and Python combinations (Python is my default tool of choice for these kinds of things). Changes to both the Cocoa interfaces in Python and the OS architecture kept getting in the way. But I may of finally hit it.
Below is a Python script I’m using to test this out. It uses using PyObjC module, which is the newer method of interfacing Python with Cocoa classes. To make interfacing with Python from FileMaker easier, I’m also using bBox, a free FileMaker plug-in I wrote that allows easier integration between FileMaker and Python.
import sys, os import getopt from pprint import pprint # # For some OS versions we must explicity add the PyObjC path. sys.path.append ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC/') # from Foundation import from Quartz import # # Set by the calling FMP script. Path of PDF that we will examine. # sourcePath # # Set by the calling FMP script. Path to store the modified version of PDF. # destPath # # Subroutine that does all the work. # def addAttributes(filepath,destPath):url = NSURL.fileURLWithPath_(filepath) pdfdoc = PDFDocument.alloc().initWithURL_(url) attrs = NSMutableDictionary.alloc().initWithDictionary_(pdfdoc.documentAttributes()) <span class="kw">print</span> attrs attrs[PDFDocumentTitleAttribute] = <span class="s"><span class="dl">'</span><span class="k">PDF TITLE</span><span class="dl">'</span></span> attrs[PDFDocumentAuthorAttribute] = <span class="s"><span class="dl">'</span><span class="k">A. Author and B. Author</span><span class="dl">'</span></span> pdfdoc.setDocumentAttributes_(attrs) pdfdoc.writeToFile_(destPath)# # Execute the subroutine with the given paths. addAttributes (sourcePath, destPath)
The above script is stored in a FileMaker field. Here’s the script used in FileMaker to call the Python script:
Set Variable [ $pysourcePath; Value:"/Applications/Mail.app/Contents/Resources/ActionTemplate.pdf" ] Set Variable [ $pydestPath; Value:"/Users/Shared/bboxversion.pdf" ]
Set Variable [ $pyscript; Value:bbox pyobjc::pdfattributesscript ]
#
# Compile the script & setup context.
Set Variable [ $compileresult; Value:bBoxPythonCompile(0; $pyscript) ] If [ $compileresult ≠ "" ]
Exit Script [ ] End If
#
Set Variable [ $ignore; Value:bBoxPythonSetVar("sourcePath"; "/Applications/Mail.app/Contents/Resources/ActionTemplate.pdf";"s") ] Set Variable [ $ignore; Value:bBoxPythonSetVar("destPath"; "/Users/Shared/bboxversion ofpdffile.pdf"; "s") ]
#
Set Variable [ $executeresult; Value:bBoxPythonExecute(0) ]
#
# For unknown reasons, should NOT call finalize here in bBox 0.52 and possibly earlier versions, so currently disabled.
// Set Variable [ $ignore; Value:bBoxPythonFinalize ]
#
Show Custom Dialog [ Title: "Python Result"; Message: $execute_result; Buttons: “OK” ]
The key change was adding in the path for PyObjC. This may only be necessary because bBox interfaces with Python using its C based API, so it probably wouldn’t be necessary in a “normal” Python script. Having systems that have Python.org’s version of Python could also account for the differences I’ve seen, but bBox is only linked to Apple’s version of the Python framework so that would be surprising cause for the difference.
Since I am working on getting a new version of bBox out I’ll hopefully get a bit more clarity on this issue and maybe a few more examples as I test out the new version.







