ReportWorks Component, Version 1.03
Copyright (c), 1995
All rights reserved
Howard S. Walsh
[76741,2077]                             


Introduction
------------
The ReportWorks component gives developers the ability to create stunning reports quickly with just a few lines of code and very little overhead.

Report columns with left, right or center justification are easily implemented. Memo fields and large text strings, longer than 255 characters, can be output with automatic word-srap within the report borders.

Stylish reports are designed using pre-defined line sizes and widths, standard graphic shapes and imported images, such as, bitmaps and metafiles.

Page measurements are selectable for inches, millimeters or points. Fonts, pens and brushes are fully customizable.

ReportWorks offers easy direction of reports to the built-in preview screen, the printer or to a file. Fast screen redraw enables the user to quickly skim or skip report pages. Report pages are zoomed fast to any percentage. The preview page can be optionally set, from the Object Inspector, with a black border outline.

Tracking of report page lines allows the developer to know exactly where the report is curently printing. Line height is selectable by both text height and lines-per-inch.

The current preview page number and the total number of report pages are available through read-only properties. As well, the page range sent to the printer is selectable.

In addition to the filename used for reports sent to file, the title used by Print Manager are maintained from within the Object Inspector.

LabelWorks, a companion component for ReportWorks, is also available as freeware on Compuserve. LabelWorks gives the developer the ability to create just one, or many, labels with only a few lines of code. Twenty-six Avery labels are pre-defined. These labels can be customized or new label formats can be created.

This shareware version of ReportWorks will run only while Delphi is running. If Delphi is not running, you application will terminate while loading. Other than that, it is a full featured functioning version.

Registration
------------
You can order a registered version of ReportWorks for only $34.95. On
Compuserve, go SWREG and enter the registration number 6751. If ordering via Compuserve, the registered version of ReportWorks will be e-mailed to you as soon as the registration order is received by HSoftWare.

If ordering by mail, please send $34.95 in US funds to HSoftWare. If ordering within the US or Canada include US$3.00 for shipping and handling. If ordering from outside the US and Canada, include US$5.00 for shipping and handling. If ordering within Canada, add GST and if ordering within Ontario add GST and PST.

Please send cheque or money order to:

HSoftWare
Howard Walsh
385 Fairway Rd. South
Suite 4A-154
Kitchener, Ontario   N2C 2N9

With the registered version you will receive the full source code. This
code may be altered by you as you wish to make ReportWorks function to your
personal needs. There are no run-time royalities when using ReportWorks,
however, you cannot resell the ReportWorks as your own, altered or unaltered
in component or other non-executable form.

The registered version does not need Delphi running in order to work.

Please report any problems you are having so that I may improve ReportWorks.
Also, if you have an idea to make ReportWorks better, please let me know.
I can be reached on Compuserve at 76741,2077.


Installation
------------
The files included are:

  DEMO*.*       - Demo files
  RPTWORKS.DCU,
  RPTWORKS.DCR,
  ABORTFRM.DCU,
  ABORTFRM.DFM  - Shareware version of ReportWorks
  RPTWORKS.HLP  - Help file
  RPTWORKS.KWF  - Help keyword file
  RPTWORKS.WRI  - Help file in text format for easy reference
  README.TXT	- This file
 
To run the demo just execute DEMO.EXE.

To install the ReportWorks component:

Copy RPTWORKS.DCU and RPTWORKS.DCR, ABORTFRM.DCU and ABORTFRM.DFM
   to \DELPHI\LIB
Run Delphi
Select "Options|Install Components"
Select "Add" then type "RptWorks"
Select OK
Select Options|Rebuild Library

To install HELP see the Delphi Component Writer's Guide for directions on
installing component help and keyword files.

When finished you will have a new icon on the Additional page of components.


Upgrading to a new Version
--------------------------

To upgrade to a new version or to the registered version, replace RPTWORKS.DCU and RPTWORKS.DCR, ABORTFRM.DCU and ABORTFRM.DFM in \DELPHI\LIB.

Run Delphi
Select Options|Rebuild Library


Running the Demo
----------------
   The ReportWorks demo program assumes you have installed the
   Delphi demo files in the default directories and that the
   Borland Database Engine is installed. If not, then this demo
   will not run unless you edit the demo source and delete
   the DataSource and Table components from the Demo1 form.
   To edit the source code, delete lines 260 to 331.


Version 1.03
------------
This version fixes problem with small text (fonts) on reports output to a 
printer. This occurs when setting printer font sizes before calling the
Printer.StartDoc method. Fonts should only be set after a call to 
ReportWorks.StartDoc, however, no problem will now occur if set before.

When LineMeasure is set to lmTextHeight, the Font TextHeight is now 
calculated to include a 10% offset. This corrects the problem of lower case
letters, such as >g< and >p<, overlapping letters, such as >l< and >t<, on
the next line.

New procedures:
	1)procedure SetFontColor(fontcolor:TColor);
		Changes the color of the current font.
	2)procedure SetFontName(fontname:string);
		Changes the typeface of the current font.
	3)procedure SetFontSize(fontsize:integer);
		Changes the size of the current font.
	4)procedure SetFontStyle(fontstyle:TFontStyles);
		Changes the style of the current font.

New properties:
	1)property ReportFont:TFont;
		Report font can be set using the Object Inspector.
		Beside using procedures above to set font, the ReportFont
		property can be changed directly. This property insures that
    		the report has a font at startup and that printer fonts
		are not set be calling Startdoc.

Version 1.02
------------
New procedures: 
	1)procedure FontColor(clColor);
		Just specify a new font color;

	2)procedure PrintMemo(mlLines:TStrings);
		Pass a memo fields lines to print as a paragraph.
		ie: PrintMemo(Memo1.Lines);
		PrintMemo assumes that if the last character on a line is a 
		period, question mark or exclamation point then the next 
		line is the start of a new paragraph.

	3)procedure SetLineNum(lnum:integer);
		Set the current line to the number passed by the lnum
		parameter. For use when LineMeasure = lmLinesPerInch.
		Has no effect if LineMeasure = lmTextHeight.

New properties:
	1)property PrintPageFirst
		Specifies the first page to send to the printer.
		Has no effect on preview screen.

	2)property PrintPageLast
		Specifies the last page to send to the printer.
		Has no effect on preview screen.

	3)property LineNum : integer;
		This is a read only property which returns the
		current line number.

Improved properties and procedures:
	1)procedure PrintParagraph(pgraph:pchar);
		PrintParagraph now correctly prints large amounts of text 
		over two or more pages. Text is broken down into TStrings 
		within the page margins. This places a limitation of 255 
		characters per line, however, that should not create any 
		problems under normal circumstances.
	2)procedure DrawGraphic(APicture:TPicture);
		Fixed problem printing bitmaps to some printers. Note that
		TPicture is now used instead of TGraphic. DrawGraphic draws
		the passed graphic at the current position on the report
		page. To display graphic at a specific location, call
		GoToXY before calling DrawGraphic.
	3)procedure PositionGraphic(AJustify:TJustify;APicture:TPicture);
		Fixed problem printing bitmaps to some printers. Note that
		TPicture is now used instead of TGraphic.
	4)procedure StretchGraphic(X1,Y1,X2,Y2:single;APicture:TPicture);
		Fixed problem printing bitmaps to some printers. Note that
		TPicture is now used instead of TGraphic.
	5)property ZoomPercent;
		Changing the ZoomPercent value now displays a readable
		preview page which is zoomed. Preview page does not 
		automatically refresh. After setting ZoomPercent during
		runtime, call the report printing procedure to display the
		report in the new size. (See demo.)


Warranty
--------
Disclaimer of Warranties
HSoftWare does not warrant that the ReportWorks component will meet your 
requirements or that the operation of the component will be uninterrupted or
error free. Nor do we offer any Warranties or Guarantees of any kind. You 
are free to use the ReportWorks component in any way you see fit, but at 
your own risk.

HSoftWare is not responsible for any problems or damage caused by 
the ReportWorks component or that may result from using the ReportWorks 
component, whether licensed or not. This includes, but is not limited to, 
computer hardware, computer software, operating systems, and any other 
computer or computing accessories. Should the ReportWorks component prove 
defective, the end user assumes the risk of paying the entire cost of all 
necessary servicing, repair, or correction and any incidental or 
consequential damages. In no event will HSoftWare be liable for any damages
whatsoever, including without limitation damages for loss of business 
profits, business interruption, loss of business information and the like, 
arising out of the use or the inability to use the ReportWorks component, 
even if HSoftWare has been advised of the possibility of such damages.

The end user agrees to hold HSoftWare and/or any persons associated with 
the creation of this component harmless for any problems arising from the 
use of the component.

Use of this product for any period of time constitutes your acceptance of 
this agreement.

HSoftWare regrets having to place such a disclaimer. We have made every 
effort to create a software product that is error free, however, in the 
creation of any piece of software the possibility exists for unforeseen 
problems.

08/21/95