1) Changed global variables for current database document. As Base now has the global variable ThisDatabaseDocument (accessible from code inside a Base document), I changed the old variables in the Databases module to ActiveDatabase, ActiveConnection, and ActiveDataSource. These variables can be set set with InitFromDocument(oDBDocModel). However, it is not always necessary to set these variables, as they can get obtained from a data form.
2) Added function createFormBasicModule() to the Forms module. When added to a toolbar (preferable form design) in a form, it creates a basic module in a library called 'gui' in that database document's Basic Libraries container. If a library called 'gui' does not exist, it is created. The objective is to keep code organized.
3) Added sub prepFormRunMode(). When bound to the loaded a sub document event of a Base document. It shows the form controls and form design toolbars at design time, and hides it run time (data mode). This can be customized to show/hide any toolbar of choice.
4) Added command to RunCmd module to display a progress bar--displays a progress bar in the document's status bar. InitStatusIndicator: First parameter is the initial message, second is the max value, and third is optional parameter indicating document to which the status bar is to be attached. It no document is passed, it tries to find an active form document. updateStatusIndicator: First parameter is a message (can ommit) and second parameter is the new progress value. removeStatusIndicator: removes the progress bar. an optional flag can be passed to hide the status bar--if it was only shown for the progress bar.
RunCmd.InitStatusIndicator("testing",10,ThisComponent)
For I=0 To 10
Runcmd.updateStatusIndicator("Updating",I)
Wait 10
Next I
RunCmd.removeStatusIndicator()
5) Added TableLookup(...) function to RunCmd which searches a table based on parameters. First parameter is a column expression (column name or an expression on a column or set of columns), second parameter is the table name, the third parameter is an optional filter string, and the last parameter is the default value to return, in case no result was found.
RunCmd.TableLookup("LEFT(FirstName,1) || LEFT(LastName,1)","Contacts","ID=11000","Not Found")