Easy to Create, Easy to Change - Easy to use!

Running DataEase on Windows Server 2008 R2 - Opportunistic Locking

Running DataEase on Windows Server 2008 R2 Affects DataEase for Windows 6.53, 6.53, LegEasy 6, 7.0,7.1,7.2 and 7.5 There is two issues that causes problems for DataEase or any other file intensive database on 2008 Server. One is the old and trusted Opportunistic Locking that is default and interferes with DataEase locking. This need to be switched off like it had to be done on 2003. The second ins SMB 2.0 File Cashing. Windows Server 2008 introduced SMB 2.0. This has to be disabled (or shunted back to SMB 1.0) before Opportunistic Locking can be disabled server side This is found under the usual registry key HKLM'System'CurrentControlSet'Services'LanmanServe r'Parameters 1. Value name: Smb2 2. Value type: REGDWORD 3. 0 = disabled 4. 1 = enabled Then set the opposite under the Smb1 local tree sub.   Configuring opportunistic locking in Windows     SUMMARY By default, opportunistic locking is enabled for server message block (SMB) clients that run one of the Windows operating systems that is listed in the "Applies to" section. Opportunistic locking lets clients lock files and locally cache information without the risk of another user changing the file. This increases performance for many file operations but may decrease performance in other operations because the server that grants the opportunistic lock must manage the breaking of that lock when another user requests access to the file. Notes for Windows Vista The opportunistic locking registry keys are valid only for traditional SMB (SMB1). You cannot turn off opportunistic locking for SMB2. SMB2 was introduced in Windows Vista to enable faster communication between computer that are running Windows Vista and Windows Server 2008 or Windows Server 2008 R2. If you disable opportunistic locking, the offline files feature in Windows Vista fails.     MORE INFORMATION Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base: 322756  How to back up and restore the registry in Windows The location of the client registry entry for opportunistic locking has changed from the location in Microsoft Windows NT. In later versions of Windows, you can disable opportunistic locking by setting the following registry entry to 1: HKEYLOCALMACHINE\System\CurrentControlSet\Services\MRXSmb\Parameters\ OplocksDisabled REGDWORD 0 or 1 Default: 0 (not disabled) Note The OplocksDisabled entry configures Windows clients to request or not to request opportunistic locks on a remote file. You can also deny the granting of opportunistic locks by setting the following registry entry to 0: HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters EnableOplocks REGDWORD 0 or 1 Default: 1 (enabled) Note The EnableOplocks entry configures Windows-based servers to allow or to deny opportunistic locks on local files. These servers include workstations that share files. In addition, you can use the following values to tune opportunistic locking for Windows-based computers that have granted opportunistic locks. The following value specifies the minimum link throughput that the server allows before it disables raw and opportunistic locks for this connection: MinLinkThroughput REGDWORD 0 to infinite bytes per second Default: 0 The following value specifies the maximum time that is allowed for a link delay. If delays exceed this number, the server disables raw I/O and opportunistic locking for this connection. MaxLinkDelay REGDWORD 0 to 100,000 seconds Default: 60 The following value specifies the time that the server waits for a client to respond to an oplock break request. Smaller values allow detection of crashed clients more quickly, but might potentially cause loss of cached data. OplockBreakWait REGDWORD 10 to 180 seconds Default: 35 Note You must restart the computer for these registry changes to take effect.  

Published: 9 May 2012

Speed up 7.2!

One of the changes from 6.52 to 7.x is that you now can share your database on a local computer. When you share a database, DataEase need to use locking, and that slows things down.   The solution is simple. If you dont need to share your database on your hard drive, and who really need that, open DataEase 7.2, Close the Welcome Screen if it is active, and select Options in the File menu in the upper left corner. When the options dialog opens, select the Database Engine tab, and uncheck the Share Local Database checkbox.   Without locking on a native drive you will experience a great increase in performance, especially in heavy data intensive operations like DQLs for updating and deleting data.

Published: 9 September 2009

DataEase and Windows 7

DataEase and Windows 7 Finally, Windows 7 is with us and it looks to be all that Vista should have been. Over the past weeks we have tested our products extensively on both x86 (32 bit) and x64 (64 bit) Windows 7 and this is what we have found:   DataEase 7.2 The latest version of DataEase works with both versions of Windows 7 with the following exceptions:   -ODBC: Windows x64 does not support ODBC, so if you use ODBC with you DataEase application or any other critical application you cannot upgrade to x64 but instead should use x86. -OLEDB: OLEDB should in theory work, but our findings so far is that the OLEDB environment does not work either on x86 or x64. DataEase 7.1 DataEase 7.1 will work acceptably with x86 but we do not recommend x64. Everyone should upgrade from 7.1 to 7.2 which is free of charge. The only users that should not upgrade from 7.0 and 7.1 to 7.2 are users with Webpublisher 7.1. DataEase 7.2 does not have a corresponding Webpublisher product and WebPublisher will not work with Windows 7. Webpublisher 7.1 will work with DataEase 7.2 applications with the exception of labels. Any form with labels will not be published. DataEase 6.52 WARNING! DataEase 6.52 will not work with either versions of Windows 7.   DataEase for Windows 5.x These legacy versions of DataEase for Windows will run on startup and appear to operate OK with x86. We have not tested it extensively, but running DataEase, creating an application, some simple forms etc. appear to work fine. We do not recommend x64 with any DFW version older than 7.2. DataEase Express 1.1 Express runs on startup and one can open and create new applications. The only problem we encountered were with labels that do not appear to work properly. This has also been a problem with earlier versions of Windows.   DataEase for Dos 2.53 to 5.53 All DataEase for DOS versions appear to work fine with x86 but some small problems with 2.53 we think a little configuration work would address. WARNING! NO version of DFD works with x64.

Published: 19 July 2012

Installing DataEase 7.x on Citrix Server

 Installing DataEase 7.x on Citrix Server Environments:  MS 2003 Server; Windows Server 2008 32-bit. 1. Install DataEase 7.x on Citrix Server (this effectively becomes multiple-workstations and should be treated as such); 2. Make sure ‘FILES=100’ is set in the’ \WINDOWS\SYSTEM\CONFIG.NT’ file on the Citrix sever; 3. Alter/add the following registry settings as though you were dealing with a workstation; The following are all of type DWORD: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters UtilizeNTCaching=0 UseUnlockBehind=0 UseOpportunisticLocking=0 UseLockReadUnlock=0 NOTE: If you are going to use load balancing across several CITRIX servers then points 1 to 3 need to be repeated on each CITRIX box. 4. Put the database in a separate directory on the server; 5. Create a named share to this database directory;   6. Create a CITRIX / MS User Group for the application; Give the group: a. READ & EXECUTE rights in the DataEase program directory on the CITRIX Box(s); b. MODIFY, READ & EXECUTE, READ, WRITE rights in the ‘Share’ that holds the Database directory. 7. Create all users for the application and add them to the group created above; 8. On the Database Server, alter/add the following Registry settings: They are all of type DWORD. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters CachedOpenLimit=0 EnableOpLocks=0 OpLocksDisabled=1 UtilizeNTCaching=0 UseUnlockBehind=0 UseOpportunisticLocking=0 UseLockReadUnlock=0 Note: All servers need rebooting before the individual registry settings become active on that particular machine; Tests to make sure that it is working correctly: 1. Login to a Citrix application session as more than one of the users in the group on separate machines; 2. Login to the Database. a. Test record locking is working correctly in record entry. Enter / Modify / Delete. b. Test record caching is not occurring (server registry settings). c. Test a form/report that contains lots of relationships. (Files = 100). 3. Look in file RDRRxxxx.ssn of the application folder. This file should be storing the logged in users/machine names.  

Published: 19 July 2012

Release note DataEase 7.2.2

Release note DataEase 7.2.2 DataEase 7.2.2 is a major update of 7.2 that includes fixing of external data drivers, as well as language support and an extensive fix list (see separate article). This article should be read by all 7.2 users.   1. Migration from 6.52 With the introduction of 7.0 for DataEase, it was decided that the co-existence with DFD was too restrictive for DFD and this was abandoned and one did again decide that migration was the way forward. Any migration is a expedition into uncharted territory and the migration from 6.5x to 7.x has not been straightforward either. When working with these intricate challenges, we have had to allow for some hard restraints that need to be observed for this migration. The biggest challenge has been the fact that 6.5x and previous, use ASCII in the Data and Business model, and OEM/ANSI for the GUI part. In 7.x we use Latin-1 UTC 8bit.   So before you migrate your application from 6.5x to 7.2 please make sure you observe the points below:   Make sure your username/password to your application does not contain any extended characters and you have full access to the application. It would be best to remove or rename all usernames and passwords that contain anything but A-Z, 0-9 and Underscore. This should be a general rule in any case.   Migration will only handle migration from ASCII character sets that are part of the Latin-1 character set. Migration of your application that used other character sets may work but will undoubtedly need extensive work either before migration or after.   If you have used extended characters in field/column names, these will cause errors when you migrate, as we are not able to change the compiled part of the formulas from the migration tool. To fix this, either change this before you migrate your application, or simply trigger a recompile of the table/form after you have migrated. The easiest way to do this is to open a field, go to the BRL(Formula) and make a change such as entering a space at the end of the formula. When storing the form, the change flag will be set and DataEase will recompile all the formulas in the form. As the formulas are correctly translated and the problem will disappear.   The line object has changed radically from 6.52 to 7.x. In 6.52, the line object was only a line object, but in 7.2 it is also a pointer object with an arrow point etc. Most migration of line objects will be straightforward, but we cannot guarantee the visual result will be the same in 7.2 as in 6.52, so please check your line objects and correct them in 7.2 if they display incorrectly.   Introduction of a comma (,) as an optional decimal delimiter will work for entire application but DQL Procedures will fail to compile if a decimal number has been used directly in code. If this happens, the procedure will need to be recompiled again before it can be used.   2. DataEase and extended letters DataEase has for a long time ignored languages outside the English language group. The last Language version was in DataEase for Windows 5, which was more than 10 years ago! With 7.0, DataEase moved away from its traditional way of handling extended characters, and in effect made it impossible for DataEase applications using character sets outside the UTC-Latin 1 character set.   One of the biggest changes in 7.2.2 is that we have now prepared the product again to handle language versions. With 7.2.2, you can use any 8-bit character set supported by Windows. So all languages from Greek, Russian, Arabic to Simplified Chinese are now supported.   3. Optional use of a comma (,) as a decimal separator for Migrated Legacy applications Decimal separators have always been a problem in DataEase. In legacy versions of DataEase, this represented no problem, as the application would not travel between language versions. In DFW, up to version 7.1, the decimal separator has been read from the Windows Regional Settings. DataEase has two ways of using code. Interpreted and compiled. The compiled code will work perfectly until one tries to recompile it in a Windows environment set up with a different decimal separator. The interpreted code will go wrong the moment you start it up. This is why we, in 7.2, have fixed the decimal separator to the standard for programming (.). This will not cause problems if you haven’t used decimal numbers in your programming. On the other hand, if your legacy application has used decimal numbers in derivation, actions, OML and DQL you can choose to fix the decimal separator using (,). If you do this, you will have to use this for all programming code in your application.   There are two ways to switch this fix on: You can select it directly in the migration tool; You can insert DecimalDelimiter=44 under the tag [INTERFACE] in the RDRRxAAA.INI file, which you will find in your application catalog.   4. Multibox Multibox (Lookup in 6.52) has been extensively updated and changed in 7.2 and 7.2.2. We have to admit that the multibox is not a favourite with us due to its duality, and we will in the future split this back up into two controls.   Multibox as Lookup: The Multibox can be a little difficult to understand due to this duality, but to use it as a straight forward lookup as in 6.52, it is now more straightforward. As we have introduced a Relationship restraint override, you can use any relationship between the current form and the table you want to populate the Multibox from. To take advantage of this feature simply check Show all records. This functionality will be the same as the old trick of defining a relationship with no columns restraint, just the two tables.   Multibox as ListBox or ComboBox: You can choose to configure the Multibox as either a traditional ListBox or as a ComboBox. If you check Allow Free Input, it will be a ComboBox where you can either choose from the dropdown or type in any value you like. If you don’t tag it, the multibox will only allow values in the dropdown and will auto complete when you have typed in enough characters to identify the choice as Unique.   MultiBox as MultiBox (Old CTRL-F10 Functionality): The idea behind the MultibBox was to incorporate the CTRL-F10 lookup in a control that could be configure. We think this is a novel idea, but it should never have been mixed with the Looup. The idea is that one can show corresponding columns to identify a coded return, that will be saved in the parent form.   Since the Multibox in essence is a traditional ComboBox, this functionality is flawed. You can still use the Multibox with multiple values in the dropdown, but the return (Bound) value need to be the first in the list, and it need to visual. In future versions we will introduce a seperate CTRL-F10 control, where the return value will be hidden if you so choose, and only a button will be visible.   5. OLEDB OLEDB is basically a simple SQL interface to DataEase.  This functionality has been around since 6.52 and has been a good way of reading DataEase Data between different DataEase applications, as well as allowing other tools to read DataEase Data.   This functionality has been more or less broken, throughout the 7.x era. In 7.2.2 we have fixed this but there are still some limitations.   So far OLEDB does not Work in Windows 7 or Vista, this is not a DataEase problem but a general problem.   DataEase OLEDB provider, does not convert your column names, but provide them as they are stored in DataEase. If you have used space or extended characters in you column names, the select statements generated by some tools will not be valid, and the select will fail. To avoid this make sure that you only use A-Z, 0-9 and _ in you column names in DataEase in tables that you are going to provide through OLEDB. (This is a good rule in any programming anyway, and we will automatically enforce/convert this in DataEase G3). DataEase OLEDB Consumer is amended to send select statements that will allow for the above.   6. ODBC ODBC has also been broken throughout the 7.x era, and have now been extensively fixed and tested. ODBC will now work for all version of windows from XP to Windows 7, including 64x versions, but be aware that you manually have to configure the use of ODBC in WIndows 7.  

Published: 19 July 2012

DFD to DFW 7.2 migration

DFD to DFW 7.2 migration The easiest way to migrate your DOS application would be to use the built-in migration tool found in 7.2 (if your DOS application is in version 4 or earlier, you will need to download and install a version of DataEase for DOS 5.53, as the migration tool only ports applications built in 5.x onwards, to 7.2). As a result of using the migration tool in 7.2, you will get the following: -relationships; -forms; -data (at the time of performing the migration); -users; -imports. Finally, you will need to re-design/layout/apply styles to each field in your FORMS, create your reports & procedures and ensure you have throughly tested the new application before going LIVE.  

Published: 19 July 2012

The migration to 7.2 process

The migration to 7.2 process 1. Run the Migration tool found in 7.2. Open it form the Start menu of your workstation as shown in the below screen-shot or open the demigrate.exe file directly found in the folder of DataEase;     2. Then, click on the [Next] button to proceed with the migration process when the below screen appears;     3. Navigate to the source application you want to migrate to 7.2 and highlight it as shown in the example in the below screen and then click the [Ok] button;       4. Click [Next] to move to the next step to select the target directory that will hold your new migrated application;   Please Note: the target folder must be an empty folder.   5. After selecting the target folder, click [Next]. The migration options screen will appear as shown below:     Please note: when you select the date format, make sure that you select the correct format which matches your source application; otherwise the data of the date fields in the migrated application will be corrupted.   6. After you finish selecting the desired options, click the [Next] button. A warning screen will be displayed as shown below. Click [Start] to start the migration process;     7. When the migration finishes, make sure that you get “0error(s), 0warnings(s)” at the end of the dialog box as shown in the screen below.   If there are any errors or warning messages, you will need to review them one by one and fix them either in the 7.2 application or in the original application (before the migration) and then re-migrate it again (start the process from the beginning, from step one of above).     Note: the migration log is kept in a file called DEMigrate.log found in the same directory of your migrated application.   8. Finally, click the [Finish] button to close the dialog. Now you are able to open the new migrated application with DataEase 7.2!  

Published: 19 July 2012

DataEase 7.2 and Excel Export

DataEase 7.2 and Excel Export One of the news in DataEase 7.0 was export to Excel. For some reason this was implemented in a completely different way than all other exports in DFW, and if it ever worked it does not any more.   We have had some problems understanding exactly what the goal was with this implementation. We have a feeling that as with so many of the other new features in 7.0, the target was a combination of functionalities that do not go well together.   1. If the goal is to export raw data to Excel for further manipulation, the best way to do it is simply to use the standard export facility in DFW and export it as a standard CSV file. CSV file is defined as an Excel file type and can be opend directly in Excel without any help of an import wizard.   To export to a CSV file from DFW simply chose the Export dialog from the File menu (Runtime) and type in a Export File Name with the extension .CSV ex. data.CSV   Then select Comma(,) as field separator and you are ready.   2. For those that liked the Original 7.0 Export to Excel functionality we have located a tool that does this much better and that one can access as a printer driver, and export to from both form, report and DQL.   The tool is Print2Excel. Go to http://www.print2excel.com/ to download a sample or buy the full version.  

Published: 19 July 2012

Change the DataEase window size and placement on startup

Change the DataEase window size and placement on startup From version 7.2.2.753 you can control the startup position bu using the command line option /wx,y,h,w when starting DataEase from at batch file or a custom application link.   Mind that you use no spaces between the numeric arguments and the comma.   What to do is create your own shortcut or batch file and add /w20,20,900,600 to start at windows position 20, 20 with with 900 and height 600.   Full command line example: “c:\program files\dataease\dataease7.2\dataease.exe” /w20,20,900,600 “C:\AppPath” “Appname”   Windows 7 app link You can’t see the full DateEase path in the start, but it is there. The best way of creating the new link is to make a copy of the standard DataEase link and then update it. This example opens an applicatin at c:\apppath that is called Appname and set the initial windows position to x=40 y=30 width=1024 and height=768   If you want DataEase to start up Maximized, simply select Maximized instead of Normal behind Run in the box below.    

Published: 19 July 2012

Copying data from table to another table

 Copying data from table to another table To copy data from table to another table, try the following DQL, replacing text in the square brackets [] with the appropriate table/field names: For [source table] with [criteria] ; list records fields in order. enter record in [destination table] [destination field_1] := [source table] [source field_1] ; [destination field_2] := [source table] [source field_2] .  

Published: 19 July 2012

Backing up DataEase

Backing up DataEase A good and convenient way to backup your DataEase for Windows application is to copy and paste your application folder to another location on your server/workstation. This not only makes a copy of the application itself but also copies across any images and external files it may use. Naturally, consider using the in-built DataEase backup/restore functions if you experience problems with your application but remember, this option does not copy across any images/external files.   To copy and paste the application folder to another location: 1) Close your Dataease application; 2) Double-click “MyComputer” from your desktop; 3) Browse to the folder where the application is stored; 4) Right-click the application folder and select “copy” from the pop-up menu; 5) Browse to the location where you would like to copy this folder to and right-click and select “paste” from the pop-up menu (for example your CD drive).  

Published: 19 July 2012

Comparing a Sum value to a Count value in a field derivation

 Comparing a Sum value to a Count value in a field derivation If you have a field that has the following derivation: if (count of “rStockcardSub” = Sum of “rStockcardSub” “Issuedcheck” , (highest of “rStockcardSub” “Dateissued”) ,blank) incorrect field data is returned. As a workaround, simply add +0 behind each function as shown below: if ((count of “rStockcardSub” + 0) = (Sum of “rStockcardSub” “Issuedcheck” + 0) , (highest of “rStockcardSub” “Dateissued”) ,blank) This will then return the correct field data value.  

Published: 19 July 2012

"Password After Minimize" option in DE7.2

 "Password After Minimize" option in DE7.2 If you get the “Password After Minimize” option active in your application, DataEase displays the “DataEase Application Security” dialog when you try to restore or maximize the application (when minimized). You should then enter in your Password correctly. If you receive this error message: “incorrect password”, then the problem is in the number of characters of your password or the password was typed in correctly.   To enable/disable the “Password After Minimize” option in DataEase, select menu option: Application >> Preferences, select the “Application User Interface” tab and tick/un-tick the option “Password after minimize” in the [Visual option] section.  

Published: 19 July 2012

Restore "date" field value

Restore "date" field value If you have a field with type Date and the following OML on the “LostFocus” event: if Data = blank then Data.value := current date . Data.show () . end the field “Data” will not display the current date, if you tab away from it. This is because all values in OML are text, so you just have to ensure the value you insert is also text e.g. if Data = blank then Data.value := jointext(current date,”") . Data.show () . end All data types in DataEase are automatically converted in DQL’s and Derivations, but for OML’s you need to ensure you use the correct format.  

Published: 19 July 2012

Terminal Services multi sessions in DE 6.1

Terminal Services multi sessions in DE 6.1 If you are trying to login to DataEase using more than one session of Terminal Service, create a batch file so that you can change your DENAME each time you are trying to login using the same machine with another Terminal Service session.  

Published: 19 July 2012

Printing to PDF in Landscape format in DE 7.2

Printing to PDF in Landscape format in DE 7.2 In order to print to PDF in landscape format via a procedure, select menu option: Document -> Print Options, then select the “Landscape” property in [Page Size and Orientation] section.  

Published: 19 July 2012

Creating a read-only form

Creating a read-only form The easiest way to create a read-only form is by saving the form under a new name and make it a “prevent data-entry” form. 1- Open your existing data-entry form in design mode; 2- Select menu option File >> Save As, and save it under a new name; 3- Finally, select menu option Document >> Properties and ensure the “prevent data-entry” option is ticked. Close and save the form  

Published: 19 July 2012

Networking DE 7.2

Networking DE 7.2 In DE 6.52, the Dename and Depath environment variables had to be set on every PC, and the 2 local files “configur.dat” and “Denetwrk.ovl” had to be deleted, with a copy of these 2 files in the location specified in the DePath. In DE 7.2, these 2 local files no longer exist. Starting with version 7, there is no more DEPATH or DENAME. The serial number and local computer name are used to uniquely identify individual workstations. You should be able to just install and run.  

Published: 19 July 2012

E-mailing From DataEase

E-mailing From DataEase Dataease 7.2 allows you to attach any file and send it via e-mail. Assuming a Payroll System and a monthly paysheet is sent to each employee in the company and you need DataEase to attach the paysheet to the email you will send to the employee and send it automatically. First of all, you can create each paysheet in PDF format via the procedures “Print Options” window. To do this: -select menu option: Document -> Print Options; -select the “File” option in the [Document Print Options] dialogue window; -select “PDF” from the listbox immediately adjacent to the “File” option; -finally, specify the path where you want the PDF file to be saved in the textbox immediately below the “File” option. To create the email functionality, first of all create the following CDF: Function Name: Convert CDF library name: STRFUNC.DLL Return type: String Parameter Name: Character to Convert Parameter Type: String Close and re-open your DataEase application (to register the CDF). You will then need to create 3 procedures as follows. You can simply copy and paste in the code and amend where necessary: Procedure 1: –The below DQL which utilises Visual Basic code and executed by a program called “wscript.exe” found in your c:\WINDOWS\system32 folder. This is just one way of creating email functionality within DataEase. Define Temp “tText1″ Text 100 . Define Temp “tText2″ Text 100 . Define Temp “tText3″ Text 100 . Define Temp “tText4″ Text 100 . Define Temp “tText4a” Text 100 . Define Temp “tText5″ Text 100 . Define Temp “tText6″ Text 100 . Define Temp “tText7″ Text 100 . Define Temp “tText8″ Text 100 . Define Temp “tText9″ Text 100 . Define Temp “tText10″ Text 100 . Define Temp “tText11″ Text 100 . Define Temp “tText12″ Text 100 . Define Temp “tText13″ Text 100 . Define Global “gFileName” Text 50 . Define Global “gFileName2″ Text 50 . Define Global “gEmail” text 40 . – Name & path of the first file to attach gFileName := “C:\Paysheet1.pdf”. – Name & path of the second file to attach (omit if not required) gFileName2 := “C:\Paysheet2.pdf”. – email address of the person you want send the email to gEmail :=”EmployeeName@MyDomainName.com”. tText1 := Concat(“Set oolApp = CreateObject(“, convert(“n34″), “Outlook.Application”, convert(“n34″), “)”) . tText2 := Concat(“Set email = oolApp.CreateItem(“,”0″,”)”) . tText3 := Concat(“email.Recipients.Add(” , convert(“n34″), gEmail,convert(“n34″), “)”) . – Attach file 1. N.B. the file MUST exist in the specific location otherwise the e-mail will not be sent and an error will be displayed tText4 := Concat(“email.attachments.Add(“, convert(“n34″), gFileName, convert(“n34″), “)”) . – Attach file 2 (omit if not required). N.B. the file MUST exist in the specific location otherwise the e-mail will not be sent and an error will be displayed tText4a := Concat(“email.attachments.Add(“, convert(“n34″), gFileName2, convert(“n34″), “)”) . tText5 := Concat(“MailBody = ” , convert(“n34″),”” , convert(“n34″)) . tText6 := Concat(“MailBody = MailBody & ” , convert(“n34″),”“,convert(“n34″), “& vbcrlf”) . tText7 := Concat(“MailBody = MailBody & ” , convert(“n34″),”“,convert(“n34″), “& vbcrlf”) . – Body of the e-mail. N.B. You can use HTML tags to enhance the look and feel tText8 := Concat(“MailBody = MailBody & ” , convert(“n34″),”THIS IS A SAMPLE EMAIL, “,convert(“n34″)) . tText9 := Concat(“MailBody = MailBody & ” , convert(“n34″),”THAT HAS AN ATTACHMENT “,convert(“n34″)) . tText10 := Concat(“MailBody = MailBody & ” , convert(“n34″),”“,convert(“n34″)) . – E-mail Subject tText11 := Concat(“email.Subject = ” , convert(“n34″),”THIS IS WHERE YOUR SUBJECT HEADER GOES”,convert(“n34″)) . tText12 := “email.HTMLBody = MailBody” . tText13 := “email.Send” . list Records tText1 ; tText2 ; tText3 ; tText4 ; tText4a ; tText5 ; tText6 ; tText7 ; tText8 ; tText9 ; tText10 ; tText11 ; tText12 ; tText13 . Export to “c:\email.vbs” . .items @f[1,1] @f[1,2] @f[1,3] @f[1,4] @f[1,5] @f[1,6] @f[1,7] @f[1,8] @f[1,9] @f[1,10] @f[1,11] @f[1,12] @f[1,13] @f[1,14] .end Procedure 2: –the following code uses wscript to execute the VB code created by the first procedure: Call Program “c:\windows\system32\wscript.exe c:\email.vbs” . Procedure 3: –the following control procedure calls the above two procedures one after the other: run procedure “PROCEDURE 1″ . run procedure “PROCEDURE 2″ . You are now ready to execute PROCEDURE 3.  

Published: 19 July 2012

"wrong date" error message when migrating to DataEase 7.2

"wrong date" error message when migrating to DataEase 7.2 When migrating your DataEase application to version 7.2, using the built-in migration utility, in the last step you will be asked to choose the date format, so please make sure you select the correct format which is set in your Regional Settings of your Control Panel, otherwise you will get “wrong date” error messages. So, for example if “Regional Settings” is set to use the date format dd-mm-yyyy, then in the migration tool, you will need to choose the same format “day-month-year”.  

Published: 19 July 2012

Moving your application to a new server

Moving your application to a new server To move your application from the current server to a new one:     2- Work out where the current Configur.dat and DeNetwork.ovl files are kept, by looking at the DEPATH variable value in the “Environment Variables” window of one of the workstations (please see attached “Environment Varibles.bmp” for an example to what the screen should look like. You can access the “Environment Variables” window via the properties of “My Computer”;   3- Once you find the location of the folder to where these two files are stored, copy this folder to somewhere on the C:\ drive of the new server;   4- Back in the “Environment Variables” section for EACH workstation, change the DEPATH variable value to point from the current location to the new location on the new server;   5- Finally, on each workstation, change the DataEase shortcut target to point to the new application folder. 1- Copy the application folder from the current server to somewhere on the C:\ drive of the new server;  

Published: 19 July 2012

Exporting only number values

Exporting only number values You can simply export a number field so only the number values and not the commas for the thousands are exported, by defining a temp variable for the number field and assign the variable the value from this field; e.g.: define temp “tNumberValue1″ number. for Form1 ; tNumberValue1 := Field 3 . list records Field 1 ; Field 2 ; tNumberValue1 . export to “c:\test.csv” . .form header Field1~Field2~Field3 .items @f[1,1]~@f[1,2]~@f[1,3] .end  

Published: 19 July 2012

Keystrokes CDF

Keystrokes CDF The KeyStrokes function reads a string which itself consists of the keystrokes you wish to execute. The CDF description: Function Name: Keystrokes CDF Library Name: demacro.dll Return type: Int One Parameter: -Name: KeysString -Type: String The button action should be set to [Execute CDF] and the argument (including the quotation marks) is: KeyStrokes(“_tab”) or, if a combination of keystrokes is required, the argument is KeyStrokes(“_shift(_tab)”).

Published: 19 July 2012

How DataEase Assigns DOS Filenames

How DataEase Assigns DOS Filenames When you save a new document and table, DataEase creates many DOS files distinguished by different filename extensions: File Type                                              Filename Extension Table Definition                                     TDF Table                                                     DBM Document                                              FRM Style Sheet File                                     STY Index                                                      Inn   NOTE: DataEase creates a separate Index file for each column you index. The nn in the DOS filename for an Index file is a two-digit hexadecimal number that represents the relative position of the indexed field. DataEase uses the following four rules to create the filename for each DOS file it creates:   1. The first four characters in the document name are the first four characters in the filenames Table Definition, Table Data, and Document file. For example, DataEase uses CLUB as the first four characters when creating the DOS filename for the CLUBS database table (i.e., CLUBCAAA.TDF).   2. The first four characters in the Style Sheet name are the first four characters in the Style Sheet filename. For example, DataEase uses CLUB as the first four characters when creating the DOS filename for the Club ParaDEASE Style Sheet (i.e., CLUBCAAA.STY).   3. The first letter in the application name is always the fifth letter in the DOS filenames it creates. For example, DataEase uses the letter C as the fifth letter in each DOS filename it creates for the Club ParaDEASE application. Thus, DataEase uses CLUBC as the first five characters when creating the DOS filename for the CLUBS Multiform.   4. DataEase derives a unique filename for each DOS file by automatically incrementing the letters assigned to each type of file when assigning the last three letters in its filename. For example, when you create the CLUBS table, DataEase names the Table Definition file CLUBCAAA.TDF. If you subsequently create the CLUB ACTIVITIES table, DataEase names the second Table Definition file CLUBCAAB.TDF (incrementing the last three letters from AAA, to AAB, to AAC, etc.).  

Published: 19 July 2012

AccessReadOnly

Allow other users to Read all Records.

Published: 5 January 2009

AccessNoRecord

Allow No Records to be Accessed by other users.

Published: 5 January 2009

Filters

Published: 24 May 2013

Internationalization tags and filters

Published: 24 May 2013

django.contrib.humanize

Published: 24 May 2013

Web API reference

Published: 24 May 2013

JavaScript and HTML DOM Reference

Published: 24 May 2013

HTML Introduction

Published: 24 May 2013

HTML Basic - 4 Examples

Published: 24 May 2013

HTML Elements

Published: 24 May 2013

HTML Attributes

Published: 24 May 2013

HTML Headings

Published: 24 May 2013

HTML Paragraphs

Published: 24 May 2013

HTML Text Formatting

Published: 24 May 2013

HTML Links

Published: 24 May 2013

HTML <head> - Header

Published: 24 May 2013

HTML Styles - CSS

Published: 24 May 2013

HTML Images

Published: 24 May 2013

HTML Tables

Published: 24 May 2013

HTML Lists

Published: 24 May 2013

HTML <div> and <span>

Published: 24 May 2013

HTML Layouts

Published: 24 May 2013

HTML Iframes

Published: 24 May 2013

HTML Forms and Input

Published: 24 May 2013

HTML Colors

Published: 24 May 2013

HTML Color Names

Published: 24 May 2013

HTML Scripts

Published: 24 May 2013

HTML Entities

Published: 24 May 2013

HTML Uniform Resource Locators (URL)

Published: 24 May 2013

HTML Quick Start List

Published: 24 May 2013

JavaScript Tutorial

Published: 24 May 2013

JavaScript Introduction

Published: 24 May 2013

HTML Page Break

Published: 5 June 2013

ConsoleCopy OBSOLETE from 8.5.0.1872

Published: 22 July 2014

ConsoleShow OBSOLETE from 8.5.0.1872

Published: 22 July 2014

MemoConsoleCopy OBSOLETE from 8.5.0.1872

Published: 22 July 2014

ConsoleMemoCopy OBSOLETE from 8.5.0.1872

Published: 22 July 2014

ConsoleWriteToFile OBSOLETE from 8.5.0.1872

Published: 22 July 2014

REFERENCE FOR DEMACRO.DLL

Published: 18 September 2013

DFWACTS - Actions as Functions

************************************************************************* File Name: DFWACTS.TXT Description: Description for DFW Action CDFs Copyright: (c) SoftCrafters, Inc. 1996 All Rights Reserved. Author: Van Dillon ************************************************************************* Function Name Parameters Notes NewForm NewMenu NewReport NewProcedure DocumentOpen DocName OpenForm FormName OpenMenu MenuName OpenReport ReportName OpenProcedure ProcName DocumentClose DocName DocumentDelete DocName In DFW 5.13 only PrintDocument PrintPreview PrinterSetup DataImport ImportName DataExport DesignerView ApplicationClose ExitDataEase UndoEdit CutSelected CopySelected CopyRecord CopySpecial Paste FieldClear FormClear RecordSave RecordSaveNew RecordDelete RecordRestore OLELinks AccessAllRecords AccessReadOnly AccessNoRecord RefreshScreen RefreshContinuously RefreshSetTime ViewAsForm ViewAsTable FilterClear FilterSet ZoomNormal ZoomIn ZoomOut ZoomFillWindow ZoomFillAcross ZoomFillDown ZoomPrevious ZoomCustom ZoomTo Percent ZoomBy Percent ToggleToolbar Switch ToggleStatusbar Switch ToggleCatalog Switch ToggleSQL Switch RecordFirst RecordPrevious RecordNext RecordLast FormOpenRelated TableName, [DocName] ReturnToParentDoc LookupTo TableName ReturnDataToDoc RecordPreviousPage RecordNextPage EndPrintToWindow RecordFirstPos RecordPreviousPos RecordNextPos RecordLastPos RecordPrevPagePos RecordNextPagePos SelectRecords RecordsSort SortAscending SortDescending SelectionFilter FilterLSide, FilterRSide QBM_NewReport ClearQueryFilters ClearSort AddFilterAND FilterLSide, FilterRSide AddFilterOR FilterLSide, FilterRSide RunModellator ClearSelectionFilter Users Relationships CustomFunctions DatabaseLinks FormReorganize TableName ApplicationBackup ApplicationRestore ApplicationInstall InstallName Currently not used ApplicationLock ApplicationUnlock RecordsInfo ServersInfon DocumentsInfo ImportsInfo AppPreferences WindowsTileAcross WindowsTileDown WindowsCascade WindowsArrangeIcons WindowsCloseAll HelpIndex HelpDesktop HelpMenus HelpToolbar HelpHowTo HelpGlossary HelpUser HelpAbout HelpSearch KeyWord HelpDQL ExecuteFile FileName AppRename AppNew AppOpen AppDelete AppMigrate DOSMainMenu DOSUserMenu MenuName DOSRecordEntry FormName DOSQueryMenu DOSProcedure ProcName DOSStatus DOSUtilMenu DOSImportMenu DOSProgramCall ProgramName DOSFormsMenu DOSRecordsMenu DOSMaintMenu DOSReportsMenu DOSDefineTable DOSDefineForm DOSViewForm DOSDeleteForm DOSOSMenu DOSFileList FileSpec DOSCheckDisk DOSFormatDisk DiskDrive DOSBackup DiskDrive DOSRestore DiskDrive DOSPrompt DOSAdminMenu DOSRunProcedure DOSLoadProcedure DOSDeleteProcedure DOSRunReport DOSReportRecords DOSReportFields DOSReportFormat DOSLoadReport DOSDeleteReport DOSOneTimeImport DOSRunImport ImportName DOSDefineImport DOSViewImport ImportName DOSDeleteImport ImportName DOSInstallForm DOSInstallProcedure MaxWin MinWin NormalizeWin UseSize, XPos, YPos, XSize, YSize IfMaxNormalize UseSize, XPos, YPos, XSize, YSize IfNormalMax ToggleNormalMax UseSize, XPos, YPos, XSize, YSize IfMaxMin IfNormalMin IsWinMax HideWin IfMaxHide IfNormalHide ************************************************************************************************************************************************** Function Name: NewForm Function Description: Displays the New Document dialog with Form selected Incoming Arguments: Arguments Data Type None Return Value: status int Usage: The New Document dialog is displayed with Form selected. Notes: DFW Action(s): New Form ************************************************************************************************************************************************** Function Name: NewMenu Function Description: Displays the New Document dialog with Menu selected Incoming Arguments: Arguments Data Type None Return Value: status int Usage: The New Document dialog is displayed with Menu selected. Notes: DFW Action(s): New Menu ************************************************************************************************************************************************** Function Name: NewReport Function Description: Displays the New Document dialog with Report selected Incoming Arguments: Arguments Data Type None Return Value: status int Usage: The New Document dialog is displayed with Report selected. Notes: DFW Action(s): New Report ************************************************************************************************************************************************** Function Name: NewProcedure Function Description: Displays the New Document dialog with Procedure selected Incoming Arguments: Arguments Data Type None Return Value: status int Usage: The New Document dialog is displayed with Procedure selected. Notes: DFW Action(s): New Procedure ************************************************************************************************************************************************** Function Name: QBM_NewReport Function Description: Displays the QBM dialog with the MultiView for the current document. Incoming Arguments: Arguments Data Type None Return Value: status int Usage: The QBM dialog is displayed with a copy of the MultiView for the current document. Notes: DFW Action(s): QBM - New Report ************************************************************************************************************************************************** Function Name: DocumentOpen Function Description: opens specified document Incoming Arguments: Arguments Data Type DocName string Return Value: status int Usage: If DocName is not empty the specified document will be opened. If DocName is empty then a dialog will display with all documents. Notes: DFW Action(s): Document Open -- Enter: Document Name ************************************************************************************************************************************************** Function Name: OpenForm Function Description: open specified form or displays dialog Incoming Arguments: Arguments Data Type FormName string Return Value: status int Usage: If FormName is not empty the specified document will be opened. If FormName is empty then a dialog will display with all documents. Notes: DFW Action(s): Open Form -- Enter: Form Name ************************************************************************************************************************************************** Function Name: OpenMenu Function Description: open specified menu or displays dialog Incoming Arguments: Arguments Data Type MenuName string Return Value: status int Usage: If MenuName is not empty the specified document will be opened. If MenuName is empty then a dialog will display with all documents. Notes: DFW Action(s): Open Menu -- Enter: Menu Name ************************************************************************************************************************************************** Function Name: OpenReport Function Description: open specified report or displays dialog Incoming Arguments: Arguments Data Type ReportName string Return Value: status int Usage: If ReportName is not empty the specified document will be opened. If ReportName is empty then a dialog will display with all documents. Notes: DFW Action(s): Open Report -- Enter: Report Name ************************************************************************************************************************************************** Function Name: OpenProcedure Function Description: open specified procedure or displays dialog Incoming Arguments: Arguments Data Type ProcedureName string Return Value: status int Usage: If ProcedureName is not empty the specified document will be opened. If ProcedureName is empty then a dialog will display with all documents. Notes: DFW Action(s): Open Procedure -- Enter: Procedure Name ************************************************************************************************************************************************** Function Name: DocumentClose Function Description: Closes the current document Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Closes the current document. Notes: Could be enhanced to close a specific document. DFW Action(s): Document Close ************************************************************************************************************************************************** Function Name: DocumentDelete Function Description: Deletes the specified document or displays the Delte Document dialog Incoming Arguments: Arguments Data Type DocName string Return Value: status int Usage: Deletes the specified document or, if no document is specified, displays the Delete Document dialog. If the specified document is open it will not be deleted and the system will beep. Notes: DFW Action(s): Document Delete -- Enter: Document Name ************************************************************************************************************************************************** Function Name: PrintDocument Function Description: Prints current document Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Displays Print dialog or prints document depending on settings in Print Options. Notes: Could be enhanced to set Print options w/o displaying dialog DFW Action(s): Print Document ************************************************************************************************************************************************** Function Name: PrintPreview Function Description: Prints current document in zoomed out mode Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Zooms out then displays Print dialog or prints document depending on settings in Print Options. Notes: Could be enhanced to set Print options w/o displaying dialog. DFW Action(s): Print Preview ************************************************************************************************************************************************** Function Name: PrinterSetup Function Description: Displays printer setup dialog Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Displays Printer Setup dialog. Notes: Could be enhanced to set Printer Setup options w/o displaying dialog. DFW Action(s): Printer Setup ************************************************************************************************************************************************** Function Name: DataImport Function Description: Imports data Incoming Arguments: Arguments Data Type ImportName string Return Value: status int Usage: Runs an import (.DBI) or displays the import dialog. Notes: DFW Action(s): Data Import -- Enter: Import File (.dbi) Name************************************************************************************************************************************************** Function Name: DataExport Function Description: Exports data Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Displays the export dialog. Notes: Could be enhanced to set Export options w/o displaying dialog. DFW Action(s): Data Export ************************************************************************************************************************************************** Function Name: DesignerView Function Description: puts document in design mode Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Puts document into design mode. Notes: DFW Action(s): Designer View ************************************************************************************************************************************************** Function Name: ApplicationClose Function Description: Closes application Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Closes the current application. Notes: Could be enhanced to close w/o dialog confirmation. DFW Action(s): Application Close ************************************************************************************************************************************************** Function Name: ExitDataEase Function Description: Closes DFW Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Closes DFW.EXE. Notes: Could be enhanced to exit w/o dialog confirmation. DFW Action(s): Exit DataEase ************************************************************************************************************************************************** Function Name: UndoEdit Function Description: undo last action Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Undoes the last edit action. Notes: DFW Action(s): Undo ************************************************************************************************************************************************** Function Name: CutSelected Function Description: deletes selected data to clipboard Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Cut the selected object to the clipboard. Notes: Could be enhanced to cut from a specified field. DFW Action(s): Cut ************************************************************************************************************************************************** Function Name: CopySelected Function Description: copies selected data to clipboard Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Copy the selected object to the clipboard. Notes: Could be enhanced to copy from a specified field. DFW Action(s): Copy ************************************************************************************************************************************************** Function Name: CopyRecord Function Description: copies selected record(s) Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Copy the selected record to the clipboard. Notes: DFW Action(s): Copy Record(s) ************************************************************************************************************************************************** Function Name: CopySpecial Function Description: copies selected data values to the clipboard Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Copy the selected record(s) data to the clipboard. Notes: Could be enhanced to set Copy Special options w/o displaying the dialog. DFW Action(s): Copy Special ************************************************************************************************************************************************** Function Name: Paste Function Description: pastes data from the clipboard Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Paste data values from the clipboard. Notes: Could be enhanced to paste data to a specified field. DFW Action(s): Paste ************************************************************************************************************************************************** Function Name: FieldClear Function Description: Clears current field Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Currently does nothing for fields or buttons. Notes: Could be enhanced to clear a specific field. DFW Action(s): Field Clear ************************************************************************************************************************************************** Function Name: FormClear Function Description: Goes to a new record Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Clears the form. Notes: DFW Action(s): Form Clear ************************************************************************************************************************************************** Function Name: RecordSave Function Description: Saves changed record(s) Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Saves modifications to the current record. Notes: DFW Action(s): Record Save ************************************************************************************************************************************************** Function Name: RecordSaveNew Function Description: Saves new record(s) Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Saves current record as a new record. Notes: DFW Action(s): Record Save As New ************************************************************************************************************************************************** Function Name: RecordDelete Function Description: Deletes current record Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Deletes the current record. Notes: Could be enhanced to set Delete options w/o displaying dialog. DFW Action(s): Record Delete ************************************************************************************************************************************************** Function Name: RecordRestore Function Description: Rstores deleted record Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Restores the current record. Notes: DFW Action(s): Record Restore ************************************************************************************************************************************************** Function Name: OLELinks Function Description: view, update, open, or remove OLE links. Incoming Arguments: Arguments Data Type None Return Value: status int Usage: view, update, open, or remove OLE links. Notes: DFW Action(s): Links ************************************************************************************************************************************************** Function Name: AcsessAllRecords Function Description: set locking to all record access Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Allow All Records to be Accessed by other users. Notes: DFW Action(s): Access All Records ************************************************************************************************************************************************** Function Name: AcsessReadOnly Function Description: set locking to read record access Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Allow other users to Read all Records. Notes: DFW Action(s): Access Read Only ************************************************************************************************************************************************** Function Name: AcsessNoRecord Function Description: set locking to no record access Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Allow No Records to be Accessed by other users. Notes: DFW Action(s): Access No Record ************************************************************************************************************************************************** Function Name: RefreshScreen Function Description: refreshes data Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Refresh the screen to show data changed by other users. Notes: DFW Action(s): Refresh Screen ************************************************************************************************************************************************** Function Name: RefreshContinuously Function Description: continuously refreshes data Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Continuously Refresh the screen to show data changed by other users. Notes: DFW Action(s): Refresh Continuously ************************************************************************************************************************************************** Function Name: RefreshSetTime Function Description: sets refresh time Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Set the Time interval for continuous Refresh in seconds. Notes: Current action does not accept a Time parameter. DFW Action(s): Refresh Set Time ************************************************************************************************************************************************** Function Name: ViewAsForm Function Description: view as a form Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Set document to be displayed in single record format. Notes: DFW Action(s): View As a Forn ************************************************************************************************************************************************** Function Name: ViewAsTable Function Description: view as table Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Display multiple records in a tabular format. Notes: DFW Action(s): View As Table ************************************************************************************************************************************************** Function Name: FilterClear Function Description: filter clear Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Display all records regardless of selection filter/sort order. Notes: DFW Action(s): Filter Clear ************************************************************************************************************************************************** Function Name: FilterSet Function Description: set filters/sorts Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Display records according to the specified selection filter/sort order. Notes: DFW Action(s): Filter Set ************************************************************************************************************************************************** Function Name: ZoomNormal Function Description: turns zoom off Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Restore display of objects to normal size. Notes: DFW Action(s): Zoom Normal ************************************************************************************************************************************************** Function Name: ZoomIn Function Description: zoom in Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Enlarge display of objects by %d percent of current size. Notes: DFW Action(s): Zoom In ************************************************************************************************************************************************** Function Name: ZoomOut Function Description: zooms out Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Reduce display of objects by a percent of current size. Notes: DFW Action(s): Zoom Out ************************************************************************************************************************************************** Function Name: ZoomFillWindow Function Description: zooms to fill window Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Zoom to fill the Document window. Notes: DFW Action(s): Zoom Fill Window ************************************************************************************************************************************************** Function Name: ZoomFillAcross Function Description: zooms to fill window width Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Zoom to fill the Width of the Document window. Notes: DFW Action(s): Zoom Fill Across ************************************************************************************************************************************************** Function Name: ZoomFillDown Function Description: zooms to window height Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Zoom to fill the Height of the Document window. Notes: DFW Action(s): Zoom Fill Down ************************************************************************************************************************************************** Function Name: ZoomPrevious Function Description: zoom to previous setting Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Restore display of objects to Previous Zoomed size. Notes: DFW Action(s): Zoom Previous ************************************************************************************************************************************************** Function Name: ZoomCustom Function Description: opens Custom Zoom dialog Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Use Custom Zoom dialog to specify a percentage and/or set options. Notes: DFW Action(s): Zoom Custom ************************************************************************************************************************************************** Function Name: ZoomTo Function Description: zooms to specified percentage Incoming Arguments: Arguments Data Type ZoomTo string Return Value: status int Usage: Specify a percentage of the NORMAL size and Zoom TO it. Notes: DFW Action(s): Zoom To -- Enter: Percentage to Zoom To************************************************************************************************************************************************** Function Name: ZoomBy Function Description: zoom by specified percentage Incoming Arguments: Arguments Data Type ZoomBy string Return Value: status int Usage: Specify a percentage of the NORMAL size and Zoom TO it. Notes: DFW Action(s): Zoom By -- Enter: Percentage to Zoom By************************************************************************************************************************************************** Function Name: ToggleToolbar Function Description: toolbar on/off Incoming Arguments: Arguments Data Type Switch string Return Value: status int Usage: Show (1) or hide (0) the toolbar. If no Switch then it toggles the setting. Notes: DFW Action(s): Toggle Toolbar -- Enter: 1 (set ON) or 0 (set OFF) ************************************************************************************************************************************************** Function Name: ToggleStatusbar Function Description: status bar on/off Incoming Arguments: Arguments Data Type Switch string Return Value: status int Usage: Show (1) or hide (0) the statusbar. If no Switch then it toggles the setting. Notes: DFW Action(s): Toggle Status Bar -- Enter: 1 (set ON) or 0 (set OFF)************************************************************************************************************************************************** Function Name: ToggleCatalog Function Description: catalog on/off Incoming Arguments: Arguments Data Type Switch string Return Value: status int Usage: Show (1) or hide (0) the catalog. If no Switch then it toggles the setting. Notes: DFW Action(s): Toggle Catalog -- Enter: 1 (set ON) or 0 (set OFF) ************************************************************************************************************************************************** Function Name: ToggleSQL Function Description: Generated SQL window on/off Incoming Arguments: Arguments Data Type Switch string Return Value: status int Usage: Show (1) or hide (0) the SQL window. If no Switch then it toggles the setting. Notes: DFW Action(s): Toggle Generated SQL -- Enter: 1 (set ON) or 0 (set OFF)************************************************************************************************************************************************** Function Name: RecordFirst Function Description: Goes to the first record Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Goes to the first record. Notes: DFW Action(s): Record First ************************************************************************************************************************************************** Function Name: RecordPrevious Function Description: Goes to the previous record Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Goes to the previous record Notes: Could be enhanced with a timer or to goto a specific record. DFW Action(s): Record Previous ************************************************************************************************************************************************** Function Name: NextRecord Function Description: Goes to the next record Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Goes to the next record Notes: Could be enhanced with a timer or to goto a specific record. DFW Action(s): Record Next ************************************************************************************************************************************************** Function Name: RecordLast Function Description: Goes to the last record Incoming Arguments: Arguments Data Type None Return Value: status int Usage: Goes to the last record. Notes: DFW Action(s): Record Last ************************************************************************************************************************************************** Function Name: FormOpenRelated Function Description: Opens related document Incoming Arguments: Arguments Data Type DocName string Return Value: status int Usage: If DocName is specified it is opened (assuming it is related to the parent document). If DocName is empty then the Open Related dialog is displayed. Notes: DFW Action(s): Form Open Related -- Enter RELATION[,Form]:***************************************************************************************************

Published: 6 November 2013

DataEase Connect for DFD 5.x

Published: 21 April 2016

Epson FX Printer Codes

Published: 19 December 2016