PLEASE TURN WORD WRAP OFF when viewing this

Abri Chart Version 1.0 - Copyright (c) 2000, Abri Technologies (www.abri.com)

These instructions are divided into 7 sections:
 1.0 - Introduction
 2.0 - Features
 3.0 - License Agreement And Disclaimer
 4.0 - AbriChart Parameters
 5.0 - Bitmap generation - for including chart in your own reports
 6.0 - AbriChart.DLL
 7.0 - Chartpro.dbf & Chartdat.dbf Tables
 8.0 - Files Requiried To Run AbriChart
 9.0 - Programming information.
10.0 - Pricing and order information.

1.0 Introduction:
~~~~~~~~~~~~~~~~~

Abri chart is a simplified graphic package for integrating into your
application to display or print graphic data for various graph types -
bar chart, pie chart, line chart, etc. - and can be called from a
software application in Windows 95+ AbriChart.exe is called from your
application using chart properties and data that you enter in two
dBase tables ChartPro.DBF and ChartDat.DBF. Deleted marked records are
ignored. It is also possible to use another program to enter the table
data and then run AbriChart from Windows standalone.

IMPORTANT NOTE: Although AbriChart is not an ActiveX component that
you directly include on your app forms, IT IS EASY to use AbriChart
(exe or dll) to generate the chart bitmap files you desire before
you display them on your application forms or reports. You simply
set AbriChart to generate the desired bitmap files and not display
the graphs (just include the NoShow line in ChrartPro.DBF).

This edition of AbriChart now include both Abrichart.exe and AbriChart.dll.

1.1 AbriChart demo
==================

The AbriChart demo is full featured AbriChart software but with a
registration reminder message.

The simplest way to run the demo is to create a unique folder - 
say AbriChart on your desktop - and unzip the AbriChart.zip files
into the folder and then simply execute the AbriChart.exe file.

After seing the result, examine the sample data in tables ChartPro.DBF
and ChartDat.DBF to see how the chart setup is controlled. You will
notice that some of the records are marked deleted. Those records are
ignored in the charting process. You can mark delete or undelete the
records and change the values to see how it affects the resulting chart.

A Visual FoxPro demo of simple form and report that include graphs are
also included. To run the VFP demo just unzip the VFPdemo.ZIP file in
the same directory and from Visual Foxpro command line use the command:

DO FORM ChartDemo

Please see the ACTIVATE and other events in the ChartDemo form for
sample methods of using AbriChart with VFP.

1.2 Registered AbriChart file AbriChart.exe
===========================================

All the required files in the demo are included except you need to
replace the demo copies of AbriChart.exe/.dll with the licensed copes
of AbriChart.exe/.dll. For a list of required AbriChart library
package files see section 8.0.

2.0 Features:
~~~~~~~~~~~~~
* Easy to use and integrate into your application.
  Your app simply fills out the chart properties into table ChartPro.DBF
  and the data into ChartDat.DBF and executes AbriChart.exe.
* AbriChart.exe can be called from almost any application that runs from
  Windows 95+ including Visual Basic, all versions of FoxPro, Delphi, etc.
  However, AbriChart.DLL has to be used from 32 bit Windows apps.
* Displays and/or prints the graph.
* Generates, pie, vertical bar, horizontal bar and line charts.
* 3D or 2D charts
* Can generate a bitmap file like mygraph.bmp for direct embeding
  into your own application software reports.


3.0 License Agreement and Disclaimer:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LICENSE AGREEMENT:

Single User: Purchase of AbriChart license entitles you, the original
purchaser, to use AbriChart on your own single computer - using a
single CPU and not networked.

Distribution License: The license also entitles you to royalty free
distribution of AbriChart and associated files when distributed with
your own genuine and legitimate software application (.APP or .EXE),
your application being generated on single CPU by same
programmer/developer and AbriChart is used only by your own
application. When more than one programmer or developer integrates
AbriChart into software application(s) an additional license is
required for each additional programmer/developer person. You cannot
have any intention of distributing copies of AbriChart for free or for
gain of any type which may diminish sales of AbriChart by Abri
Technologies or compete.

DISCLAIMER:
This software is supplied as is without warranty of any kind. Abri
Technologies disclaims all warranties, expressed or implied,
including, without limitation, the warranties of merchantability and
of fitness for any purpose. Abri Technologies assumes no liability for
damages, direct or consequential, which may result from the use of
this software.

All rights not expressly granted here are reserved to Abri Technologies.

4.0 AbriChart Parameters
~~~~~~~~~~~~~~~~~~~~~~~~

You can start AbriChart.exe by simply executing it from windows or
calling it from your software application. Note that from older DOS
type software applications you may need to call ABRICH~1.EXE instead
of AbriChart.exe.

Without parameters, AbriChart.exe looks for the two tables
ChartPro.DBF and ChartDat.DBF in the current directory and uses the
information to create the chart. If you want to specify the tables in
a different directory or by a different name you can include them as
parameters when calling AbriChart.exe. 

Abrichart.dll function AbriChart() requires correct pathnames of the
chart two .DBF files as the two parameters.

A sample call to AbriChart example is:

AbriChart c:\account\acpro.dbf c:\account\acdat.dbf

The above indicates that the table c:\account\acpro.dbf
has the ChartPro.DBF data and c:\account\acdat.dbf has
the ChartDat.DBF data.

For further specifics on using the AbriChart.dll please see section 6.0.

5.0 - Bitmap generation - generating charts for your own reports
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For more complicated reports you can use AbriChart to pre-generate one
or more bitmap files - mychart1.bmp, mychart2.bmp... - and embed those
bitmaps directly into your reports. Please see the CharPro.DBF
description of the BitMap option line.

FPW and VFP5 Note: If you do generate the bitmaps it appears that the
bitmaps generated are of updated newer format whose colours may not be
displayed correctly on a screen/form/report in FoxPro for Windows
(FPW) and up to Visual FoxPro V 5.0 (VFP5). However there does not
appear to be a problem with Visual FoxPro 6.0. In FPW and VFP5 you can
get around that by storing it to a general field and then displaying
the graph on a screen/form or report from that general field. The
following is an example code that will create a temporary "cursor"
table to store the generated bitmap for display on a screen/form
or report.

CREATE CURSOR TEMP (Pict G)
APPEND BLANK
APPEND GENERAL Pict FROM C:\PROFIT.BMP

* Now display the bitmap on the screen/form or in your report
* from the field Temp.Pict.

USE IN TEMP && close the "cursor" - no longer used.

6.0 - AbriChart.DLL
~~~~~~~~~~~~~~~~~~~

Included with the package is the AbriChart.DLL. The main advantage
of the DLL is that your windows app can wait for the DLL process to finish
before continuing. This may be important if for example you need to
generate several graph bitmaps before calling your report procedure
which then uses the bitmap files in the report.

The advantage of AbriChart.exe is that your app can launch several
graphs at once that can be viewed by the enduser.

You must specify the pathname of ChartPro.DBF and ChartDat.DBF or
equivalent .DBF filename tables as the two parameters when calling
AbriChart.DLL.

The function prototype for Abrichart in AbriChart.DLL is:
int AbriChart(char ChartPro, char ChartDat);

Different tools use different DLL declaration syntax.
For example in Visual FoxPro it would be:
Declare Integer AbriChart in AbriChartDll.dll string @ ProFilePath, string @ DatFilePath

A sample call to the declared AbriChart() function would be:
nRetVal = AbriChart("c:\chartproperties.dbf", "c:\chartdata.dbf")

In Visual Basic the declaration would be:
Declare Function AbriChart Lib "AbriChart.dll" (ByVal ProFilePath As String, ByVal DatFilePath As String) As Integer

7.0 ChartPro.DBF & ChartDat.DBF tables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

AbriChart package includes the two chart property and chart data
tables which you can populate to your requirements. The structure of
the tables is also given below should you wish to create the tables on
the fly and then fill them with data. Remember that the tables must be
standard dBaseIII+ type tables and not dBaseIV, Visual Foxpro or other
table types. The table names can be different from these two names if
you explicitly specify full table pathnames (also required for
AbriChart.dll use).

Note that AbriChart does not goof proof data entry into the two
required tables. Resulting error messages may not be obvious and
results may be unpredictable if data is not in correct format.

Please view the sample data in sample ChartPro.dbf and ChartDat.dbf
files included with the demo along with definitions of record entries
below.

ChartPro.DBF - Specifies chart properties
=======================================

Required ChartPro.DBF structure:

FieldName Type  Size
--------------------
ChartNo   N       1
DataSet   N       2
ChartProp C      30
Value     C     100
  Other fields can follow but the above must be first.

Field contents:
Values in "" are examples (DO NOT use the quotes).

At this time there is only one chart allowed per view page so that there is no ChartNo greater than 1.

ChartPro.DBF CONTENTS:

ChartNo DataSet ChartProp               Value                           Explanation
-----------------------------------------------------------------------------------
0       0       NoShow                                                  Chart will not be displayed.
                                                                        Useful when only printing or making
                                                                        bitmaps for your own reports.

0       0       Print                                                   Chart will print the graph without
                                                                        user intervention.

0       0       PrintSetup                                              Brings up a printer select dialog before printing

1       0       PrintPos                L;R;T;B                         "Left; Right; Top; Bottom" chart margins as %
                                                                        of width and height of printer paper.
                                                                        The default is 5;5;25;20.

0       0       NoPrintButton                                           Do not show print button

0       0       2D                                                      Show chart in 2D
0       0       No3DcheckBox                                            Do not show 3D checkbox
0       0       PrintPageText           Text;X;Y;FontName;Size;Style    Goes on the printer page.
                                                   where Text is any text like: Page 32
                                                   X is from 0 to about 2200 for normal page width
                                                   Y is from 0 to about 3100 for normal page height
                                                   FontName is any Windows font name: Arial, Courier, etc.
                                                   Size is any allowed font size: 8, 10, 12, etc.
                                                   Style is B (for bold) I (for italics) or BI for both or neither.
                                                   The colons must be used as separators.

1       0       ChartStyle              VertBar;x HorizBar;x Line; Pie   <- Choose one only (VertBar is default)
                                                         Note: x in ...Bar;x is 0 - 3 (useful with multidata set)
                                                           0 = back to front data sets (default)
                                                           1 = side by side
                                                           2 = Top to bottom stacking
                                                           3 = Top to bottom stacking to 100%
                                 The example line below is for vertical bars with multiple data
                                 sets side by side comparison. For single data sets x is ignored.
1       0       ChartStyle              VertBar;1

1       0       BitMapFile              FilePath;H;W                    Saves the chart to file FilePath
                                                                        H = chart height in pixels
                                                                        W = chart width in pixels
                                                                        Use 0;0 for default size of H;W
                         Example Value: C:\MyApp\AccountChart.BMP;400;500

1       0       TopTitle                "Profit and loss graph"         Chart top title. Several title lines
                                                                        go one after another on top of graph.
1       0       LeftAxisTitle           "Profit (loss)"                 the Y axis name text
1       0       BottomAxisTitle         "Date"                          the X axis name text
1       0       DataSetCount            "2"                             How many data sets there are
                        IMPORTANT: DataSetCount must be before anything with DataSet values > DataSetCount like
                                   DataSetTitle, and DataSetColor

1       0       DataLabels                                              Labels each bargraph column with its value

1       "1"     DataSetTitle            "1998"                          Data set description if more than one
1       "2"     DataSetTitle            "1999"                          - leave blank for none.
                                                          NOTE: In case of a single dataset, specifying DataSetTitle
                                                                will display a list of data Y values on the RHS.

1       "1"     DataSetColor            "Red"                           Data set 1 colour - can be changed in ChartDat.DBF
1       "2"     DataSetColor            "Green"                         Data set 2 colour
                                                          NOTE: If you omit DataSetColor entries, the different datasets
                                                                will have default the color sequence: Red, Green, 
                                                                Yellow, Blue...

COLOR CHOICES: Red, Green, Blue, Black, Yellow, Gray, DkGray, LtGray,
White, Aqua, Lime, Maroon, Navy, Olive, Purple, Silver, Teal, Fuchsia

Chart data table ChartDat.DBF
=============================

FieldName  Type  Size
--------------------
ChartNo    N      2
X_Value    C     30
Set1Value  C     20
Color1     C     10
Set1Value  C     20
Color1     C     10
Set2Value  C     20
Color2     C     10
Set3Value  C     20
Color3     C     10
Set4Value  C     20
Color4     C     10
Set5Value  C     20
Color5     C     10
Set6Value  C     20
Color6     C     10
Set7Value  C     20
Color7     C     10
Set8Value  C     20
Color8     C     10
Set9Value  C     20
Color9     C     10
Set10Valu  C     20
Color10    C     10
   Additional fields can exist but above must be first.

At the present only character values of X are permitted - no numeric X plot.
AbriChart accepts up to 10 data sets per chart to be displayed on same graph.
In most cases more than 3 sets will appear "too crowded".

Sample values below are in quotes - do not use quotes in actual tables.

ChartNo X_Value Set1_value Color1 Set2_value Color2 Set3_value Color3 ......... Set10_valu Color10
---------------------------------------------------------------------           -------------------
1       "Jan"  "300"              "400"
1       "Feb"  "350"              "-50"
1       "Mar"  "250"              "450"
.....etc....

    Color Note: Leave blank for same as DataSetColor. Individual
                colors are useful for pie charts but not otherwise
                recommended.

Pie Chart Note: The X_Value is simply the individual pie piece label tag.

8.0 - Files Required To Run AbriChart
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can install AbriChart as it comes with the installation package.

If you intend to distribute AbriChart with your own software
application the following files are required:

AbriPro.DBF     - chart properties to be filled in by your application
AbriDat.DBf     - chart data generated by your app.
AbriChart.exe and/or AbriChart.dll

The following files can be in the current directory or
installed into Windows/System directory:

VCL50.BPL, TEE50.BPL, BORLNDMM.DLL, CC3250MT.DLL


9.0 Programming Information
~~~~~~~~~~~~~~~~~~~~~~~~~~~

If you will often use the chart property and data tables you might
consider using a fresh copy each instance in order to prevent data file
corruption. Save the originals in some directory and copy them for
current use. You can also create the tables programatically each time.

AVOIDING BITMAP FILE TIMING PROBLEM: Please use AbriChart.dll in your
distributed application to avoid that problem since your application
will wait for the AbriChart() function in AbriChart.dll to finish
before continuing.

Some things to keep in mind:

1. Deleted marked records in the two tables are ignored by AbriChart.
2. AbriChart can plot up to 10 concurrent data sets on the same graph.
3. Make sure that entries in the tables are correct format. Incorrect
   entries may produce unpredictable results and/or error messages.
4. Except for piecharts it is not really needed to specify individual data
   colour. DataSet colours can be specified but can be left unspecified
   and will assume default colour sequence.

10.0 AbriChart Order Form and Pricing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

You can purchase AbriChart directly on line at www.abri.com with
your credit card for immediate Email delivery of software.

Or you can print the following form and fax or mail it with payment.

=====================================================================
Order Form            - "AbriChart" -          (http://www.abri.com/)
---------------------------------------------------------------------
Date:_________________

Quan       Item                                 _US funds_     Amount
===== Royalty free license =========== ==============================
                               'AbriChart' utility  $ 150.00

===== Additional developers =========================================
___                                $75 per 2nd+ developer  $_________

                               Basic shipping/handling     $   3.00

     Govt. POs add $10,  Outside of N. America add $1      $_________
      (Please contact us first for wire transfer "problems")

                                                TOTAL      $_________
---------------------------------------------------------------------

Send by:  Email        [ ] ____________________________________
          Postal Mail  [ ] (3.5" Diskette)
---------------------------------------------------------------------
Address: (where to send invoice/receipt)

    Name_______________________________________________________

 Company_______________________________________________________

 Address_______________________________________________________

        __________________________ Country _________________________

 Phone  _______________________ E-Mail:________________________
                                        (if not given above)
Payment by:  Check[ ] MoneyOrder[ ] Govt. PO[ ]
                 VISA[ ] MasterCard[ ] AmericanExpress[ ]

 CardNumber____________________________  ExpDate______

 NameOnCard____________________________  Signature____________________
----------------------------------------------------------------------
You can Mail or Fax order form with payment to:
              Abri Technologies
              126 Blue Jay Rd.
              Pierre, SD 57501 USA
       Phone: 605-224-0660 Fax: 917-464-7833
      E-Mail: info@abri.com

NOTE: No refunds after software shipped.
