.com Solutions Inc. - Logo  
services header buttons
FmPro Migration bullet item 7b FmPro Upgrade bullet item 7b FmPro Development
. .

Email a Friend

Bookmark This Page


FmPro Migrator Demo Image




A LiveCode DB App in 3 Seconds or Less

RevUp articles
by David Simpson

Article Part #1
Article Part #2
Article Part #3
Article Part #4
Article Part #5







. .


LiveCode Conversion

Supports LiveCode Widgets
What is LiveCode?
How to Perform an Automated Conversion from FileMaker Pro, Microsoft Access or Visual FoxPro into LiveCode


Converted_LiveCode_Example_AppLC8_54H.zip (1.3Mb)
LiveCode Migration Info Sheet (1.2Mb PDF)

FmPro Migrator Platinum Edition 8.74 - Improves FmPro Converted Scripts.txt output file creation and the CreateConnectionObject handler code when using Variable Checking.

Top 10 Features

black bulletInstantly generate a full featured LiveCode desktop or mobile application, having insert, query, update and delete functionality.
black bulletProcess your files locally, using FmPro Migrator Platinum Edition.
black bulletAutomated conversion of FileMaker Pro Layouts and Microsoft Access and Visual FoxPro Forms/Reports to LiveCode stack files.
black bulletFileMaker Pro scripts are converted into executable LiveCode code.
black bulletUtilize SQL Yoga and LiveCode Data Grid technology for sophisticated database functionality.
black bulletSupports simple relationships to related tables and fields on the same form and within portals/Data Grids.
black bulletFill-in field queries includes AND/OR record searching feature.
black bulletFound set record processing includes scrolling thru records, new record/delete record features.
black bulletConverts Tab Controls into LiveCode 8 Segmented Widgets or LiveCode tab panel groups including embedded objects, background color and hide/show scripting.
black bulletSaves weeks of development effort writing a full featured database application.

For more info please send email or call.



The LiveCode Conversion feature included in FmPro Migrator Platinum Edition generates a full-featured LiveCode front-end application from FileMaker Pro Microsoft Access and Visual FoxPro database files. This feature quickly and efficiently converts layouts, scripts, relationships, and value lists into a LiveCode application for building Mac OSX, Windows, Linux desktop apps, or Mobile apps (supporting: IOS, Android). This feature leverages the automated layout and relationship importing features of FmPro Migrator Platinum Edition, along with FileMaker Pro Advanced, the LiveCode IDE along with SQL Yoga from Blue Mango Learning.

LiveCode Migration Screenshot

LiveCode Conversion Pricing

FmPro Migrator Platinum Edition includes a DB to LiveCode License Key (250 Layout Quantity - Unlimited Number of Database Files - 1 Year Duration)


FmPro Migrator integrates a variety of LiveCode extensions into the generated stack file. Other extensions are worthy of consideration to enhance the generated application stack file., and require a separate download/purchase.

LiveCode Extensions Implemented
SQL Yoga Separate Download [Required]
LiveCode 7, 8, 9 compatible. Open Source.
calendarWidget100 Included
LiveCode 6.7 compatible (not 7.0 compatible)
DatePicker Separate Purchase
Date picker, compatible with LiveCode 6.7/7.0
FieldFormatter Separate Purchase
Data independent field formatting utility. Dual Licensed Commercial/Open Source.
ChartMaker Separate Purchase
Full featured cross-platform library solution designed to create professional charts. Note: FmPro Migrator builds placeholder LiveCode 8 LineGraph widgets. This extension can be used by LiveCode developers to create new full featured charts in LiveCode having more features than the LineGraph widget.
ChartsEngine Separate Purchase
ChartsEngine is a powerful, yet lightweight library to create charts in a LiveCode.Note: FmPro Migrator builds placeholder LiveCode 8 LineGraph widgets. This extension can be used by LiveCode developers to create new full featured charts in LiveCode having more features than the LineGraph widget.

hline image

The features and benefits of using the DB To LiveCode Conversion feature include:

black bulletSave Time, Get Up and Running Quickly - It can be a tedious and time consuming process to manually re-create each FileMaker Access or Visual FoxPro form object using any other development environment. Rather than spending days or even weeks of valuable time manually converting hundreds of layouts, LiveCode developers can utilize the LiveCode Conversion feature as an economical alternative. FmPro Migrator Developer Edition typically processes each layout in less than 1 second - much faster than you could perform the task manually!

The ability to efficiently perform LiveCode migrations makes it possible to quickly show prototypes to prospective customers. An automated migration process represents the ultimate in rapid application development, which can't be matched by any other development environment. Being able to show customers a rapid prototype may make the difference in getting approval for a new client project.

black bulletScript Conversion - Each FileMaker Pro script captured by FmPro Migrator, is converted into executable LiveCode code and written into a text file within the output directory. These scripts are intended to be used as a template for the writing of new LiveCode code which will be used to replace the original FileMaker Pro script functionality by the LiveCode developer. FileMaker Pro script instructions are parsed and replaced with one or more equivalent LiveCode commands. Visual Basic code from Access database files is converted by the BASIC to LiveCode conversion feature.

black bulletA Learning Tool - It could take weeks of work reading hundreds of pages of documentation to learn how to develop a full featured database application by yourself. Or, you could let FmPro Migrator do all of this work for you within a few seconds. FmPro Migrator builds a sophisticated database application having many of the features users have come to expect from a database application. The generated application stack file utilizes the latest LiveCode platform features including the Data Grid and the highly acclaimed SQL Yoga database framework.

SQL Yoga Database Framework SQL Yoga Icon

SQL Yoga Diagram

All of the database management code generated by FmPro Migrator is implemented by using the SQL Yoga database framework from Blue Mango Learning Systems. SQL Yoga simplifies the development of LiveCode applications by enabling the developer to work with properties and arrays instead of writing SQL code and easily manage the relationships converted from the source database. Related records are retrieved within nested arrays which can easily be passed on to the LiveCode Data Grid object.

The SQL Yoga code generated by FmPro Migrator works efficiently with large data sets. First, all of the Primary Key values for a database table are retrieved into an array in memory. All of the data for an individual database record is retrieved only for the current record being viewed by the user. A new record is only loaded from the server when the user clicks the Next/Previous buttons or moves the scrollbar to the new record. This technique reduces the load on the SQL database server, reduces network bandwidth requirements and reduces the possibility of having stale data in memory.

Query By Example & Found Set Processing Find Mode Menu

FmPro Migrator generates sophisticated Query By Example infrastructure enabling your application's users to enter Find Mode, fill in the appropriate fields and then press the Find button to retrieve the records.

Search Criteria Symbols Menu

Find Mode Symbols Menu

Search criteria symbols are implemented with a handy pop-up menu (1), which inserts the requested symbol into the currently selected field (2).

Once the user clicks the Find button, the search conditions are gathered from each of the fields and a SQL Yoga query is run against the SQL database.

AND/OR Record Search

Find Mode AND/OR Search Menu
SQL databases easily support AND as well as OR search criteria in a straightforward manner. The converted LiveCode application provides for AND/OR searching via a pop-up menu.

Found Set Record Navigation

Find Mode Record Navigation

In found set mode, the number of records found out of the total number of records in the table are displayed (2/3).

The Next/Previous buttons and the scrollbar can be used to move to another record in the found set. Or a record number can be entered in the Record box to move directly to the requested record.

New Record/Delete Record Application Menu

Find Mode Symbols Menu

Selecting the Show All Records menu exits Found Set display mode and returns to the regular Browse Mode. Selecting the Show All Records menu within Browse mode will refresh the list of Primary Key values from the SQL database.

Portal to Data Grid Conversion


FileMaker Portals and Microsoft Access SubForms are converted into LiveCode Data Grid objects. Each Data Grid includes fields, menus, checkboxes, radio button groups, image objects and button objects. The alternate row color info from the original Portal is also configured within the Data Grid. Related records are gathered based upon a conversion of the original database relationships in order to automatically fill the Data Grid with related records. Each field of data is drawn to utilizes the TruncateTail Data Grid function, as shown for the Date and Notes fields above. Image fields, drop down menus, pop-up menus, checkbox groups, radio button groups, oval, rectangle, rounded rectangle, button and image objects are drawn in the same positions within the Data Grid as they were originally located within the portal object.

[Note: Some objects, including drop down menus, checkbox and radio button groups are drawn slightly larger in LiveCode compared to their sizes in the original FileMaker database layout. Therefore some slight manual modification of object position and size maybe required in the Data Grid Row Template.]

A New Record button represented as a green (+) symbol is added to the card near the upper right corner of the Data Grid object. Clicking this button creates a new record in the related table and automatically fills the Foreign Key column with the Primary Key value from the current parent record.

Delete DataGrid Row Buttons

Within FileMaker Portals, it is common to have a button object or an image object with an embedded "Delete Portal Row" script script. Clicking the button will delete the selected row of the portal. FmPro Migrator implements this same functionality within LiveCode Data Grid objects by converting the "Delete Portal Row" script step into code which deletes the selected row of data in the Data Grid (and in the related database table).

Tab Control to LiveCode Conversion

LiveCode 8
LiveCode 7

Tab  Control 1 LC8

Tab Control 2 LC8

Tab Control 3 LC8


Tab  Control 1

Tab Control 2

Tab Control 3

Tab Controls from databases like FileMaker or Microsoft Access need to be handled a little differently within LiveCode stacks.

When selecting LiveCode versions higher than 7, FmPro Migrator will build each tab of a Tab Control into group using the Segmented widget.

For LiveCode versions less than 8, FmPro Migrator converts each individual tab of a Tab Control into a Tab Panel object within a group having the same name as the Tab Panel. Each object within the particular Tab is created within this group. Tab Control processing is supported 2 levels deep for FM12+ files.

LiveCode menuPick code is placed into each group to automatically hide the current Tab Panel group and show the next group when a different Tab Panel tab has been clicked. Hiding or showing the enclosing group automatically hides or shows each of the objects created within the group, thus simulating the graphical interface of the original database. Tab controls can contain most other types of objects including fields, checkboxes, radio buttons, graphics, images and DataGrids.

black bulletLiveCode 8 lineGraph Widget

SQL Yoga _CreateRelationships revTalk Code

FileMaker Chart objects are converted into LiveCode lineGraph widgets if LiveCode 8 is selected as the target version. Each lineGraph widget can be considered as a placeholder for further development by the LiveCode developer. The existing refreshFields handler can be updated to populate the DataCSV property of the lineGraph.

The ChartMaker and ChartsEngine Extensions provide even more functionality for building sophisticated charts and graphs within LiveCode applications.


black bulletRelationship Conversion

SQL Yoga _CreateRelationships revTalk Code

Each FileMaker Pro relationship imported by FmPro Migrator is converted into two SQL Yoga relationships. Both forward and reverse relationships are created within the SQL Yoga _CreateRelationships handler, to operate in the same manner as the original relationship.

[Note: Though SQL Yoga does not require two sets of relationships to be created in this manner, it streamlines the code generation process for FmPro Migrator to work with both relationships separately. It also improves the readability of the generated LiveCode code within each individual card script.]

black bulletInsert Picture Processing for Image Fields

Insert Image

Microsoft Access OLE Object and FileMaker Container fields are converted into BLOB columns within SQL database tables. A pop-up menu is created over top of the LiveCode image object for each one of these fields.

Clicking the field brings up the Insert Picture dialog box for selection of a file from the local disk. Cancelling this dialog clears the image data from the field, selecting a file saves the file into the database column and displays the new image. Non-image data could also be handled with additional application-specific code.

The Insert Picture dialog also works for image fields displayed within the rows of a Data Grid.

black bulletCheckBox & Radio Button Groups

Radio Buttons Checkboxes

Radio buttons and checkboxes are created as groups having the same name as the original field object. Within FileMaker databases these would be one single object, but within LiveCode these objects are created as separate buttons having label values retrieved from the original custom value list.

Radio buttons write a single value into the database for the selected radio button.

Checkboxes write multiple values into the database separated by return characters in order to simulate the original database functionality.

Checkboxes consisting of a single value list value equal to a numeric "1" will be created with the label drawn as a space (meaning it will be an invisible label) - as is shown with the checkbox for the Obsolete? field at the left. When selected, this checkbox will write the numeric value "1" into the database or an empty value if it is unchecked in order to simulate the original database functionality.

Checkbox and radio button groups also work within rows of a Data Grid.


black bulletCustom Value Lists

Custom Value Lists

Custom Value Lists are read from the FileMaker Pro DDR XML file or extracted from the Microsoft Access database or Visual FoxPro project file and then are used to populate drop down menus, pop-up menus, checkbox or radio button groups wherever the value list is utilized within the layouts of the database. Within FileMaker databases, Custom Value lists are stored in a centralized location within the database file. But within LiveCode stacks, the value lists are embedded within each object where they are used.


black bulletLayout Images and Vector Graphic Objects

Rectangle, Oval, Image Objects

Rectangle, rounded rectangle, and oval graphics objects are converted into their equivalent LiveCode vector graphic objects and placed onto the new card in the same location. Embedded images like the drag & drop icon, New, Delete and Find icons are imported as paint objects and placed onto the card.

FmPro Migrator builds objects in the order they were created within the original layout. There isn't any method available to determine the z-order stacking of the objects in the original database. It is likely that some manual changes will generally be necessary to fine tune the z-order stacking of objects on the card.


black bulletLayout Objects Group

Layout Objects Group

Each object within the newly created LiveCode card is created within group named "Layout_Objects_Group". Resizing the card containing this group enables the objects to be scrolled in the same manner as in the original database application.

The Status Area is implemented in a similar manner. Hiding the Status Area hides the Status Area group and moves the Layout_Objects_Group and its contents left to take its place. The opposite is done when enabling the Status Area.

black bulletCustomized Card Handlers

Card Script Handlers

FmPro Migrator will typically generate a few hundred lines of customized LiveCode code within each card of the converted stack.

These handlers are customized to implement the functionality required to support the unique set of fields and Data Grids built into each card.

These handlers include:

saveRecordsAsExcel - Writes a tab or csv delimited file with an .xls file extension containing either the current record or the current foundset of records. The spreadsheet column titles and column order can be easily customized.

clearAllPortalContents - Sets the dgData to empty for each Data Grid on the card. This handler runs when all fields and Data Grids are cleared when entering Find Mode. All of the fields are cleared in preparation

deleteRecord - Deletes the currently displayed record in Browse mode or Found Set mode.

findRecords - Gathers search criteria entered by the user from each of the fields on the card, and formulates a SQL Yoga query to find the records. Displays a dialog with Cancel/Modify Find options if no records were found.

getData - Retrieves a list of Primary Key column values for the table associated with the card. If the PK array doesn't need retrieved again, then this process is skipped. This is because the user might have simply switched from one card to another and the data might not need to be retrieved again. Passing a value of 1 in the pRefreshAllFlag parameter forces a retrieval of all of the PK values regardless of whether the array already contains values.

newRecord - Creates a new record in the table associated with the card.

preOpenCard - Sets the currently displayed card name as the label of the Layouts menu, calls the getData and refreshFields handlers.

refreshFields - Gathers the column data for each column of the table associated with the card along with all of the related records from related tables. Fills all of the fields and Data Grids on the current card.

updateDBRecord - Updates columns in the table associated with this card and all of its related tables. First, the SQL Yoga data arrays are updated, and then the sqlrecord_update SQL Yoga function is called to update the SQL database table.

[There are additional customized handlers built into many of the objects on the card, including radio button groups, checkbox groups and tab panel objects. There is also static LiveCode code written into the stack script.]


black bulletSave Records as PDF

Save Records as PDF

FileMaker scripts are converted into LiveCode and saved within the FmPro Converted Scripts.txt text file.

Commonly used script steps attached to buttons are also converted, including: Go to Layout, Perform Script, Open URL, Show Custom Dialog, Go to Record/Request/Page, Beep, Save Records as PDF, Save Records as Excel.

The Save Records as PDF script step is implemented as a stack-level script callable from anywhere within the application. This feature supports the CurrentRecord, RecordsBeingBrowsed and BlankRecord parameters. The RecordsBeingBrowsed option uses the current Foundset of records to create multi-page PDF files. Setting the printScale parameter before calling the saveRecordsAsPDF stack handler enables LiveCode developers to customize the amount of info placed onto a single PDF page.

black bulletSave Records as Excel

Insert Image

The Save Records as Excel script step is implemented as a card-level script callable from buttons on the card. This feature supports the CurrentRecord and BrowsedRecords parameters. The saveRecordsAsExcel handler is generated for the specific fields located on each card of the stack. Spreadsheet column titles and column ordering are easily customizable within the saveRecordsAsExcel card handler.


black bulletXML Preferences File

FmPro Migrator XML Preferences

FmPro Migrator utilizes an optional XML preferences file which can be used to customize the LiveCode conversion process. This XML template file can be placed into the FmPro Migrator directory within the Documents directory to customize the generated stack file. These customizations can include the automated addition of SQL Yoga and Valentina database libraries so that you don't have to manually enter these keys within each stack you create.

The StackTemplate option enables the experienced LiveCode developer to extract and customize the standard template stack embedded within FmPro Migrator. The custom version of your template stack file will be copied into the output directory, renamed as Application.livecode and used as the destination stack where all of the converted layout objects will be created.

The SQLYogaFilename option provides a place to specify the location of the SQL Yoga library to FmPro Migrator so that SQL Yoga can be added to your generated stack automatically. Otherwise, you need to manually add SQL Yoga to your stack each time you perform a conversion.


Layout Objects Supported

Field with Value List Menu
Field with Checkbox
Field displayed as Radio Button Set
Field with Calendar Picker
Chart (LiveCode 8 LineGraph)
Button (including non-button objects configured as buttons)
Button (with embedded merge field object)
Portal (including portal objects)
Rounded Rectangle
Embedded Layout Image Graphics
Tab Controls (and enclosed objects)

Demo Mode

Due to the complexity associated with any database migration project, it is recommended that a small test project be completed prior to starting the full conversion project. By default, FmPro Migrator Platinum Edition processes LiveCode migration projects in demo mode without a license key. In Demo mode, FmPro Migrator Platinum Edition will process 5 layouts and 5 scripts.

Using the demo mode at no charge, enables LiveCode developers to become familiar with the conversion process and see the completed layouts in the converted stack file.

Processing Steps & Requirements

FmPro Migrator Platinum Edition - FmPro Migrator Platinum Edition is used for capturing the structure info from the FileMaker Pro database file and generating the LiveCode stack file. FmPro Migrator Platinum Edition utilizes the DDR XML file generated by FileMaker Pro Advanced, along with AppleScript(Mac OSX) or a compiled WinAutomation (Windows) job file [provided at no cost] in order to automate the capturing of Tables/Fields, Layouts, Relationships and Scripts. This import process follows the videos and PDF file on the support page. Once the info has been captured by FmPro Migrator Platinum Edition, click the LiveCode Conversion button on the GUI tab. Complete instructions for the LiveCode Conversion Service are included a detailed PDF file. In demo mode, FmPro Migrator Platinum Edition will convert 5 layouts and 5 scripts into a LiveCode stack. Buying an FmPro Migrator Platinum Edition license key provides full-featured migration of 250 layouts (1 year license term).
FmPro Migrator Platinum Edition may also be used by the LiveCode developer to perform the conversion of the Microsoft Access and FileMaker Pro database tables and data into one of the supported SQL database servers.

SQL Yoga 1.10+ - from Blue Mango Learning Systems

FileMaker Pro Advanced 11+ - FileMaker Pro Advanced is used for creating a DDR XML export file providing the structure of the FileMaker Pro database file. This file is used for importing the relationships and layout display order info associated with the layouts.

AppleScript(Mac OSX)/WinAutomation(Windows) Software - FmPro Migrator Platinum Edition utilizes one of these two utilities to drive the FileMaker Pro user interface to automate the capturing of layouts from via the clipboard from FileMaker Pro.

LiveCode 6.x Commercial or Community Edition - LiveCode Commercial Edition is required for submission to the Apple IOS or MacOSX stores for licensing reasons, but development and testing can be done locally with either version.

The LiveCode Conversion feature utilizes FmPro Migrator Platinum Edition along with the other software listed here in order to automate the capturing of layouts, relationships, value list names and scripts from FileMaker Pro and Microsoft Access database files. Once the information has been captured, it is stored within FmPro Migrator's MigrationProcess.db3 embedded database file, saved to the output directory. This file serves as the source of info for the LiveCode Conversion process.

Unsupported Layout Objects and Other Features

Feature Status
Popover Button Object NOFIX - No equivalent LiveCode object
Slider Object NOFIX - No equivalent LiveCode object
Merge Fields Under Consideration
Complex Directly Defined Relationships Under Consideration
Delete Found Set or Delete All Records Under Consideration
Embedded Page#, Date, Record# Layout objects Under Consideration
Field Validation Under Consideration
Field Auto-Enter Values Under Consideration
Global Fields, Summary, Calc Fields Under Consideration
Layout Object TAB Order NOFIX - Info not available in DDR XML
Layout Part Objects NOFIX - Info not available in DDR XML

hline image



. .


. .















































email link

Home | Products | Services | Downloads | Order | Support | Contact

Legal Notices

.   .
Home Products Services Downloads Order Support Contact