Here are some suggestions and things to consider when using XTEXT as a report viewer:
• | Since most reports use fixed-pitch type, you will probably want to specify a fixed pitch font (e.g. Lucida Console or Courier New) in the TXC.FONTFACE field. Note that when specifying a font face name, you must also set the TXC.FONTSIZE to something reasonable (like 8). |
• | Since there is no equivalent to the 80/132 column display modes of EZTYP, you will have to rely on the horizontal scroll bar (TXF_HSCROLL). |
• | Since you probably do not want to allow modification of the report, set the TXF_READONLY and TXF_DEFERSAVE flags. |
• | See Page Breaks for information on making sure the hard page breaks display properly. |
• | There is currently no equivalent of the EZTYP "goto page" function, but F10 pops up a dialog allowing you to go to a specified line number. If the report has printed page numbers, you can also use the search function (on the toolbar or F5) search for a page number. |
• | If you want the viewer to occupy the entire screen, set the coordinates to something like -1,-1,-2000,-2000. This would correspond to pixel coordinates of (1,1) for the upper left corner and (2000,2000) for the lower right corner, but A-Shell will shift and/or trim the size of any popup window (you need the TXF_POPUP flag) to fit the screen. But, in that case, you had better not use the TXF_MODELESS option, or else the XTEXT control will obscure the rest of the app and not give you any easy way to get back to it. |
• | To achieve similar functionality to the EZTYP command line, consider wrapping the XTEXT control in a dialog which contains buttons, and perhaps even a command line, along the bottom of the dialog. For example, to implement a printing capability similar to EZTYP's, you could trap the printer toolbar icon (or F4; see Trapping Toolbar Commands) and then prompt the user for printing parameters such as starting/ending page, printer, etc. If you had created an EZPRTX.SBX to customize EZTYP printing, you could reuse that logic by calling the subroutine directly from your application. |