
SmartChart -- version 3.0
32-Bit release for Windows 95/NT
Copyright (c) 1997 ProFile Software & Systems
===============================================

Table Of Contents:

1. Introduction
2. Linking SmartChart to your Windows Application
3. The Input File
     3.1.  The Structure of the Input File
     3.2.  The Data Section
     3.3.  Adding Titles and Controlling Fonts
     3.4.  Multiple Series
     3.5.  Controlling the Y-axis Scale
     3.6.  From Here...
4. The User Interface
5. Summary of all Reserved-Words
6. Common Error Messages
7. Ordering Information


1.  Introduction
----------------
SmartChart is a product of ProFile Software & Systems, which provides
a simple and fast solution for displaying graphs from your Windows
application.
SmartChart can be used with any programming language or RAD tools 
that can generate a text file and execute a program.
Communicating with SmartChart is a very simple task: your application
just needs to create a simple text file and execute SmartChart with
the file name as its argument. This way of communication saves the
overhead of interfacing another process using DDE/OLE, and most 
important -- saves time and money during development.
SmartChart also saves you the time needed to deal with the
implementation of graphics, printing and the MMI.
It provides a simple and friendly interface which the user can 
master in no time. 

2.  Linking SmartChart to your Windows Application
--------------------------------------------------
The communication with SmartChart is extremely simple; your program
should create a script file containing the values, titles and other
optional attributes, and execute SmartChart with the file name as 
its argument.

3.  The Input File
------------------

3.1.  The Structure of the Input File:
--------------------------------------
The input file is similar to a Windows .INI file. It consist of
sections, where each section contains statements of the form x = y.
There are two kinds of sections:
* Data Section:
  Contains the values to be displayed in the graphs, and the labels 
  of the X axis in the bars and line graphs. This section must appear 
  in the input file, while the second section is optional.
  The data section starts with the statement: [DATA]
* Declarations Section:
  Contains declarations where each kind is optional and has a default
  value(s) in case it doesn't appear in the input file. 
  In this section you can specify titles, control fonts, control the
  Y axis scale and more.
  The declaration section starts with the statement: [DECLARATIONS]

The syntactic structure of the input file is extremely simple 
and flexible:
* You can write remarks using the reserved word 'Rem' at the 
  start of a line.
* Tabs, spaces and empty lines are discarded to enable indentation.
* reserved words are not case-sensitive.
* The line order in the declarations section is insignificant.
* Sections can appear many times in the input file, at any order.

3.2.  The Data Section:
----------------------- 
We'll explain the syntax of the input file in a tutorial fashion,
using a simple example, where at each step we will add more features.
Suppose we want to display a sales graph of the factory
"Turbo-Motors Inc." for the period of January '96 - June '96. 
The following input, when executed with SmartChart, will produce five
types of graphs. The X-axes in the bars and line graphs will have 
labels for each data item.

Rem *** example #1 ***
[DATA]
January         =    70
February        =    90
March           =    160
April           =    85
May             =    76
June            =    91 

To the left of the '=', there are the X-axis labels and to the
right of the '=', their corresponding values.

3.3.  Adding Titles and Controlling Fonts
-----------------------------------------
Now, let's make this a little bit more interesting by adding a 
declarations section:

Rem *** example #2 ***

[DECLARATIONS]
Rem *** specify titles:
Main_Title =  Torbo-Motors Inc. 
Sub_Title  =  Sales in Jan '96 - Jun '96

Rem *** specify fonts:
Main_Title_Font = Times New Roman
Sub_Title_Font  = Courier New
Graph_Font      = Arial
Legend_font     = Courier New

Rem *** Choose first graph to be diplayed...
Default_Graph   = Pie3D

[DATA]
January         =    70
February        =    90
March           =    160
April           =    85
May             =    76
June            =    91         

as you can see, we added titles to our graphs, and determined 
their fonts. The fonts settings are optional and can be 
controlled from within SmartChart.
For a summery of all declarations, see section 6, "Summary of all 
reserved-words".
Remark: For convenience, you may enclose strings, such as titles, in 
double quotes.

3.4.  Multiple Series
---------------------
The above example had only one series of values. Now, let's add some
more series. Suppose "Turbo-Motors Inc." have three departments:
Cars, Trucks and Vans. We wish to show the sales graph in all three
departments.
Example 3 shows how we define more than one series of values. 
SmartChart supports up to six series.

Rem *** example #3 ***

[DECLARATIONS]
Rem *** specify titles:
Main_Title =  Torbo-Motors Inc.
Sub_Title  =  Sales in Jan '96 - Jun '96

Rem *** Choose first graph to be displayed...
Default_Graph = Pie3D

Rem *** Override default names of series
Series_Names = Cars, Trucks, Vans

Error_Message = Please contact the support | Phone No. XXXXXXX

[DATA]
January         =    70, 50, 90
February        =    90, 30.5, 75
March           =    160, 85, 120
April           =    85, 110, 115.5
May             =    76, 95.2, 12
June            =    91, 12.34, 15


The declaration "Series_Names" overrides the default names given by 
SmartChart. These names are: "#1", "#2", "#3", ... The names of the
series appear in the legend of the bars and line graphs, in the 
bottom of the pie charts, and in the menu when selecting the "series"
menu item. Since the pie charts can display one series at a time, 
selecting the series is done by choosing the name of the series from
the main menu or by clicking the right mouse button and selecting
the series' name from the pop-up menu.
You can specify the first series to be displayed as a pie chart
using the following declaration: Default_Series = name-of-series.
Since the lines in the declaration section may be at any order, 
one can specify the default series name before declaring the
names of the series, therefore the following combination is legal:
Defalue_Pie = Trucks
Series_Names = Cars, Trucks, Vans

Not all series can be displayed as a pie chart. If a series has
negative values or all its values are zero, than this series can
not be displayed as a pie chart. 
In this case, the name of the series will be grayed in the menu. 
If there are no series that can be displayed as pie charts, than
the pie buttons will be grayed.
If you specify in the Default_Series declaration a name of 
a series that can not be displayed as a pie chart, an error message
will appear on execution.

3.5.  Controlling the Y-axis Scale
----------------------------------
The default scale of the Y-axis can be changed using the proper 
declarations in the declarations section. The graph/settings
menu option enables on-line control on the Y-axis scale.
The Y-axis is divided into 10 intervals. There are two attributes 
which control the scale of the Y-axis:
* The minimum value - can be changed using the 
  declaration: Min_Value = value.
* The incremental step - can be changed 
  using the declaration: YStep = value.
Note: when setting these values, make sure that the following holds:
min_value + 10*y_step >= max_value, where max_value is the
largest value in all series. Otherwise, an error message will appear
on execution.

3.6.  From Here...
------------------
The above examples can get you started. The rest of the 
options are described in section 6, "Summary of all Reserved-Words".

4. The User Interface
---------------------

SmartChart provides a simple MMI that the user can master in no time.
All five types of graphs can be selected either from the tool bar
or from the menu. We minimized the functionality of SmartChart to
enable a simple-to-use graph viewer, therefore no complicated option
are given to the user. The advanced options, such as "open file" 
and "graph settings" can be removed using the appropriate
declarations in the input file.
SmartChart can be used a graph server for an application or as
a stand-alone program, where the user is provided with
advances options.

SmartChart has full keyboard support, including "Hot keys".
The following is the key-action table:

Key		Action
------------------------------------------------
Alt+1		Bar Graph
Alt+2		Pie Graph
Alt+3		3-D Bar Graph
Alt+4		3-D Pie Graph
Alt+5		Line Graph
Ctrl+P          Print
Ctrl+C		Copy to clipboard
Ctrl+O		Open file
Left Arrow	scroll values to the left
Right Arrow	scroll values to the right


5. Summary of all Reserved-Words
--------------------------------
- Main_Title = *string*
  This declaration enables you to specify the main title to be 
  displayed above the graphs. *string* is the title-string and
  may be enclosed in double quotes.
  If the size of the title is too long, than the size of the
  title's font will be automatically adjusted to fit the window.
  example: Main_Title =  "Torbo-Motors Inc."
  default: no main-title.

- Sub_Title = *string*
  This declaration enables you to specify the sub-title to be displayed
  above the graphs. see Main_Title for more information.
  example: Sub_Title = "Sales in Jan '96 - Jun '96"
  default: no sub-title.

- Main_Title_Font = *name-of-font*
  This declaration enables you to control the font of the main title.  
  *name-of-font* specifies the name of the typeface of the font as
  defined in the [FONTS] section of WIN.INI. If the font name does
  not exist, than the system font will be used automatically (no
  error message will be given).
  example: Main_Title_Font = "Times New Roman"
  default: "Times New Roman Bold"

- Sub_Title_Font = *name-of-font*
  This declaration enables you to control the font of the sub-title.
  See Main_Title_Font for more information.
  example: Sub_Title_Font = "Times New Roman"
  default: "Courier New Bold"

- Legend_Font = *name-of-font*
  This declaration enables you to control the font of the legend.
  See Main_Title_Font for more information.
  example: Legend_Font = "Times New Roman"
  default: "Arial"

 - Graph_Font = *name-of-font* 
   This declaration enables you to control the font of the text
   in the graph, including the Y-axis values, X-axis labels, 
   and the values above the bars and around the pie charts.
   See Main_Title_Font for more information.
   example: Graph_Font = "Times New Roman"
   default: "Arial"

- Default_Graph = *name-of-graph*
  Enables you to choose the first graph to be displayed when
  executing SmartChart. 
  *name-of-graph* must be one of the following names:
  "bar", "bar3D", "pie", "pie3D" or "line". As in all reserved words,
  the graph's names are not case sensitive.
  example: Default_Graph = Pie3D
  default: Bar3D

- Series_Names = series1_name, series2_name, ... 
  This declaration enables you to label the series. The names must be 
  separated with commas and the number of names must agree with the
  number of series as defined in the data section, otherwise, an
  error message will appear on execution.
  example: Series_Names = Japan, Thailand, India 
  default: "#1", "#2", "#3", ...     

- Default_Series = *name-of-series*
  Enables you to choose the first series to be displayed as a 
  pie chart. *name-of-series* is the name of the series as defined
  in the series_Names declaration. If the names of the series
  are not defined, than you may use the default names, for
  example: Default_Series = #3. The names of the series are not
  case-sensitive.
  example: Default_Series = "Japan"
  default: the first series that can be displayed as a pie chart.

- Bar_Values = on/off
  This declaration enables you to toggle the display of the values
  above the bars (in the bar & bar3D graphs) and the lines (in the
  line graph).
  example: Bar_Values = off
  default: on.

- Pie_Values = on/off
  This declaration enables you to toggle the display of the 
  values around the pie (in the pie & pie3D graphs).
  example: Pie_Values = off
  default: on.

- Min_Value = *value*
  Enables you to set the minimum value of the Y-axis scale in 
  the bars and line graphs. Make sure that *value* is not greater
  than the minimum value of all series. 
  Using this declaration and the Ystep declaration, you can fully
  control the scale of the Y-axis.
  example: Min_Value = -100
  default: automatic

- YStep = *value*
  Enables you to set the incremental step of the Y-axis values in
  the bars and line graphs. With the Min_Value declaration, you can
  fully control the scale of the Y-axis. Make sure that the following
  holds:
    min_value + 10*y_step >= max_value, where max_value is the
    largest value in all series.
  example: YStep = 50
  default: automatic

- Error_Messgae = *error-message*
  Enables you to display a message in the error dialog-box when an
  error occurs (such as "contact the technical support...").
  *error-message* is the message string.
  Since a declaration is limited to a single line, you can break
  the message into more than one line using the '|' character.
  example: Error_Message = "contact the support|Telephone: 999-9999"
  default: no error message.

- Allow_Open_File = yes/no
  If this option is "no", than the "Open" menu item from the "File"
  menu option will be removed. Set this option to "no" in order to
  simplify the user interface or to prevent the user from opening
  undesirable files.
  default: "yes" (allow open files).

- Allow_Graph_Settings = yes/no
  If this option is "no", than the "Settings" menu item from the
  "Graph" menu option will be removed. Set this option to "no" 
  inorder to simplify the user interface.
  default: yes (allow change of graph settings).

- Window_Size = Normal/Maximized/Minimized
  Set the initial window size.
  default: Normal.

6. Common Error Messages
------------------------
In this section we will cover some of the most common error messages.
The rest of the error messages are straightforward or extremely rare.
	
- "file error or file not found." 
  An error occurred while SmartChart was trying to open the input
  file. The file could be damaged or missing.            

- "default graph syntax error."
  A declaration of the form Default_Graph = ... must have a name of a
  graph on the right hand side of the '='. The names are: Bar, Bar3D,
  Pie, Pie3D, Line.

- "number of series does not agree with previous declaration."
  This error occurs when not all lines in the data section have
  the same number of values.

- "'=' expected."
  All lines within a section (except those who declare a 
  new section) must be of the form x=y. If the '=' character
  is missing, this error will appear. 

- "default pie - series does not exist."
  The name of the series that was used in the Default_Series
  declaration was not declared in the Series_Names declaration.

- "can not display this series as pie chart. Probably has 
  negative values."
  The series that was chosen to be displayed as a pie in the
  Default_Series declaration can not be displayed as a pie.
  Series that have negative values
  or all their values are zero can not be displayed as pie charts.

- "--- expected."
  A group of error messages which occur when the right-hand side of
  the declaration does not match the type of the declaration.
  For example: "Incremental step expected".

- "file has no data section."
  This error occurs when an input file has no data section.
  This section must be in the input file.

- "syntax error."
  The most common error message. This error occurs when a line
  begins with an unknown word. 

- "show-values error. Should specify on or off"
  This error regards the Bar_Values and the Pie_Values declarations.

- "incremental step error. Probably too small."
  This error occurs when the incremental step is too small, such that
  min_value + 10*ystep < max_value; 

- "number of series names does not agree with the data."
  This error occurs when the number of series names as defined in the
  Series_Names declaration is not equal to the number of series as
  defined in data section. 

- "too many values in series. no more than 50 values allowed."
  A series can hold up to 50 values. If more values declared, 
  this error message will appear.

- "too many series. no more than six series allowed."
  SmartChart currently supports up to six series. If more series
  declared, this error message will appear.


7. Ordering Information
-----------------------
SmartChart is licensed for a specified number of users.
A single registered copy of SmartChart may use several people and
may be copies to several computers, according to the number 
of licenses.
When ordering SmartChart, you need to specify the number of users. 
You may also order a license for unlimited number of users 
(restricted to the organization).
When payment is received, you will be sent a registered copy of the 
latest version of SmartChart by e-mail or by mail on a single diskette,
which you may copy according to the number of licenses you ordered. 
SmartChart is shipped on 3.5 inch disks only.

Prices:
-------
license for:
    1          user:		$ 39.00 US
    2  to    9 users:		$ 29.00 US each
   10  to   49 users:		$ 24.00 US each
   50  to  100 users:		$ 19.00 US each

license for unlimited number of copies:      $2200.00 US
Shipping                                     $   5.00 US

In order to register SmartChart, fill up "OrderForm.txt" and 
send it to us by fax or mail. 
If this file is missing, you can download it from our web site:

http://www.profilesoft.com

for additional order information, e-mail us at:

sales@profilesoft.com

for technical support, e-mail us at:

support@profilesoft.com
