Documentation for Column class Created by Jon Credit All rights reserved I created this class in search of a way to pay more attention to the data that I am reporting on, vs how the data will be outputted on paper. This report class is the result of many long hours of design, coding and testing to get it to its current state. This class is distributed as is with no expressed or implied warranties. If you find the Report Class to be useful, a donation of $30.00 U.S. Dollars would be appreciated. Any registered users will automatically be sent any bug fixes or upgrades to the class(es). I am also currently working on a front end to the Report Class to allow creation of reports from a txt file using a format similar to a windows ini file. This utility will support most if not all of the methods and ivars in the class including goTop(), bWhile, bFind, cInitString, cResetString, and will also allow data to be from multiple database files with a bFind block evaled before printing the data. This utility will be sent to the first 30 people who register the report class at no charge, with complete source code. I hope you find this class to be as useful as I have. If you find any of the concepts dealt with in this report class to be of benifit please contribute $30.00 to the author so that he can justify all the long hours he puts in to his wife!! Thanks and Enjoy.... Jon Credit 50 B. Paisley Lane Columbia, S.C. 29210 CIS 71371.1675 var lChild - Logical variable that tells the column to go into a child process if applicable. VAR lWrap - Logical variable to determine if the column should be word wrapped or not. Default: .F. VAR lShowTotal - Logical to determine if a numeric column should display its total at the end of the report. This option is not currently implemented. VAR lMoreToPrint - Logical variable that tells the column object whether it has more to display when it is wrapping its output. This ivar is for internal use by the column and the report object. DO NOT modify this variable. Default: .F. var bToDo - Code block to be EVALed when starting a child process. This code block needs to return a logical to the column object to tell it whether the child condition is initially met or not. Default: Nothing. It must be assigned when a column object is going to be a child. var bWhile - Code block to be EVALed while in a child process. This is the WHILE condition to stay in the child process. Default: {|| ( ::cParentAlias ) -> ( indexkey(0) ) ==; ( ::cChildAlias ) -> ( indexkey(0) ) } VAR bBlock - Code block to be EVALed to produce the output to the printer device. Since this is a code block you can now have any function get data for your reports. Default: {|| "" ) VAR bFind - Code block to be EVALed prior to printing the column data. This code block allows seeks in other data files for any necessary relationships. Default: {|| Nothing() } var aToBlank - Array of columns NOT to display while in a child process. Default: {} var cJustify - Character variable to tell the column titles how to justify themselves. i.e. L-Left, R-Right C-Center. Default: L var cChildAlias - Character variable to tell the column which alias to select when processing a child process. var cColumnTrim - Character variable depicting the type of trim to do a the column output. i.e. L-LTRIM R-RTRIM A-ALLTRIM Default: R VAR cTitle - Character variable holding the title for the column. Default: "" VAR cPicture - Character variable containing the picture clause for the column output. Default: "" VAR nCol - Numeric variable containing the column position for the column object. This is the starting column location for the column object. Default: Nothing, it is assigned at run time by the report class. VAR nWidth - Numeric variable containing the width of the column output. Default: If not passed when the column object is instantiated, it will be automatically assigned to the width of the EVALed block. VAR nTotal - Numeric variable to hold the total of columns with numeric data, if lShowTotal is TRUE. This feature is currently not implemented. Default: 0 class var cDelimeter - Class character variable that contains a string to be used as a new line delimiter for character output and to also place a line between the data. Default: "" class var cNoLineDelimeter - Class character variable that contains a string to be used as a new line delimiter for character output without placing a line between the data. Default: ~~ method Init - Initialization method for the column class. Default variables are: // Init( cTitle, bBlock, lWrap, nWidth, cPicture ) method show - Method to output the data to the active device. method delimit - Method to parse the character output for the column with the two class variable delimiters. method childProcess - Method to carry out the child process for a column if lChild is TRUE. method ShowTotal - Method to display the totals of numeric columns if lShowTotals is TRUE. NOTE: this feature is not currently implemented. CLASS METHOD InitClass - Class method to initialize the two delimiter string variables. protected: var aOldToBlank - Array to store the old array of columns to blank while establishing a new child process. Note:: currently the report class can only support a single child process. This ivar in addition to others have been established for future enhancements. Default: {} var nPRow - Numeric to keep track of the current row being printed of a character variable being wrapped versus the number of actual rows to display. var lOrigWrap - Logical variable that stores the wrapping condition before displaying output to the screen. var cParentAlias - Character variable to store the alias of the report class when a column object is put into child mode. Default: Nothing. It is assigned at run time. var cToPrint - Character variable to store the EVAL of the bBlock variable, which is to be printed. It is saved to an ivar for purposes of word wrapping. Default: Nothing, it is assigned at run time.