How to Design a Database
How to Design a Database Before you do anything in DataEase, design your database application on paper. Interview the future users of the application to determine what they would like the application to do. Study existing forms and reports as a source of design information. List all the items of information you want the application to track. Divide the list into two groups: (a) The items that stand alone, such as members, clubs, and reservations in Club ParaDEASE, each of these is an entity and will be a table, and (b) The items of information that best describe each entity, such as MEMBER ID, LAST NAME, and FIRST NAME in the Club ParaDEASE MEMBERS table. These are the attributes, which will be the columns in each table. Diagram the tables and determine the Primary key for each table The Primary key can be a composite key made up of two or three attributes. Decide which tables should be related. Determine the type of relationship that exists between the tables and eliminate any many-to-many relationships. Decide which columns should be used as the Match fields for the relationships and insert the Primary key of one table into the related table as a Foreign key. Move any repeating columns into a new table. Move into a new table any column with a value that does not depend on the entire Primary key. Remove any column with a value that can be derived from other data in a table. Move into a new table any column that creates many blank spaces in the table. List the field characteristics for each attribute: the data type, length, and format, if applicable. List the field data options for each attribute: Is it Unique, Required, or Indexed? How to Create an Application In Windows, before starting DataEase, create a new directory named for your application. Start DataEase and open the File menu. Choose File>>New Application. DataEase displays the New Application dialog. In the Directories list box, double-click on the directory you created to store your application. In the Application Name text box, enter a name of up to 20 characters that describes your application, and then click OK. DataEase displays the New Name and Password dialog. Enter the Name and Password you will use to sign on to the application. (if you leave these text boxes blank, you can sign on to the application just by clicking OK. However, a blank name and Password gives the application no security protection). Click OK. DataEase displays the menu bar in User View. To create a document, choose File-New and an option from the New cascade menu. DataEase displays the New Document dialog, which lets you choose the Style Sheet and table the document uses. Note: When you create an application, DataEase generates a set of DOS files that are part of your application. Use Windows Explorer to view these files. How to Create a Form that Defines a Database Table Open the application that requires a new table Choose File>>New>>Form. DataEase opens the New Document dialog. Double-click on New>>Table. DataEase opens the New table dialog. Type in a descriptive name for your table. Click OK. DataEase displays an empty workspace in Designer View. Use the Objects menu or the Objects palette to define each new field. Choose File>>Save. Click on the User>>View button on the toolbar to view the form as a database table. How to Define a Relationship between two fields For the pair of tables, decide which is more important to the database. Think of that table as the Primary table. For a one-to-many relationship, the table on the 'one' side is Primary. Choose the Primary Key that will serve as the match field. Insert the Primary Key as a Foreign Key in the secondary table. Modify the key field's data definition, if necessary. Choose Application>>Relationships. DataEase displays the Relationships form. Click the drop-down arrow to the right of the field beneath "Records in" to display the list of Tables. Click the name of the Primary table. Press Tab. Click the drop-down arrow to the right of the field beneath "are related to records in" to display the list of table names. Click the name of the related table. Press Tab. Enter the Match field(s) on which the relationship is based. In the left-hand column, click the drop-down arrow to display the list of column names. Click the name of the Match field for the first table, and press tab. Click the drop-down arrow in the second column, click the name of the second Match field, and press Tab. Type in a Custom Relationship name, if necessary. If the tables will be combined in a multiform, click the drop-down arrow to the right of he field beneath the Subform table name to display a list of Referential Integrity options. Choose an option. Click Save to save the new record. Click Done to close the dialog.
Published: 9 May 2012
DataEase 7.2 and PDF printing, HTML, DOC and Rich Text Export
DataEase 7.2 and PDF printing, HTML, DOC and Rich Text Export One of the news in DataEase 7.0 was the possibility to “export” to PDF, Excel, HTML etc. As so many other of the news in 7.0 it was neither properly thought through, nor properly implemented. It is not a very well kept secret that the Print routines in DFW has never been very good, and a lot of “fixes” has been implemented over the years to try to amend this. When we evaluated this part of the product in relation to 7.2 we decided that the entire implementation is “flawed” and decided not to try to change it in 7.2 but rather focus on the new implementation in DG3. We do not recommend the use of the “built in” PDF, HTML and Excel export but rather the use of Third party products for these purposes. You only need to install on of the products below and you will be able to print to PDF, HTML, DOC etc. If you are only interested in exporting to PDF we recommend CutePDF which is a simple free PDF printer driver. http://www.cutepdf.com/ If you have more advanced needs and want to publish the result of reports on the web or save them as Word documents we recommend Print2eDoc which you will find at http://www.gnostice.com/Print2eDoc.asp
Published: 19 July 2012
How To Rename A File After It Is Printed
How To Rename A File After It Is Printed First of all create the following CDFs: 1) Function Name: IsFile CDF library name: osfunc.dll Return type: String Create 2 parameters : 1-Name: Path/File Name Type: String 2-Name: Attributes to find Type: Int 2) Function Name: RenameFile CDF library name: osfunc.dll Return type: String Create 3 parameters : 1-Name: Old File Name Type: String 2-Name: New File Name Type: String 3-Name: Notify User (Y or N) Type: String Close and re-open your DataEase application (to register the CDF’s). Copy and paste the following sample DQL code into a new procedure and amend where necessary (such as filenames). Compile and run: define temp “tRet” number . define temp “tOldFileNameAndPath” text 20 . define temp “tNewFileNameAndPath” text 20 . tOldFileNameAndPath := “C:\MyOldFile.pdf ” . tNewFileNameAndPath := “C:\MyNewFile.pdf ” . if IsFile (tOldFileNameAndPath, 00 ) = “True” then tRet := RenameFile (tOldFileNameAndPath, tNewFileNameAndPath,”N”) . else message concat(“Please ensure file “, tOldFileNameAndPath, ” exists before proceeding”) window. end
Published: 19 July 2012
How to Open Web Pages and send email from DataEase 7.2
How to Open Web Pages and send email from DataEase 7.2 ShellExecuteA performs an operation on a specified file. It uses the file associations within Windows, so you do not need to know the location of the application just the name of the file you wish to perform the action on. In order to use ShellExecuteA you must first register the following CDF in DataEase 7.2 How to Use the ShellExecute API function with DataEase 7.2 ShellExecuteA performs an operation on a specified file. It uses the file associations within Windows, so you do not need to know the location of the application just the name of the file you wish to perform the action on . See the cAction parameter below for more detail. In order to use ShellExecuteA you must first register the following CDF in DataEase 7 Function Name: ShellExecuteA CDF Library Name: C:\windows\system\shell32.dll Return Type: Int Parameters Hndwin Int CAction String cFileName String cParams String cDir String nShowWin Int Note: the directory in library name should be your windows\system directory. Description of the parameters Hndwin: Handle to a parent window. This window receives any message boxes that an application produces, such as error reporting. default 0 . cAction: A string, referred to as a verb, that specifies the action to be performed. The set of available verbs depends on the particular file or folder. Generally, the actions available from an object’s shortcut menu (the menu that you see when you right click on the object) are available verbs. The open verb is a good example, as it is commonly supported. For .exe files, open simply launches the application. However, it is more commonly used to launch an application that operates on a particular file. For instance, .txt files can be opened by WordPad. The following verbs are commonly used: edit Launches an editor and opens the document for editing. If cFileName is not a document file, the function will fail. explore Explores the folder specified by cFileName. find Initiates a search starting from the specified directory. open Opens the file specified by the lpFile parameter. The file can be an executable file, a document file, or a folder. print Prints the document file specified by cFileName. If cFileName is not a document file, the function will fail. If you set this parameter to “” : For systems prior to Windows 2000, the default verb is used if it is valid and available in the registry. If not, the “open” verb is used. For Windows 2000 and later systems, the default verb is used if available. If not, the “open” verb is used. If neither verb is available, the system uses the first verb listed in the registry. cFileName: The string that specifies the file or object on which to execute the specified verb. Note that not all verbs are supported on all objects. For example, not all document types support the “print” verb. cParams: If the cFileName parameter specifies an executable file, cParams is a string that specifies the parameters to be passed to the application. The format of this string is determined by the verb that is to be invoked. If cFileName specifies a document file, cParams should be “”. cDir: String that specifies the default directory. nShowWin: Flags that specify how an application is to be displayed when it is opened. If cFileName specifies a document file, the flag is simply passed to the associated application. It is up to the application to decide how to handle it. 0 Hides the window and activates another window. 3 – Maximizes the specified window. 6 Minimizes the specified window and activates the next top-level window in the z-order. 9 Activates and displays the window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when restoring a minimized window. 5 Activates the window and displays it in its current size and position. 3 Activates the window and displays it as a maximized window. 2 Activates the window and displays it as a minimized window. 7 Displays the window as a minimized window. The active window remains active. 8 Displays the window in its current state. The active window remains active. 4 Displays a window in its most recent size and position. The active window remains active. 1 – Activates and displays a window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when displaying the window for the first time. Error Messages Returned Greater than 32 is success 0 The operating system is out of memory or resources. 2 The specified file was not found. 3 The specified path was not found. 11 The .exe file is invalid (non-Win32® .exe or error in .exe image). 5 The operating system denied access to the specified file. 27 The file name association is incomplete or invalid. 30 The DDE transaction could not be completed because other DDE transactions were being processed. 29 The DDE transaction failed. 28 The DDE transaction could not be completed because the request timed out. 32 The specified dynamic-link library was not found. 31 There is no application associated with the given file name extension. This error will also be returned if you attempt to print a file that is not printable. 8 There was not enough memory to complete the operation. 26 A sharing violation occurred Examples: 1- To create a field that will accept a web address and open the browser on that web address Create a field on your form called URL ( text 255) On the LostFocus event for that field put the following script: define “URL” text 255 . define “retcode” number . URL := URLFld.Value . if firstc(URL,4) not= “www.” then URL := concat (“www.”,URL) . end retcode := ShellExecuteA(0,”open”,URL,”",”",1). As the user exits the field the browser will open and go to the web address entered 2- To send an email Assuming that the email address required is in a field called MailFld (you could hard code the mailto address if you what to create the equivalent of a mailto button on a web page). Create either a text object or a button and put the following script on the clicked event. As the object is clicked the default mail program will open with all of the details already entered and ready to send. Any of the details can be omitted (for instance if you don’t want the body text automatically entered leave out mailbody) define “mailstr” text 255 . define “mailto” text 255 . define “mailcc” text 255 . define “mailsubject” text 255 . define “mailbody” text 255 . define “retcode” number . mailto := MailFld.Value . mailcc :=concat(“CC=”,”ccto@test.com”) . mailsubject := concat(“Subject=”,”Mail Subject”) . mailbody := concat(“Body=”,”Mail Body Text”) . mailstr := concat(“mailto:”,mailto,”?”,mailcc,”&”,mailsubject,”&”,mailbody) . retcode := ShellExecuteA(0,”open”,mailstr,”",”",1). 3- To print a document define “retcode” number . define “cFileName” Text . cFileName = “c:\filename.doc” . retcode := ShellExecuteA(0,”print”,cFileName,”",”",1) Note: If cFileName is not a document file, the function will fail.
Published: 19 July 2012
How to create a shortcut to your DataEase application
How to create a shortcut to your DataEase application In order to run your application automatically, create a shortcut on your desktop, to “DataEase.exe” found in your DataEase software folder after installation. Next, right-click the shortcut and from the pop-up menu, select [Properties]. In the [Properties] window, select the “Shortcut” tab and make the following changes to the text in the target field: [full path to file "DataEase.exe"] [full path to your application folder] [application Name] [user name - optional] [password - optional] For example: “C:\Program Files\DataEase7.2\DataEase.exe” “P:\dataease 7\data” “Application Name” “Username” “Password”.
Published: 19 July 2012
How to add/modify users and change the access levels
How to add/modify users and change the access levels In order to setup user names and passwords you must first open the application you want to setup these login details for. The below steps outline what you need to do once logged into your application: 1) Select menu option Application >> Users; 2) The “Users” form should then be displayed; 3) Create/Modify new users and their security levels by inputting/modifying the name, password and security level (from Low to High) and optionally select a start-up document (form, procedure or report) if required; 4) Press F2 to save a NEW user and F8 to modify an existing user (you can also use the equivalent toolbar and menu options); 5) Repeat steps 4 to 5 till you add/modify all users;
Published: 19 July 2012
How to perform a DataEase Backup of your application
How to perform a DataEase Backup of your application 1) Ensure ALL users but 1 high level user is logged into the application; 2) Select menu option: Application -> Utilities -> Backup; the “Backup” dialog window should be displayed; 3) In the “Backup Destination Directory”, type or browse to the folder you want your application backed up to; 4) Ensure the relevant “Data Backup Option” is selected (default is “All Data”); 5) Click <OK> and the backup should start processing; 6) If message “Backup Completed. Terminated Normally. 0 Total Error(s)”, this indicates your application was backed up successfully. Click <NO>.; 7) If a message other than that shown in step 6 of above is displayed, click <YES> to display the log file and scroll through the list to identify the error. Resolve the error then follow steps 1 – 4 again.
Published: 19 July 2012
How to Restore an application
How to Restore an application In order to Restore a backed up application: 1- Create a DataEase application by choosing File>>New Application. DataEase opens the “New Application” dialog. Select an empty directory and enter a filename. Click OK; 2- Choose Application>>Utilities>>Restore Application. DataEase opens the “Restore” dialog; 3- Enter the directory with the backed up application in the Restore Source Directory box; 4-If you want to store the system messages in a file, check Log Messages to File. DataEase displays a default directory and default log file in the Message Log File box; 5- Choose an Error Handling option: Ignore Error & Continue, Cancel, or Decide When Error Occurs; 6- Click OK to close the dialog. If you are restoring an application from floppy diskettes, DataEase displays a dialog asking you to insert the first restore diskette. If you insert a diskette in the wrong order, DataEase displays a dialog asking you to insert the correct diskette; 7- Insert the diskette in the floppy drive and click OK. DataEase restores the application you backed up and overwrites the new application. DataEase displays a dialog during the restore and another dialog when the restore is complete. If you entered a log file in step 4, the dialog asks if you want to view it; 8- Click OK to close the current application, or click Yes to view system messages. If you view the messages, double-click on the control box to close the window and the current application. NOTE: After you restore an application, DataEase closes it and displays the Desktop Menu. To open the restored application, choose File>>Open Application.
Published: 19 July 2012
How to export data from your DataEase for Windows application
How to export data from your DataEase for Windows application The DataEase export utility lets you export data from a DataEase application to another DataEase (DOS or Windows) application or another software program. 1. Open the form or table that contains the records you want to export in [User View]; 2. Select menu option: File>>Export; the Export Data dialog should be displayed; 3. Select an Export Format Type (Variable Length Text, Fixed Length Text, or Lotus 1-2-3); 4. Type an Export File Name, including the drive letter and directory path. Optionally, you can click and search your directory structure for a previously defined export file; Note: the below steps are optional: 5. Un-tick “Include Field Names” if you do not want to include the name of each selected field as the first record in the export file; 6. Choose a Field Separator character from the drop-down list, or choose Other and type the desired character in the entry box. Be sure to select a character that does not appear in the data. This option is only available if you choose the Variable Length Text export format; 7. Choose a Record Separator character, or choose Other and enter a character that does not appear on the list. Be sure to select a character that does not appear in the data. This option is only available if you choose the Variable Length Text export format; 8. Click the Options button, then choose the name of the Table that contains the records you want to export; 9. If the target program requires a special Text Delimiter in addition to the Record Separator, choose one from the drop-down list or choose Other and enter another character; 10. Choose which records (Selected Records) to include in the export file: Current, All, or Range. If you choose Range, enter the first and last record numbers in the text boxes; 11. Remove any Selected Fields that are not required for the export. Click OK. After you close the Export Data dialog, DataEase immediately begins creating the export file. While this process is taking place, DataEase displays a message box that tracks the progress of the export. Click Cancel or press Esc to abort the export process.
Published: 19 July 2012
How to Import Data into a DataEase Table
How to Import Data into a DataEase Table DataEase lets you import data from other versions of DataEase and from other DOS and Windows programs, such as Lotus 1-2-3 and dBASE. You can import data into any database table that has columns defined to match the size and data type of the incoming data: 1- Choose File>>Import. DataEase displays the “Import Data” dialog; 2- Choose the Destination table, then choose the Import file format; 3- Specify the path and filename of the source file; If the source file is stored in the application directory, you don’t need to specify a path. You can click Browse to search for the source file. 4- Specify whether the source data is organized by Field Name or Field Order; If the source file includes field names in the first record, accept Field Name (the default). If the first record contains data values, select Field Order. When you import records organized by Field Order, fields in the source file must appear in the same sequence as in the destination table. 5- Specify which characters are used as field and record separators (for Variable Length Text format only). To specify the character used to separate fields or records, choose the appropriate character from the Field Separator or Record Separator drop-down list in the “Import Data” dialog. If the appropriate character does not appear on the list, select Other, then type the character in the entry box.6. Click Run. DataEase closes the “Import Data” dialog, imports the records, and displays the progress of the import in the Status Bar. Note: Once you click Run, you cannot cancel or abort an import.
Published: 19 July 2012
How to Create an Object Style
How to Create an Object Style Instead of individually changing the display attributes for each document, you can define a set of display attributes, give it a style name, and then apply it to objects one by one with a single mouse click. 1. Highlight the object on the screen that you want to use as the template for the style; 2. If you want to modify the appearance of the object before you create the style, double-click on the object to display the “Display Attributes” dialog; 3. When you are finished modifying the display attributes, click OK; 4. Choose Objects>>Style>>Create; 5. DataEase displays the “Create a Style” dialog; 6. Type a name for the style and click OK; Note: if you want DataEase to automatically assign this new style to each new object you create, tick the “Make Default” check box. 7. DataEase assigns (or tags) the object with the new style; 8. To save the new style to the current Style Sheet, choose File>>Save Style Sheet, then press OK.
Published: 19 July 2012
How to create a QUICK Report
How to create a QUICK Report You can create a report simply by using the Query By Model (QBM) which lets you retrieve data from several tables in one report. QBM also lets you specify selection criteria and sort order, determine how records are grouped, and create statistical fields: 1. Choose File>>New>>Report; 2. Choose a Style Sheet and the database table that will be the primary data source for the report; 3. Click on the Query (Query By Model) button in the New Document dialog; 4. When DataEase opens the Query By Model dialog, the primary database table is displayed. Double-click the columns to use as fields in the report document. Within the Query By Model dialog, you can add tables, select some or all columns from each table, select specific records, as well as group, sort, and summarize the report data; 5. After you choose the tables, columns, and statistics to display in the report, click OK. DataEase displays the Layout Options dialog; 6. Choose the Field and Record Layout that you require and click OK. DataEase automatically creates the report and displays the selected layout in a new window in Designer View; 7. To run the report and view the data, switch to User View. DataEase displays the Print dialog; 8. Choose Window as the destination and click OK. DataEase displays the report data according to the specification built using QBM. or… Print the report on paper, by choosing Printer as the destination in the Print dialog instead of Window.
Published: 19 July 2012
How to get and set the default printer automatically
How to get and set the default printer automatically With DataEase you can get the default printer name and also set a default printer automatically as following: Step 1: Create following CDFs: 1- Function Name: GetDefaultPrinterA CDF Library Name: Winspool.drv Return Type: Long Parameters: 1.Name: prtNameBuffer Type: Long 2.Name: prtNameSizeBuffer Type: Long 2- Function Name: SetDefaultPrinterA CDF Library Name: Winspool.drv Return Type: Long Parameters 1.Name: prtName Type: String 3- Function Name: RecordSave CDF Library Name: dfwacts.dll Return Type: Int After creating those CDFs, please close the application and reopen it again (to register the CDFs). Step 2: Create a new form with one field. Form name: GetDefaultPrinter. Field name: ‘DefaultPrinterName’ data-type: Text 255, Prevent Entry Create a button with caption “Click Here to Get the Default Printer Name”. Right-click the button and select OML from the pop-up menu and type the following: define “BufName” text 49 . define “BufLen” text 4 . define “prtName” number . define “prtLen” number . define “retval” number . BufName := “1234567890123456789012345678901234567890123456789″ . Buflen := “1″ . — Ascii 49 prtName := addressof(BufName) . prtLen := addressof(BufLen) . retval := GetDefaultPrinterA( prtName, prtLen ) . DefaultPrinterName.Value := BufName . retval := RecordSave () . Now save the form and return to the User View (or press F4). In the user view click the button to get your default printer name and place it into the field. Step 3: Create a new form with one field: Form name: SetDefaultPrinter Field name: “PrinterName” , data-type: text and length 255 Create a button with caption “Type the Printer Name You want to set. Click this button to set the Default Printer”. Right-click the button and select OML from the pop-up menu and type the following: define “retval” number . retval := RecordSave () . retval := SetDefaultPrinterA (PrinterName.Value) . Now save the form and return to the User View (or press F4). In the user view enter the printer name exactly as it appears under control panel >> Printers and Faxes.
Published: 19 July 2012
How to browse for files on your computer
How to browse for files on your computer First, create the following CDF: Function Name: GetFileName CDF library name: GetFileN.DLL Return type: String Create 3 Parameters: 1- Name: filtstr Type: String 2- Name: delim Type: String 3- Name: initdir Type: String You should then close and re-open your DataEase application (to register the CDFs). Create field “BrowseFile” with data-type text and length 100; add a button with caption “Browse”. Right-click the button and select OML from the pop-up menu and type the following: BrowseFile.Value := GetFileName(“”,”" ,”c:\” ) .
Published: 19 July 2012
Delete All Files From a Specific Location
Delete All Files From a Specific Location First, create the following CDF: Function Name: ShellExecuteA CDF library name: SHELL32.DLL Return type: Int Create 6 Parameters: 1-Name: Hndwin Type: Int 2-Name: cAction Type: String 3-Name: cFileName Type: String 4-Name: cParams Type: String 5-Name: cDir Type: String 6-Name: nShowWin Type: String Close and re-open your DataEase application (to register the CDF). Copy and paste the following sample DQL code into a new procedure (amend where necessary such as the directories). Compile and run: define temp “tRet” number . message “Delete all files from C:\Files? | Click to continue or to cancel” window “Delete Files”; 4; 4; 0 . if current status = 6 then tRet := ShellExecuteA(0,”Open”,”cmd.exe”,” /C del C:\Files\*.**”,”C:\Files”, 0) . end
Published: 19 July 2012
How to open a WORD document from a button in DataEase
How to open a WORD document from a button in DataEase First, create the following 2 CDFs: 1- Function Name: ShellExecuteA CDF library name: SHELL32.DLL Return type: Int Create 6 Parameters: 1-Name: Hndwin Type: Int 2-Name: cAction Type: String 3-Name: cFileName Type: String 4-Name: cParams Type: String 5-Name: cDir Type: String 6-Name: nShowWin Type: Int 2- Function Name: IsFile Description: Determines if a file exists CDF library name: OSFUNC.DLL Return type: String Create 2 Parameters: 1- Name: Path/File Name Type: String 2- Name: Attributes to Find Type: Int You should then close and re-open your DataEase application (to register the CDFs). You will then need to create a field “DocumentPath” with data-type text and length 100; and a button with caption “Open Document”. Right-click the button and select OML from the pop-up menu and type the following: define “tTemp” number . if IsFile(DocumentPath,00)= “false” then message “The file does not exist” window. else tTemp := ShellExecuteA(0,”open”,DocumentPath,”",”",1) . end.
Published: 19 July 2012
How to Install Documents Using an Installation Command File
How to Install Documents Using an Installation Command File Creating An Installation Command File You can create an Installation Command file using an ASCII text editor, such as Windows Notepad. To tell DataEase which documents to install in the current application, type the relevant commands in the Installation Command file. These commands include the document filename and the complete DataEase-assigned DOS filename for each document which can be identified by viewing the “Document Info” table, a built-in system table. Simply select menu options: Application -> Status -> Documents. The Installation Command file you create can contain as many commands as you require. A command can occupy more than one line, and a line can contain more than one command. After you complete the Installation Command file, save it with the filename extension .DIW. Installation Command File Commands; To.. Enter this command in the file… Example Install a document that uses a table install <document name> from: <DOS filename.FRM> install MEMBERS from: MEMBCAAA.FRM ; Install a document that defines a table install <document name> from: <DOS filename.FRM> table: <dos filename.TDF> ; install MEMBERS from: MEMBCAAA.FRM table: MEMBCAAA.TDF ; Install a document that defines a table and the data associated with the table install <document name> from: <DOS filename.FRM> table: <DOS filename.TDF data: <DOS filename.DBM> ; install MEMBERS from: MEMBCAAA.FRM table: MEMBCAAA.TDF data: MEMBCAAA.DBM ; Install additional data, such as Relationships, User data, and Custom Functions install <system filename> from: <DOS filename.DBM> ; install Relationships from: RELACAAA.DBM ; Replace a document in the current application with a new version. Replace <document name> from: <DOS filename.FRM> ; replace MEMBERS from: MEMBCAAA.FRM ; Note: The .FRM file in the replace statement must have the same filename as the .FRM file that you want to replace (with the exception of the fifth letter in the filename). Replace a document and table in the current application with a new version. Replace <document name> from: <DOS filename.FRM> table: <DOSfilename.TDF> ; replace MEMBERS from: MEMBCAAA.FRM table: MEMBCAAA.TDF ; Replace a document, table and data in the current application with a new version. Replace <document name> from: <DOS filename.FRM> table <DOS filename.TDF> data: <DOS filename.DBM> ; replace MEMBERS from: MEMBCAAA.FRM table: MEMBCAAA.TDF data: MEMBCAAA.DBM ; Replace data, such as Relationships, User data, and Custom Functions in the current application replace <table name> data: <DOS filename.DBM> ; replace RELATIONSHIPS data: RELACAAA.DBM ; Note: The .DBM file in the replace statement must have the same filename as the .DBM file that you want to replace. Add remarks to a command file REM <enter any text here> REM This Installation Command File REM installs the MEMBERS form into REM the current application. An example Installation Command file is shown below: Install EMPLOYEES from: EMPLCAAA.FRM table: EMPLCAAA.TDF ; Install SALARY HISTORY from: SALACAAA.FRM ; Replace Relationships from: RELACAAA.DBM ; Install MEMBER LISTY from: MEMBCAAA.FRM ; Replace INPUT RESERVATIONS from: INPUCAAA.FRM ; Install FAMILY MEMBERS from FAMICAAA.FRM table: FAMICAAA.TDF data: FAMICAAA.DBM ; This Installation Command file tells DataEase to: - Install the EMPLOYEES form and table into the current application. - Install the SALARY HISTORY form into the current application. (no table). - Replace the current application’s Relationships with a new relationships file, named RELABAAA.DBM. - Install the MEMBER LISTY Procedure into the current application. - Replace the current INPUT RESERVATIONS Procedure with the new one INPUCAAA.FRM. - Install the FAMILY MEMBERS form into the current application with its table and data. How to Create and Run an Installation Command File 1- Open an ASCII text editor, such as Windows Notepad; 2- Enter the commands you require for the installation. Refer to the “Installation Command File commands” table; 3- Save the file in the ASCII text editor with the filename extension .DIW.; 4- To execute the file in DataEase, choose menu option: Application>>Utilities>>Install. DataEase displays the “Install” dialog; 5- Choose the install type <Install From Command File>. DataEase displays the “Command File Name (DIW)” text box and the “DIW Browse” button; 6- Click the “DIW Browse” button. DataEase displays the “Script File” dialog which lets you search for and select the Installation Command file you want to install; 7- Select the Installation Command filename and click OK; 8- DataEase also lets you enter the command filename and pathname manually in the “Command File Name (DIW)” text box; 9- To store system messages in a file, check “Log Messages to File” option; 10- Click OK in the “Install” dialog. DataEase installs and/or updates the documents specified in the command file. NOTE: As you create the Installation Command file, be sure to insert a space after each colon and before each semicolon.
Published: 19 July 2012
How to Define a Relationship
How to Define a Relationship The “Relationships” form lets you define a link between any two database tables, providing the tables contain one or more identical columns (called Match fields). When tables are related, you can combine data from these tables in a form or report and use the DataEase lookup feature to automatically enter data in record entry forms built over these tables. 1. Choose menu option: Application>>Relationships. DataEase displays the “Relationships” form; 2. Click the drop-down arrow to the right of the field beneath “Records in”. Choose the name of the database table for the first form. Press <Tab>. Click the drop-down arrow beside the next field, and choose the name of the second table. Press <Tab>; 3. Enter the Match field(s) on which the relationship is based; 4. Click the drop-down arrow, choose the name of the Match field for the first form in the first column, and press <Tab>; 5. Click the drop-down arrow, choose the name of the second Match field, and press <Tab>; 6. Enter any other pairs of Match fields you want to use; 7. Type the Custom Relationship Name (optional, but recommended); 8. If the two forms constitute a Multiform, choose the Referential Integrity option in the Referential Integrity field (under the Sub-form table name); 9. Click <Save> at the bottom of the Relationships form, and then click <Done> to close the form.
Published: 19 July 2012
How to Install a Single Document
How to Install a Single Document DataEase lets you copy one or more documents from one DataEase application into another. You can also copy one or more DataEase Express for Windows documents into a DataEase application without affecting the source application. 1. Choose menu option: Application>>Utilities>>Install; 2. Choose the install type option “Single Document”; 3. Click on the “Documents” button. DataEase displays the “Document” dialog, which lets you search for the document you want to install. Alternatively, DataEase lets you manually enter the filename and pathname in the Document File Name (.FRM) text box; 4. In the “Document” dialog, select the document you want to install and click <OK>. DataEase enters the document name in the “Document File Name (.FRM)” text box. If the form defines the table, DataEase enters the table name in the “Table Definition File Name (.TDF)” text box; 5. To include data files with the form and table, check “Include Data for table” option. DataEase automatically displays the data filename in the “Data File Name (.DBM)” text box; 6. To store the system messages in a file, check “Log Messages to File” option; 7. Click <OK>. DataEase installs the selected document and displays the Install Finished dialog. Click <Yes> to view the Message Log File, or click <No> to close the dialog.
Published: 19 July 2012
Modifying and Deleting a Record
Modifying and Deleting a Record You can modify a record by entering new data in an empty field, or by editing data in an existing field. To modify data in a field, click in the field and type the change. DataEase also lets you delete unnecessary records. To Modify a Record: 1. Go to the record using the “Goto” buttons on the Toolbar, or by pressing Shift + F3 until you find it; 2. Tab to the field you want to modify. Choose Edit>>Clear Field or press F6; 3. Enter the new data into the field; 4. Choose File>>Save or press F8. DataEase saves the record. To Delete a Record: 1. Go to the record you want to delete using the “Goto” buttons on the Toolbar, or by pressing Shift + F3 until you find it; 2. Choose Edit>>Delete Record or press F7. DataEase displays the “Delete Record” dialog; 3. Click OK. DataEase deletes the record.
Published: 19 July 2012
Modifying and Deleting a Record
Modifying and Deleting a Record You can modify a record by entering new data in an empty field, or by editing data in an existing field. To modify data in a field, click in the field and type the change. DataEase also lets you delete unnecessary records. To Modify a Record: 1. Go to the record using the “Goto” buttons on the Toolbar, or by pressing Shift + F3 until you find it; 2. Tab to the field you want to modify. Choose Edit>>Clear Field or press F6; 3. Enter the new data into the field; 4. Choose File>>Save or press F8. DataEase saves the record. To Delete a Record: 1. Go to the record you want to delete using the “Goto” buttons on the Toolbar, or by pressing Shift + F3 until you find it; 2. Choose Edit>>Delete Record or press F7. DataEase displays the “Delete Record” dialog; 3. Click OK. DataEase deletes the record.
Published: 19 July 2012
How to Print a Document Layout
How to Print a Document Layout 1. Choose File>>Open and click the “Designer View” checkbox. Highlight the document you want to print and click OK; 2. Choose File>>Print. DataEase opens the “Print” dialog; 3. To print selected pages, enter the number of the first page in the From text box and the number of the last page in the To text box; 4. Click OK. DataEase prints the Document Properties first, the Document Layout next, and information on each object on the remaining pages.
Published: 19 July 2012
How to Create a Form and Table
How to Create a Form and Table When you choose <New Table> to create a form that defines a table, DataEase creates a corresponding column in the database table for each field you add to the document. 1. Choose File>>New>>Form; 2. Choose the Style Sheet you want to use; 3. Double-click on <New Table> in the Select a Database Table list box. DataEase displays the “New Table” dialog; 4. Enter a name for the form and table of up to 20 characters and click OK; 5. Create all the fields to be included and save the document; 6. Optionally, click on the Record background and select the “Layout Options” button to alter the Field Layout, include multiple records, or include any of the available Appearance options; 7. Continue designing the layout of the form creating any additional objects you want to include; 8. Choose File>>Save to save the form and table.
Published: 19 July 2012
How to Create a Form over an Existing Table
How to Create a Form over an Existing Table When you choose an existing table to create a form that uses a table, DataEase duplicates all the columns in the selected table. When you create a form that uses a table, you can delete fields from the layout that you do not need in the new document, but you cannot modify a column definition, delete a column, or add a new column in the underlying table. You can create multiple forms over a single database table, then customize each form for a specific group of users. When a user enters or changes records, DataEase updates corresponding rows in the underlying table. 1. Choose File>>New>>Form; 2. Choose the Style Sheet you want to use; 3. Choose a table name from the Select a Database Table list box and click OK. DataEase displays the “Layout Options” dialog; 4. Alternately, you can fill in the “New Document” dialog and click Query to use the “Query By Model” dialog to choose the tables and columns you want to include in the form; 5. Choose the Field Layout and use the Record Layout Preview Plus and Minus Sign buttons to indicate the number of records to display; 6. Check any Appearance option, such as a title, that you want to include in your layout; 7. Click OK. DataEase automatically arranges all the table columns on your new layout according to the specified Field Layout; 8. Continue designing the layout of the form, creating any additional objects you want to include; 9. Choose File>>Save As. Name the new form and click OK.
Published: 19 July 2012
How to Change Which Form Defines a Table
How to Change Which Form Defines a Table 1. Open the form that defines the table; 2. To find the form that defines a table, maximize the Application Catalog; 3. Choose Document>>Properties. DataEase opens the “Document Properties” dialog; 4. Click on the “Defines Table” checkbox to deselect it; 5. Click OK to close the dialog; 6. Open the form that you want to define the table; 7. Click on the “Defines Table” checkbox to select it; 8. Click OK to close the dialog.
Published: 19 July 2012
How to Create a Custom Tab Order
How to Create a Custom Tab Order 1. Choose Document>>Set Tab Order. DataEase displays the document with an opaque oval over each field, button, and graphic image that has an action. DataEase displays the specified tab order number of each Document object inside the oval; 2. Click on the ovals in the order you want the cursor to move in User View. If you prefer, you can type the tab order number directly in each oval; 3. Choose Document>>Set Tab Order. DataEase returns the document to normal Designer View; 4- Choose File>>Save to save the Tab Order you have created.
Published: 19 July 2012
How to Change a Document's Initial Action When Opened in User View
How to Change a Document's Initial Action When Opened in User View 1. Open the document in Designer View, choose Document>>Properties. DataEase opens the “Document Properties” dialog; 2. Choose one of the following as an initial action: · New Record: to display a blank record. · First Record: to display the first record in the document. · Last Record: to display the last record in the document. · Table View: to display the records in Table View. · Query by Form: to enter criteria to select a subset of the records in the document. 3. Click OK.
Published: 19 July 2012
How to Add a Pull-down Menu Option for a Document
How to Add a Pull-down Menu Option for a Document 1. Open the document in Designer View. Choose Document>>Custom Menu. DataEase opens the “Menu Editor” dialog; 2. Highlight the item below the menu name and click Insert. DataEase inserts a space under the menu name; 3. If you want the menu item to open a cascade menu, select Menu. If you want the menu item to execute a command, select Command, choose an action from the drop-down list, and, if necessary, enter a parameter; 4. Enter the item name in the Menu Text box as you want it to appear in the menu. DataEase automatically enters this name in the Sample Menu; 5. Click the right arrow button once to move the item to its correct level in the menu hierarchy; 6. In the Menu Text box, type an ampersand (&) before the keyboard equivalent character; 7. In User View, you can press Alt and this character to choose the menu; 8. In the Title Help box, enter a message that will appear in the Title Bar when the option is highlighted in User View; 9. To add an accelerator key combination, check the Alt, Ctrl, and/or Shift key boxes, and then select an item from the drop-down list; 10. In User View, you can use this keyboard accelerator to execute this command instead of choosing the option from the menu. DataEase automatically displays this accelerator on the menu; 11. If the menu item opens a cascade menu, return to step 2 to add menu options. If the menu item directly executes a command, select an action, and, if necessary, enter a parameter; 12. Repeat steps 2-9 until all menu options have been inserted. Click OK to close the dialog and return to the document. DataEase displays the menu(s) in User View.
Published: 19 July 2012
How to Copy a Document's Pull-down Menus to Another Document
How to Copy a Document's Pull-down Menus to Another Document 1. Open the document with the custom pull-down menus in Designer View. Choose Document>>Custom Menu. DataEase opens the “Menu Editor” dialog; 2. Highlight all the menu names and options that you wish to copy in the Sample Menu and click Copy. DataEase copies the menus to the Windows clipboard; 3. Click OK to close the dialog; 4. Open the document in which you want to paste the custom pull-down menus in Designer View. Choose Document>> Custom Menu. DataEase opens the “Menu Editor” dialog; 5. Place the cursor below the menu name or option where you want to paste the pull-down menus and click Paste. DataEase inserts the pull-down menus in the Sample Menu; 6. Click OK to close the dialog and return to the document. DataEase displays the revised menu(s) in User View.
Published: 19 July 2012
How to Sort Records in a Document
How to Sort Records in a Document 1. Open the document in User View, choose Query>>Sort Records. DataEase displays a blank form; 2. Choose a sort order by choosing Query>>Ascending to display records from the lowest to highest value in the specified Sort field OR Descending to display records from the highest to lowest value in the specified Sort field; 3. To choose a Sort field, click on the field or press the Spacebar when the cursor is in the field, DataEase displays a 1 in that field to show it is the first sort level; 4. To sort records by additional fields, repeat steps 2 and 3; 5. To view the selected records, choose View>>Table. To view just the first record, choose Goto>>First Record. NOTE: To modify the sort specifications, select a field, type a new sort level number, and insert (or delete) a – (minus sign) to specify descending or ascending order
Published: 19 July 2012
How to create a Tab Object
How to create a Tab Object 1. Open the document in Designer View, click the “Tab Control” icon and position the Tab Control on your document. Stretch the control so that it’s roughly the right size – you can always enlarge or reduce it in size later; 2. The “Tab Control” Dialog Box, now appears. Click on the Create button to create a Tab. So if you want the Control to have four tabs, click the Create button four times; 3. Move your cursor into the Name field and overwrite the text labels Tab1, Tab2, etc, with meaningful names. Populating the Tab Control Having created a blank Tab Control, you now have to populate it with objects – most obviously, fields. When an object is placed in a Tab Control, it can either common to all Tabs in the Control, or unique to a single Tab in the Control. 1. To create a common object, create the object outside the Tab, and then copy, or cut and paste, or drag and drop, the object on to the Tab Control. The object will now appear in every Tab in the Control. 2. To create a unique object, create the object inside the Tab in which you wish the object to appear.
Published: 19 July 2012
How to Use a Derivation Formula to Calculate a Field Value
How to Use a Derivation Formula to Calculate a Field Value 1. Double-click on the Field object. 2. DataEase displays the “Field Definition” dialog. 3. Click on the “Derivation” radio button. 4. DataEase opens the “Derivation Formula” editor. 5. Enter the Derivation Formula manually, or click on a selection from the four list boxes and the numerical keypad to enter field names, relationships, functions, operators, and numbers in the formula box. 6. When you finish entering the formula, click OK. 7. DataEase checks the spelling and syntax. If DataEase finds an error, it positions the cursor at the start of the invalid word or expression. If the formula is valid, DataEase saves it as part of the field definition. NOTE: Use the numeric keypad to enter numbers into a Derivation Formula. Constant values and the associated quotation marks must be entered into a formula manually. If a Field Name or a relationship name contains more than one word, it must be enclosed in quotation marks (e.g., count of “FAMILY MEMBERS” “LAST NAME”). Otherwise, you can omit the quotation marks (e.g., highest of MEMBERS ROOMS). Constant text values, like the state abbreviation “CT” must also be entered in quotation marks.
Published: 19 July 2012
How to Change a Document's Security Setting
How to Change a Document's Security Setting The security level can prevent a user from viewing or modifying the records or layout for a document. DataEase provides three levels of security: Document-Level, Field-Level, and User-Level. The security level for a specific document or field takes precedence over each user’s security level, as defined on the User Information form. For example, if the application designer sets Modify Records to High for a form, a user with a Medium Security level cannot enter or modify the records of this form, even though users with a Medium Security Level are generally allowed to enter or modify records. 1. Open the document in Designer View, choose Document>>Security. DataEase displays the Document Security dialog; 2. To change any security level setting for a document, click on the new settings in the appropriate drop-down list boxes; 3. Click OK to close the dialog. Note: The security level for a document that defines a table takes precedence over the security level for a document that uses a table. Invalid security level settings do not appear as choices in the Document Security dialog.
Published: 19 July 2012
How to Generate Statistics Using QBM
How to Generate Statistics Using QBM 1. Open the document in Designer View, choose Document>>Query By Model. DataEase opens the “Query By Model” dialog; 2. Click on the column you want to use to generate summary statistics for the data displayed in the document; 3. Click on the <Summarize> button; 4. Choose one or more of the statistical operators from the list DataEase displays; 5. Click OK to close the dialog. DataEase places a new summary field on the appropriate form object(s). The new field is named after the field it summarizes.
Published: 19 July 2012
How to Use DQL Selection Criteria in QBM
How to Use DQL Selection Criteria in QBM 1. Open the document in Designer View, choose Document>>Query By Model. DataEase opens the “Query By Model” dialog; 2. Click any column or on the title of the filtered table; 3. Click the Select “This Table’s Records If” button. DataEase displays the previously entered selection criteria as a DQL expression; 4. View the criteria and then if the criteria is correct, click OK; 6. If you want to change the selection criteria, enter the new criteria directly in the box using any valid DQL expression. When you click OK, DataEase uses the new criteria to find records; 7. Click OK to close the dialog.
Published: 19 July 2012
How to Enter a Validation Formula to a Field Object
How to Enter a Validation Formula to a Field Object The Validation Formula lets you verify a field entry by establishing a range of acceptable values. When you enter a value in the field, DataEase checks the value to make sure that it falls within the specified range. A Validation Formula can contain any combination of constant values, field values, lookup formulas, relational statistical operators, and any of the comparison operators (=, <, >, <=,>=, between…to, and not) 1. Open the document in Designer View, double-click on the Field object; 2. DataEase displays the “Field Definition” dialog; 3. Click on the Validation radio button. DataEase opens the Validation Formula editor; 5. Enter the Validation Formula manually, or click on a selection from the four list boxes and the numerical keypad to enter field names, relationships, functions, operators, and numbers in the formula box; 6. When you finish entering the formula, click OK. DataEase check the spelling and syntax. If DataEase finds an error, it positions the cursor at the start of the invalid word or expression. If the formula is valid, DataEase saves it as part of the field definition. NOTE: Constant values (and any associated quotation marks) must be entered into the formula manually. If a Field Name or a relationship name is more than one word long, it must be enclosed in quotation marks. A constant text value, like the last name “Smith” must also be entered in quotation marks. Rules for Constant Values A constant value must follow the rules listed below, so DataEase can distinguish constants from Field Names and differentiate different types of constants. Field Type Examples Comments Text “James*”"James Ivory” Enclose in quotation marks. Numeric String 2033748000 Do not type formatting characters. Number, Currency 1234.1212- 0.34 Do not type commas.
Published: 19 July 2012
How to Define a Choice List Field
How to Define a Choice List Field 1. Open the document in Designer View, choose Objects>>Field; 2. Once you specify the Field area on the Record object, DataEase displays the “Field Definition” dialog; 3. Choose “Choice List” as the Data Type; 4. Choose the Visual Control you want: RadioBox to displays choices as radio buttons OR ListBox to displays choices in a drop-down list; 5. To add a choice to the list, type the text for the first choice as you want it to appear on the screen. Click Add; 6. DataEase adds the last choice entered at the end of the list; 7. Type a List Name for the Choice List then press Ok to close the dialog.
Published: 19 July 2012
How To Setup an ODBC Connection to a SQL Server Database
How To Setup an ODBC Connection to a SQL Server Database The following Steps will explain how to setup an ODBC (Open Database Connectivity) Connection to a SQL Server Database. Note: The used Operating system in the following steps is “XP” and the version of SQL server is “SQL Server 2005″. 1- Go to your “Control Panel”, double-click “Administrative Tools” and then double-click “Data Sources (ODBC)”; 2- In the “Data Sources Administrator” dialog box, select the “System DNS” tab. This lists all the ODBC connections. Click the “Add” button; 3- A list of drivers will be presented, scroll down until you find the driver for the database which is “SQL Server”, then click “Finish”; 4- The “Data Source SQL Server Setup” window appears, enter a Name for your ODBC connection (This can be any name you desire and will be used later) i.e. <SQL Data Source>, then enter a Description for the data source (this can be any descriptive information you want). 5- Then, enter the server name for the SQL Server, click on “NEXT”; 6- Click the appropriate radio button for your connection type; If you access your SQL Server Database using your standard Windows login, keep the default option for “With Windows NT Authentication…”, otherwise, if you access your SQL Server Database using a SQL Server Login, click on the radio button option for “With SQL Server Authentication…” Then, you must enter your SQL Server Login ID and Password. 7- Once you finish, click on “Next”; 8- Click on the box for “Change Default Database To:”, then, in the drop-down menu, select your SQL Server database name. Then click on NEXT; 9- In the next window, keep the default options as they are, so do not make any changes and click on the “Finish” button; 10- In the “ODBC Microsoft SQL Server Setup” Window, click on the Test Data Source button to test connection; 11- If your connection setting is correct, you should see a message “TESTS COMPLETED SUCCESSFULLY.”, if the test failed, you will need to click the “BACK” buttons to determine which setting is wrong and then repeat the above steps.
Published: 19 July 2012
Installation - Will DataEase 7.2 overwrite my old DataEase version?
DataEase 7.2 is designed to be installed parallel to older versions of DataEase and will not upgrade or delete your old DataEase. You will be able to run DataEase 7.2 and your old DataEase at the same time, and you can run separate copies of your application for test purposes. Remember always to take a backup before you use 7.2 on an exsisting 7.x application as 7.2 will automatically migrate this application and render it incompatible with pre 7.2 versions.
Published: 20 July 2012
Install - When I try to install 7.2 it does not accept my license number. What shall I do?
When I try to install 7.2 it does not accept my license number. What shall I do? We released 7.2 to a limited amount of 7.x users some time ago. This version would accept 7.1 license numbers. From version 7.2.661 you will need a new license number to install 7.2. You can obtain this number by registering on this website and registering your 7.x licenses. When you have completed the registration you will be issued a new license number that will also be mailed to your registered email address.
Published: 20 July 2012
Upgrade - Do I have to pay to upgrade from 7.0 and 7.1 to 7.2?
Do I have to pay to upgrade from 7.0 and 7.1 to 7.2? No. If you have bought a valid 7 license you will be able to upgrade this and any other 7 licences to 7.2 for free. You will have to register all your licenses in our license register, and we will peform a manual check and mail you your new license number.
Published: 20 July 2012
Citrix - I am running DataEase 7.2 over CITRIX and I get user conflict, what do I do?
I am running DataEase 7.2 over CITRIX and I get user conflict, what do I do? DataEase normally use your computer name to identify your session on a network. WHen you run DataEase in a CITRIX environment they will all use the same computer name, hence the conflict. To avoid this we have re-introduced DENAME. You no longer need to set a DENAME normally, but if you do the DENAME will override the computer name as the session identifier. You can do this in a .BAT file that executed Dataease.exe after, or more elegantly in the User startup script on the CITRIX server. See below. Option Explicit Dim StartTime, StopTime StartTime = now '=============================================================================== 'Declarations '=============================================================================== Dim oNet, oWMI, oShell, oProc, oUsers, oUserDom, objUser Dim uName, uSamAcc, uGN, uSN, uCompany, uDepartment, EnvVar, uTitle, uTSHdrive Dim oLogonServer, dfs, dfsShort, mDrive Dim oFSO, oShell2 Dim StoreLocation, sRegionalSettings Dim sHomeShare, sMyDocPath Dim sServerCode Dim strKeyPath Dim SysEnv Const HKEY_CURRENT_USER = &H80000001 Const ETEX_PARAMS = "HKLM\Software\EtexGroup\Parameters\" Set oFSO = CreateObject("Scripting.FileSystemObject") Set oShell2 = CreateObject("Shell.Application") Set oNet = CreateObject("WScript.NetWork") Set oShell = CreateObject("Wscript.Shell") Set EnvVar = oShell.Environment("Volatile") Set oProc = oShell.Environment("Process") set SysEnv = oshell.environment("USER") oLogonServer = EnvVar.Item("LogonServer") oUserDom = oProc.Item("USERDOMAIN") dfsShort = "EBM.Infra.Shared.Etex" sHomeShare = oShell.ExpandEnvironmentStrings("%HOMESHARE%") sMyDocPath = oShell.ExpandEnvironmentStrings("%HOMEDRIVE%") on error resume next Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!" & oLogonServer & "." & dfsShort & "\root\Directory\LDAP") on error goto 0 uName = oNet.UserName sysEnv("DENAME") = uName
Published: 20 July 2012
Support for extended characters like Arabic, Greek, Russian etc
. Starting with 7.2.2 DataEase will support extended character sets, and we will also gradually phase in language versions of DataEase. All 7.2 applications can be converted to supporting different character sets by including the parameter ApplicationCharset={correct charset} under [INTERFACE] in the RDRRxAAA.INI filed (Applications INI file) in the Application catalog. You will also have to have set the correct language for non-unicode applications. you find this in the control panel, Regional and Language Options, Advanced (and similar in your nativ Windows). Automatically support on NEW Application ANSI_CHARSET ApplicationCharset= 0 DEFAULT_CHARSET ApplicationCharset=1 ARABIC_CHARSET ApplicationCharset=178 GREEK_CHARSET ApplicationCharset= 161 TURKISH_CHARSET ApplicationCharset=162 EASTEUROPE_CHARSET ApplicationCharset=238 RUSSIAN_CHARSET ApplicationCharset=204 BALTIC_CHARSET ApplicationCharset=186 Supported through Manual Support (Need to copy ApplicationCharset= into RDRRxAAA.INI) SYMBOL_CHARSET ApplicationCharset=2 SHIFTJIS_CHARSET ApplicationCharset=128 HANGEUL_CHARSET ApplicationCharset=129 GB2312_CHARSET ApplicationCharset=134 CHINESEBIG5_CHARSET ApplicationCharset=136 OEM_CHARSET ApplicationCharset=255 JOHAB_CHARSET ApplicationCharset=130 HEBREW_CHARSET ApplicationCharset=177 VIETNAMESE_CHARSET ApplicationCharset=163 THAI_CHARSET ApplicationCharset=222 MAC_CHARSET ApplicationCharset=77
Published: 20 July 2012
Sorting is not correct in DataEase, what do I need to do?
Sorting is not correct in DataEase, what do I need to do? We are currently working on different language versions, and we will make them available as they are approved and tested. Sorting in different languages is controlled by the file ZTERMDEF.DBZ. You will hopefully find the correct ZTERMDEF file on our download area.
Published: 20 July 2012
Solving problems with Help Links in 7.2
Solving problems with Help Links in 7.2 As some of you might have experienced, there is a problem with accessing help in 7.2 DataEase 7.2 is published by DataEase International Ltd and not by us, which also apply to all version up to and including 7.2 So both support and maintenance is outside our purview. As a consequence we get some glitches, like the problems with the Help links in 7.2. Originally they where directed towards www.DataEase.com, which is now our domain, but the help files is now located on www.sapphiregroup.com. It should have been easy to simply forward the requests to the new domain, but due to a "stupid" mistake, the help links are pointing at dynamic paths under the main domain, and we have no possibility of re-directing these links. The solution to the problem is to update the links in your local DataEase.ini file that you find located under your DataEase program Catalogue. You change them to the following: HelpLink = http://www.sapphiregroup.com/staticfiles/helpfiles/DFW/DFW.htm HelpLinkSearch=http://www.sapphiregroup.com/staticfiles/helpfiles/
Published: 9 October 2012
Moving Live DataEase for DOS Applications to DataEase for Windows.
With the innovation of new technologies, interest is being diverted away from DOS and the era of DOS continually reaches back. While DOS applications still have their place, Windows applications are nowadays recognized as being the choice since they are more maintainable and supportable, and flexible to evolve to ever-changing business requirements. It would be very unwise to bury the existing DOS applications, and DataEase for DOS (DFD) applications in particular, since without any doubt, investments made in developing and maintaining existing DFD applications and training are considerable. Therefore the task of making the investments work today and upgrading applications has become the barest necessity. The most natural way of upgrading existing DFD applications is to convert them to DataEase for Windows (DFW) since it is very effective and time sparing. Taking into account the fact that some of the DOS applications might have been created long time ago and poorly maintained or not updated properly, the structure of such applications might have become inconsistent and weedy. It does not matter whether a DFD application is old or not and whether it is in a poor or good condition, it can be successfully converted to DFW using any of the following approaches: creating a DFW application on a one-to-one basis which is low cost and quick to implement or converting the application utilizing technical solutions aimed at optimizing databases that can be achieved by utilizing DFW resources. From our experience, one of the ways that often drastically improves performance is the DFD database normalization (For more information on data normalization, please, see the Spring 2002 issue of the @Ease Dialogue magazine.) with minor changes to the database logic. This document provides an encompassing overview of the proven methodology that can be used for converting DFD applications to DFW, and the conversion best practices and advices. Adherence to these best practices can help you avoid the majority of problems you might encounter. The phases of the conversion process are described chronologically, starting with the preparing an application to moving to DFW and continuing through the proposed solutions and implementation. Pre-Conversion Jobs The application you are about to convert can be in either DFD v.4.x or DFD v.5.x. It is on the version number that your further steps depend. Should the application be in DFD v. 4.x, it is considered best practice to upgrade it to DFD v.5.16 because DFD v.5.16 and DFW have similar underlying file structure, which considerably simplifies conversion of the application to DFW. Upgrading a DFD v.4.x application is a simple task that can be done using DFD v.5.16. So the process is DFD 4.x - DFD 5.16 - DFW. Store a master copy of the original application safely away in case it should be needed. Backup and Restore It is necessary to check that the database as supplied is in good condition, i.e. that it does not have any corruptions or damaged files. The best way to carry out this check is to undertake a backup of the application without data. This backup process should be carried out on the copy of the original application before any further work is done. Restoring the data-less application from the backup copy re-creates the application structure: DFD removes existing references to files that physically no longer exist. The verified for correctness and accuracy application structure should be saved to another folder. It is on this application that all further work will be done. DOS Application Inventory The database structure received in the result of the backup-restore operation should undergo thorough inventory. The aim of this step is to get complete information on the database contents (list of the db tables, fields and their attributes, relationships existing between the DFD tables, list of procedures and their elements, menus, list of control procedures, etc.). The information obtained should be considered as a simple initial guide to redundant elements and can be used as a basis for developing the main working document intended for the in-conversion-team usage that will help track updates and changes to the database. The document should contain minute information on each of the application entities: old names, new names, entity properties (i.e., flags, derivations, destinations, calling objects and so on), notes describing modifications (i.e., date, converter name, notes, problems, etc.) and the like. The db inventory can be carried out using an in-house or third party utility such as the IncrEase utility that greatly speeds up the inventory. You could create an Excel-based workbook, with spreadsheets grouped by entity types (Forms, Procedures, Menus, Fields, etc.). Clean up your database. The converter should thoroughly analyse the inventory information and decide which entities stated as redundant are really unnecessary or required. The entities confirmed as unnecessary (for example, menus with empty calls or choices having no action, procedures that will not be used in future, tables never filled with data and so on) should be manually deleted from the DFD database. Entity renaming One of the pre-conversion tasks concerns renaming database entities. It is vital to understand why entities need to undergo name changes in the course of conversion. The DFD and DFW database management systems use almost the same list of keywords, also known as reserved words, words that have special meanings to DFD and DFW and that are not good choices for naming database entities such as tables, fields, relationships, forms, procedures, etc. However, some of the DFD application entities, namely, fields or forms, may have names that are identical to keywords. This situation does not prevent DataEase for DOS from running the application correctly, but the DFW naming conventions prohibit using keywords as entity names. Therefore, such entities must be renamed to differentiate them from keywords. At this stage of the conversion process it is considered best practice to rename only tables of the DFD application because it is much easier to carry out renaming in DOS. Renaming DFD entities can be carried out using a third-party utility such as Jada. Avoid using spaces in names, but if you have not eliminated spaces in names and encountered problems, enclose such names in quotes. Getting Started with the Conversion After the application has undergone inventory and has been pre-processed in DFD, the converter can start working on it in DFW. If you open the application using DFW, you will see that the Catalog lists only those entities that are stored in DFD and DFW similarly: tables, relationships, users, imports and custom functions. The DFD and DFW file format of the other entities, such as procedures, menus, etc. is different. Therefore these entities are not available in DFW but their files retained in the application folder can be confusing to a user and just take up space, so they can be deleted. You should delete all non-DFW files from the your application folder. Such files are left over from the DFD and are not required in the DFW application. The files to remove are named: *.cfe , *.cfm, *.dbr, *.tde , *.eNN, where N is a number,menu?aaa.dbm (file containing DFD menus), and the following system entities: conf?aaa.dbm (Configuration file), printers.dat (Printers file) and dict?aaa.dbm (Dictionary file). Use Style Sheets DFW uses the concept of Styles. Style is a named set of display attributes (font, text colour, border size, etc.), which can be applied to any visual element of the application (button, text field, label, etc.). Styles define how elements look like: once a style is applied to an element, the element immediately derives all the display attributes of the style. With Styles it is easier for you to make elements of the same kind look the same way, which is one of the GUI consistency requirements. For example, you may create styles for buttons, ordinary text fields, required text fields, labels, etc. and then apply those styles to the corresponding application elements instead of applying repetitive formatting to each of the elements. Styles are grouped and stored in Style Sheets using distinguishable names. For instance, you may create a set of styles, which cover all the element types and save it as My Favourite Styles (physically it will be My Favourite Styles.sty database file, which can be installed and used with any DFW application). If you subsequently decide to change the element appearance, simply update the corresponding Style in the relevant Style Sheet. All the elements in your application that use this Style will automatically be updated. If you are working on a number of applications having similar structure and/or utilizing common styles, it is very convenient to create a kind of sample styles application, which is in fact a repository of document templates and element styles. Templates of such documents as menus, forms or Data Entry forms can have pre-defined layout of elements and design. When needed, you can install such templates into the application you are working on and modify in compliance with the project requirements. Do not Forget to Make Backup Copies It is considered a good practice that you regularly make backup copies of the database not to lose the work previously carried out. Should something go wrong with the later conversion stages, you can always retrieve the latest reserved copy. Conversion of Tables In fact, the first thing to start with in DFW is a database structure comprised of tables and relationships between them. At this point all database tables are already available in the Catalog, but it is necessary to ensure the database structure is consistent and ready to use, i.e. fields bear valid names and relationships between related tables are viable. Taking Control of Tables DFD v.4.53 treats tables and forms as the same entity and the user having permissions to perform modifications (delete, add records, alter field width and etc.) can modify the table structure by simply accessing the table. The DFD v.5.16 and DFW split forms and tables and treat them as different entities. DFW tables are used to store data that can be viewed via one or more view forms but managed via one table definition form (a form whose Defines Table property is selected). Certainly, a table definition form also can be a view form. Uncheck the Document Properties >> Transferable Table property. This ensures that forms ownership can only be transferred from DFW to DFD by a deliberate, rather than an accidental, act. In case the Defines Table property is unavailable in DFW, go back to DFD and uncheck the Owned property in the form properties. Since DFW as opposed to DFD v.5.16 prohibits using conditional derivation formulas on the Required, Prevent data-entry, Colour fields, remove all conditional derivation formulas on such fields in DFD. Adjusting Table Structure The tables renamed in DFD bear valid DFW names but there is no guarantee that table field names will not conflict with the DFW key words and that relationships existing between the tables will work properly: related fields that link tables might need name changing. Therefore the whole structure of each table (field names, derivation/validation formulas and relationships) might need adjusting. The process of adjusting the table structure is not so trivial as it may seem. It is not enough to just rename table fields. If table field values are derived from other related tables whose fields bear invalid DFW names, DFW will not let you save the table because derivation/validation formulas may contain dead references. Therefore relationships might also need adjusting. The algorithm for adjusting a table structure is self-coordinated and offers the following solution: Cut all the derivation/validation formulas and place them on the table definition form as labels next to the corresponding fields; Rename fields and Save the table definition form (table); Edit and rename relationships (use renamed field names in relationships); Adjust derivation/validation formula on each field using renamed relationship and field names and put them back in the field definition window. Save the form (table). Modifying DOS Long:Text Fields into Memo Fields A DFW Memo field is a text field that stores and displays text up to 4000 characters. There is no such field type in DFD. A DFD Long:Text field allows the user to enter up to 255 characters. A number of Long:Text fields grouped and arranged one below another lets the DFD user type descriptive information exceeding 255 characters in size, which allows the text to wrap. Each group of DFD Long:Text fields is converted into one DFW Memo field, the size of which is equal to the sum of the Long:Text fields sizes. The memo is saved using the first Long:Text field name in the corresponding group. If a form has a large number of fields (the maximum is 254), do not overload the form with memos but rather store their values in sub-tables. In this case you will need to alter procedures that use these newly created sub-form records. Designing View Forms A DFW form document allows the user to view and manipulate the data in the underlying table. A form contains such elements as fields, sub-forms used to represent fields of the corresponding sub-table, labels, page header and footer used to enhance the appearance of the page, etc. Table definition forms are designed like any other view form. Uncheck Defines Table property for table definition forms before any design just not to accidentally change the table structure. After the design is completed, tick the property again. For users convenience the design of each DFW view form should mirror the DFD counterpart design or be created in accordance to the project standards When designing view forms, replace any single &encountered in labels with double&&: it is just a workaround and on the screen you will see the same single &. Otherwise the next symbol after & will appear underlined and there will be no &at all. Using clipboard to transfer DFD form labels facilitates the process of designing view forms but elements will lose their styles: you will need to re-apply styles to these elements anew. If a DFD form is printed as a report, in DFW you will need to create a special procedure to have the form printed in the same way. If several forms have similar design (little differences), you might design one form and then clone it. Adjustments to a Form Document Also for users convenience, it is possible to optimise the database by replacing choice lists (anything other than yes/no, male/female, days and months and other invariable sets of values) with special tables, called dictionaries that grow or shrink dynamically. The reasons for doing so are the following: Some of the DFD forms and procedures with Data-Entry forms may use the same choice-lists. If you decide to change a set of entries in one of the form choice-lists, then you will need to manually make the same changes to such choice-lists in all the other forms. All choice-lists have a pre-defined set of entries that can be modified only by the system administrator in the Designer View mode. An ordinary user is unable to modify the set whilst a dictionary can be easily updated by simple record entry. The process of converting choice-lists includes creating a dictionary table with one field, populating the newly-created table with values retrieved from DFD choice-lists, creating a lookup form to display the dictionary table records, creating a relationship between the view form and the dictionary and replacing choice-lists on the view form with text type fields. Next to the relevant text field on the calling form you should create a button with action telling DFW to open the related lookup form. DFD-DFW Data Transfer Process After the structure of the database tables have been adjusted (fields and tables renamed, derivation formulas adjusted, etc.), it is high time to populate the database tables with data. This should be done before you go on to converting such data-connected entities as procedures and forms. The process of transferring data between applications is called Data Transfer. To transfer data you should create special routines both in the DFD database and in DFW. The data transferred to DFW should be identical to the DFD data. In this case you will be able to easily check that the DFW application works exactly the same way as DFD. After the DFW application is completed, the routines built will help transfer the live data from the existing DFD application into the converted DFW database. The data transfer process comprises of exporting the DFD data into interim text files and importing data from those files to the DFW database. DFD Export Routines To export the data from within the original application, the converter creates an export procedure for each DFD application table. The easiest way to export the data is to create a QBE report that includes all table fields. Set the report Output Format to Export/Variable Length/Include Field Names and choose a field delimiter most appropriate for your data (i.e., tilde ~, grave accent `, etc.). Whatever symbol is chosen as the field delimiter, it should be reliable, i.e. there is no such a symbol within the field values. The DataEase Conversion Team offers a special utility that checks the field values for the symbol used as the delimiter. After the Output Format is adjusted, edit the line containing field names (the top line in the Output Format Screen): the Output Format Field Names string should contain field names as they are in DFW. This ensures that the data from these fields will be imported into the corresponding DFW fields. Set the report Print Style: specify Report Destination of the created export to Disk and specify a name of the output file, unique for each export. Save each export using some standard name (i.e., Expo0001.txt, Expo0002.txt, etc., with Expo0001,Expo0002, etc. being the corresponding export procedure names). To provide the customer with the facilities to export all the data from their existing DFD applications at a time, create a control procedure (i.e., ExportAll) that calls individual export procedures and thus will export all of the data from the customer DFD database. We would like to offer you some practical advices that could help you avoid numerous pitfalls when you create DFD exports. If the symbol used as a delimiter is not reliable, try another symbol and make new exports. If a group of the Long:Text fields has been converted into a DFW memo field, alter the Output Format of the export procedure: in the first Output Format line replace all names of the Long:Text fields with one name of the DFW memo field and remove delimiters between the fields; in the line defining output of field values replace delimiters separating Long:Text fields with spaces: values of several Long:Text fields will be concatenated into one field and exported using one caption that coincides with the destination memo field name. If the data to be exported contain double quotes, such data cannot be imported to DFW one-to-one: framing quotes will be thrown away. But if the value of a field has an odd number of quotes Dialogue instead of Dialogue during import the values in line between this quote and the next nearest quote will be concatenated into one value (i.e., the Dialogue text value will be imported as Dialogue; the Dialogue magazine ~2002~Spring string that contains 3 tilde separated values will be imported to DFW as one string). In cases like these you need to decide whether the quotes worth transferring to DFW or could be neglected. If the DFD data contain only framing quotes, in most cases you can throw them away in DFW: the data will not be affected. If it is necessary to keep the quotes, then replace quotes with another special symbol ($) when exporting the data from DFD. After the data are imported to DFW tables, replace $ with quotes. DFW Import Routines To populate the DFW database, the converter creates a DFW import for each DFW table. The import retrieves data from the corresponding export file into the DFW table. Save each import using unique names (i.e., Impo0001, Impo0002, etc.). An import and export names should be descriptive so that you could easily tell they are built for the same table (Expo0001-Impo0001, etc.). In the DFW application create two special control procedures: a procedure (i.e., DeleteAll) that deletes the data from within the DFW database and another procedure (i.e., ImportAll) that runs each import in turn and updates the data. Test of Data Identity The data imported into the DFW application tables must be compared with the original DFD application data to ensure that the data transfer process is a success. In this step, the DFW application table data are exported into separate text files and put to the same folder where the DFD export files reside. Open the table in User View and choose File >> Export. Specify the file name (i.e., Expo0001.dfw) and full path. Use the same delimiter as when exporting the data from DFD and tick the Include Field Names option. Since DFW does not allow you to save the export settings, you will need to tune up each export. Then these text files are compared using the standard File Compare utility (the executable file is FC.EXE). Given that DFD and DFW export files are stored in one folder and their names are identical (i.e., Expo0001.txt and Expo0001.dfw contain the data exported from the same table from DFD and DFW respectively), such file pairs can be compared using one DOS command: FC.EXE *.txt *.dfw > result.txt. In case the database structure has undergone considerable changes (for example, due to normalization of tables, adding/deleting fields, etc.), there is no chance to get FC: no differences encountered as a compare result: explicit differences are inevitable. Each divergence should be accounted for, analyzed and documented. Building Procedures Conversion of a procedure comprises of creating a new procedure in DFW and then building each of the procedure elements from scratch (Data-Entry Form, DQL coding and Output Layout). DFD procedures are partly portable to DFW because they utilize the same language DQL. The text below summarizes procedure conversion technology without going into too much technical details because building procedures in DFW is one of the most complex and time-consuming conversion jobs and cannot be described in an article. Adjusting the DQL Coding The process of procedure conversion starts with creating a new DFW procedure and copying the DQL coding from the DFD counterpart. Most likely you will need to change the DQL due to the following reasons: The names of entities (table, field names and relationships) that might have been renamed earlier and encountered in the DQL should be replaced with correct DFW entity names. Some other adjustments take place to obtain the same output layout as in the DFD procedure (more details will be found in the Output to Screen/Printer section). Procedures that have several polytypic operators used to modify the same table data (modify, delete, enter a record or reorganize) might lock this table on the network. Therefore, such procedures must be split into separate procedures that perform only one modification to the table. In case one of the above-mentioned operators is followed by the list records command, then this list records command should be singled out into a separate procedure. But the conversion of procedures is not restricted to the aforesaid modifications to the DQL. Your further actions depend on the type of the converted procedure: whether a procedure generates output to screen/printer or not. If it is a procedure without output (its DQL has no list records command), then it remains only to compile, save it and check its functionality. In case it is a procedure with output (to screen/printer/disk), it is the output target that has the principal meaning: screen/printer or disk. These two types of procedures are implemented differently in DFW and in each case the conversion should be done using an artful approach. Output to Screen/Printer Conversion of such procedures can be a complex task because the DFW output format depends on the procedure DQL more than the DFD procedure output. Upon compilation, DFW automatically creates default output layout for the procedure that is the placement of different output field groups. These groups are defined by the list records command, with the list items grouped using the in groups or all operators. In this case the procedure output will have a multi-layered structure. The output format of a DFD procedure can be defined after the procedure has been compiled: it is possible to move elements from the captions of groups into group items and vice versa (use copy/paste), but in DFW you may not get the desired result by moving elements between the layers. For example, let us look at the following DQL coding: for Contracts; list records CustomerName in groups ; CustomerCity ; ContractNo . In DFD you can place the CustomerCity and CustomerName fields at one level and get the CustomerCity field value output one time for each group. Moving a field to an upper level in DFW will do no good: the CustomerCity field values will not be printed on the page. The most appropriate solution is to alter the procedure DQL: for Contracts; list records CustomerCity ; CustomerName in groups ; ContractNo . In this case, you will have the fields correctly placed on the report page. In DFD it would be enough to simply move the CustomerName field from the .items area into the .group header area in the procedure format without changing the DQL. The developers experienced in DFD might find it strange to alter not only the output format but also the procedure DQL in order to change the field placement on the page. But the DFW output is strictly layered: the DQL defines at what layer and where the fields will appear. To complete the output formatting you will need to arrange the fields at each layer in order and adjust their appearance (colour, font, size, etc.). The format of the elements (width of text values, number of decimal digits, etc.) should be the same as in DFD. If a procedure has fields that should not be displayed on the screen (in cases when you sort or group this field values), you can: set the field size to a minimum; move the field beyond the displayed visible area or hide the field using the report form background colour as the colour of the field background and font. Export to Disk The export to disk procedures should be considered a special case of procedures. Such procedures should write data to a text file. In DFD, a procedure will export data to disk if you specify the Disk destination (Print Style >> Destination >> to Disk). In DFW the situation is different: if you set Document Print Options >> Print to Disk, you will not get a text file with human readable data as desired but a binary file containing an exact image of the printer specific output. To write data to a text file in DFW, append the export to filename . command to the procedure text transferred from DFD. The export to command should be followed by the special formatting .commands that define the placement of the output data. In general case a DFW export procedure looks like: for Table1; list records Field1 ; ... FieldN . end export to filename . .items Table1 @f[1,1], ... ,@f[1,N] .end This is the simplest case of exporting data from within one table the table data are output line-by-line into a text file. A need to export data from within several tables, groupings, data summarizing in group footers make the task of exporting data much more difficult. Converting such procedures takes much more time as compared to converting similar procedures with output to screen/printer. Methods to export data to a file in DFW were described in the issue of the Dialogue magazine (Special Export). Using these methods you can convert simple export procedures, i.e. procedures either without groupings or with groupings but without subtotals in the group footers output. In addition to the article, we could suggest using the output operator that helps solve the various problems of exporting table data to disk in text format: it is possible to control export of records by a conditional operator. For example, define temp tFld text 20 . for Table1; assign tFld1 := Field1 . if (some condition) then output: tFld1 . end -- output end if end -- for export to filename . .items output1 @f[1,1] .end In this example the Field1 value will be written to the file only if the some condition is true for the Table1 records. The list recordsoperator is not so general-purpose means as the output operator. For example, almost the same code: for Table1; if (some condition) then list records Field1 . end if end -- for export to filename . .items Table1 @f[1,1] .end will write to the file the Field1 values for all records, no matter whether the some condition is true or not. Using output in combination with other methods will allow you to convert export procedures no matter how complex the procedures are. Data-Entry Forms Building Data-Entry forms (DEF) is the simplest job. A DEF that is an optional element of a procedure is built in the same way as any view form used to display table data. It is recommended that you use the same styles as when designing a view form (for example, the fields of the Required type used on Data-Entry form and view form should look the same). Each DEF should have two special purpose buttons: Run (with the Record Save As New action) and Close (with the Document Close action). Such buttons are used to replace the Press F2 to print or Esc to exit string and maintain the Windows point-and-click functionality. Building Menus By this moment your DFW application is almost finished, the only entity left to be converted is Menus. The aim of converting DFD menus is to preserve functionality but create attractive menus by utilizing a wide range of the DFW resources (i.e., styles): menu choices can be represented as buttons, you can use graphic elements to enhance the document appearance, etc. You could consider using a form instead of the menu entity since it offers more flexibility and does what a menu does, but also, opening parameters can be set (with the use of setting array variables). All menus are built in DFW from scratch since they are not automatically transferred from DFD. The DFD menu structure is reproduced in DFW, with each menu assigned the same security level and each menu choice assigned the same action as in DFD. Any conversion implies that new DFW applications will have similar to DFD layout of elements. Given that DFD menus have standard DOS-like appearance, DFW menus are designed as view forms containing the same list of choices as in DFD. In DFW it is also possible to create custom menus (use Document >> Custom Menu) that will look like the DFW system menu: a horizontal menu bar with drop-down lists displayed at the top of the main application window. You might revise this menu bar and delete unnecessary system menu items or add new items of your choice. Not all the menus should be converted one-to-one. DataEase has menus of the chain type, called Chain Menus that might be encountered in DFD applications. A chain menu is a special batch-processing menu with choices whose actions may be various commands (run a procedure/control procedure, open form, system commands, etc.). After a sequence of actions is processed, DataEase returns control into the invocation point. It is recommended to replace each DFD chain menu with a DFW control procedure because procedures offer more flexibility. An invocation point of a control procedure that replaces the appropriate DFD chain menu can be either a start-up document or a menu choice. Users & Security Levels Users is one of the entities that automatically migrates to DFW and is available from the very beginning of the conversion process. A user who has access to a database is identified by a user name and password. Each user account as well as security level and a start-up document that appears upon logging on are specified in the Users file. A start-up document can be a menu with a list of choices to select from, a procedure (new in DFW!) or the DFW system menu. Since a menu can be a start-up document, you need to check the Usersproperties and edit those menu names that have been renamed in DFW. Conclusion It is impossible to cover in one article the conversion theme in full and we hope to continue the discussion and provide more details in the next Dialogue magazine issues. In this article we have tried to summarize the conversion technology and demonstrate the conversion common approaches and best practices: this article should not be considered a complete guideline to conversion but rather an overview of conversion best practices. It should be mentioned that some of the conversion jobs could be automated by creating relatively simple tools or using third-party utilities.
Published: 1 November 2013