Converted LiveCode Example App38.zip (510K)
LiveCode Migration Info Sheet (647K PDF)
FmPro Migrator Developer Edition
5.75 -Adds Support for Converting Visual FoxPro Forms to LiveCode
Top 10 Features
Instantly generate a full featured LiveCode application/RevLet, having insert, query, update and delete functionality.
your files locally, using FmPro Migrator Platinum Edition.
conversion of FileMaker Pro Layouts and Microsoft Access Forms/Reports to LiveCode stack files.
Pro scripts are converted into executable LiveCode code.
Utilize SQL Yoga and LiveCode Data Grid technology for sophisticated database functionality.
Supports simple relationships to related tables and fields on the same form and within portals/Data Grids.
Fill-in field queries includes AND/OR record searching feature.
Found set record processing includes scrolling thru records, new record/delete record features.
Converts Tab Controls into LiveCode tab panel groups including embedded objects, background color and hide/show scripting.
weeks of development effort writing a full featured database application/revLet.
For more info please send email or call.
The LiveCode Conversion Service included in FmPro Migrator Platinum Edition generates a full-featured LiveCode front-end application from FileMaker Pro and Microsoft Access 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, web browser revLets or Mobile apps (supporting: Maemo, Windows Mobile/Windows 7 Mobile, iPhone and iPad). This feature leverages
the automated layout and relationship importing features of FmPro
Migrator Platinum Edition, along with FileMaker Pro Advanced, the LiveCode IDE, or LiveCode Mobile along with SQL Yoga from Blue Mango Learning.
LiveCode Conversion Service Pricing
FmPro Migrator Platinum Edition includes a DB to Rev License Key (250 Layout Quantity - 1 Year Duration)
The DB to LiveCode Conversion Service is available as a separate service for a fixed price of $25 per Layout.
The features and benefits of using the DB To LiveCode
Conversion Service include:
Time, Get Up and Running Quickly - It can be a tedious and time consuming
process to manually re-create each FileMaker or Access 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 Service 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.
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.
A 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
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
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
Search criteria symbols are implemented with a handy pop-up menu, which inserts the requested symbol into the currently selected field.
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
Unlike FileMaker Pro databases, 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
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
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.
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 Tab Panel Group Conversion
Tab Controls from databases like FileMaker or Microsoft Access need to be handled a little differently within LiveCode stacks.
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.
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 and images.
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.]
Insert Picture Processing for Image Fields
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.
RevLet, Desktop App, Mobile - Generation
FmPro Migrator generates a slightly different stack file within the output stack file depending upon whether the Application or revLet menu items have been selected.
revLets have an additional button visible which is available for the user to download an embedded SQLite or Valentina database file to their local disk - if one of these database files has been selected for the migration. This feature makes it possible to quickly prototype and upload a test file for customer review. There is also an additional button made visible to the LiveCode developer for loading the embedded database file as a custom property into the stack file.
Stacks generated for Mobile development are generated identically to regular application stack files at the present time.
CheckBox & Radio Button Groups
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 when they are placed within rows of a Data Grid.
Custom Value Lists are read from
the FileMaker Pro DDR XML file or extracted from the Microsoft Access database 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.
Images and Vector Graphic 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 attempts to build objects in a specific order to minimize the overlapping of objects. For instance in this screenshot, the yellow rectangle was built first, then the fields and text labels were created to sit over top of the rectangle. This technique is used because there isn't any method available to determine the z-order stacking of the objects created on a FileMaker layout or a Microsoft Access database form. It is likely that some manual changes will generally be necessary to fine tune the z-order stacking of objects on the card.
Layout Objects Group & Geometry Manager
Each object within the newly created LiveCode card is created within group named "Layout_Objects_Group". Resizing this group and setting the Geometry Manager settings enables the objects to be scrolled in the same manner as in the original database application.
This feature is also used to implement the Hide/Show Status Area feature. 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.
Customized Card 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:
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.]
XML Preferences File
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 License Keys for 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 Rev 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.rev 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
Button (including non-button objects configured as buttons)
Button (with embedded merge field object)
Portal (including portal objects)
Embedded Layout Image Graphics
Tab Controls (and its Objects)
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 application/revLet stack file.
FmPro Migrator Platinum Edition utilizes the DDR XML file generated
by FileMaker Pro Advanced, along with QuicKeys(Mac OSX) or WinAutomation(Windows)
software in order to automate the capturing of Tables/Fields, Layouts,
Relationships and Scripts. This import process follows the Table
Consolidation Process steps, documented in the PDF
file on the support page. Once the info has been captured by FmPro
Migrator Platinum Edition, click the LiveCode Conversion
Service 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 Rev stack. Buying an FmPro Migrator Platinum Edition license key
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.0.1+ - from Blue Mango Learning Systems
FileMaker Pro Advanced 8.5+ - 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
QuicKeys(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.
The LiveCode Conversion
Service 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
|Complex Directly Defined Relationships
|Delete Found Set or Delete All Records
|Embedded Page#, Date, Record# Layout objects
|Field Auto-Enter Values
|Global Fields, Summary, Calc Fields
|Layout Object TAB Order
||NOFIX - Info not available in DDR XML
|Layout Part Objects
||NOFIX - Info not available in DDR XML