This log summarizes development of Compare. Copyright: Inforum 2016 Web Site: www.Inforum.umd.edu 8/31/05 This updates version 6.574. Replaced all "cprintf"s with "printf" to fix display on Win2000 and XP machines. Undefined DOS, defined BCB. 12/22/06 Modified behavior for CFG file; if file open for bank fails, try changing the path to be based on the path of the *.in file. Made various changes to eliminate problems with "delete" vs. "delete[]", buffer overflow problems, and other such problems. Modified Cutoff() to ignore years in which both intermediate flows and output are zero. Explicitly freed open data banks. 6.581 3/11/09 Add support for printing to Excel spreadsheets, by way of MS Excel. Employed recent code improvements to G7. Spreadsheets can be created in XLS format with the \xls option. Currently, capabilities mimic WK1 capability closely, except that multiple worksheets can be created. New sheets are named according to the \head setting, and new sheets are specified in accordance with previous (non-WK1) Compare features. Other code cleanup, patched memory leaks, .... 6.582 5/18/09 Debug, including problems with bad initialization turned up by memory leak patching. Added decimal formating control for Excel float printing. Added \wstitle to name the current XL worksheet; otherwise, tabs are named with the current \head setting or the default "Page-". 6.583 5/21/09 Improved the display of the *.in configuration file. 5/25/09 Catch excessive worksheet titles; limit is 31 characters. Block attempts to create TOC when the file is not open for writing. 6.584 6/17/09 Correction to indexing in XL (problem with excelIntToColumn: AA). 6/19/09 Reset LineCount and PageCount when creating spreadsheets. 6.585 7/01/09 Updated Excel routines to match G7 development. 6.586 7/15/09 Comment line in Vam destructor that was corrupting Vam files. 6.587 12/17/09 Extend the filesearch from 12/22/06 to apply to additional files. Fix problems when printing \head and \title to a spreadsheet. Corrected row number specification for printing of bank titles on second, ... worksheets. Reset LineCount and PageCount when creating new worksheets (see 06/19/09). 6.588 07/23/10 Synchronized Excel class with G7. In particular, added ability to create other file types, dependent on the filename exension given for the output filename specified in the ".in" config file. Supported file types are File Format Extension File Format Extension File Format Extension File Format Extension ----------- --------- ----------- --------- ----------- --------- ----------- --------- "AddIn" ".xlam" "CSV" ".csv" "CSVMac" ".csv" "CSVMSDOS" ".csv" "CSVWindows" ".csv" "DBF2" ".dbf" "DBF3" ".dbf" "DBF4" ".dbf" "DIF" ".dif" "Excel2" ".xls" "Excel2FarEast" ".xls" "Excel3" ".xls" "Excel4" ".xls" "Excel5" ".xls" "Excel7" ".xls" "Excel9795" ".xls" "Excel4Workbook" ".xls" "IntlAddIn" ".xla" "IntlMacro" ".xlsm" "WorkbookNormal" ".xls" "SYLK" ".slk" "Template" ".xltx" "TextMac" ".txt" "TextMSDOS" ".txt" "TextPrinter" ".txt" "TextWindows" ".txt" "WK1" ".wk1" "WK1ALL" ".wk1" "WK1FMT" ".wk1" "WK3" ".wk3 " "WK4" ".wk4" "WK3FM3" ".wk3" "WKS" ".wks" "WQ1" ".wq1" "UnicodeText" ".txt" "Html" ".html" "XLS" ".xls" The current implementation allows only a subset of these formats to be utilized, since not all of the extensions are unique. The default extension and format is "XLS", and it is employed if the provided extension is not recognized. Bugs that were fixed in G7 were implemented, including a fix in excelColumnPlusN(). The G7 setFormatDecimal() was utilized, replacing routines that were setting the spreadsheet cell precision manually. Added a number of font formatting routines from G7. The default setting for dates now underlines the dates with the Excel underline feature; this is controlled by the existing Compare underline command: "\under " Supported underlining options (for spreadsheets) are "UnderlineDouble" or "=" "UnderlineDoubleAccounting" or "~" "UnderlineSingle" or "-" "UnderlineSingleAccounting" or "_" "UnderlineNone" or "n" Additionally, the default date settings will center the date and make them boldface. The Compare feature for \dates that adds a blank column separator ("sX") now has native spreadsheet implementation, with the column width is set to X. Font control has been added over the following: - \fonthead - font for \head output - \fonttitle - font for \title - \fontdate - font for dates - \fontbank - font for printing of data banks emloyed - \fontname - font for series names - \fontdata - font for numerical output - \font - default settings; will override all others, except that the default date settings (bold, center, double underline) will be reset In each case, the \font... command is followed by one or more font settings; the specified order of settings does not matter. These may include clear bold OR underline OR , where is -, _, =, ~, or 'n' and 'X' is Double, ..., as specified above italic , where hpos is "justify", "center", "right", or "left" , where vpos is "top", "vcenter", "bottom", or "vjustify" | | , where X is the size; when printing spreadsheets, each setting (pitch/points/size) is equivalent. , where the default is Black and others are (multiple words should be grouped with "", e.g. "Dark Gray"): "None" "Aqua" "Black" "Blue" "Cream" "Dark Gray" "Fuchsia" "Gray" "Green" "Lime green" "Light Gray" "Maroon" "Medium Gray" "Mint green" "Navy blue" "Olive green" "Purple" "Red" "Silver" "Sky blue" "Teal" "White" "Yellow" where typeface is (these are typically installed by default, either with Windows or Office; multiple words should be grouped with "", e.g. "Arial Black") "Agency FB" "Agency FB Bold" "Algerian" "Arial" "Arial Black" "Arial Black Italic" "Arial Bold" "Arial Bold Italic" "Arial Italic" "Arial Narrow" "Arial Narrow Bold" "Arial Narrow Bold Italic" "Arial Narrow Italic" "Arial Rounded MT Bold" "Arial Unicode MS" "Baskerville Old Face" "Batang" "Bauhaus 93" "Bell MT" "Bell MT Bold" "Bell MT Italic" "Berlin Sans FB" "Berlin Sans FB Bold" "Berlin Sans FB Demi Bold" "Bernard MT Condensed" "Blackadder ITC" "Bodoni MT" "Bodoni MT Black" "Bodoni MT Black Italic" "Bodoni MT Bold" "Bodoni MT Bold Italic" "Bodoni MT Condensed" "Bodoni MT Condensed Bold" "Bodoni MT Condensed Bold Italic" "Bodoni MT Condensed Italic" "Bodoni MT Italic" "Bodoni MT Poster Compressed" "Book Antiqua" "Book Antiqua Bold" "Book Antiqua Bold Italic" "Book Antiqua Italic" "Bookman Old Style" "Bookman Old Style Bold" "Bookman Old Style Bold Italic" "Bookman Old Style Italic" "Bradley Hand ITC" "Britannic Bold" "Broadway" "Brush Script MT Italic" "Californian FB" "Californian FB Bold" "Californian FB Italic" "Calisto MT" "Calisto MT Bold" "Calisto MT Bold Italic" "Calisto MT Italic" "Castellar" "Centaur" "Century" "Century Gothic" "Century Gothic Bold" "Century Gothic Bold Italic" "Century Gothic Italic" "Century Schoolbook" "Century Schoolbook Bold" "Century Schoolbook Bold Italic" "Century Schoolbook Italic" "Chiller" "Colonna MT" "Comic Sans MS" "Comic Sans MS Bold" "Cooper Black" "Copperplate Gothic Bold" "Copperplate Gothic Light" "Courier New" "Courier New Bold" "Courier New Bold Italic" "Courier New Italic" "Curlz MT" "Edwardian Script ITC" "Elephant" "Elephant Italic" "Engravers MT" "Eras Bold ITC" "Eras Demi ITC" "Eras Light ITC" "Eras Medium ITC" "Felix Titling" "Footlight MT Light" "Forte" "Franklin Gothic Book" "Franklin Gothic Book Italic" "Franklin Gothic Demi" "Franklin Gothic Demi Cond" "Franklin Gothic Demi Italic" "Franklin Gothic Heavy" "Franklin Gothic Heavy Italic" "Franklin Gothic Medium" "Franklin Gothic Medium Cond" "Franklin Gothic Medium Italic" "Freestyle Script" "French Script MT" "Garamond" "Garamond Bold" "Garamond Italic" "Gigi" "Gill Sans MT" "Gill Sans MT Bold" "Gill Sans MT Bold Italic" "Gill Sans MT Condensed" "Gill Sans MT Ext Condensed Bold" "Gill Sans MT Italic" "Gill Sans Ultra Bold" "Gill Sans Ultra Bold Condensed" "Gloucester MT Extra Condensed" "Goudy Old Style" "Goudy Old Style Bold" "Goudy Old Style Italic" "Goudy Stout" "Haettenschweiler" "Harlow Solid Italic" "Harrington" "High Tower Text" "High Tower Text Italic" "Impact" "Imprint MT Shadow" "Informal Roman" "Jokerman" "Juice ITC" "Kristen ITC" "Kunstler Script" "Lucida Bright" "Lucida Bright Demibold" "Lucida Bright Demibold Italic" "Lucida Bright Italic" "Lucida Calligraphy Italic" "Lucida Fax Demibold" "Lucida Fax Demibold Italic" "Lucida Fax Italic" "Lucida Fax Regular" "Lucida Handwriting Italic" "Lucida Sans Demibold Italic" "Lucida Sans Demibold Roman" "Lucida Sans Italic" "Lucida Sans Regular" "Lucida Sans Typewriter Bold" "Lucida Sans Typewriter Bold Oblique" "Lucida Sans Typewriter Oblique" "Lucida Sans Typewriter Regular" "Magneto Bold" "Maiandra GD" "Map Symbols" "Matura MT Script Capitals" "Mistral" "Modern No. 20" "Monotype Corsiva" "MS Mincho" "MS Outlook" "MT Extra" "Niagara Engraved" "Niagara Solid" "OCR A Extended" "Old English Text MT" "Onyx" "Palace Script MT" "Palatino Linotype" "Palatino Linotype Bold" "Palatino Linotype Bold Italic" "Palatino Linotype Italic" "Papyrus" "Parchment" "Perpetua" "Perpetua Bold" "Perpetua Bold Italic" "Perpetua Italic" "Perpetua Titling MT Bold" "Perpetua Titling MT Light" "Playbill" "PMingLiU" "Poor Richard" "Pristina" "Rage Italic" "Ravie" "Rockwell" "Rockwell Bold" "Rockwell Bold Italic" "Rockwell Condensed" "Rockwell Condensed Bold" "Rockwell Extra Bold" "Rockwell Italic" "Script MT Bold" "Showcard Gothic" "SimSun" "Snap ITC" "Stencil" "Symbol" "Tahoma" "Tahoma Bold" "Tempus Sans ITC" "Times New Roman" "Times New Roman Bold" "Times New Roman Bold Italic" "Times New Roman Italic" "Trebuchet MS" "Trebuchet MS Bold" "Trebuchet MS Bold Italic" "Trebuchet MS Italic" "Tw Cen MT" "Tw Cen MT Bold" "Tw Cen MT Bold Italic" "Tw Cen MT Condensed" "Tw Cen MT Condensed Bold" "Tw Cen MT Condensed Extra Bold" "Tw Cen MT Italic" "Verdana" "Verdana Bold" "Verdana Bold Italic" "Verdana Italic" "Viner Hand ITC" "Vivaldi Italic" "Vladimir Script" "Wide Latin" "Wingdings" "Wingdings 2" "Wingdings 3" Implemented spreadsheet control for missing values, where the missing value code is provided by the \missing command (e.g. \missing "N/A"). The G7 setFormula() routine was employed to implement the \line command, where a "=REPT(,)" formula now is printed to the spreadsheet. The printing of page headers was modified for spreadsheets to improve the appearance of spreadsheets. 6.5890 08/27/10 Added command "\filetype ", where legal values for were listed 07/23/10, to specify the file format for Excel. Compare will determine the appropriate extension if a file type is provided. Added checks for missing values when calculating (percentage) differences between spreadsheets. Fixed an \xls bug, where an extra line was getting printed on the second and following worksheets. Fixed a bug where the series frequency was not getting set in some cases, e.g. "\f x = 1"; this needs further checking. 6.5891 09/01/10 Fixed \xls font bug with vertical alignment. Updated excelclass with G7 code. 01/06/11 Made the PrintIt() function more robust. Added Excel class updates from G7. 01/11/11 Depad the \pcontrol argument. Added fonts: "times", "timesbold", "timesbolditalic", "timesitalic", "courier", "courierbold", "courierbolditalic", "courieritalic" 06/21/11 Added \printbase to control printing of base levels. Fixed problem with varying column widths in xls. 08/11/11 Rewrote part of nnfgets() to improve removal of whitespace. Modified routine that reads bank name from the .in file to allow quotes. 08/12/11 In Groups.h, changed MAXSEC=750 to MAXSEC=3500. 6.590 02/15/12 Add \wsfreeze to freeze xl pane. Added G7 isnum(). 6.591 08/21/12 Synchronized with G7 Excel code. 08/23/12 Added \xlgraph routines. 6.592 06/10/13 Added many printer control commands and documented all \pc commands. 6.593 06/14/13 Added CompareExit() and functions to control color of screen. 08/01/13 Fixed problem with '\pc pitch' command. 08/05/13 When calculating zero/zero or zero/nonzero, set to zero instead of missing value. 6.594 09/11/14 Add intelligent search for pmx file location, copied from G7. Added return codes for matrix listing. 6.595 02/19/15 Improve control of printing zeros with the \nzr command when multiple banks are loaded, and fix problems with \nzr when printing to xls files. 6.596 07/29/15 Improve .in config file reading to allow "..\filename" specification, etc. Add checks, error messages, and error handling to sort routines. 6.597 06/22/16 Print matrix listing titles in XL. Automatically set XL precision to zero when printing integers. Intelligently call integer/float/string printing function when printing dates to XL file. Turn off subtitles when no text is given. 6.597