POWER_TB.ZIP - POWER TBROWSE Release 1.02 - 25 May 1993 - ZIP format Exploit the full power of Clipper's tBrowse by stacking many fields in a single column, word wrapping long text in a single column, filtering, editing and more! TBrowse is a very powerful utility included as part of Clipper 5. Unfortunately, the Clipper documentation, even the new documentation with release 5.2, does not explain the full power of tBrowse. Example programs supplied with Clipper, and available from Computer Associates (and formerly Nantucket) as after market help are generally poorly commented, complex, and difficult to understand. This leaves you to discover how to fully exploit tBrowse by experiment, or to live in ignorance. Well, now you have a third option available to you via POWER_TB.ZIP. I have spent dozens of hours single stepping through tBrowse code that I have developed and instrumented, unravelling the way that tBrowse operates. This has allowed me to implement much more powerful tBrowse routines than before, often avoiding the need to develop customised table browsing code for my applications. For instance; the plain vanilla tBrowse explained in the Clipper documentation allows you to put one field in one column of one row - fine if you have short fields and lots of columns. But what if your client wants to see all of the data for one record on the screen at once, or if you have long text fields? Well, tBrowse DOES allow you to do this by stacking fields in a column, or by wrapping text within a column, but how to do it is not explained in the documentation. I have found out how to do this, as well as such simple tricks as editing and filtering, and the results are included in the source code files of POWER_TB.ZIP. The following source code files are included in POWER_TB.ZIP.: tbSimple.prg A simple tBrowse example. tbSimpl2.prg A simple tBrowse example with editing. tbFilt1.prg A filtered tBrowse without SET FILTER. tbFilt2.prg Another way of filtering a tBrowse without SET FILTER. tbStack1.prg Several fields stacked in one column of a tBrowse. tbStack2.prg As tbStack1 with empty fields omitted. tbWrap1.prg A long text field is word wrapped into a single column of the tBrowse. I have included the very simple examples, and the examples of how to filter without the use of SET FILTER for completeness. There is also an example database called "supplier.dbf" that is used by the example programs. This contains details taken from an old product directory circulated by Nantucket, so don't take any of the product information as gospel! It's only used as an example, and I have used Nantucket as the filter criterion to avoid any charge of favouritism. Place the source files and the example database in a subdirectory under c:\clipper5\source, or wherever you normally put your source code. You can use the supplied batch file power_tb.bat to compile and link the code if you have generated the BASE50 pre-linked library file. If you haven't, do so right away - it will save you disk space and link time! Alternatively, you can compile and link however you normally do. Execute each program to see the effects described above. I have deliberately kept the bells and whistles in each program to a minimum to make each effect easier to see and understand, rather than doing everything in one massively complex example. If you like what you see, you now have a choice - you can either examine the source code yourself to understand how it works (and each example is fairly easy to follow if you are well experienced in Clipper programming) OR you can take the easy route and buy my full report on tBrowse - "tBrowse Techniques". The report contains over 70 pages of text, figures and example code, and explains the way the examples work in much more detail than could be done through the use of comments. The report not only explains how each of the examples works in detail, but also explains the operation of a tBrowse object from the simplest basics of object oriented programming, through the way that it works with the data sources and screen display, up to the full functionality of the examples contained in POWER_TB.ZIP. This is done in far more detail than the documentation supplied with Clipper, so that you can see how to develop your own tBrowse techniques. POWER_TB.ZIP and the source code files contained are hereby placed in the public domain, and may be freely copied and distributed, subject only to the following caveats. However, please respect the time and effort that I have put into investigating the tBrowse object and producing the examples in POWER_TB.ZIP, and comply with the following conditions: 1. No charge may be made for distributing POWER_TB.ZIP, apart from a small fee for copying and administration. 2. POWER_TB.ZIP must be distributed complete and without alteration, including this file, the source code files listed above, and the example database. You may not copy or distribute the source code, or functional fragments thereof, to others except in the form of the complete compressed file POWER_TB.ZIP. 3. You may include the source code, or fragments thereof, distributed with POWER_TB.ZIP in your own programs without restriction. I ask only that if you use the code in a commercial application, you purchase a copy of the report. You'll find it worth it from the additional possibilities it opens up. The special report, TBrowse Techniques, professionally presented in a handy lay-flat spiral binding, costs just œ15 (including postage and packing to addresses in the UK. Overseas orders should add œ2 for surface shipping, œ5 for air mail.) Please send cheques, postal or money orders, or cash to: D B Boettcher 19 Millbank Close Chelford Cheshire SK11 9SJ ENGLAND Please make cheques, etc. payable to D B Boettcher. Sorry, I can't accept payment by Credit Card or in Overseas Currency at the moment. You can contact me via the UK Computer Associates Bulletin Board on 0753 550 707; 8 data, 1 stop, no parity. If you would like a disk of the source code from TBrowse Techniques, which includes the latest versions of the examples contained in POWER_TB.ZIP and some more example code, please add œ5, and specify whether you require a 3.5" or 5.25" disk.