Conversion of Dataflex Programs to PFXplus

What Powerflex Supports | PFXplus Differences | PFXplus Extensions | Compiling Dataflex Programs | PFXplus Enhancements

Not sure how the conversion will benefit you? Read the overview.

Not only is PFXplus a much faster and more powerful product than Dataflex, it is also very compatible with Dataflex 2.3b, making your conversion from Dataflex 2.3b to PFXplus quick and easy.

Conversion time will very much depend on the source code itself - mostly on the use of macros, changes to FMAC and whether the code is procedural or object-oriented. PFXplus does not support Dataflex object-oriented code; this will need to be rewritten to procedural before conversion.

Later versions of Dataflex (post 2.3b) may require more work to convert to PFXplus because of the extra capabilities included in later versions, which may or may not be compatible with PFXplus .

PFXplus 5.0 online help contains a Dataflex Conversion Checklist, which should assist you with your conversion to PFXplus a great deal.

We are so sure of our products that they all come with a 30 day money-back guarantee, as well as 60 days free Priority One support for new developers, and a range of support options to suit your needs. See Support for Warranty and Support conditions.

For installation-related issues you are also entitled to a free Priority One support for 30 days after the purchase .

What PFXplus Supports

PFXplus is highly compatible with Dataflex procedural source code. The PFXplus Compiler can compile and run most programs written for version 2.3 absolutely unchanged. Where changes are required they are usually quite minor and the changed program still compiles correctly under Dataflex.

PFXplus also supports most of the procedural features of Dataflex 3.x. The PFXplus Compiler can compile and run most programs written for version 3.x unchanged or with minor changes.

PFXplus is highly compatible with Dataflex data files. A compiled PFXplus application program can read all data files created by Dataflex 2.3 and 3.x, and can write data files which Dataflex 2.3 and 3.x will accept. Given suitable configuration settings it can even use FILELIST.CFG and PFERROR.DAT unchanged.

Top of Page

PFXplus Differences

PFXplus is designed to be highly compatible with existing Dataflex source code and data files in order to take advantage of your investment in existing programs. It differs in many other respects. In converting programs to PFXplus you must expect to find some differences, most of them intentional. PFXplus has its own file naming conventions, environment variables, color combinations, screen characters and function keys. You may if you wish customise some of these aspects to be more familiar. Details are to be found in the PFXplus 5.0 on-line help - sections on Installation and Configuration.

PFXplus does not support the Dataflex 2.3 Graphics statements. PFXplus supports most Dataflex macro statements such as #INCLUDE, #COMMAND, #REPLACE, #SET, #IF, #IFDEF, #IFSAME, #IFCLASS, #IFTYPE, #ELSE and #ENDIF, together with arguments !0 to !9 and compile-time variables !a to !z and !A to !Z.PFXplus does not support the Dataflex 3.x object-oriented constructs. It supports the new string expressions and EVAL( ). It supports the new sequential file drivers, channels and constraints but there are differences.

Writing a zero filled numeric value, for example 000125.50, into ASCII file removes zeros resulting in number 125.5. Formatting function can be used to retain leading and decimal zeros in the output ASCII file.

PFXplus compiler recognizes a number of directives and other symbols used in Dataflex programming even though PFXplus itself does not use them. These symbols include the following.

#CHECK #FORMAT #FREF #IFIND #XPOP #XPUSH

Top of Page

PFXplus Extensions

The Powerflex language extends well beyond supporting existing Dataflex programs.

PFXplus has arrays, procedures, user defined functions, enhanced syntax for expressions, logical expressions including AND and OR, bit-wise arithmetic operations, operator precedence, new statements for support of ENTER and REPORT, new statements BEEP, BOX, CALL_BINARY, COLOR_MAP, COLOR_WINDOW, CLOSE_PANEL , CURSOR, DECREMENT, DELAY, DISK_SPACE, ENCRYPT, ENTRESET, FILE_DEF, FILE_SET, FIELD_DEF, FIELD_SET, FRAME, GET_ENV, HEX, INDEX_SET, INP, INTDOS, INT86X, LOAD_BINARY, KEY_MAP, MOUSE commands, OPEN_PANEL, OVERLAY, OUTP, PANEL_SET, PEEK, PEEKW, POKE, POKEW, RANDOM, REINDEX, SCROLL, SCROLL_MODE, SYSTIME, TONE and UNLOAD_BINARY, and extended syntax for existing statements including ABORT, DIRECTORY, FIELD_DEF, FOR, INDEX_DEF, LOCK, RENAMEFILE, SYSTEM and UNLOCK.

PFXplus also has temporary indexes, in-memory data tables, global, shared and private modules, buttons, multi-line edit, list-boxes, GET_SCREEN and SET_SCREEN, callbacks for ENTRY, ACCEPT, keyboard input and error handling, optimised file constraints, SET_TERMTYPE, ENTRY to variables, IMAGE, FILE, WINDOW and FIELD functions, CLASS and OBJECT statements and lots more.

Top of Page

Compiling Dataflex Programs

If you have followed the rules in the Dataflex manuals, your programs should compile correctly first time. For example, most of the sample programs supplied with Dataflex 2.3 (other than those using graphics) compile and run unchanged. This includes MENUDEF.SRC, READ.SRC, FLEXERRS.FRM and programs generated by DFQUERY and DFAUTO.

If your programs use undocumented features, #COMMAND macros, a modified FMAC, or have taken advantage of certain peculiarities of Dataflex, you will have a little more work to do. For example, the standard Dataflex programs MENU.SRC and DELQRY.SRC do not compile immediately because of the use of I-code and other undocumented features. After working through the conversion checklist in the PFXplus 5.0 on-line help they compile and run fine.

PFXplus compiler enables various levels of data source compatibility by specifying iCompatibility in the pfx.ini configuration file. This can be useful in programs where < and > operators mean MIN and MAX.

Top of Page

PFXplus Enhancements

This is a very brief summary to let the experienced programmer know about PFXplus enhancements. You will need to consult the Powerflex Lexicons for further details.

Top of Page

Back to FAQ Page