home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
OPNHLP.ZIP
/
OWDEVE.HLP
(
.txt
)
next >
Wrap
OS/2 Help File
|
1993-02-24
|
1MB
|
8,303 lines
ΓòÉΓòÉΓòÉ 1. ! Note ΓòÉΓòÉΓòÉ
Product Documentation Information.
Y.A.M. COMPUTERS (1982) Ltd. (Y.A.M) PROVIDES THIS INFORMATION "AS IS",
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE.
This information could include technical inaccuracies or typographical errors.
Changes are periodically made to the information herein; these changes will be
incorporated in new editions of the information. Y.A.M. may make improvements
and/or changes in the product(s) and/or the program(s) described in this
information at any time.
It is possible that this information may contain reference to, or information
about, Y.A.M. products (programs), programming, or services that have not been
announced in your country. Such references or information must not be
construed to mean that Y.A.M. intends to announce such Y.A.M. products,
programming, or services in your country.
OpenWin (C) Copyright Y.A.M. Computers (1982) Ltd. 1991.All rights reserved.
OpenWin Program License Agreement
STATEMENT OF LIMITED WARRANTY
OpenWin REGISTRATION CARD
ΓòÉΓòÉΓòÉ 2. OpenWin Program License Agreement ΓòÉΓòÉΓòÉ
OpenWin Program License Agreement
BEFORE OPENING AND USING THIS PACKAGE, YOU SHOULD CAREFULLY READ THE FOLLOWING
TERMS AND CONDITIONS. OPENING THIS PACKAGE OR USING THIS PACKAGE INDICATES
YOUR ACCEPTANCE OF THESE TERMS AND CONDITIONS. IF YOU DO NOT AGREE WITH THEM,
YOU SHOULD PROMPTLY RETURN THE PACKAGE UNOPENED AND YOUR MONEY WILL BE
REFUNDED.
THE LICENSE HEREIN IS VALID ONLY FOR USERS THAT HAVE PURCHASED THE PRODUCT FROM
Y.A.M. COMPUTERS OR ITS LICENSED DISTRIBUTORS.
This is a license agreement and not an agreement for sale. Y.A.M. owns all
copyrights to the program - "OpenWin" henceforth the Program. You obtain no
rights other than the license granted you by this agreement. Title to the
enclosed copy of the Program, and any copy made from it, is retained by Y.A.M..
Y.A.M. licenses your use of the program. You assume all responsibility for
the selection of the program to achieve your intended results and for the
installation of, use of, and results obtained from, the program.
LICENSE
You may:
1. Use the program on only one machine and only one user may operate it at any
one time, unless permission to use it on more than one machine at any one time
is granted in attached Special License Information ;
2. Make a copy of the Program for backup or modification purposes only in
support of your authorized use. However, programs marked "Copy Protected"
limit copying;
3. Transfer possession of copies of the program to another party by
transferring this copy of the OpenWin Program License Agreement, the License
Information, and all other documentation, along with at least one complete,
unaltered copy of the program. You must, at the same time, either transfer to
such other party or destroy all other copies of the program in your possession,
including modified copies or portions of the Program merged into other
programs. Such transfer of possession terminates your license from Y.A.M..
Such other party shall be licensed, under the terms of this agreement, upon
acceptance of this agreement by its initial use of the program. You shall
reproduce and include the copyright notice(s) on all such copies of the
Program, in whole or in part.
You may not:
1. Use, copy, modify, merge, or transfer copies of the Program except as
provided in this agreement;
2. Perverse assemble or reverse compile the program, and/or
3. Sub license, rent, lease or assign the program or any copy thereof.
LIMITED WARRANTY
Warranty details and limitations are described in the Statement of Limited
Warranty which is attached. Y.A.M. provides a three-month limited warranty on
the media for all programs. For selected programs, as indicated on the outside
of the package, a limited warranty on the program is available. The applicable
warranty period is measured from the date of delivery to the original user as
evidenced by a Certain Programs receipt., as indicated on the outside of the
package, are not warranted and are provided "AS IS."
SUCH WARRANTIES ARE IN LIEU OF ALL OTHER WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE.
LIMITATION OF REMEDIES
Y.A.M.'s entire liability and your exclusive remedy shall be as follows:
1. Y.A.M. will provide the warranty described in Y.A.M.'s statement of Limited
Warranty. If Y.A.M.'s authorized distributor does not replace defective media
or, if applicable, make the Program operate as warranted, or replace the
Program with a functionally equivalent program, all as warranted, you may
terminate your license and your money will be refunded upon the return of all
of your copies of the Program.
2. For any claim arising out of Y.A.M.'s limited warranty, or for any other
claim whatsoever related to the subject matter of this agreement, Y.A.M.'s
liability for actual damages, regardless of the form of action, shall be
limited to the money paid to Y.A.M., its authorized dealer, or its approved
supplier for the license for the program that caused the damage, or that is the
subject matter of, or is directly related to, the cause of action. This
limitation will not apply to claims for personal injury or damages to real or
tangible personal property caused by Y.A.M.'s negligence.
3. In no event will Y.A.M. be liable for any lost profits, lost savings, or any
incidental damages or other consequential damages , even if Y.A.M., its
authorized dealer, or its approved supplier, has been advised of the
possibility of such damages, or for any claim by you based on a third party
claim.
GENERAL
You may terminate your license at any time by destroying all copies of the
Program in your possession, or as otherwise described in this agreement.
Y.A.M. may terminate your license if you fail to comply with the terms and
conditions of this agreement. Upon such termination, you agree to destroy all
copies of the Program in your possession.
Any attempt to sub-license, rent, lease or assign, or, except as expressly
provided herein, to transfer any copy of the program is void.
You agree that you are responsible for payment of any taxes, including personal
property taxes, resulting from this agreement. No action, regardless of form,
arising out of this agreement may be brought by either party more than two
years after the cause of action has arisen, except for breach of the provisions
in the section entitled "License", in which event four years shall apply.
This agreement will be construed under the laws of Israel.
ΓòÉΓòÉΓòÉ 3. Statement of limited warranty ΓòÉΓòÉΓòÉ
STATEMENT OF LIMITED WARRANTY
(MEDIA AND PROGRAM)
Y.A.M. Computers (1982) Ltd. (Y.A.M.) grants the following limited warranty
for this Y.A.M. Licensed Program - OpenWin (Program), if this copy of the
program is delivered by Y.A.M., a Y.A.M. authorized dealer for this program, or
any other Y.A.M. approved supplier for this program to a user (supplier). Such
a user is referred to herein as "original user." A "user" shall mean a
customer who acquired possession of and is licensed to use this copy of the
program for his own use, or for use within his own business enterprise, and not
for re-marketing. Any unused portion of the warranty period may be conveyed to
another user.
1. MEDIA
The Warranty Period for the media on which the program is recorded is for three
months from the date of its delivery to the original user, as evidenced by a
receipt.
Y.A.M. warrants that this media will be free from defects in material and
workmanship under normal use during the warranty period. If notified during
the warranty period that the media contains such defects, your media supplier
will replace such media. If the media supplier is unable to deliver
replacement media, you may terminate your license and your money will be
refunded upon return of all copies of the program in your possession.
2. PROGRAM
The warranty period for this program is for three months from the date of its
delivery to the original user, as evidenced by a receipt.
Y.A.M. warrants that this program, if unaltered, will conform to its program
specifications during the warranty period, when such program is properly used
on a machine for which it was designed. If notified during the warranty period
that the program contain s defects such that it does not conform to its program
specifications, Y.A.M. will 1) attempt to make the program operate as warranted
a) if prior to the service expiration date, by providing a correction, or b) if
after the service expiration date, by providing any existing corrections, or 2)
replace the program with a functionally equivalent program, as determined by
Y.A.M.. In the event that Y.A.M. does not provide such a remedy, you may
terminate your license and your money will be refunded upon return of all of
your copies of the program.
Y.A.M. does not warrant that any other defects in the program will be corrected
or that the operation of the program will be uninterrupted.
This limited warranty will apply only if the program is licensed.
THIS WARRANTY IS IN LIEU OF ALL OTHER WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE. This limited warranty gives you specific
legal rights.
Following the end of the warranty period, program services may be available
until the service expiration date. The license information contains details on
such availability.
If you have a question as to where you may obtain warranty service, see the
statement of service in the license information for this program.
ΓòÉΓòÉΓòÉ 4. Registration ΓòÉΓòÉΓòÉ
Before you start using OpenWin you are requested to register your OpenWin copy
by completing and sending the enclosed OpenWin Registration Card.
If you have an Unregistered Copy of OpenWin Light you will be able to use it as
well under the limits described in the Product Definition.
You are requested to register your copy of OpenWin Light by completing and
sending the enclosed OpenWin Light Registration Card. .
When you receive a registration code (provided with the product or after
registration), you can change the " UNREGISTERED COPY, Not for Sale." title
to the title you have specified in on your Purchasing / registration form.
To do this activate the OpenWin Development Module. Select the Registered
option from the action bar. Type the requested title and the password and press
O.K.
(The requested company title must be the one you have specified on your
Purchasing / registration form.)
ΓòÉΓòÉΓòÉ 4.1. ! OpenWin Registration Card. ΓòÉΓòÉΓòÉ
Please use OpenWin Light Registration Card.
ΓòÉΓòÉΓòÉ 4.2. ! OpenWin Light Registration Card. ΓòÉΓòÉΓòÉ
OpenWin Light Registration Card
To register your copy of OpenWin Light, just complete and send this form:
To :Y . A . M .Computers .
Fax: 972-52-901423
Telephone: 972-52-901416
CompuServe E-Mail: 100310,10
Mail: Y.A.M. Ltd., P.O.B. 2426, Raanana 43663, Israel
Name: ___________________________________________________
Company: _________________________________________________
Street: __________________________________________________
City / State / Country: ______________________________________________
Zip/Postal Code: __________ Phone: _______________ Fax: ______________
Requested Company Title __________________________________________
(Please specify a title that will be used as your application's title)
I would like more information about becoming an OpenWin distributor ___
We are interested in the development market for:
___ Windows ___ OS/2 ___ Unix/Motif
We estimate our OpenWin unit sales volume to be _________ copies.
Please register my copy of OpenWin Light for:
___Windows ($99) ___ OS/2 ($99)
Add $14 per copy for shipping and handling.
And charge my ___ Visa ___ MasterCard ___ Diners Club
Number: __________________________________________________
Expiration Date: __/____ Signature: ______________
* Prices are subject to change at any time without prior notice.
ΓòÉΓòÉΓòÉ 5. ! Product Definition. ΓòÉΓòÉΓòÉ
The OpenWin manual describes most of the OpenWin package's capabilities. If you
are using OpenWin Light which is the stand alone single database version of
OpenWin, you should be aware that:
1. OpenWin Light uses one non-SQL file handler bound in the product (dBASE
files format compatible file handler).
2. Your application can use external commands by shelling, but you cannot
define new OpenWin commands as described in OpenWin Programming guide User
Defined Routines chapter.
The above mentioned does not apply to the full OpenWin package
Unregistered OpenWin Light limits
You may use your evaluation copy of OpenWin Light before registering it for a
90 day evaluation period under the following limitations:
1. Your OpenWin Light application title will be "UNREGISTERED COPY, Not for
sale.".
2. Your OpenWin Light data files size will be limited to 25K bytes and
approximately 100 records.
3. Your OpenWin Light task can use up to 3 tables within a single task.
4. The non-SQL file handler bound in the product is C-Index/II.
As soon as you have registered your copy of OpenWin Light you will get a new
copy of OpenWin Light. These limitations will be removed and the file handler
bound in the product will be dBASE files format compatible.
ΓòÉΓòÉΓòÉ <hidden> Help for Help ΓòÉΓòÉΓòÉ
Choose this option in order to receive information on how to use Help Menus,
Extended Help Menus, Keys Help, or the Main Help Index.
Help for Help
This help window.
Extended Help
Gives general help/information for the use of OpenWin's on-line help.
Keys Help
A listing of keyboard functions.
Help Index
Displays an index of all help items.
ΓòÉΓòÉΓòÉ <hidden> Extended help ΓòÉΓòÉΓòÉ
It is possible to receive extended help for each part of the OpenWin program.
This help can be accessed at any time by pressing the F1 key. The help system
is context-sensitive and will automatically bring you to the related area. (If
your present position has no specific help, this screen will appear.)
ΓòÉΓòÉΓòÉ <hidden> Keys Help ΓòÉΓòÉΓòÉ
OpenWin is using the system keys assignment.
ΓòÉΓòÉΓòÉ 6. Printing a hard copy ΓòÉΓòÉΓòÉ
OpenWin User Guide has been developed to be used as an On-Line manual as well
as to be printed as a hard copy.
In order to print OpenWin User Guide you should use the help facility print
option. Print all the sections according to the contents order.
This manual is formatted to fit A4 pages.
Note! If you are using the OS/2 version you should specify in your Printer
settings - Queue Options that the printer supports Printer-specific format.
ΓòÉΓòÉΓòÉ 7. $ START HERE. ΓòÉΓòÉΓòÉ
Welcome to OpenWin Development Environment.
OpenWin is a powerful 4GL and database Front End programming environment.
This guide has been developed to help you learn about OpenWin.
OpenWin provides you with an On-Line help system to assist you in learning to
use OpenWin.
Within this help system you will find an OpenWin Tutorial, a Programming Guide
and a Commands Reference Guide.
How to begin ?
OpenWin User Guide consists of three books -
Tutorial (T)
Programming guide (P)
Commands Reference guide (C)
The (T),(P),and (C) marks will help you to distinct between the books when you
use the on-line index.
In the first book (Tutorial), Read the tutorial thoroughly and follow its
instructions carefully. We are sure that in the end of the first book you will
have the ability to build an OpenWin application completely by yourself.
If you have any questions please call your dealer.
ΓòÉΓòÉΓòÉ 8. T U T O R I A L ΓòÉΓòÉΓòÉ
This book has been developed to help you learn more about OpenWin.
Use this guide according to the order of items listed in the Contents index
(select it from the Help Window Action Bar) .
Continue
ΓòÉΓòÉΓòÉ 9. Control file OpenWin.cfg ΓòÉΓòÉΓòÉ
When OpenWin is installed, a control file named OpenWin.Cfg is created in C:
root directory. This file defines some of the parameters used by OpenWin. When
you have many applications in different directories, you can create an
OpenWin.Cfg file in each directory. The control file contains the following
parameters:
FPATH=C:\system directory\-\working directory\
( C: indicates your hard disk )
These parameters define the directory in which the application and the data
are located. This definition may include more than one directory, but must
include at least the directory in which OpenWin is installed.
YAAM=C:\system directory\
This parameter directs OpenWin to the location of internal files and programs.
It must define the directory in which the system is installed.
ARSENV=environment name
This parameter indicates the environment definition file (.NUM), which
monitors the application.
ARSFONT=Courb 16 6
This parameter indicates the name and size of the font.
Continue
ΓòÉΓòÉΓòÉ 10. Monitoring and On-Line Help ΓòÉΓòÉΓòÉ
Monitoring and on-line help while developing
To assist in creating an error-free application, OpenWin monitors the
developer throughout the definition stages. Every time you type in or select
data or commands, the legality of your choice is checked. If the data you
typed in are not appropriate, you receive a message guiding you to the
correct selection. For on-line help, you can press the F1 key anywhere in the
system to open a help window applicable to your location, or you can get
extended help from the help menu for each part of the developing environment.
Using Action Bar
While developing an application in OpenWin, you may use the Action bar or the
Tool bar.
The Action Bar is a text option, just as in every Windows environment.
The Tool bar is a list of icons that refer to the respective text options.
When you use the mouse to point to an icon in the Tool bar, the text option
is displayed in the Status line located at the bottom of the screen.
Opening a file
When OpenWin Development module is opened, you can choose the type of
definition module you wish to use (Define Environment, Tables, Views or Tasks )
from the Application options in the Action bar or the Tool bar.
When entering a module, You must define the file which you want to edit. To do
this, select the File, Open option and the appropriate file from the list.
The file name will appear at the top of the screen.
If you want to define a new file, choose the New option.
After you have defined the file, choose File and the Save option. If you are
defining a new file, you will be asked to type in the file name.
The window action bar
Two kinds of windows can be opened in each module. The first is a "Dialogue
window".
Here you must fill in the required details and press OK.
The second and more popular is a multi-line window
which has an action bar at the top containing the following commands:
Edit Move Paint O.K. Cancel
_______________________________________________
The Paint menu enables you to refresh the screen.
The Move menu enables you to move quickly from line to line.
The Edit menu contains the following commands:
Insert opens a new input line at the currently chosen location.
Append opens an input line under the currently chosen location.
Update moves to the currently chosen location in order to update it.
Delete deletes the currently chosen location.
In order to mark a line as chosen, click on it with the mouse.
When you have finished entering information, you must click on either O.K.,
or Cancel.
In order to mark lines for Copy or Cut, click on the first line with the
mouse, keep the left mouse button depressed and drag the mouse down. The
marked lines will be highlighted. Continue
ΓòÉΓòÉΓòÉ 11. The application's purpose ΓòÉΓòÉΓòÉ
Chapter 1
Before creating an application in OpenWin, you may wish to view a Demo
application. Once you have seen what the application can do, you can continue
on to Chapter 2 to see how the application is organized.
The application is designed for organization of worker files. You can add,
delete, update, find and save information related to workers and departments.
Running the Demo
In order to run the Demo, you should first open the Tutorial Application Demo
module from the OpenWin main menu (folder).
When you enter the Tutorial Application Demo module, the following application
menu will appear on the screen:
As you see, the MAIN MENU has two options: SQL and NON-SQL. Click on the
NON-SQL option. The sub-menu shows three tasks: WORKERS, DEPARTMENT and
HOURS-REPORT.
These tasks are interrelated. First, open the WORKERS task.
(You can access the DEPARTMENT table either from the WORKERS table, while you
are working in it, or independently).
The screen will show the following:
Data entry
Note that there are two windows on the screen. One is called MENU and the
other DATA ENTRY. In order to begin an activity, click on the appropriate
button in the MENU screen. For example, click od the ADD button. This will
transfer the activity to the DATA ENTRY screen. A frame will appear around the
field WORKER ID. The frame indicates that the user is to type data in this
field. Since the worker code is the key to the record, it is opened first. No
further information can be entered until data are typed in this field.
After the data have been typed in the WORKER ID field, the application checks
to see if the record already exists. If the record exists, the application
notifies the user of this fact. If not, the application accepts the input and
opens a new field with a frame around the DEPARTMENT. Here too , the
application checks to see if a record exists for this department code.
At this point, type in the DEPARTMENT field 100 and press the TAB key. The name
of the department will appear in the next field, and the rest of the fields
will be shown with red frames, indicating that you may enter data in any field
you choose.
Fill the fields and press Enter to confirm the input.
Press ESC to stop the workers data entry.
What to do if you don't know the department's code.
If you don't know the department's code,leave the DEPARTMENT CODE field empty
and press TAB. This will bring the department table to the screen, where you
can see all department details.
You may implement the following operations:
a. View a list of all existing departments with their codes.
b. Find, delete, update or add a department code.
c. Choose a department code. To do this, use the keyboard arrows to highlight
the row containing the desired code. From the tool bar, choose the Choose
icon.
At this point, choose the desired department as described in c. above.
For updating or entering a worker hours per day, you can choose the LOG
option from the menu window, and the following window will appear:
After updating the worker hours choose the EXIT option for returning to Data
entry window.
After completing the entry of worker data, you may exit to the MAIN MENU by
selecting the QUIT action option.
From the MAIN MENU, you may enter the report task, and the following window
will appear:
Close the tutorial application window.
You can now continue to Chapter 2, to see how the application build.
Continue
ΓòÉΓòÉΓòÉ 12. Application building ΓòÉΓòÉΓòÉ
This chapter describes the process of building an application with OpenWin
and the main modules used in the process.
The application building process includes three main steps :
1. Defining the application Environment
2. Defining the application Tables/Views.
3. Defining the application Tasks.
This process goes from top to bottom, starting with general definitions and
ending with details.
Defining the application Environment. The application Environment
supervises the application in its totality. The definitions include the name
of the application, available printers, etc. This module also enables you to
create a menu for the application.
Defining Tables module
The Table Definition module is used to define the global data dictionary of
the application. The table definition includes general information about the
table, such as its name, the type of DBMS that will manage it, etc. The
definition also includes the field (table columns) and the way in which the
keys are to be used.
Defining View module
The View Definition module is used to create view statements for use in
OpenWin tasks. After defining and building a view statement, you can regard it
as a new table in your application.
Editing Task module
The third and main phase in creating an application is the Task Definition. A
task is a program that uses previous definitions in order to execute different
functions, such as updating tables, producing reports, or any other operation.
In order to shorten the application writing process, you can generate a task
source code after defining a table. Of course, you can edit tasks which are
created automatically and change them according to your needs.
Building
Each definition module has a building module:
The compilation has two purposes-
A. Checking the legality of the definition. If an error exists, it is
displayed on the screen.
B. Creating run files. Whenever you check an environment in which a menu has
been defined, a run file for this menu is created. Whenever you check a
table, an empty physical table is created. Whenever you check a task, a run
file for the task is created.
If an existing module is edited, you must repeat the compilation process in
order to check it and create a new run file.
Module activating
A development module is activated by clicking on the "Development" module
with the mouse.
When the Development module is opened, you choose the type of definition
module you wish to use (Define Environment, Tables, Views or Tasks ) from the
Application options in the Action bar or the Tool bar.
Continue
ΓòÉΓòÉΓòÉ 13. OpenWin files ΓòÉΓòÉΓòÉ
OpenWin files
Definitions that you execute are saved in the definition files. The
compilation process creates run tables. All files have been given preset fixed
extensions so that you may distinguish among them. The extensions are listed
below:
Environment definition file .NUM
Menu to run .MNU
Table definition file .DES
Inner table definition file .DCL The physical DBMS files are given different
endings, according to the DBMS chosen. For example, DAT and IDX.
View definition file .VEW
Task definition file .ARS
Task execution file .TSK
In the next chapter you will learn how to set up an OpenWin tutorial
application quickly.
Continue
ΓòÉΓòÉΓòÉ 14. Tutorial application ΓòÉΓòÉΓòÉ
In this section, you will learn how to start using OpenWin's powerful 4GL
database programming language. A short application has been prepared to make
the learning process clearer and more efficient. With the help of this
application you will learn how to use Openwin according to the following
stages:
1. What does the application do?
2. How is the application build?
3. Analyzes and modification of the application.
To further simplify the learning process, data have already been entered. Your
work will be limited to updating, changing and adding to the existing data.
ΓòÉΓòÉΓòÉ 15. Environment definition ΓòÉΓòÉΓòÉ
Following in this tutorial you will be asked to type in some data as shown in
the manual. When you are requested to "Add the following lines ..." you should
add only the highlighted lines you will see in the pictures
The first phase in defining an application is to define the application
environment.
Open the development module.
Make sure you are in the Define Environment module (If not, Select it from the
action bar), and open the file 'Employee.num'.
Next Page
ΓòÉΓòÉΓòÉ 15.1. General Settings .. ΓòÉΓòÉΓòÉ
Defining General Settings
In the Environment Definition module open the General Settings section. You
will see the following details-
Press OK.
Minimize the General Settings window to an icon
Next Page
ΓòÉΓòÉΓòÉ 15.2. Tables Declaration .. ΓòÉΓòÉΓòÉ
Table Declaration
In the Environment Definition module open the Table Declaration section. You
will see the following details:
( If you are using OpenWin Light or a non SQL OpenWin version, delete the
tables Employee, DayPay,and Hours . )
Minimize the Table section to an icon.
Next Page
ΓòÉΓòÉΓòÉ 15.3. DBMS Declaration .. ΓòÉΓòÉΓòÉ
In the Environment Definition module open the DBMS Declaration section. You
will see the following details
( If you are using OpenWin Light or a non SQL OpenWin version, delete the
file handler IBM-DBM DBMS name. )
Next Page
ΓòÉΓòÉΓòÉ 15.4. Task Declaration .. ΓòÉΓòÉΓòÉ
Task Declaration
In the Environment Definition module open the Task section. You will see the
following details
( If you are using OpenWin Light or a non SQL OpenWin version, delete the
tasks Employee, DayPay, RDayPay and Hours . )
Minimize the tasks section to an icon.
Next Page
ΓòÉΓòÉΓòÉ 15.5. The application menu .. ΓòÉΓòÉΓòÉ
Defining the application menu
In the Environment Definition module open the Application Menu section You
will see the following details
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30085 ΓòÉΓòÉΓòÉ
You can look at the following Newmenu , M-Line , Endmenu , Task commands to
learn more about the menu.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30086 ΓòÉΓòÉΓòÉ
Minimize the menu section to an icon.
If you have made corrections, select the File option and save the file.
Activate the (Build) Environment Checking Module. Check the file
Employee.NUM. If you have entered the data properly, a working menu will be
created. If not, a list of errors will be displayed. Correct all errors, save
the file and recheck the environment.
Activate the Run option.
The menu you have defined will appear and you will be able to review the
different options. Of course, tasks which you haven't yet created can't be
activated. Close the Run Tasks module.
Continue
ΓòÉΓòÉΓòÉ 16. Tables definition ΓòÉΓòÉΓòÉ
The second phase of building an application is defining the tables that make
up the application data base.
Select the Table Definition module from the tool bar.
Enter the module and open the file 'Depart.des'.
Next Page
ΓòÉΓòÉΓòÉ 16.1. Table General Settings ... ΓòÉΓòÉΓòÉ
General Settings
In the Table Definition module open the General Settings section. You will
see the following details
Minimize the General Settings section to an icon.
Next Page
ΓòÉΓòÉΓòÉ 16.2. Fields Definition ... ΓòÉΓòÉΓòÉ
Fields Definition
In the Table Definition module open the Field Definition section. You will
see the following details
Minimize the field section to an icon.
Next Page
ΓòÉΓòÉΓòÉ 16.3. Keys definition ... ΓòÉΓòÉΓòÉ
Key definition
In the Table Definition module open the Key definition section. You will see
the following details
Minimize the key definition section to an icon.
If you have made corrections, select the File option and save the file.
You have now finished defining the departments table.
The next phase is building tables.
Continue
ΓòÉΓòÉΓòÉ 17. Tables building ΓòÉΓòÉΓòÉ
Build tables
We have already built the physical table for you, so you won't need to build
it again.
Now you can use the Automatic Program Creation option - Source Generator.
Continue
ΓòÉΓòÉΓòÉ 18. Task generation ΓòÉΓòÉΓòÉ
Activate the Source Generator module. Select O.K. for the name DEPART.
Select the "EDIT WINDOW" Option. Within a few seconds an OpenWin Task named
DEPART.ARS will be created automatically which will enable you to update the
departments table, If you will get a message saying that the task already
exists, and it will be overwritten. Press O.K. and continue.
Close the Source Generator module window.
(If you were activating the Source Generator from another module and not the
Tables Definition module, you were asked to specify the source table name.)
To activate the task you have created, you must build it.
Continue
ΓòÉΓòÉΓòÉ 19. Tasks building ΓòÉΓòÉΓòÉ
To activate the tasks which you have created, enter the Tasks definition
module and open the file 'Depart.ars'. Now you can activate the Build Tasks
module.
Within a few seconds an executable task called Depart.TSK will be created
automatically. If you have made any errors, they will be presented on the
screen. Correct the errors, save the file and repeat the check.
Now you can run the Task.
Continue
ΓòÉΓòÉΓòÉ 20. Running the Application ΓòÉΓòÉΓòÉ
Activate the Run Task module.
The following window will appear on the screen:
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30010 ΓòÉΓòÉΓòÉ
To add a department, select the option Edit from the action bar and the
option Insert Or click on the correspond icon from the tool bar. Using the
mouse, fill in the Department Code field and move to the next field. After
typing the line, press ENTER or TAB. The line will be entered and a new input
line opened.
Add some new departments.
After entering the departments as described, press ESC when you are in a Code
field. Pressing ESC will take you out of the Add mode.
Select Exit from the action bar to close the task.
In the next chapter, you will analyze the input task which updates the items.
Continue
ΓòÉΓòÉΓòÉ 21. Input Task - Analyzing ΓòÉΓòÉΓòÉ
In this chapter, you will analyze the input task which updates the department
file.
Please close the Table Definition Module by selecting the EXIT option.
In order to follow the explanation, make sure you are in the Task Definition
module and open the file Depart.ARS.
As you have seen, the data entry task created by the Source Generator.
This is an example of a regular task used to update a file.
A data entry task normally includes the following sections:
- General Parameters section, Defining the task structure.
- The name of the table being handled, and how to access it.
- Constant Char used as messages and titles.
- Local variables.
- Defining and planning the windows.
Edit Window and,
Edit Operations sections, Defining the edit window.
- The logic flow that supervises the course of the task.
- Defining the ranges used in the flow control commands .
In this chapter, you will review the different components and explain their
meanings. If you wish to receive further information about any of the windows
described, you can find it in the appropriate chapters of the Programming Guide
We will now view the General Parameter section in the Edit Task module.
Continue
ΓòÉΓòÉΓòÉ 21.1. General Parameters ΓòÉΓòÉΓòÉ
In the Edit Tasks module open the General Parameters section
In this section, the task parameters are described, as they are set by the
source generator.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30011 ΓòÉΓòÉΓòÉ
The task name is a general name given by the code generator.
Enter this field and change the name to
In the routines, only the main routine called Main was defined. This is a
routine (label) in the logic flow that runs the task. Press O.K. and minimize
the General Parameters window.
Now you will view the task data dictionary.
Continue
ΓòÉΓòÉΓòÉ 21.2. Data dictionary ΓòÉΓòÉΓòÉ
In the Edit Task module open the Table section This window defines the
tables handled by the task. The structure of the window is as follows-
The table name the name of the table you wish to refer to (as you have defined
in the Define Tables module without the .DES extension.)- in this case, the
Departments file, 'DEPART'. In order to enable references to a number of
tables, you must use a table identifier - in this case, 1. Later in the task,
you will refer to the table fields by writing down their names and the table
identifier.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30012 ΓòÉΓòÉΓòÉ
Variables
The present task uses different variables for different purposes. The
definition window for the Variable section is as follows-
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30013 ΓòÉΓòÉΓòÉ
The variables Zero and Blank are used to nullify fields. The Max variables are
used to define maximum values. The Title variable is used as at title for the
edit window. The Dummy variable is used as a field when you define the contents
of a window. This will be explained later in the chapter. The Del, AccKey
variables, etc. are used as range parameters for flow control commands.
We will now go into window design.
Continue
ΓòÉΓòÉΓòÉ 21.3. Window Design ΓòÉΓòÉΓòÉ
Window Design
Activate the Window Design section. This window is used for interactive
editing of the input task.
Drag the mouse pointer to the window MAIN and drag the window top frame up so
you can see the fields in it. The window will appear as follows-
Drag the mouse pointer to the field 1DCode and click on it in order to select
the field. Select the Color Window icon from the tool bar. The color window
will appear. Using the mouse, select a color and double click on the chosen
field. The field color will change. Repeat this process for the other field.
In this window, you can perform various functions, but at this stage you will
stick to changing colors only. Drag the window top frame down to one line size
(as it was in the beginning) Select the O.K option at the top corner of the
screen, in order to save the changes. You will get a message confirming the
changes.
Leave the window design screen by minimizing it.
Notice that the window height is set for only one line. Our task uses the
multi-line editing command EDIT to edit this window.
An EDIT window height is determined by the EDIT Window section. The height set
when designing the window represents ONE line in the window when it is edited
with the edit command.
Look at the EDIT Window section.
Continue
ΓòÉΓòÉΓòÉ 21.4. EDIT Window section ΓòÉΓòÉΓòÉ
The Edit Tasks module EDIT Window section
When you open this section, the following window appears-
The data in this window determines the way in which the window is presented on
the screen during the execution of the Edit command. At this stage, you won't
change the data in this window.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30014 ΓòÉΓòÉΓòÉ
In The Edit task module, open the Edit Operations section.
Data defined in this section indicate the functions which the user can perform
in the edited window. Read the EDIT Operations chapter in the Programming
Guide, and the explanation on the Edit command in the Command Guide. Open the
edit operations window, which will appear as follows-
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30015 ΓòÉΓòÉΓòÉ
Each of the edit functions is linked to a routine in a logic flow. These
routines are explained in greater detail later on.
The main part of the task is the logic flow.
Continue
ΓòÉΓòÉΓòÉ 21.5. Logic Flow ΓòÉΓòÉΓòÉ
The Logic Flow
When you open the Logic Flow section, the program command sequence is
presented as follows-
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30016 ΓòÉΓòÉΓòÉ
The logic flow structure
The logic flow is a list of OpenWin commands and different parameters for these
commands. The command sequence is divided into different groups called
routines. A routine is characterized by a label at the beginning that enables
it to relate to it , and ends with a Return command.
In an OpenWin Task, there are two groups of routines.The first group comprises
the routines indicated in the General Parameters section of the task as initial
, main , and final routines.
When a task is activated, the initial routine is executed and ends, if it has
been defined, when the main routine is executed. When this routine ends, the
final routine is executed, if one has been defined. The second group comprises
routines that were called out from other routines, or were activated as
routines defined in libraries exclusive for certain commands. For example,
routines used for editing functions of the edit command.
We will now view the main routine.
Continue
ΓòÉΓòÉΓòÉ 21.6. Logic Flow .. ΓòÉΓòÉΓòÉ
The main routine
In this task, ONLY the routine called Main was defined in the General
Parameters section. Defining a main routine ONLY is accepted practice in
interactive input tasks.
The routine begins with the following line:
This command opens a work screen whose title is the contents of the field "0
Title". The execution of this line is conditioned by the flag Z0. The command
will is executed only if the flag is OFF (=). The reason for this condition
will be explained later.
The following command is the main command in the program.
This command displays the # MAIN window on the screen and transfers supervision
to the edit command. Further information regarding this command is available
from the command window. In the Result variable a local variable, Zero, whose
value is 0, was indicated, meaning that the window should be displayed in its
full size. This is defined in the Edit Window definition.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30091 ΓòÉΓòÉΓòÉ
When the edit functions ends, the next two lines are executed to clear the
screen and end the task.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30017 ΓòÉΓòÉΓòÉ
The following routines are called by the edit command when the user selects the
edit option.
The Insert routine
When the edit command Insert is selected, a new line is opened on the screen
in order to enable input and the supervision is turned to the routine. In the
present cases, this routine is called 'Insert'.
The first line in this routine sets I1 flag to OFF (=) status.
The next line in this routine branches out to the First routine, which
nullifies the fields to be entered.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30092 ΓòÉΓòÉΓòÉ
After the content of these fields has been reduced to zero or blanks, the next
line calls Disp* routine to display the sub-screens that contain the fields
which make up the line. As a result, the empty fields are displayed in the
line opened by the edit command.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30018 ΓòÉΓòÉΓòÉ
The following line calls AccKey routine where an Accept command - input to the
sub screen * KEY that includes the field 1DCode is executed. This line is
given a label, since you may want to refer to it later. At the end , or in the
middle of accept, If the input is aborted, AccKey routine will set A1 flag
status to ON. In such a case the next line will set I1 flag to ON and divert
the flow to Insert routine end at InsEnd label.
The flag I1 is the same as the flag defined in the edit function as a result
flag. As long as the insert routine returns the value = (OFF) in this flag,
the edit function insert continues to open new lines and refer to the routine.
When the routine returns the value +/- (ON), the insert function ends.
Next Page
ΓòÉΓòÉΓòÉ 21.7. Logic Flow ... ΓòÉΓòÉΓòÉ
The following lines check to see if the department code already exists. This is
done by trying to find a record from table 1, according to the MainK key . The
result of the search is returned in the flag I0. If the record has been found,
indicating that it already exists in the file, the search has been successful
and the flag will get the value = (OFF). In that case, the Message command is
executed, displaying the contents of the string Exist and beeping once to
request the user to confirm the message. The flow will return to Ins1 label to
enable input of a new department number.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30022 ΓòÉΓòÉΓòÉ
Once the department Code has been checked, the following lines calls AccData
routine.
In this routine the Accept command enables you to receive data in fields that
belong to the sub-screen * DATA. If you press ESC to end the input, the flag
A2 is set to ON and the flow returns to Ins1 label.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30023 ΓòÉΓòÉΓòÉ
After entering the department details (Name), if the If term is true, the Write
command executes the entry of a new record in the table.
The program will reach the "InsEnd" line when the Insert ends and the return
command returns control to the edit command.
Continue
ΓòÉΓòÉΓòÉ 21.8. Logic Flow .... ΓòÉΓòÉΓòÉ
Update routine
When the Edit function Update is selected, the edit command knows that you now
wish to update the current chosen record. The logic flow is diverted to a
routine, in this case the Update routine.
When going through the records, the edit command saves the values of key
fields. Since the possibility exist of a situation in which the value of the
fields that are not the key fields is different from the contents of the
record. The first thing to do in the routine is to find the record according
to the key.
After the record has been found, the sub-screen "* KEY" containing the key
field data, and the "* DATA" sub-screen that contains the fields which are not
key fields, are displayed in Disp* routine.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30025 ΓòÉΓòÉΓòÉ
The Accept command you can see in AccData routine enables updating the contents
of the fields that are not part of the key. If the user doesn't wish to
update, the flag A2 is set to ON. In such case, the flag U1 is set to ON and
Update routine ends.
the edit command once again displays the line with the field content as it was
before the changes were made.
The Rewrite command is executed during a regular update, thus updating the
record in the file. If, for technical reasons, the update should fail, the
flag I0 will be set to ON (-) .
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30026 ΓòÉΓòÉΓòÉ
Like any other routine, the update routine is ended by the Return command
Delete routine
Delete is a routine which is activated when the edit function Delete is
selected.
To prevent accidental deletion of records, the routine presents a warning
message by using the message command. If the user replies in the negative, the
flag D1 will be set to ON.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30027 ΓòÉΓòÉΓòÉ
If the user acknowledges the deletion, the "If Delete" will be true and the
Delete command will erase the record from the table.
The Return command will return control to the Edit command. If a deletion was
made (information which the Edit command gets through the flag D1), the Edit
command refreshes the window.
The following routine is the First routine.
Continue
ΓòÉΓòÉΓòÉ 21.9. Logic Flow ..... ΓòÉΓòÉΓòÉ
First routine
This routine is executed when the edit command is required to indicate the task
to the first record in the table. To make this possible, the routine transfers
a minimum value, Blank, to the key field DCode. In the present task, this
routine is also used to bring the other fields down to Zero, so that if a new
record is inputted, the fields will be empty.
When an edit command is activated, this routine is executed automatically.
After it is executed, a loop of Next and Display routines is executed, until
the window is full.
Last routine
This routine is executed when the edit command is required to indicate the task
to the last record in the table. For this to happen, the routine transfers a
maximum value, "0 MaxStr", to the key field DCode. In the present task, this
routine is also used to bring the other fields to maximum .
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30028 ΓòÉΓòÉΓòÉ
Next routine. This routine is executed in order to jump forward in the table.
To make this possible the Read command Reads the Next record according to the
key MainK. If there are no more records I0 flag will be set to ON in "+"
status. The flag N1 will be set to ON and by this will notify the Edit command
that it is on the last record.
Prev routine
This routine enables you to scan the table backwards. In order to do this, the
Prev command reads the previous record according to the key, MainK. When no
more records exist, I0 flag will be set to ON in "+" status. The flag P1 is
set to ON, indicating to the edit command that it is on the first record.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30031 ΓòÉΓòÉΓòÉ
Display routine
This routine is executed when the edit command has to present a record. In
order to do this, the routine finds the record using the Find command. The
display is automatic.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30032 ΓòÉΓòÉΓòÉ
When the last option is selected, the edit command automatically executes a
loop to fill the window with records.
Exit routine
When the user chooses to leave the edit command, the exit routine is executed.
This routine turns off the flag E1 in order to retain the information about how
you exited the edit command.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30034 ΓòÉΓòÉΓòÉ
Exit- routine
This routine is used to leave the edit command when you want to indicate a
selection of a certain record. A detailed explanation about this command will
be presented later in the chapter.
Exit+ routine
This routine is used to leave the edit command. From this routine, you can
execute different functions. If the flag is turned on, returning to the edit
command, as shown in the present case, the edit command will continue with the
edit functions. Further information about the use of this option is presented
later.
If you are using OpenWin version supporting SQL, you will create an SQL
Advanced Task in the SQL Table chapter
If you are using OpenWin Light or non SQL OpenWin version you should continue
in Non SQL Task
ΓòÉΓòÉΓòÉ 22. Non SQL Application ΓòÉΓòÉΓòÉ
In the following chapters we will analyzed the Workers application.
you should continue in Workers table
ΓòÉΓòÉΓòÉ 22.1. Workers table ΓòÉΓòÉΓòÉ
Activate the Table Definition module. and open the file 'Workers .des'.
You will see the following details:
Minimize this section to an icon.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31411 ΓòÉΓòÉΓòÉ
Field definition
In the Table Definition module open the Field Definition section. You will
see the following details:
Minimize this section to an icon.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31412 ΓòÉΓòÉΓòÉ
Key definition
In the Table Definition module open the Key Definition section. You will see
the following details:
Minimize this section to an icon.
We have already built the physical table for you, so you won't need to build
it again.
Continue
ΓòÉΓòÉΓòÉ 22.2. Tasks building ΓòÉΓòÉΓòÉ
Source Generator
Activate the Source Generator module. Select the Generate Input Task
option. Select Workers.DES file. Press O.K. for the name Workers. Select the
"Dialog" Option. Within a few seconds an OpenWin Task named Workers.ARS will
be created automatically, which will enable you to update the Workers table.
Close the Source Generator module window .
To activate the task which you have created, you must complete the build
stage.
Activate the Definition Tasks module and open the file 'Workers.ars'.
Activate the Build Tasks module.
Within a few seconds an executable task called Workers.TSK will be created.
Close the Build Task module
Before you analyze and modify the task, you can run it to see how this task
functions. To do that activate the Run module. Use Quit option to end the task
run.
Continue
ΓòÉΓòÉΓòÉ 22.3. Non SQL Workers Task ΓòÉΓòÉΓòÉ
In this chapter you will analyze the Workers.ARS task, which is a Data Entry
task for a Workers table, without using the Edit Command.
Please close the Table Definition Module by selecting the EXIT option.
Make sure you are in the Edit Tasks module and that the Workers.ARS task is
opened.
Continue
ΓòÉΓòÉΓòÉ 22.4. Non SQL Logic Flow ΓòÉΓòÉΓòÉ
Enter the Logic Flow window.
You will see the following lines at the beginning -
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31002 ΓòÉΓòÉΓòÉ
You already know what the New-Scr line is.
The Setoff commands sets initial status OFF for some flags. The Q5 flag is
used as the main While loop conditions.
The Put-Lin lines calls the MAIN window and the Menu window to the screen.
The next lines Displays the MAIN window (with the contents of the first
record).
The "While" command begins a loop that continues as long as the "NotQuit"
range terms are true. This is the main loop for this task.
Following is a Dialog in which there are two Accept commands: Accept *
Action and Accept * Repeat. The Dialog allows the execution of more than one
Accept simultaneously.
In the Accept * Action line you are asked to click on one of the buttons to
indicate the operation you wish to perform.
To understand how this is done open the section Design window. Click with the
mouse on the Menu window to bring it up,
then click on the radio button called "0 Action".
Now you can open the Object Details by clicking on its icon from the tool bar.
You will see that this button is a Char (string) local variable and that it is
grouped with the * Action sub-screen.
Minimize the window design window and return to the Logic Flow.
The Accept command here will wait for the user to click on a button.
When a button is pushed the Accept ends and the button field's value is set
to the chosen option.
The options are defined in the "Input Field" field: ActLst.
If the Q5 flag is ON (accept aborted), you quit the loop.
The following "Switch" command begins a switch to allow use of "Case" blocks
for different selections. The Switch parameter is the local variable "0
Action", whose value is set by the user selection. If the value of the
following "Case" commands meets this value, the following block is executed.
You can see that each "Case" performs routines. We will take a look at some
of these routines.
Continue
ΓòÉΓòÉΓòÉ 22.5. Non SQL Next Routine ΓòÉΓòÉΓòÉ
The Next routine.
The First and Last cases initialize or minimize the table fields and designate
the first or last record as the current record.
In order to understand these cases you will analyze the Next routine:
The read command tries to read the next record.
If the read fails, I0 is set to ON in + status. Then, after performing
I/O_ok routine, If the read has failed we set the N1 flag to ON to indicate
that there is no next record.
Look at the First, Last and Prev routines (Cases). These are all simple
routines used to scroll through the file.
Note that you have seen similar routines in the Depart Task.
Continue
ΓòÉΓòÉΓòÉ 22.6. Non SQL Insert Routine ΓòÉΓòÉΓòÉ
The Insert Case.
Unlike a Depart Task, where the EDIT command did a great deal of the editing
work, in this task you handle all operations related to editing, such as
keeping the right key value, etc.
The insert routine itself is similar to the one in Depart task.
The Add case does what the Edit command did in depart task.
You can see that if "Add" is selected, you enter a loop calling Insert
routine. This loop will continue as long as you do not abort the insert.
When the user presses ESC, or if there is an error, the I1 flag will turn ON
and the program will quit the loop, find the current record, display it and
quit the insert (Add) case.
The Update and the Delete routines are quite similar.
Continue
ΓòÉΓòÉΓòÉ 22.7. Non SQL Validity test ΓòÉΓòÉΓòÉ
Now you will begin to modify the task and customize it according to your
needs.
The first change you will make is to enable you to enter only existing
departments. To do this, you must specify that the task uses the Depart table.
In the defined task module open the Table section Add the table Depart,
giving it "2" as an identifier. The window will appear as follows:
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31006 ΓòÉΓòÉΓòÉ
Enter the window design section and arrange the "MAIN" window so that it
appears as follows: (First increase its height and then drag the fields to
the requested positions.)
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31007 ΓòÉΓòÉΓòÉ
Now add a new field to the window. Select the Field, Append option and add the
field 2 DName as follows-
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31008 ΓòÉΓòÉΓòÉ
Then place the field next to the 1 DCode field, so the MAIN window appears as
follows:
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31009 ΓòÉΓòÉΓòÉ
Indicate 1DCode as the chosen field and update it. Change (Select Field -
Update ) the sub-screen from DATA to DATA1.
Save the window design changes by pressing O.K at the top of the window and
minimize the window design section.
Now you need to make some changes at the logic flow section.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31010 ΓòÉΓòÉΓòÉ
First, change the display routine so that it appears as follows:
Then change Disp* routine so that it appears as follows:
As a result of these changes, each time the display routine is activated you
find the department name in the Depart table (2) and display it next to the
department code.
Now you will modify the AccData routine so that it allows you to enter only an
existing department code.
By changing this routine you will control department code entry during Insert
and Update as well, since this routine is called from the insert and update
routines.
In order to nullify the department name field when entering new record, add the
following highlighted line to First routine as follows -
In order to keep display and data integrity, change FindCur routine Perform
*Disp line to Perform Display as follows -
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31011 ΓòÉΓòÉΓòÉ
Change AccData routine so that it appears as follows:
Don't forget to specify the AcEnd label at the end of the first line.
This routine accepts the department code and then checks to see if such a
department code exists in table 2 (the Depart table).
This routine does not allow you to type in a wrong code.
If you press ESC during the code input (the Accept * DATA1 command ), the
flag A2 will be turned on and the routine will return to the calling routine
with that information.
Save the task, build it in the Build Tasks module and run it.
You will see the effects of all the changes you have made.
End the task run by selecting the Quit option.
Continue
ΓòÉΓòÉΓòÉ 22.8. Non SQL Linked Tasks ΓòÉΓòÉΓòÉ
As you see, it is not convenient for you to input Workers, because you must
type in the right department code and you do not normally know the department
codes. OpenWin will open a department code window for you.
Make sure you are in the Edit Tasks module, and that the Workers.ARS task is
opened.
Add an new range in the range window -
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31013 ΓòÉΓòÉΓòÉ
Now make a slight change in "AccData" routine so that it appears as follows:
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31014 ΓòÉΓòÉΓòÉ
The "If NoCode" command checks to see if you have left the field 1 DCode
empty. If not, the flow will continue from the DTest label.
If it is empty, the callers will call a Depart task. The shared flag Z1 is
affected by the way in which you exit the Depart task. If it is OFF (=),
meaning no selection has been made, the 1 DCode value will not change.
If a selection has been made, move the value of 2 DCode field to 1 DCode.
Because you have indicated that Depart table is shared by the two tasks, the
values of the 2 DCode field will be as they were at the end of the Depart task
execution.
Save and build the task. Activate the Link Tasks module.
Select the "File - Link" option.
Type "Workers.tsk" as the source task name.
Type Workers1.tsk as the target task name.
Click on the "LINK" button. At the end of the linking procedure, exit the
Link task module.
Note: from this point on, if you modify a Workers task or a Depart task, you
must re-link the Workers.tsk after you build it.
In order to see how the linked task works, you need to run it, but our menu
runs Workers.tsk tasks.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31015 ΓòÉΓòÉΓòÉ
In the Environment Definition module open the Application Menu section
window, and change the line:
to:
Save the file, build the environment and run the task through the menu.
You will see that now, if you don't know the department code you can leave it
empty and then choose it from the department list.
Quit the task and close the Run window.
Close the Environment Definition Module by selecting the EXIT option.
Continue
ΓòÉΓòÉΓòÉ 22.9. GUI fields in Non SQL Task ΓòÉΓòÉΓòÉ
In this chapter you will make a small change in the Workers task to show how
to use the GUI environment.
You will enable the user to fill the "Sex" field from a list.
In the Edit Tasks module, open a Workers.ARS task.
Add a local variable named Sexlst as follows:
Notice that you have set the Repetition Factor (R.F.) to two and defined two
initial values.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31017 ΓòÉΓòÉΓòÉ
Now enter the window design and change the Input field and Style of the
field 1 ESex so that it appears as follows:
To make this change you must give the field a focus by clicking on it with
the mouse. After this choose Field/Update from the action bar.
Make the change and confirm it by pressing accept .
Exit the window design (do not forget to press O.K.).
This change will enable the user to select the required sex designation from
the list.
Assume you want to define the default sex as female during the insert
operation.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31018 ΓòÉΓòÉΓòÉ
Add two lines to the task logic Flow in the insert routine immediately
following the "Perform First" line so that it appears as follows:
Note the use of one of the Vector Commands, VSetInx.
After you have set the current value of 0Sexlst, move it to 1ESex as the
default value.
Save your task Build, Link and run it From the Menu (to run the menu
select the Run Time option from OpenWin main menu (folder)).
You will see that the user can select the sex designation from the defined
list.
Continue
ΓòÉΓòÉΓòÉ 22.10. Non SQL Header and Trailer ΓòÉΓòÉΓòÉ
Up to this point, you have created a task enabling you to update workers and
department data. The next step in the application is to enable the user to
update the work hours for each Worker. The first step will be to define a
TimeCard table as follows:
Activate the Define Tables module.
Select New option.
Define the General Settings
Activate the General Settings section and fill it in as follows:
Click on OK and minimize this window to an icon.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31021 ΓòÉΓòÉΓòÉ
Field definition
Activate the fields definition section and fill it in as follows:
Minimize this window to an icon.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31022 ΓòÉΓòÉΓòÉ
Key definition
Activate the Key Definition section and fill it in as follows:
Save the file as TimeCard, and build it
Use the source generator to create an input task called "TimeCard".
Select the Edit Window format for this task.
Open the Edit Tasks module and open the file TimeCard.ARS.
Build the task "TimeCard".
Now you have a task that can handle the TimeCard table.
Close the Table Definition Module by selecting the EXIT option.
Continue
ΓòÉΓòÉΓòÉ 22.11. Non SQL Header and Trailer .. ΓòÉΓòÉΓòÉ
Make sure you are in the Edit Tasks module and open the Workers.ARS task, add
an local variable as follows:
Now change the repetition factor of the ActLst variable to 10 and add "Log" to
its appearances in the initial value:
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31024 ΓòÉΓòÉΓòÉ
Now you need to change the logic flow so that it will call the TimeCard task
when Log selection is made.
Add a new "Case" after the "Switch 0 Action" command:
This "Case" (routine) is activated when the "0 HWin" value (Log) meets the
value of the 0 Action field.
Save, build, link and run the task from the Menu (to run the menu select the
Run Time option from OpenWin main menu (folder)).
Note that when you click the Log option you enter the TimeCard task and you
can update the TimeCard table.
You will find, however, that your task will not do exactly what you want it
to.
1.You must type a Worker ID in each line.
2. You can view lines (working hours) that do not belong to this Worker.
A few changes will complete your task.
Continue
ΓòÉΓòÉΓòÉ <hidden> 31026 ΓòÉΓòÉΓòÉ
First we will take care at data integrity
Make sure you are in the Edit Tasks module, and that the file Workers.ARS is
opened.
Add the table TIMECARD in the tables definition section -
Now add the following lines to the Delete routine-
As a result of this change, each time you delete a worker record, you will also
delete all its trailing records in TIMECARD table.
Next Page
ΓòÉΓòÉΓòÉ 22.12. Non SQL Header and Trailer ... ΓòÉΓòÉΓòÉ
In the Edit Tasks module, open the file TimeCard.ARS.
First change the windows. Enter the Window design section.
Drag the window top frame up so you will see the fields in it.
Select a color from the Colors Window and change the color's field.
Select the 1ECode field within the MAIN window and delete it.
Drag the window top frame down so the window will be only one line height.
By making this change you prevent the user from typing in an Worker ID
during input.
(Click on OK before you minimize the window design)
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31030 ΓòÉΓòÉΓòÉ
Now relate the task to the current Worker.
In order to get the current Worker's ID, define the Workers table as a
shared table.
Open the Table section. Add the Table Workers, giving it "2" as identifier.
The window will appear as follows:
Now let the user see only those work Hours that are related to the current
Worker.
Open the Logic Flow section.
Change the beginning of the "First" routine so that it appears as follows:
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31031 ΓòÉΓòÉΓòÉ
As a result of this change, when the First routine is executed only lines
having to do with the current Worker Id or a greater Id are read .
You need to change the Last routine so that the maximum Worker Id will not
be greater than the current Worker Id.
Change the beginning of the "Last" routine so that it appears as follows
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31032 ΓòÉΓòÉΓòÉ
You know that the "Next" and "Prev" routines are used to read the next or
previous record. You need to change these routines to ensure that when you
read a record you read only those records that are related to the current
worker.
Change the "Next" routine so that it appears as follows:
As a result of this change, if a record is read ( N1 flag is = OFF), you
compare the value of 2 ECode with 1 ECode field. You use the N1 flag to get
the result of the comparison .
If the record has a worker Id that is greater than the current one, the N1
flag will be set to ON and the Edit command will act as if this is the last
record.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31033 ΓòÉΓòÉΓòÉ
You need to change the "Prev" routine as well.
Change "Prev" routine so that it appears as follows:
The last change to be made in this task is to establish that when a new work
hours line is added, the default date will be the current date. To do this,
you first add an local variable called DumTime, as follows:
(The initial value should be 00:00:00;)
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31034 ΓòÉΓòÉΓòÉ
Now add the command Get-Dat to the insert routine after the "Perform . . First"
line so that it appears as follows-
This command will set the value of the 1WDate field to the current date.
Save Build the TimeCard task.
Link the Workers task, and run it from the Menu (to run the menu select the
Run Time option from OpenWin main menu (folder)). Now the task does what it's
supposed to.
Continue
ΓòÉΓòÉΓòÉ 22.13. Non SQL Report ΓòÉΓòÉΓòÉ
In this chapter we will create and modify a report-printing (to a printer or
the screen) TimeCard table.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31102 ΓòÉΓòÉΓòÉ
Activate the Source Generator module. Select the Generate Report Task
option. Select the TimeCard.DES file and define the task name as "RTimeC".
After generation, make sure you are in the Edit Tasks module, open the file
RTimeC.ARS.
build the RTimeC task with the build tasks module.
Run it through the menu to see the report.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31103 ΓòÉΓòÉΓòÉ
Now modify the report task so it will print the total number of hours for each
Worker in Hour and day formats.
Make sure you are in the Task Definition module and that the file RTimeC.ARS
is opened.
Add two local variables as follows:
Now add a sub total definition as follows:
Enter the window design section.
Add a New window named CodeT as follows -
Add 0 Hours and 0 Days fields to this window. Specify their sub-screen to be
Tot
The window will look like this -
Now you will make some changes in the task logic flow to use this sub-totals
definition.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31104 ΓòÉΓòÉΓòÉ
Enter the task logic flow.
First, add a Break command after the QtLoop command as follows:
As a result, each time a record is read the Code sub-totaling is executed.
Look at the Sub-totals to understand when the InitC and TotC routines will be
executed.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31105 ΓòÉΓòÉΓòÉ
Now you need to define these two routines as follows:
Save the task, build it in the Build Tasks module and run the application from
the menu (to run the menu select the Run Time option from OpenWin main menu
(folder)).
You will see the effects of all the changes you have made.
You have completed the tutorial application. We hope you will enjoy your work
with OpenWin.
Back to Start
ΓòÉΓòÉΓòÉ 23. SQL Tables definition ΓòÉΓòÉΓòÉ
The second phase of building Employee application is defining Employee table.
If you are using OpenWin Light or non SQL OpenWin version you should continue
in Non SQL Task chapter.
Activate the Definition module. Select the Table Definition module. When
entering the module, you must choose the option File and indicate that you are
defining a new file. To do this, select the option New
General Settings
Activate the Table Definition module General Settings section and fill it in
as follows-
Minimize this window to an icon.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30008 ΓòÉΓòÉΓòÉ
Field definition
Activate the Field Definition section and fill it in as follows-
Minimize this window to an icon.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30009 ΓòÉΓòÉΓòÉ
Key definition
Activate the Key Definition section and fill it in as follows-
Minimize this window to an icon.
Select the option File and in it the option Save. Type Employee as the file
name and save the file. Close the table definition window.
The next phase is building tables.
Continue
ΓòÉΓòÉΓòÉ 23.1. Tables building ΓòÉΓòÉΓòÉ
Build tables
This module checks your table definition and creates physical tables that are
ready for work.
Since an Employee table is an RDBMS table, you need to create the data base in
which the table will be created.
Open the the Query Manager and create a new database named OpenWin.
Activate the Build Tables module and choose Employee.DES table.
The table definition will be checked in a few seconds. If you have made any
errors, they will be presented on the screen. Correct the errors and repeat
the check.
Now you can use the Automatic Program Creation option.
Continue
ΓòÉΓòÉΓòÉ 23.2. Task generation ΓòÉΓòÉΓòÉ
Activate the Source Generator module. Select the Generate Input Task
option. Select Employee.DES file. Press O.K. for the name Employee. Select
the "Dialog" Option. In a few seconds , an OpenWin Task named Employee.ARS
will be created automatically, which will enable you to update the Employees
table. You will be informed that a table named IEmploye.DES has been created.
Build it with the build tables module.
Close the Task generation module window . To activate the tasks you have
created, you must compile them.
Continue
ΓòÉΓòÉΓòÉ 23.3. Tasks building ΓòÉΓòÉΓòÉ
To activate the tasks which you have created, you must perform the build stage.
Activate the Build Tasks module.
Choose the program Employee.ARS. In a few seconds an executable task will be
created, called Employee.TSK.
Close the Build Task module window.
You can run the application through the menu and see this task behavior.
Continue
ΓòÉΓòÉΓòÉ 23.4. SQL Handling ΓòÉΓòÉΓòÉ
In this chapter you will analyze an Employee.ARS task, which is a Data Entry
task, for the RDBMS (SQL) table Employee.
Before you analyze and modify the task, activate the Build task module on an
Employee.ARS task. Then activate Run the task through the menu.
You will see that you can add and update the Employee table. You can also use
the query option to view only a part of the data.
The Employee.ARS task enables you to access data in the Employee table. This
task is also used to show how you can use different data handling methods
simultaneously.
The idea of this task is to use a temporary file to scroll through and update
this file and the table simultaneously.
Activate the Definition module. Select the Edit Tasks module and open an
Employee.ARS task.
Open the Edit Task module Table section In this window, the tables which
the task handles are defined. In this window you will see the following:
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30040 ΓòÉΓòÉΓòÉ
Although you are working with the Employee table, you can see two tables here-
IEmploye and Employee. IEmploye is a temporary table, created by the source
generator. All data handling and scrolling in this task is done on the
temporary file IEmploye. When data are entered, this file is updated and an
SQL Query is executed to update the real database. When a Select Query is
executed, the output is written in this temporary file.
This method enables quick scrolling through a chosen range of data. Of course
this is only one possible way of handling data from a RDBMS table.
Continue
ΓòÉΓòÉΓòÉ 23.5. SQL Logic Flow ΓòÉΓòÉΓòÉ
Enter the Logic Flow window.
At the beginning of the flow, you will see the following lines -
We already know what the New-Scr line is.
The Setoff commands sets initial status OFF for some flags. Q5 flag is used as
the main While loop conditions.
Z5 flag is used to indicate if the database is changed and needs a Commit query
to be executed when the task ends. M0 is set to ON only if the "Root" range is
true. This flag is used to indicate that this is a root task. As a result, In
case of linked tasks, the Commit query in "IfChange" routine is executed at the
end of the task only at the root task execution end. This in done because
Commit and Rollback queries close all the open cursors off a session, what we
don't want to happen during a linked called task execution.
The Put-Lin lines puts MAIN window and Menu window on the screen.
The next lines Displays a MAIN window (with the contents of the first record).
The "While" command begins a loop that continues as long as the "NotQuit" range
terms are true. This is the main loop for this task.
Following is a Dialog in which there are two Accept commands - Accept * Action
and Accept * Repeat. The Dialog enables the execution of more than one Accept
simultaneously.
In the Accept * Action line, the user is asked to click on one of the buttons
to indicate the operation he wishes to perform.
To understand how this is done, open the Window Design window. Click with the
mouse on the Menu window to bring it up. You will see a field in a radio
button format called "0 Action". Click with the mouse on it and open the
Object Details option from the action bar. You will see that this button is an
Char (string) local variable and that it is grouped to * Action sub-screen.
Minimize the window design window and return to the Logic Flow.
The Accept command here will wait for the user to click on a button.
When the a button is pushed, the Accept ends and the button field's value is
set to the chosen option.
The options are defined in the "Input Field" field - ActLst.
If Q5 flag is ON (accept aborted), you quit the loop.
The following "Switch" command begins a switch to enable use of "Case" blocks
for different selections. The Switch parameter is the local variable "0
Action", whose value is set by the user selection. If the value of the
following "Case" commands meets this value, the following block is executed.
You can see that each "Case" is performing routines. We will look at some of
these routines.
Continue
ΓòÉΓòÉΓòÉ 23.6. Next Routine ΓòÉΓòÉΓòÉ
The Next routine.
The First and Last cases set the first or the last record of the temporary file
as the current record.
In order to understand these cases, you will analyze the Next routine -
The read command tries to read the next record in the temporary file. If the
read fails we set N1 flag to ON to indicate that there is no next record in the
temporary file.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30042 ΓòÉΓòÉΓòÉ
The "If Fetch1" tests the status of N1 flag. If there is no next record we call
Fetch1 routine which will be explained later, in which we try to Fetch another
line from the Database.
If Fetch1 routine fetched a line, it sets I0 flag to OFF so we set N1 flag to
OFF as well to indicate that Next succeeded.
Look at the First, Last and Prev routines (Cases). These are all simple
routines used to scroll through the temporary file.
Notice that you have seen similar routines in the Depart Task. The difference
is that in the case of a temporary file, as in Relative, Sequential and Vector
files, you indicate the record by the reserved key "RECORD" which is the record
number.
Continue
ΓòÉΓòÉΓòÉ 23.7. Insert Routine ΓòÉΓòÉΓòÉ
The Insert routine.
Unlike a Depart Task, where the EDIT command did a great deal of the editing
work, in this task you handle all operations related to editing, such as
keeping the right record number, etc. In this task we keep the last entered
record number is a local variable called "0 Record".
The purpose of the "Perform First " is to nullify the current record fields,
before displaying the record.
Look at #MAIN window in the window design. You will see that the fields which
the user is updating are the fields from table 1, the temporary IEmploye table,
and that they are grouped into two sub screens, KEY and DATA.
The data input to these sub-screens fields is done in AccKey and AccData
routines.
If the data entry stops, we set I1 flag to ON and quit the Insert routine.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30043 ΓòÉΓòÉΓòÉ
After the data has been entered in the Accept command, the following lines are
executed:
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30044 ΓòÉΓòÉΓòÉ
The Ex-Sql command sends to the database server the contents of the query
"Insert"
Open the SQL Query Window and look at this query. It will look this:
The purpose of this query is to insert the values of the indicated fields into
table 2 (the Employee table).
Return to the logic flow.
In the Ex-Sql command, you see that a local variable 0 SqErr was defined as the
result parameter and that the flag Q1 is the result Flag.
Since 0 SqErr value was set to 100 before the Ex-Sql command, an error message
will be displayed in case of an error.
Look at the Ex-Sql command in order to understand the use of the result flag.
The Q1 flag can have the following values: "=" (OFF), meaning the query has
been executed successfully, "+" (ON), meaning a "good" SQL error, or "-" (ON),
meaning a "bad" error.
You can see that the lines following the Ex-Sql command will be executed only
if there is no error, Else, we set I1 flag to ON and end the Insert routine.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30045 ΓòÉΓòÉΓòÉ
If there is no error, we set Z5 flag to ON. This indicates that the database
has been changed. As any other Zx flag, Z5 is a shared flag between tasks in
cases of linked tasks. As a result, information indicating that database
changes were made during a linked task execution will be returned through this
flag to the root task, what will effect the execution of "IfChange" routine at
the end of the task execution.
The next line add 1 to the last temporary file record number that we keep in "0
Record" variable and put the result in the temporary file RECORD number. The
following line write the data to the temporary file "IEmploye".
If I/O is ok we save the new RECORD number in 0 Record variable.
You can see in the "Case 0 Add" that is calling Insert routine that if the user
does not abort the insert by pressing ESC, and there is no error, the flow will
loop to enable another input.
When the user presses ESC, or if there is an error, the I1 flag will turn ON
and the program will quit the loop, find the current record, display it and
quit the insert case.
The Update and the Delete routines are quite similar.
Continue
ΓòÉΓòÉΓòÉ 23.8. QBE and Quit ΓòÉΓòÉΓòÉ
Query Case is calling QBE routine.
The QBE routine enables the user to define a query to be executed as a Select
query and retrieve data from the data base.
Notice that in this task you have chosen to work on a temporary file in order
to enable quick scrolling through data. After the Select query, you will see
an "Until 10Fetch " loop calling Fetch1 routine in which a "Fetch" query is
executed and the retrieved data is moved and written to the temporary file.
You may notice we are Fetching only the first 10 records. As we saw, more
records will be Fetched if next routine will reach the end of the temporary
file.
Notice that Fetch1 routine saves the value of the last record written to the
temporary file in "0 Record" variable.
The Action selection loop ends in the following lines:
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30046 ΓòÉΓòÉΓòÉ
We are calling Close routine to Close an open Select Query if there is such. he
close query will be executed only if O5 flag is ON.
Following is the the IfChange routine -.
IfChange" begins in an If command.
As you saw in the "Insert" case, when you are updating the data, you set the
value of Z5 flag to ON. The purpose of this condition is to skip the Commit
question, if no changes were made.
If you look at "IfChange" range, you will see that it is true only if M0 flag
is ON. We are setting this flag status to ON at the beginning of the task.
The Message line asks the user if he wishes to commit the changes. If the
answer is Yes, Ex-Sql ? Commit is executed. If the answer is No, Ex-Sql ?
RollBack is executed.
Continue
ΓòÉΓòÉΓòÉ 23.9. Validity test ΓòÉΓòÉΓòÉ
Now you will begin to modify the task and customize it to your needs.
The first change you will make is to enable the user to enter only existing
departments. To do this, you must define that the task is using the Depart
table.
Open Edit Tasks module Table section Add the table Depart, giving it "3"
as an identifier. The window will: look as follows
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30047 ΓòÉΓòÉΓòÉ
Enter the window design section and arrange the "MAIN" window so that it loos
as follows- (First increase its height and then drag the fields to the
requested positions.)
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30048 ΓòÉΓòÉΓòÉ
Now add a new field to the window. Select the Field, Append option. Add the
field 3 DName as follows-
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30095 ΓòÉΓòÉΓòÉ
Then place the field next to the 1 DCode field, so the MAIN window looks as
follows
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30050 ΓòÉΓòÉΓòÉ
Indicate 1DCode as the chosen field and update it. Change (Select Field -
Update ) the sub-screen from DATA to DATA1.
Save the window design changes by pressing O.K at the top of the window, and
minimize the window design section.
Now you need to make some changes at the task logic flow.
First , change the display routine so that it looks as follows-
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30051 ΓòÉΓòÉΓòÉ
Then change Disp* routine to look like this -
By making these changes, each time the display routine will be activated you
find the department name in the Depart table (3) and display it next to the
department code.
Now you will modify the AccData routine so that it allows you to enter only an
existing department code.
By changing this routine you will control department code entry during Insert
and Update as well since this routine is called from the insert and update
routines.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30056 ΓòÉΓòÉΓòÉ
Change AccData routine to look as follows -
We see that this routine accepts the department code and then checks to see if
there is such a department code in table 3 (the Depart table).
This routine does not allow the user to type in a wrong code.
If the user presses ESC during the code input (the Accept * DATA1 command ),
the flag A2 will be turned on and the routine will return to the calling
routine with that knowledge.
Save the task, build it in the Build Tasks module and run it.
You will see the effects of all the changes you have made.
Continue
ΓòÉΓòÉΓòÉ 24. Linked Tasks ΓòÉΓòÉΓòÉ
As you see, it is not convenient for the user to input employees because he
must type in the right department code, and he does not normally know the
department codes. We will open a department code window for him.
Activate the Definition module. Select the Edit Tasks module and open the
Employee.ARS task.
Add a new range in the range window -
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30058 ΓòÉΓòÉΓòÉ
Now make a slight change in "AccData" routine so that it looks as follows-
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30059 ΓòÉΓòÉΓòÉ
The "If NoCode" command checks to see if the field 1 DCode has been left empty
by the user. If not, the flow will continue from the DTest label.
If it is empty, The callers will call a Depart task. The shared flag Z1 is
affected by the way in which the user exits the Depart task. If it is OFF (=),
meaning no selection has been made and the 1 DCode value will not change.
If selection has been made, move the value of 3 DCode field to 1 DCode. Because
you indicated that Depart table is shared by the two tasks, the values of the 3
DCode field will be as it was at the end of the Depart task execution.
Save and build the task. Activate the Link Tasks module.
Select the "File - Link" option.
Type "Employee.tsk" as the source task name.
Type Employe1.tsk as the target task name.
Click on the "LINK" button. At the end of the linking procedure, exit the Link
task module.
Note: from this point on, if you modify an Employee task or a Depart task, you
must re-link the Employee.tsk after you build it.
In order to see how the linked task works, you need to run it, but our menu
runs Employee.tsk tasks.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30060 ΓòÉΓòÉΓòÉ
Activate the Definition module. Select the Environment Definition module and
the Application Menu section window, and change the line:
Save , build the environment and run the task through the menu.
You will see that now, if the user does not know the department code, he can
leave it empty and then choose it from the department list.
Continue
ΓòÉΓòÉΓòÉ 25. GUI fields ΓòÉΓòÉΓòÉ
In this chapter you will make a small change in the Employee task, to show how
to use the GUI environment.
You will enable the user to fill the "Sex" field from a list.
Activate the Definition module. Select the Edit Tasks module, and open an
Employee.ARS task.
Add a local variable named Sexlst, as follows-
Notice that you have set the Repetition Factor (R.F.) to two ,and defined two
initial values.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30061 ΓòÉΓòÉΓòÉ
Now enter the window design and change the definition of the field 1 ESex as
follows -
Using the mouse, expand the field.
Exit the window design (do not forget to press O.K.).
This change will enable the user to select the required sex designation from
the list.
Assume you want to define the default sex as female during the insert
operation.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30062 ΓòÉΓòÉΓòÉ
Add two lines to the task logic Flow at the insert routine, immediately
following the "Perform First" line so Insert routine will look as follows -
Note the use of one of the Vector Commands, VSetInx.
After you set the current value of 0Sexlst, you move it to 1ESex as the default
value.
Save your task, Build, Link and run it .
You will see that the user can select the sex designation from the defined
list.
Continue
ΓòÉΓòÉΓòÉ 26. Header and Trailer ΓòÉΓòÉΓòÉ
Up to this point, you have created a task enabling you to update employee and
department data. The next step in the application is to enable the user to
update the work hours of each employee. The first step will be to define an
hours table, as follows-
Activate the Definition module. Select the Define Tables module.
Defining General Settings
Activate the General Settings section and fill it in as follows-
Click on OK and minimize this window to an icon.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30063 ΓòÉΓòÉΓòÉ
Field definition
Activate the fields definition section and fill it in as follows-
Minimize this window to an icon.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30097 ΓòÉΓòÉΓòÉ
Key definition
Activate the Key Definition section and fill it in as follows-
Save the file as Hours.
Use the source generator to create an input task called "Hours".
Select the Edit Window format for this task.
Build the tables "Hours" and "IHours" that you create using the source
generator.
Build the task "Hours" with the build tasks module.
When you have a task that can handle an hours table, call it from the Employee
task.
Continue
ΓòÉΓòÉΓòÉ 26.1. Header and Trailer .. ΓòÉΓòÉΓòÉ
Activate the Definition module. Select the Edit Tasks module, and open an
Employee.ARS task.
Add a local variable, as follows-
Now change the repetition factor of ActLst variable to 10 and add "Log" to its
appearances in the initial value -
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30066 ΓòÉΓòÉΓòÉ
Now you need to change the logic flow so that it will call an Hours task when
Log selection is made.
Add a new "Case" after the "Switch 0 Action" command -
This "Case" (routine) is activated when the "0 HWin" value (Log) will meet the
value of 0 Action field.
Save, build, link and run the task.
Note that when you click the Log option , you enter the Hours task and you can
update the hours table.
You will find, however, that your task will not do exactly what you want it to.
1. You don't see the employee existing working hours when you enter the log
window. You must select the Query option in order to do that.
2.You must type an Employee ID in each line.
3. You can view lines (working hours) that do not belong to this employee.
A few changes in Hours tasks will complete your task.
Continue
ΓòÉΓòÉΓòÉ 26.2. Header and Trailer ... ΓòÉΓòÉΓòÉ
Activate the Definition module. Select the Edit Tasks module, open Hours.ARS
task.
First, add the following line to the logic flow before the "Loop" beginning-
Then,change the windows. Enter the Window design section.
Select a color from the Colors Window (from the Option menu) and double click
on MAIN window to change its color.
Select the 1ECode field within the MAIN window and delete it.
Select the QBE Window.
Delete the four following fields from the window:
By these changes you prevent the user from typing an employee ID during input
and, or from defining an employee ID as part of the query terms, if he chooses
the Query option in order to access data related to the employee.
(Click on OK before you minimize the window design)
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30098 ΓòÉΓòÉΓòÉ
Change the local variables "0 Order" and "0 OrdList" as follows-
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30067 ΓòÉΓòÉΓòÉ
Now relate the task to the current employee.
In order to get the current employee's ID, define the IEmploye table as a
shared table.
Open the Edit Tasks module Table section Add the Table IEmploye, giving it
"3" as identifier. The window will appear as follows-
Since you have removed the Employee ID field (1ECode) from the input window and
from the query window, you need to change some of the queries.
Open the SQL query section.
Change the Select query so that it appears as follows
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30068 ΓòÉΓòÉΓòÉ
As a result of this change, when the Select query is executed, only lines
relating to the current employee are selected.
Change the Insert query
Now, every time the Insert query is executed, the current employee ID will be
taken from the field 3.ECode and all lines related to this employee will
contain the employee's ID.
The last change to make in this task is to establish that when a new work hours
line is add, the default date will be the current date. To do this, you first
add a local variable called DumTime, as follows-
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30070 ΓòÉΓòÉΓòÉ
Now add the command Get-Dat to the insert routine after the "Perform . . First"
line, so that it appears as follows-
This command will set the value of the 1WDate field to the current date.
Save build an Hours task.
build Employee task, link the it and run it. Now the task is doing what it's
supposed to.
Next you will learn about views
Continue
ΓòÉΓòÉΓòÉ 27. Views ΓòÉΓòÉΓòÉ
In this chapter, you will create a view of Employee and Hour tables,
calculating the daily payment for each employee. Then you will create two
tasks, a viewing task and a reporting task.
Activate the Definition module. Select the Define View module.
Enter the Table Definition section and fill it in as follows--
By this definition, the statement view will be related to fields from both
tables.
To use functions within the view statement, you must define fields to hold the
results.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30071 ΓòÉΓòÉΓòÉ
Enter the Field Definition section and fill it in as follows
The last step in the view definition is to create a view statement.
Enter the View Statement Definition section and fill it in as follows-
The results of "Select" are stored in the corresponding fields list.
(There are many ways to define views. This method is used when the view is
intended to use functions or conduct calculations, so that it is necessary to
indicate where the calculation results will be stored.)
Save the view with the name "DayPay".
Build it using the Build Views module.
Note that a a table Definition File (.DES) named "DayPay" will be created long
with the view created.
You can look at it using the Define Tables module.
Note that this table is a "View" type table and has the same fields as you
defined in the view definition.
You can relate to this table as any other table.
Use the source generator to create an Input task named "DayPay" by the
DayPay.DES .
Use the source generator to create a report task named "RDayPay" by the
DayPay.DES .
Build the tasks using the Build Tasks module.
Now you have two view tasks at DayPay table.
Run these tasks.
As a result of the view statement multiplying ( 1.Rate * 2.Hours ) you will get
the result as the "Daily payment"
You can edit these tasks and see that they are much like the other SQL handling
tasks you have created.
Continue
ΓòÉΓòÉΓòÉ 27.1. SQL Report ΓòÉΓòÉΓòÉ
In this chapter we will modify RDaypay report printing task.
We will modify the report task so it will print the hours total for each
employee in Hours and days formats.
Activate the Definition module. Select the the Task Definition module and
open the file RDayPay.ARS.
Add two local variables as follows-
Now add a sub total definition as follows -
Enter the window design section.
Add a New window named CodeT
Add 0 Hours and 0 Days to this window. specify their sub-screen to be Tot
Now we will make some changes in the task logic flow to use this sub totals
definition.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31204 ΓòÉΓòÉΓòÉ
Enter the task logic flow.
First , add a Break command before the Print # MAIN command as follows -
As a result, each time a line is fetched, the Code sub-totaling is executed.
Look at the Sub-totals to understand when will InitC and TotC routines will
be executed.
Next Page
ΓòÉΓòÉΓòÉ <hidden> 31205 ΓòÉΓòÉΓòÉ
Now you need to define these two routines as follows -
Save the task, build it in the Build Tasks module and run it.
You will see the effects of all the changes you have made.
ΓòÉΓòÉΓòÉ 28. P R O G R A M M I N G G U I D E ΓòÉΓòÉΓòÉ
This guide has been developed to help you learn about OpenWin modules.
You may use the Contents option (select it from the Help Window Action Bar) to
view this book by it's chapters order or you may search the Index for a
particular module, section, command etc.
You can also select one of the following OpenWin's modules which are OpenWin's
main development modules -
Define Environment,
Define Tables,
Define Views,
Edit Tasks,
Source Generator,
Linker,
Visual Debugger,
ΓòÉΓòÉΓòÉ 29. Environment definition ΓòÉΓòÉΓòÉ
The environment defining module is used to define the environment of the
application which you are developing. This module includes the following
windows-
General Settings .
U.D.R. Declaration .
Locking Resources .
Printer Declaration .
DBMS Declaration .
Tables Declaration .
Tasks Declaration .
Application menu .
When entering the module you must specify what File you wish to edit. It can
be done by selecting Open. from the File menu and choosing the desired file
name from the list presented. The file name will appear at the top of the
screen.
If you wish to define a new filename you must select the New option.
When you have finished editing the file, select the option File and save it.
If you are defining a new file you will be asked to type the filename.
ΓòÉΓòÉΓòÉ 29.1. General Settings ΓòÉΓòÉΓòÉ
In this section you will type in, or choose the General settings regarding the
application you are developing.
System code
This code identifies the application uniquely, and it's used to identify the
system for locking needs.
Description
This text shortly describes the application.
Application language
You must select the language in which you wish to work during development.
System users
You must define whether the application which you are developing will work as a
stand alone application or in a multi-users environment.
ΓòÉΓòÉΓòÉ 29.2. Users Defined Routines ΓòÉΓòÉΓòÉ
In this section you point out whether in addition to OpenWin commands you wish
to include programs (servers) written in a third generation language, or to
activate programs that can be activated from the system prompt. The definition
includes-
Command name .
The command name is the name through which you will activate this command while
writing the application.
Server/program name
The server is a third generation language program name, which will perform the
command. See library commands in order to get more information about this
option. In case you wish to activate an outer program through the operating
system the server's name would be SYC_SYS (for synchronized execution), or
ASYC_SYS ( for un synchronized execution).
For example, the next definition makes possible of operating an outer Word
Processor, named 'Word', from the OpenWin tasks.
Command name Server Description
-------------------------------------
Word ASYC_SYS Word processor
Command description
Is a Text describing, That describes the perform of this command.
ΓòÉΓòÉΓòÉ 29.3. Locking Resources ΓòÉΓòÉΓòÉ
In this section you define the logical locking resources for the application.
OpenWin enables you to perform lock and share actions to these resources while
giving them different values. You can find a detailed explanation about the
Lock command in the command guide.
In order to define a new resource you must define-
Resource name
Treat this name as a parameter while writing the lock and share commands.
The resource description
Is a Text explaining, that explains the purpose of the resource's definition.
ΓòÉΓòÉΓòÉ 29.4. Printers Declaration ΓòÉΓòÉΓòÉ
In this section you choose which printers will be Active or Inactive while an
application is running. The definition includes-
Printer Name
A Text string, which will describe the printer, and will appear in the printer
selection menu during run time.
Control file
The filename which includes the escape sequence controlling this printer.
Command file
If you wish the printing to be performed through the command file, you must
type in the file name. This command file will get the file name from the
program during run time and you can use the system " %1 " parameter in order to
print it.
This enables you, for example, to define that before printing begins you can
change the printer's emulation. For direct printing to the printer type PRN.
ΓòÉΓòÉΓòÉ 29.5. DBMS Declaration ΓòÉΓòÉΓòÉ
In this section you choose which DBMS will be used in the application. The
DBMS's definition is made by selecting them from the DBMS list.
ΓòÉΓòÉΓòÉ 29.6. Tables Declaration ΓòÉΓòÉΓòÉ
In this section you declare the table names that the application will use.
This definition is made in order to guide you to an organized work environment.
The definition includes-
Table name
The table name is a definition file (.DES) which describes the logical
structure of the table.
Table description
In the description you are asked to type a text string describing the table's
task in the application. This description will enable other users to
understand the application structure.
ΓòÉΓòÉΓòÉ 29.7. Tasks Declaration ΓòÉΓòÉΓòÉ
In this section you are asked to type the different tasks that make up the
whole application. The definition includes-
Task name
The task name is the program name (.ARS) that is used in the application
Task description
The description includes a text string describing the task and its uses in the
application.
ΓòÉΓòÉΓòÉ 29.8. Application Menu ΓòÉΓòÉΓòÉ
In this section you will define the application menu and create a shell, which
will be used as a main menu in the application. A detailed description
regarding the menu commands can be found.
Each line in the definition includes-
Label Defining a label in this field will allow access to this line. A line
beginning a menu window with the Newmenu command and a line beginning a group
of commands with the Newbtch command must be characterized by a label.
Variable Some of the menu commands give an answer as a numeric value stored in
variable (A-Z). Defining variables in this field will create together with
"Whether in range" fields a condition that will effect the execution of the
line. The value of this variable is set in the user's task by the Ext-Val
command. By checking the value of this variable you can condition the
execution of tasks, in the ending of other tasks.
Whether in range Under this heading there are two numeric fields. In order
to create a condition for the execution of the line you must put in these
fields maximum and minimum values. The line will be executed only if the value
of the variable that was chosen in the "check variable" field will fit the
defined range.
Command In this field you have to select the requested command
Parameter In this field you should type in a parameter for the command. For
example, the Task command runs an OpenWin task, the parameter will be the
task's name.
Variable There are some commands that return a result to a variable. This
result will be stored inside the variable defined in this field.
Icon In lines, which are used as options in a menu, you must point out an
icon or a ".bmp" file name, which will appear next to the text describing the
option.
Text In this field you should type in text that will appear on the screen as
a heading for a menu or as a choice selection description.
ΓòÉΓòÉΓòÉ 30. Tables definition ΓòÉΓòÉΓòÉ
The Define Tables module is used to define the logical structure of the tables
which comprise your data base. This module contains three windows:
General settings
Field definition
Key definition
When entering the module, you must specify the File that you wish to edit.
This is done by selecting Open from the File menu and choosing the desired
file name from the list displayed. The file name will appear at the top of the
window.
If you wish to define a new file name, you must select the New option.
When you have finished defining the file, select the file option and save it.
If you are defining a new file you will be asked to type in the file name.
ΓòÉΓòÉΓòÉ 30.1. General Settings ΓòÉΓòÉΓòÉ
In this section you define the General Setting of the data file.
File name
The file is the physical data file name. You must define this name. In some
cases the data file will comprise a number of physical files. The file names
will consist of the defining name and various extensions. If, for example, a
file with the name VENDOR S, together with the DBMS chosen to run it, is
C-Index/II, two physical files will be created: VENDORS and VENDORS.DCL
When writing programs, you aren't normally concerned with the physical file
name, but rather with the defining file name.
Table Type
The file can be organized in different ways. You must select the method of
organization you desire, in accordance with its purpose.
The possible types are:
A RDBMS table - Relational. This method of organization allows you to use a
SQL Query about the RDBMS data.
An index file - Indexed. Enables a quick and direct access to the records
according to different key values.
A relative file - Relative. This method of organization enables you to treat
the records in accordance with their numbers. It does not require that the
records be arranged sequentially.
A sequential file - Sequential. This method of organization enables you to
treat the records in accordance with their numbers. In a sequential file, the
records must always be arranged sequentially.
A temporary file - Temporary. This is a sequential file created during the
running of programs and erased when the task ends.
A vector file - Vector. This file is a sequential file which is managed only
in memory.
A view file - View. This file is created by the Build View module. It saves
the view definition in a way that you can relate to data via SQL Queries.
DBMS
If the data base method of organization is chosen, you must select the DBMS.
In order to enable you to make a selection, a list of DBMS's is displayed which
are suited to the chosen method of organization.
Data Base If a relational table type has been chosen, you must specify an
existing data base name under which the table is to be created. Record length
Some of the DBMS's require that the length of a record be defined. This length
must be longer than the length of all of the fields which comprise the record
The number of records
In some cases, such as for a Vector table used as a definition, you must define
the maximum number of records. This field will usually be left empty
ΓòÉΓòÉΓòÉ 30.2. Field Definition ΓòÉΓòÉΓòÉ
In this section you define the fields which comprise a line or a record in the
data base.
Field name
This field is a distinct name that identifies the field. Reference to the
field is made in the program by the use of this name.
The field description
The field description is text which describes the context of the field. The
description may be presented in the programs next to the field, or as a heading
for the column in which the field will appear
The field type
There are different types of fields, different types of numeric, character and
date fields, etc. You must select a field from the list. The different fields
and their meanings are listed below -
1. Byte
2. Integer
3. Long
4. Money
5. Date
6. Time
7. Real
8. Float
9. Char
10. Bitmap
The field format
You can define different characteristics for various types of fields, for
example, a Char field can be defined for characters or digits only, to be
received from right to left, or left to right, etc. Characteristics suitable
to the specific type of field can be chosen from the list. The different
possible characteristics are listed below:
1. Positive
2. Negative
3. AmerDate
4. EuroDate
5. Time
6. 0..9
7. Rgh-T-Lf
8. Lf-T-Rgh
9. Numeric
10. Catalog
11. Date
12. Hidden->
13. Hidden<-
The field length
The field length is the length displayed on the screen. In numeric fields,
this length includes the decimal point and commas, if the field
characterization is Money.
Offset
Use the Offset option only when you wish to make an equivalence off two
different fields. The offset indicates the physical place in the record where
the field begins. You normally leave this field empty and the fields arrange
themselves sequentially in the record.
ΓòÉΓòÉΓòÉ 30.3. Keys Definition ΓòÉΓòÉΓòÉ
In this section you define the file keys. The purpose of the keys is to allow
rapid and practical location of data suited to specific conditions. Keys must
be defined for relational tables and index files.
The key name
The key name identifies the key exclusively.
The key fields
Key fields are table fields according to which you can sort or locate records.
For example, there is a table with the following fields:
VENDCODE - Distributor code
VENDNAME - Distributor name
CITY - City
The specialized identifier of every distributor is the Distributor code, so the
first key must be defined to include the field VENDCODE. To enable you to
obtain a list of distributors sorted according to both name and distributor
code, another key defines the VENDCODE and VENDNAME fields.
ΓòÉΓòÉΓòÉ 31. Views definition ΓòÉΓòÉΓòÉ
The Define View module is used to create a view statement for use within
OpenWin tasks. After defining and building the view statement, you can regard
it as a new table in your application.
This module includes the following sections:
Tables .
Fields .
View Statements.
When entering the module, you must specify the File you wish to edit. This is
done by selecting Open from the file menu and choosing the desired file name
from the list displayed. The file name will appear at the top of the screen.
If you wish to edit a new file name, you must select the New Option.
When you have finished editing the file, select the File option and save it.
If you are defining a new file, you will be asked to type in the file name.
ΓòÉΓòÉΓòÉ 31.1. View Tables ΓòÉΓòÉΓòÉ
In this section, you indicate the tables which are handled by the view. The
table definition includes the fields of this table.
The table identifier
In this field you must define a table identifier (1-9, A-Z). Later you will
refer to this table by specifying the identifier.
The Table Name
In this field you must specify the definition file name of the table used in
the view. This must be the definition of an RDBMS table.
ΓòÉΓòÉΓòÉ 31.2. View Statements ΓòÉΓòÉΓòÉ
In the View Statements section, you define view creation statements which are
made of SQL sentences based on the ANSI standard. The queries are written in
multi-line windows.
When writing a Create query, you use TOKENS (SQL queries) and may handle the
table fields. You can choose to see a number of query examples. If you don't
know SQL, we suggest that you study the subject from suitable literature.
Comprehensive information can be found in the following books: IBM OS/2
Extended Edition; Database Manager Programming Guide and Reference; Database
Manager Structured Query Language (SQL) Concepts.
ΓòÉΓòÉΓòÉ 31.3. View Fields ΓòÉΓòÉΓòÉ
If you wish to use functions within the View Statement, you must define a
Local Field in which the function result are stored, so that you will be able
to refer to it.
The field is defined just as you define table fields.
ΓòÉΓòÉΓòÉ 31.4. View TOKENS ΓòÉΓòÉΓòÉ
Following is the list of Tokens used for writing Create queries.
Commands
CREATE VIEW AS - Views name query - Begins a create view statement.
SELECT- Defines field limits in the query and is normally used according to a
specified query condition.
FROM- Indicates a table to be queried
WHERE- Starts a condition sentence.
GROUP- Files "records" according to groups.
DISTINCT- Ignores double columns.
ANY- A condition word in a SELECT sentence.
IS- Enables conditioning with NULL.
TO- A reserved word.
BY- A linking word.
AND- A condition word.
OR- A condition word.
NOT- A condition word.
Condition char
> - big
< - small
<> - different
>= - greater than or equal to
<= - smaller than or equal to
= - equal
More char
, - separates variables
* - all the fields in the table
' - opens and closes a constant local char in a query
( - open brackets
) - close brackets
ΓòÉΓòÉΓòÉ 31.5. View Examples ΓòÉΓòÉΓòÉ
Following are a few examples for query structures. The parts in brackets [ ]
are optional.
Example 1 - a CREATE VIEW AS sentence
General example
Private example
Example 2 - a detailed CREATE VIEW AS sentence
general example
Private example
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30100 ΓòÉΓòÉΓòÉ
Example 3 - a CREATE VIEW AS sentence using function and local field.
Private example
ΓòÉΓòÉΓòÉ 32. Tasks editing ΓòÉΓòÉΓòÉ
The Edit Task This is the central module in the development environment. With
it you can write or change the tasks (programs) which make up the application
The Edit Task module includes the following windows:
General Parameters.
Tables . .
Strings . .
Variables. .
Window Design . .
Logic Flow.
Sub totals . .
Ranges . .
The Edit Window
Edit Operations . .
SQL Query . .
Printers . .
When entering the module you must specify the File you wish to edit. This is
done by selecting Open from the file menu and choosing the desired file name
from the list presented. The file name will appear at the top of the screen.
If you wish to edit a new file name you must select the New option.
When you have finished editing the file, select the File option and save it. If
you are defining a new file you will be asked to type in the file name.
ΓòÉΓòÉΓòÉ 32.1. Identifiers [Tasks] ΓòÉΓòÉΓòÉ
OpenWin distinguishes between different objects by using identifiers. An
identifier is a mark which indicates the object type. This relationship makes
it possible to give identical names to different objects , yet retain the
ability to differentiate among them. For example, you can define a local field
called NAME with 0 as the identifier. You may then refer to a table field
which is also called NAME by referring to it according to the table identifier,
for example B. Identifiers that can be used in the edit tasks module flow are:
9 Printer
Z-A,9-1 Tables
! constant strings
0 local variables
# windows
* sub-window
" another task
-,+ numeric constants
? SQL query
% locking resource
^ Flag (In ranges section)
ΓòÉΓòÉΓòÉ 32.2. Flags [Tasks] ΓòÉΓòÉΓòÉ
OpenWin uses logical variables called flags. A flag is identified by the
combination of a letter and a digit, for example F1 C5, etc. The flags are
effected by OpenWin commands and can have the following values
On ON ( - or + )
Off OFF ( = )
See the explanation for use of the flags in The Logic Flow window
When tasks are linked through the Callers command, each task is given a
distinct set of flags.
OpenWin has a group of common flags which are used to transfer logic
information between linked tasks. These flags are identified by the letter Z.
ΓòÉΓòÉΓòÉ 32.3. General Parameters [Tasks] ΓòÉΓòÉΓòÉ
In this section you define the general parameters of the task. This data
includes:
The task name
The task name is a short text line which describes the task.
Routines
An OpenWin task must have a main routine, but may also include a beginning and
ending routine. Each of the routines comprises a group of commands written in
the Logic Flow window, which begins with a label.
An Initial routine
In this field you have the choice of indicating a routine name (label) which
will be activated before the main routine. Beginning routines are primarily
defined for tasks with an initialization phase, for example, receiving ranges
in a report task.
Main routine
In this field you can specify the name of the main routine of the task.
Final routine
In this field you can specify a name (label) for the routine which will be
activated after completion of the central routine. Ending routines are defined
primarily in tasks which have ending phases, for example, presenting final
calculations in report tasks.
ΓòÉΓòÉΓòÉ 32.4. Printers [Tasks] ΓòÉΓòÉΓòÉ
This section is used for report tasks. In this window you define the report
specifications and data. Beginning routines are primarily defined for tasks
with an initialization phase, for example, receiving ranges in a re port task.
Printer ID
In this field you specify the printer to which the report will be sent. You
can enter the name of a printer, a file name, or "?" to enable the selection
of a printer while you are working on the task.
Form size
You specify the length of the page. Standard A4 size paper is usually 66
lines.
First printing line
You must specify the line on which the printing should begin.
Last printing line
You must specify the line on which the printing should end.
The page beginning routine
You must specify the name for a routine which will be repeated at the beginning
of each page, for example, a routine that prints a heading at the beginning of
the page
Page end routine
You must specify the name for a routine which will be repeated after the
printing of each page has ended, for example, a routine that prints the page
number at the bottom of each page
ΓòÉΓòÉΓòÉ 32.5. Tables [Tasks] ΓòÉΓòÉΓòÉ
In this section you identify the tables managed by this task. The table
definition includes the fields.
The table identifier
In this field you must define a table identifier (1-9,A-Z). Later you will
refer to this table by specifying the identifier
The table name
In this field you must specify the definition file name of the table to be used
in the task.
Access
You must select the access form admitted for this table (reading only, reading
and writing).
Shared
If you want this table to be shared by a number of linked tasks, you must
define the table as a shared table.
ΓòÉΓòÉΓòÉ 32.6. Strings [Tasks] ΓòÉΓòÉΓòÉ
In this section you define constant character strings used in the task.
Constant name
This name identifies the constant for future reference.
Constant content
The constant content is the text. Constant characters are normally used to
define text messages that will be presented on the screen or printed etc.
ΓòÉΓòÉΓòÉ 32.7. Local Variables [Tasks] ΓòÉΓòÉΓòÉ
In this section you may define variables (local fields) to be used for
different purposes in the task such as initial values, numeric variables for
temporary calculation, etc.
The field name
The field name is an exclusive name which identifies the field and is used to
refer to the field in the program.
The field description
The field description is text which describes the context of the field. This
description is presented in the programs as the field title or a heading for
the column in which the field will appear.
The field type
There are different types of field characteristics: different kinds of numeric
fields, date fields, etc. You must type in the desired field type, or select
it from the list. A list of the fields and their meanings is presented below:
1. Byte
2. Integer
3. Long
4. Money
5. Date
6. Time
7. Real
8. Float
9. Char
10. Bitmap
The field format
Different field types can have different formats defined for them, for example,
a Char field can be presented in a form which receives characters or digits
only, to be received from right to left, or left to right, etc. The
characteristics suited to each field type can be chosen from the following
list:
1. Positive
2. Negative
3. AmerDate
4. EuroDate
5. Time
6. 0..9
7. Rgh-T-Lf
8. Lf-T-Rgh
9. Numeric
10. Catalog
11. Date
12. Hidden->
13. Hidden<-
The field length
The field length defines the length of the field presented on the screen. In
numeric fields this length includes the decimal point and commas, if the field
format is money.
Repetition factor
For each field you must define the desired repetition factor (minimum - 1 ).
This means that each local field can comprise a table with more than one value
Initial value
A field you may defined with an initial value. When you define a field with
more then one repetition factor, you will be able to define an initial value
for each of the factors. A beginning value ends with a ";".
ΓòÉΓòÉΓòÉ 32.8. Window Design [Tasks] ΓòÉΓòÉΓòÉ
This window is used for interactive editing of the task windows. You can
perform a variety of actions on the windows and their fields in order to give
them the shape you want.
Chosen window/field In order to perform actions of various kinds on a window or
a field, you must first indicate the window or field to be edited. To do this,
click on the requested field or window with the mouse. Windows are presented
at the front of the screen. Fields are surrounded by a narrow frame.
Shifting In order to move a window or a field on the screen, bring the mouse to
the field, click and hold the mouse button down, then drag the window or field
to the desired location and release the mouse button.
Size change You can change the size of the windows and the fields. This is
done similarly to the PM with the mouse.
The Action Bar
The following options are presented in the operation bar window.
Under Window you will find the following options -
Append Update Delete
Under Field you will find the following options -
Append Update Delete
Under Options you will find the following options -
Object Details Color Window Windows List
After editing a window you should press OK or Cancel
Click on the option you wish to know more about.
ΓòÉΓòÉΓòÉ 32.9. Revise/Update Window. ΓòÉΓòÉΓòÉ
When revising/updating a window, you should refer to the following parameters:
Click on the parameter you wish to know more about.
Name Style Background Title Field Icon Name Icon Position Icon Dimensions
ΓòÉΓòÉΓòÉ 32.10. Revise/Update Field. ΓòÉΓòÉΓòÉ
When revising/updating a field you refer to the following parameters:
Click on the parameter you wish to know more about.
Screen Output Field Input Field Style Background Foreground Title Place
SubScreen Help Panel
ΓòÉΓòÉΓòÉ 32.11. Color Window. ΓòÉΓòÉΓòÉ
This window can be used to change field or window colors and field styles.
Color change In order to change the color of a field or window you must mark
the field/window as chosen. Press the appropriate button to choose the desired
color from the palette and then confirm your choice by pressing Apply at the
top of the palette.
Field style change You can define a display of fields in different forms. In
order to do this you must mark a field as chosen, go to the Format list by
selecting the Format (Style) option from the operation bar at the top of the
palette, mark the display style de sired (by clicking the mouse) and confirm
your choice by pressing Apply
ΓòÉΓòÉΓòÉ 32.12. Logic flow [Tasks] ΓòÉΓòÉΓòÉ
In this section you define the logical sequence of the task. Each line is
constructed as follows:
Label
Identifies the line exclusively.
Condition
A conditional group. If conditions are specified, the line will be constructed
only if the specified conditions are met.
Command
An OpenWin command, the parameters associated with it, and the resultant
variables.
Branching
Each line can include conditioned branching.
Each part of the command is comprised of a number of fields.The fields are
defined as follows:
Label Each label identifies a specific line in a logical sequence for
purposes of reference. The label can be made up of letters and numbers.
Various commands can direct the task flow to this label. There is no need to
identify each line by a label. The reserve label ******** prevents execution
of the line while running.
Flag A flag mentioned in this field will cause the command in this line to
be executed while running or not. Use the first flag only if you want to
create a complex condition.
Operation In this field you define a logical condition which effects the
previous and following flags. The possible conditions are AND,OR, XOR
Flag A flag mentioned in this field together with the first flag and the
logical condition, if one has been defined, will effect the execution of the
command in the line. If a first flag has been defined, it is a necessity to
define this flag and the logical condition between them.
Command The desired command is written in this field. It can be one of the
OpenWin commands or an external command added to the system. See the command
specifications and the parameters which they use in the command guide.
Identifier An Identifier that characterizes the first parameter of the
command.
Parameter 1 A local field, a table field, constant, etc. Used as the first
parameter in the command, if it requires or permits the use of this parameter.
Identifier An identifier that characterizes the second parameter of the
command.
Parameter 2 A local field, a table field, constant, etc. Used as the second
parameter in the command, if it requires or permits the use of this parameter.
Identifier An identifier which characterizes the result variable of the
command.
Result variable A local field, a table field, constant,used as a result
variable in the command, if it requires or permits the use of this parameter.
Result flag A logical flag. Most commands effect the situation of the result
flag. A flag with the value "=" (OFF) indicates success. A flag with the
value "+" or "-" (ON) indicates failure. Specifications for the situation of
the flag after each command can be found in the command guide.
Goto Label This label is used for quick branching from this line. The label
relates to the definition of a line in the task. Branching through this label
can be done in two ways. The first is through the use of different flow
commands such as "Perform", etc. The second depends on the nature of the
result flag. When you indicate a result flag, branching to the defined lab el
will proceed if, after execution of the command, the result flag is set to the
same value as that defined in the Result flag.
ΓòÉΓòÉΓòÉ 32.13. Comment Line [Tasks] ΓòÉΓòÉΓòÉ
In a comment line you may write comments to document your task logic flow.
ΓòÉΓòÉΓòÉ 32.14. SQL Queries [Tasks] ΓòÉΓòÉΓòÉ
In the SQL Queries section you define queries which are made of SQL sentences
written in multi-line windows to the ANSI standard. Each query starts and is
specified by a label and continues until another label indicates the beginning
of the next query. You will refer to this label in the Ex-Sqland the Fetch
commands.
While writing a query you use TOKENS (SQL queries) and treat local variables
and fields from the data bases. You can choose to see a number of queries
examples. If you aren't familiar with SQL, we recommend that you study the
subject from suitable literature. Comprehensive information can be found in
the following books-
IBM OS/2 Extended Edition Database Manager Programming Guide and Reference
Database Manager Structured Query Language (SQL) Concepts.
ΓòÉΓòÉΓòÉ 32.15. Variables in the query [Tasks] ΓòÉΓòÉΓòÉ
In the SQL queries you can use OpenWin variables as part of the query condition
tot create flexible queries that change while running. The variables in the
queries can be fields from tables, fields from files, local fields , or
textual constants The variables in the query are identified as used to in
OpenWin with the identifier. You can also define them as part of the query's
condition. a local constant character by inserting it between inverted
commas, for example: 1.CITY = 'WASHINGTON'
ΓòÉΓòÉΓòÉ 32.16. Queries TOKENS [Tasks] ΓòÉΓòÉΓòÉ
The following is a list of TOKENS used for writing queries.
Commands
ROLLBACK- cancels changes made in the current operation.
COMMIT- updates changes in the current operation.
SELECT- Defines field limits in the query normally used according to a
specified condition in the query.
FROM- Indicates a table on which the query is to be performed.
WHERE- starts a condition sentence.
INSERT- inserts new "records" into the table.
DELETE- deletes the table "records".
UPDATE- updates "records"
GROUP-organizes "records" by groups.
ORDER- sets the fields according to which the table will be categorized.
SET- joins the VALUES
VALUES- indicates the beginning of a group of values to be entered into the
table.
DESC- organizes in descending order (from large to small).
ASC- organizes in ascending order (from small to large).
IN-starts an operation.
ALL-a condition word in a SELECT sentence.
DISTINCT- ignores double columns.
ANY- a condition word in a SELECT sentence.
IS- enables conditioning with NULL.
TO-a reserved word.
BY-a linking verb.
INTO-indicates a table.
AND-a condition word.
OR- a condition word.
NOT-a condition word.
Condition char
> - big
< - small
<> - different
>= - larger or equal
<= - smaller or equal
= - equal
More char
, - separates variables
* - all the fields in the table
' - opening and closing a constant local char in a query
( - open brackets
) - close brackets
ΓòÉΓòÉΓòÉ 32.17. Queries Examples [Tasks] ΓòÉΓòÉΓòÉ
Following are a few examples for query structures The parts in brackets [ ] are
optional.
Example 1 - a SELECT sentence
general example
Private example
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30101 ΓòÉΓòÉΓòÉ
Example 2 - INSERT sentence
General example
Private example
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30102 ΓòÉΓòÉΓòÉ
Example 3 - UPDATE sentence
General example
Private example
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30103 ΓòÉΓòÉΓòÉ
Example 4 - DELETE sentence
General example
Private example
Next Page
ΓòÉΓòÉΓòÉ <hidden> 30104 ΓòÉΓòÉΓòÉ
Example 5 - ROLLBACK sentence
General example
Private example
example 6 - COMMIT sentence
General example
Private example
ΓòÉΓòÉΓòÉ 32.18. Sub totals [Tasks] ΓòÉΓòÉΓòÉ
In this section you can define sub-totaling and operations performed in
response to the Break command. Breaks and sub-totaling are usually used with
report tasks. To do this you must define the following parameters:
Label
The label identifies a group of sub-totals. The group of sub-totals continues
until the next label.
Breaking field
A table field or a local field and the field identifier Operations defined for
execution when the field changes will be executed when the value of this field
is changed.
Add field
A field that calculates.
Result
A field that collects the scheme result.
When a field changes
In a line that defines breaking - when a field value changes - you can define
the following operations to be executed
Routine name
The name of a routine in the logic flow which will be executed when the value
of the breaking field changes. This routine is used for complicated
calculations.
Printing window
A window which will be printed if a break occurs.
New page
You can indicate that you wish to move to a new page whenever a break occurs.
beginning value
Routine name
You can indicate the name of a routine in the logical flow to be executed at
the beginning of a task and after a break. Such a routine is normally used to
initialize values for different fields such as fields for sub-totaling.
ΓòÉΓòÉΓòÉ 32.19. Ranges [Tasks] ΓòÉΓòÉΓòÉ
In this section you define the ranges to be examined during the execution of
the Range command. These examinations are usually performed in report tasks.
See the Range command in the command guide. Range definition is performed as
following way:
Label
The label identifies a group of ranges. The group of ranges continues until
the next label.
A range can be made of fields as well as of Flags. To define a range of Flags
use ^ identifier.
Checked field
A field and field identifier on which the range is examined.
Minimum field
You have to type in the field name and the field identifier This field is used
as a lower blockage in the examined range. It will normally be a local field
which will be given an initial value at the beginning o f the task.
Maximum field You must type in the field name and the field identifier This
field is used as an upper blockage in the examined range. It will normally be
a local field which will be given an initial value at the beginning of the
task.
A logical condition
This the connection between the examined range in this line and the following
lines of the range group, if they exist. The possible conditions are: AND,
OR, XOR.
ΓòÉΓòÉΓòÉ 32.20. Edit Operations [Tasks] ΓòÉΓòÉΓòÉ
The Edit Operations section is an operation library which is activated when
the Edit command is used on a window. Each window on which the Edit command is
to be used must contain a group of operations. The structure of the Edit
Operations window is as follows:
Window name Entering a window name in this field starts a group of edit
commands which belong to this window. The name of the window is defined in the
window design section. The group includes all defined commands from a line for
which a window name has been defined, until the next line for which a window
name has been defined. This field can be defined only once for each group of
edit commands, in the first line of the command group.
Identifier If this line has an edit key defined for it, you must define the
table identifier to which it belongs to.
Key If the line starts a group of commands, you must enter the key name from
a table according to which the automatic edit operations will be executed. In
special cases you can define a field (local or from a table) as an edit key.
Operation One of the edit commands. Some of the edit commands are mandatory,
some can appear only once in a group of commands and some can appear several
times in the same group. See the detailed explanation of the edit commands in
the edit commands appendix
Selection char When the Edit command is being executed the system waits for
the user's selection, which is made by selecting an option from the operation
menu with the mouse or by pressing the key or combination of keys defined as
the selection char. Each edit command has a character defined as default
choice, but the programmer can change it.
Routine for execution A routine name written in the logic flow Some of the
edit commands require definition of a routine, some are internal and have no
connection to a routine, and some can be executed automatically or referred to
a routine. The sequence of actions performed by an edit operation is:
Executing an automatic beginning action (usually a screen operation).
Executing the default choice or the routine, if defined. Execution of an
ending operation (usually a screen operation with a command execution break).
The result flag The result flag is a logical flag which permits the
transfer of information from the user routine to the edit command that
activated this routine. Normally a flag in the OFF position indicates a
successful operation and an ON flag indicates its conclusion.
Operation description The text is displayed in the operation bar. To set a
"Hot Key" type ~ first. For example, ~Exit.
ΓòÉΓòÉΓòÉ 32.21. Edit Window [Tasks] ΓòÉΓòÉΓòÉ
In this section you define the way in which the edit window is shown on the
screen.To do this you must insert the following parameters:
The window name The window name is the window you wish to activate with the
Edit command.Remember that you must define EDIT actions for this window.
Position X axis The position of the bottom left corner of the window on the
x-axis (the width axis) in relation to the left side of the screen.
Y axis The position of the bottom left corner of the window on the y-axis (the
height axis) in relation to the left side of the screen.
Width The width of the window.
Height The height of the window.
Line color This is the color of the current line.
Heading and identifier You must define a local field or constant character to
be used as the heading for a window.
ΓòÉΓòÉΓòÉ 33. Source Generator ΓòÉΓòÉΓòÉ
The The Source Generator module is used to generate OpenWin codes that can be
edited with the Edit Tasks module.
You may select different types and formats of code such as Input Task (data
entry), Reports, Dialog, etc.
Source generation is based on a Table Definition file (.DES) which you create
with the Define Tables module.
The output of Source Generation is a task source code file (.ARS). You can
edit this file with the Edit Tasks module, or build it from the start with the
build tasks module.
To generate a source you must:
Select the type .
Select the table definition (.DES) file.
Select the task name to be generated. The default name is identical with the
table definition name.
Select the format and the source to be created.
ΓòÉΓòÉΓòÉ 34. Link Tasks ΓòÉΓòÉΓòÉ
The Link Tasks module is used to Link tasks that use the Callers command.
Before you link a task, you should build it and the called tasks using the
Build Tasks module.
Linking tasks creates a new task (.TSK), which includes all of the tasks called
by the main (source) task.
If one of the called tasks also uses the Callars command Do Not Linking the
main task will link all the tasks called by the main task and the called tasks,
if any exist.
To link a task you should:
Select the main task as the Source Task Name
Define the new task name you wish to have as the output of the linkage and
type it in as the Target Task Name
You may mark the overwrite option. If you do not mark this option, a message
will be displayed, if the Target (New) task exists.
Press LINK
A list of the called tasks names will be displayed.
You may link another task, or press CANCEL to quit.
ΓòÉΓòÉΓòÉ 35. Help File ΓòÉΓòÉΓòÉ
If you wish to define help panels for the end of the application, you should
modify the file USERHELP.IPF.
You will find this file in the directory where OpenWin is installed.
This file is embedded within the OpenWin standard help file - RARSE.IPF.
To define an .IPF file, look at the proper section (Developing Help
Information) of the IBM OS/2 Programming Guide.
Use resource codes (res=) from 10000 and higher.
After editing the USERHELP.IPF File, you should compile the file RARSE.IPF in
order to create the help file - RARSE.HLP.
The compilation is done with the OS/2 IPFC compiler.
ΓòÉΓòÉΓòÉ 36. Debugger ΓòÉΓòÉΓòÉ
The The Visual Debugger module enables you to run your tasks in debug mode.
When you run a task in debug mode you can see the task execution as well as all
commands, data, etc.
When you activate this module and enter a task, you see the following windows:
1. Commands
2. Flags
3. Variables
4. Tables
5. SQL Query
6. Locate Data Dictionary
The items in each window are numbered according to the order in which they
appear.You can refer to these items by their number.
You can access these windows by clicking with the mouse, or by choosing the
Windows option from the action bar.
On the action bar you will also find the Operations, Run and Step options.
ΓòÉΓòÉΓòÉ 37. Debugging Operations ΓòÉΓòÉΓòÉ
Under this title you will find the following options:
1. Present PC
2. Change PC
3. Find Text
4. Break Points
ΓòÉΓòÉΓòÉ 37.1. Present PC ΓòÉΓòÉΓòÉ
This option effects the Commands window. It displays the present command
line to be executed.
ΓòÉΓòÉΓòÉ 37.2. Change PC ΓòÉΓòÉΓòÉ
This option effects the Commands window. It enables you to change the
program counter and thus define a new command line to be executed next.
ΓòÉΓòÉΓòÉ 37.3. Find Text ΓòÉΓòÉΓòÉ
This option can be used within any window. The text may be a Command, Variable
name or title, Field value, etc.The line found becomes the first line in the
window.
ΓòÉΓòÉΓòÉ 37.4. Break Points ΓòÉΓòÉΓòÉ
This option opens a table from which you can define break points.
In each line you can type a Line No., Field No, Screen No., etc..
You should type the flag name (A1, B5 etc.). You can specify the flag status
that will create a break by typing it (A1=, B5+, etc.)
At the end of the line, you indicate whether or not the line break points
should be active.
When you scroll through the Commands window you can define a break point for
every line by double clicking on the line with the mouse Right button.
ΓòÉΓòÉΓòÉ 37.5. Debugging Run ΓòÉΓòÉΓòÉ
When you choose the Run option, the task will start running. If you define
Break Points, the task will pause when it reaches a break point.
You can use the mouse to switch back and forth between the task window and the
debugger window.
ΓòÉΓòÉΓòÉ 37.6. Debugging Step ΓòÉΓòÉΓòÉ
When you choose the Step option, the task starts running, step by step. You
will be able to see the execution of the command and the results.
ΓòÉΓòÉΓòÉ 37.7. Commands [Debug] ΓòÉΓòÉΓòÉ
In the command window, you can see the task commands and parameters as they
appear in the logic flow.
The displayed PC line is highlighted.
When you scroll through the Command window, you can define a break point for
every line by double clicking on it with the mouse Right button.
You can double click on a line with the mouse Left button to see all the
Locate Data Dictionary related to the command in this line.
ΓòÉΓòÉΓòÉ 37.8. Flags [Debug] ΓòÉΓòÉΓòÉ
In the Flags window you can see the task flags and their status. You can
double click on a flag with the mouse Left button to Change to see and
change its status.
ΓòÉΓòÉΓòÉ 37.9. Variables [Debug] ΓòÉΓòÉΓòÉ
In the Variables window you can see the task's local and global data.
In each line you can see the data type identifier, title and value.
This data includes (Id 1-9,A-Z) Tables Fields, (Id 0)Local Variables, (Id 0)
Strings Constants and (Id +,-)Immediate numeric constants.
If a Local Variable has a repetition factor greater than one, a list of values
is displayed and the current value highlighted.
You can double click on a line with the mouse Left button to Change change
the data values.
ΓòÉΓòÉΓòÉ 37.10. Tables [Debug] ΓòÉΓòÉΓòÉ
In the Tables window, you can view the names of the tables used by the task,
together with their identifiers, to enable you to refer to the table's
Variables (Fields), or to Commands processing the table data.
ΓòÉΓòÉΓòÉ 37.11. SQL Query [Debug] ΓòÉΓòÉΓòÉ
In the SQL Query window, you can see the SQL Queries as they are sent to the
SQL Server.
ΓòÉΓòÉΓòÉ 37.12. Locate Data Dictionary [Debug] ΓòÉΓòÉΓòÉ
In the Locate Data Dictionary window, you can see all the data related to a
chosen command.
When you scroll through the Commands in the Command window, you can double
click on a line with the mouse Left button to see the data related to the
command.
In the Locate Data Dictionary window you can double click on a line with the
mouse Left button to Change and see the data values.
ΓòÉΓòÉΓòÉ 37.13. Debugging Values Change ΓòÉΓòÉΓòÉ
When you are in the Variables Window, the Flags window, or the Locate Data
Dictionary window, you can double click on a line with the mouse Left button
to change the data values.
A window appropriate to the data format will be opened.
ΓòÉΓòÉΓòÉ 38. Utilities ΓòÉΓòÉΓòÉ
Under the Utilities option, you will find utilities used during development.
1. User Permeations
2. Lister
3. Printers
4. Locking Resources
ΓòÉΓòÉΓòÉ 39. User Permeations ΓòÉΓòÉΓòÉ
The User utility defines access rights to system resources from OpenWin tasks
and the OpenWin environment.
When you enter the User utility for the first time, use the system password -
OPENWIN
After you have defined your system manager password with the same permission as
that of the OPENWIN password, delete the OPENWIN password.
A "Job" is a group of operations for which you wish to control the access
rights. It may be an application, a menu option, a task, a routine, or one line
within a task.
There are two options in the utility module:
1. Input
2. Output
See also "Passwrd" - OpenWin environment command, "Ckpw" logic flow command.
ΓòÉΓòÉΓòÉ 39.1. Input ΓòÉΓòÉΓòÉ
The Input Module contains three windows:
1. USER HANDLING
2. JOB HANDLING
3. PERMISSION HANDLING
ΓòÉΓòÉΓòÉ 39.2. USER HANDLING ΓòÉΓòÉΓòÉ
In USER HANDLING, a user password is entered into the system. This window has
the following structure:
User password. is a code identifying the user or user's group.
General code. is a parameter which allows you to define the access rights for
users with the same password.
Work code. is a numeric code used to define access rights for the user from an
OpenWin environment menu.The application's menu command, Passwrd, puts the Work
code into the result variable.
Description. Includes a text string describing the user's access rights.
ΓòÉΓòÉΓòÉ 39.3. JOB HANDLING ΓòÉΓòÉΓòÉ
In JOB HANDLING, the default access to a job is defined. This window has the
following structure:
Job code identifies the job . Enter the job name here and refer to it
whenever you use the Logic Flow "Ckpw" command in order to get the permission a
user has for this job
A "Job" is a group of operations on which you wish to control the access
rights. It may be an application, a menu option, a task, a routine, or one line
within a task.
Access You must select an access from the list. If a user has no other
permission in the PERMISSION HANDLING for this job code, the access defined
here will be returned by the Ckpw command as a result.
Description includes a text string describing the job.
ΓòÉΓòÉΓòÉ 39.4. User permeations ΓòÉΓòÉΓòÉ
In PERMISSION HANDLING, each user receives access rights to a specific job.
This window has the following structure:
User password. is a code identifying the user or user's group which can be
selected from the list of passwords in the USER HANDLING window.
Job code.can be selected from the job list in the JOB HANDLING window.
Group and Sub are numeric codes which allow you to define different access
rights to the job defined for several users with the same password.
The value "0" indicates that this applies to all of the groups (Sub-groups).
Zero may be used for one or both variables.
Access You must select an access from the list. It will be returned by the
Ckpw command as a result.
Description includes a text string describing the user's access rights.
ΓòÉΓòÉΓòÉ 39.5. Output ΓòÉΓòÉΓòÉ
The Output Module contains three printing options: USER HANDLING, JOB HANDLING
and PERMISSION HANDLING.
ΓòÉΓòÉΓòÉ 40. Lister ΓòÉΓòÉΓòÉ
The lister utility enables you to print your environment, table definitions,
view definitions and task sources.
ΓòÉΓòÉΓòÉ 41. Printers ΓòÉΓòÉΓòÉ
The printer utility enables you to define new Printer Control Files.
ΓòÉΓòÉΓòÉ 42. Locking Resources ΓòÉΓòÉΓòÉ
the Locking Resources status while IN USE. When using this utility, be very
careful not to change the normal behavior of the application
ΓòÉΓòÉΓòÉ 43. Batch Building ΓòÉΓòÉΓòÉ
In order to maintain large applications you may rebuild and link an application
from a batch file. To do so, you should add the /B qualifier to the command and
specify an errors messages file name. a BTH extension will be add to this file
name.
Following are the building commands formats-
Build Environment-
BV [Environment file name] /BErrors
Build Tables -
BLDTBL [Table definition file name] /BErrors
(Batch tables building dose not overwrite existing tables)
Build Views -
BLDVEW [View definition file name] /BErrors
(Batch views building dose not overwrite existing views)
Build Tasks -
BX [Task definition file name] /BErrors
Link Tasks -
LN [Table definition file name] /O /BErrors
(You must specify the /O (overwrite) qualifier)
ΓòÉΓòÉΓòÉ 44. C O M M A N D S R E F E R E N C E ΓòÉΓòÉΓòÉ
This guide has been developed to help you learn about OpenWin commands.
You may use the Contents option (select it from the Help Window Action Bar) to
view this book by it's chapters order or you may search the Index for a
particular module, section, command etc.
You can also select one of the following sections -
Menu Commands,
Field Types,
Logic Flow Commands,
Edit Command Operations,
ΓòÉΓòÉΓòÉ 45. Menu commands ΓòÉΓòÉΓòÉ
Here is the list of commands used to create a menu.
Batch
Goto
Endbtch
Endmenu
M-Line
Newbtch
Newmenu
Passwrd
System
Task
Choose a command on which you wish to receive further information.
ΓòÉΓòÉΓòÉ 45.1. Batch ΓòÉΓòÉΓòÉ
Description Is used to define this menu option. With the selection of a
choice a branching to a label is made. This label should point out a line that
begins a group of commands which are supposed to be executed one after the
other. In the line which the reference is made to there should be a Newbtch
command.
Action parameter A label points to address.
Result variable None.
Icon Bitmap name which will appear next to the text.(a .bmp file name without
the .bmp extension )
Text This text would be shown as the option description.
See also Newbtch,Endbtch
ΓòÉΓòÉΓòÉ 45.2. Endbtch ΓòÉΓòÉΓòÉ
Description Ends a group of commands which are executed one after the other.
A group of commands that begins with a Newbtch command must end with this
command.
Action parameter None.
Result variable None.
Icon None. Text None.
See also .Newbtch,Batch
ΓòÉΓòÉΓòÉ 45.3. Endmenu ΓòÉΓòÉΓòÉ
Description Ends a group of commands which create a menu window. Every menu
window must end with this command.
Action parameter None.
Result variable None.
Icon None.
Text None.
See also .Newmenu
ΓòÉΓòÉΓòÉ 45.4. M-Line ΓòÉΓòÉΓòÉ
Description Used to define a menu option. With the selection of a choice a
branching to a label is made. This label should indicate a line which begins a
sub-menu window. In the line which the reference is made to there should be
the Newmenu command.
Action parameter Label to go to.
Result variable None.
Icon Bitmap name which will appear next to the text.( a .bmp file name
without the .bmp extension )
Text Would be shown as the option description.
See also .Newmenu,Batch
ΓòÉΓòÉΓòÉ 45.5. Newbtch ΓòÉΓòÉΓòÉ
Description Begins a group of commands which are executed one after the
other. Every group of "Batch" commands must begin with this command and end
with the Endbtch command. The reference to this command is made from the Batch
menu option.
Action parameter None.
Result variable None. Icon None. Text None. See also .Endbtch,Batch
ΓòÉΓòÉΓòÉ 45.6. Newmenu ΓòÉΓòÉΓòÉ
Description Begins a group of commands which make up a menu window. Every
group of commands defining a menu window must begin with this command and end
with the Endmenu command. The referral to this command is made from the
M-Line menu option. This command begins the menu tree.
Action parameter None.
Result variable None.
Icon None
Text Will appear as a heading in the menu window.
See also .Endmenu,M-Line.
ΓòÉΓòÉΓòÉ 45.7. Passwrd ΓòÉΓòÉΓòÉ
Description Stops the menu flow and waits for a password
Action parameter None.
Result variable Menu variable A-Z. This variable will receive the user's
work code. In order to get by the passwords, the user must type in a legal
password .
Icon None.
Text None.
ΓòÉΓòÉΓòÉ 45.8. System ΓòÉΓòÉΓòÉ
Description Is used as an option in a menu or a group of Batch commands.
When the option is chosen an exit to the operating system is made and the
option runs a program,a group of commands or an operating system command.
Action parameter The command line is used for activating the program, a group
of commands or the operating system command. For example, in order to receive
a list of files into a file, the parameter will be a command file name in which
the command - DIR >DIRFILE.TMP is typed.
Result variable None.
Icon A bitmap name that will appear next to the text describing the choice (
a .bmp file without the .bmp extension)
Text Text describing the option.
See also .Task
ΓòÉΓòÉΓòÉ 45.9. Task ΓòÉΓòÉΓòÉ
Description Is used as an option in a menu or a group of Batch commands.
When this option is chosen an OpenWin (.TSK) task is being executed.
Action parameter The task name for operating without the TSK extension.
Result variable A variable, if defined, will receive the exit value from the
task.
Icon A bitmap name that will appear next to the text describing the choice (
a .bmp file without the .bmp extension)
Text Text describing the option in the menu
See also .System
ΓòÉΓòÉΓòÉ 45.10. Goto ΓòÉΓòÉΓòÉ
Description Is used as an option in a group of Batch commands. When the menu
flow reaches this command it diverts the flow to the mentioned label.
Action parameter The label to divert to.
Result variable None.
Icon None.
Text Text describing the option.
See also .M-Line,Batch
ΓòÉΓòÉΓòÉ 46. Fields types ΓòÉΓòÉΓòÉ
Use this menu to get information about the different field types in the system.
1. Byte
2. Integer
3. Long
4. Money
5. Date
6. Time
7. Real
8. Float
9. Char
10. Bitmap
ΓòÉΓòÉΓòÉ 46.1. Byte ΓòÉΓòÉΓòÉ
This is a numeric field represented by one byte. It can have the following
formats:
1. Positive
2. Negative
The field length is between 1 and 11.
ΓòÉΓòÉΓòÉ 46.2. Integer ΓòÉΓòÉΓòÉ
This is a numeric field which can receive positive or negative whole numbers
between 32767 and 32767. It can have the following formats:
1. Positive
2. Negative
The field length is between 1 and 11.
ΓòÉΓòÉΓòÉ 46.3. Long ΓòÉΓòÉΓòÉ
This field is identical to an Integer field, but can receive numbers greater
than 32767.
This field can have the following formats:
1. Positive
2. Negative
The field length is between 1 and 11.
ΓòÉΓòÉΓòÉ 46.4. Money ΓòÉΓòÉΓòÉ
This is a numeric Real field which is displayed with a comma after every three
digits. It can have 0..9 formats. The field length is between 1 and 100.
ΓòÉΓòÉΓòÉ 46.5. Date ΓòÉΓòÉΓòÉ
This is a date field which is saved in four bytes: day, month, and two year
bytes. When values are received in this field, the legality of the date is
checked. The field can have the following formats:
1. American
2. European
The length of the date field is either 7 or 10.
ΓòÉΓòÉΓòÉ 46.6. Time ΓòÉΓòÉΓòÉ
This field is used to save time variables of hours, minutes and seconds.This
field is always characterized as Time, and its length can be either 5 or 8.
ΓòÉΓòÉΓòÉ 46.7. Real ΓòÉΓòÉΓòÉ
This is a real number field. It can have positive or negative numbers with up
to 6 digits after the decimal point. The formats of these fields are 0..9, and
the field length is between 1 and 100, including the decimal point. The length
must be greater than the field format.
ΓòÉΓòÉΓòÉ 46.8. Float ΓòÉΓòÉΓòÉ
This is a real number field, like the Real field, but one which can receive
greater numbers.
ΓòÉΓòÉΓòÉ 46.9. Char ΓòÉΓòÉΓòÉ
This is a char field which can be characterized in the following ways:
1. Rgh-T-Lf
2. Lf-T-Rgh
3. Numeric
4. Catalog
5. AmerDate
6. EuroDate
7. Time
8. Hidden->
9. Hidden<-
Most of the characteristics have a length of between 1 and 100. The date
format has a length of either 7 or 10. The time format can have a length of
either 5 or 8.
ΓòÉΓòÉΓòÉ 46.10. Bitmap ΓòÉΓòÉΓòÉ
In order to display a bitmap field, you define the field as a Char When you
design the window, you define S_BITFLD Style to the field. The field should
have a .bmp file name.
ΓòÉΓòÉΓòÉ 47. Fields formats ΓòÉΓòÉΓòÉ
Under this title there is information about the different field Formats in the
system.
Use the Index or the Expand Contents help option to see the different field
Formats .
ΓòÉΓòÉΓòÉ 47.1. Positive ΓòÉΓòÉΓòÉ
This format makes it possible to enter positive numbers from the keyboard only.
ΓòÉΓòÉΓòÉ 47.2. Negative ΓòÉΓòÉΓòÉ
This format makes it possible to enter positive and negative numbers from the
keyboard.
ΓòÉΓòÉΓòÉ 47.3. AmerDate ΓòÉΓòÉΓòÉ
The date format will be accepted and shown according to the American standard:
month/day/year.
ΓòÉΓòÉΓòÉ 47.4. EuroDate ΓòÉΓòÉΓòÉ
The date format will be accepted and shown according to the European standard:
day/month/year.
ΓòÉΓòÉΓòÉ 47.5. Time ΓòÉΓòÉΓòÉ
Time is presented in hours:minutes:seconds format
ΓòÉΓòÉΓòÉ 47.6. 0..9 ΓòÉΓòÉΓòÉ
This numeric format indicates the number of digits to be displayed after the
decimal point.
ΓòÉΓòÉΓòÉ 47.7. Rgh-T-Lf ΓòÉΓòÉΓòÉ
In this field, the characters are right justified.
ΓòÉΓòÉΓòÉ 47.8. Lf-T-Rgh ΓòÉΓòÉΓòÉ
In this field, the characters are left justified.
ΓòÉΓòÉΓòÉ 47.9. Numeric ΓòÉΓòÉΓòÉ
This field will accept only numeric digits.
ΓòÉΓòÉΓòÉ 47.10. Catalog ΓòÉΓòÉΓòÉ
In this field, the characters are inserted from right to left.
ΓòÉΓòÉΓòÉ 47.11. Date ΓòÉΓòÉΓòÉ
This field is displayed in a date format structure.
ΓòÉΓòÉΓòÉ 47.12. Hidden-> ΓòÉΓòÉΓòÉ
Characters are inserted in this field from left to right, but remain hidden
from view.
ΓòÉΓòÉΓòÉ 47.13. Hidden<- ΓòÉΓòÉΓòÉ
Characters are inserted in this field from right to left, but remain hidden
from view
ΓòÉΓòÉΓòÉ 48. Edit Command Operations ΓòÉΓòÉΓòÉ
The Edit Operations The Edit Operations are operations defined in the Edit
Operations WindowThese operations are actions that the Edit operations
performs. Some of the edit operations are mandatory, some can appear only once
in a group of commands and some can appear several times in the same group.
See the detailed explanation for Edit Operations in the appendix.
ΓòÉΓòÉΓòÉ 48.1. APPEND ΓòÉΓòÉΓòÉ
Description
Executes screen operations as preparation for receiving a new record. The
values of the key fields are maintained. If the user's routine generates (ON)
status at the result flag, the value of the last key field is re stored.
Screen operation
Opens an empty record under the current record.
Routine execution
Vital. Normally includes receiving values for fields and writing functions.
Result flag Y9..A0. This operation repeats itself as long as the user's
routine generates (ON) the result flag is turned off (OFF).
ΓòÉΓòÉΓòÉ 48.2. DELETE ΓòÉΓòÉΓòÉ
Description Executes a screen operation after a record has been deleted.
Screen operation The screen operation refreshes the screen after a record has
been deleted. A refresh operation is executed only if the result flag
returned by the routine indicates the success of the delete operation.
Routine for execution Vital. Normally this will include confirmation of the
delete operation and a DELETE command.
Result flag Y9..A0. The screen operation will be executed only if the result
flag is turned off (OFF).
ΓòÉΓòÉΓòÉ 48.3. DISPLAY ΓòÉΓòÉΓòÉ
Description Shows the current record in the window. This command is vital
for every edit window.
Screen operation Presents a window line.
Routine for execution Vital. Usually it includes a FIND command. It can
include different commands used for linking between fields or tables.
Result flag Marks a flag.
ΓòÉΓòÉΓòÉ 48.4. EXIT ΓòÉΓòÉΓòÉ
Description Ends the execution of the edit commands and leaves the Edit
command. The flag defined in the Edit command line will have the value "="
(OFF).
Screen operation None.
Routine for execution Vital. Will be executed before exiting the Edit
command.
Result flag Marks a flag.
ΓòÉΓòÉΓòÉ 48.5. EXIT+,EXIT- ΓòÉΓòÉΓòÉ
Description Leaves the Edit command while turning on the flag defined in the
Edit command line for the "+" or "-" values respectively.
Screen operation None.
Routine for execution Vital. Can include different functions, including
activation of another task. It normally defines the position of the flag.
Result flag Y9..A0 Optional. If the routine executed turns on the flag
defined here, the edit commands will continue to run and the Edit command
execution will not stop after execution of the routine.
ΓòÉΓòÉΓòÉ 48.6. FIRST ΓòÉΓòÉΓòÉ
Description Transfers the minimum values to the key fields defined for the
edit window.
Screen operation None.
Routine for execution Vital. If you want the beginning key values to be
different from the minimum values, you can transfer the requested values.
Result flag Marks a flag.
ΓòÉΓòÉΓòÉ 48.7. INSERT ΓòÉΓòÉΓòÉ
Description Performs a screen operation in preparation for receiving a new
record. The value of the key fields is retained. If the user's routine turns
on (ON) the result flag, the value of the last key field is returned.
Screen operation Opens an empty record in the location of the current chosen
record.
Routine for execution Vital.Normally includes receiving values for fields and
writing them
Result flag Y9..A0. This operation repeats itself as long as the user's
routine leaves the result flag turned off (OFF).
ΓòÉΓòÉΓòÉ 48.8. LAST ΓòÉΓòÉΓòÉ
Description Transfers the maximum values to the key fields defined for the
editing window.
Screen actions None.
Routine for execution Vital. If you want to limit the key values to maximum
values, you can transfer the desired values.
Result flag Marks a flag.
ΓòÉΓòÉΓòÉ 48.9. LOCATE ΓòÉΓòÉΓòÉ
Description Prepares the screen to receive a query for locating a record.
Saves the key values and, if the result flag indicates that the operation has
been stopped, restores the value of the last key.
Screen operation Opens a line at the location of the current chosen record.
When the locating succeeds, the window is refreshed.
Routine for execution Vital. The routine includes receiving a query and
locating functions.
Result flag Y9..A0. Indicates the success or failure of the locating
function.
ΓòÉΓòÉΓòÉ 48.10. NEXT ΓòÉΓòÉΓòÉ
Description Reads the following record according to the key value. If there
isn't any record to be read, the value of the last key is retained.
Screen operation Fits the position of the cursor.
Routine for execution Vital. Normally includes a Read command that will read
the next record. You can define a routine that will read the previous record
in a different way and in different tests.
Result flag Y9..A0. Used to return an answer from the routine. The off (OFF)
position indicates that a record is currently being read. The on (ON) position
indicates that no record has been found.
ΓòÉΓòÉΓòÉ 48.11. PREVIOUS ΓòÉΓòÉΓòÉ
Description Reads the previous record according to the key value. If no
record exists, the value of last key is saved.
Screen operation Fits the position of the cursor.
Routine for execution Vital.It normally includes a Prev command. You can
define a routine that will read the previous record in a different way and in
different tests.
Result flag Y9..A0. Used to return an answer from the routine. The off (OFF)
position indicates that a record is currently being read. The on (ON) position
indicates that no record has been found.
ΓòÉΓòÉΓòÉ 48.12. UPDATE ΓòÉΓòÉΓòÉ
Description Permits the updating of a record.
Screen operation Restores the values of the record if the updating function
is stopped.
Routine for execution
Vital. Normally includes input values and updating commands.
Result flag Y9..A0. Indicates the success or failure of the updating
operation.
ΓòÉΓòÉΓòÉ 49. Logic Flow Commands ΓòÉΓòÉΓòÉ
The OpenWin commands are the commands which you define in the Logic Flow
Section to create the logic flow for the task. See the detailed explanation
in the appendix.
ΓòÉΓòÉΓòÉ 49.1. Accept ΓòÉΓòÉΓòÉ
Description Enables the input of data to a field or to a number of fields
combined by a sub-screen. The PUT-LIN command, or the Edit command, must
precede this command.
Identifier *
Parameter 1 Sub-screen name.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag Can have the following values:
= (OFF) Input is ended normally by pressing enter, or clicking with the mouse
on another sub-screen.
+ (ON) Input is ended by pressing esc, or the appropriate mouse button .
See also Put-Lin ,Edit, Display
ΓòÉΓòÉΓòÉ 49.2. Add ΓòÉΓòÉΓòÉ
Description Addition. This operation can be performed on two numeric values,
or on a numeric value and a date.
Identifier Z-A,9-0,-,+
Parameter 1 The first term is a local variable, constant, or field from a
file which includes a numeric value or date.
Identifier Z-A,9-0,-,+
Parameter 2 The second term is a local variable, constant, or field from a
file which includes a numeric value or date.
Identifier Z-A,9-0
Result variable A local variable, or field from a file with a numeric value
or date. Formats that will include the addition result.
Result flag Can have the following values:
= (OFF) The result of the addition equals 0.
+ (ON) The result of the addition is greater than 0 .
+ (ON) The result of the addition is smaller than 0 . If the addition involves
a date field, the flag will be on (ON), in a + position.
See also Diff-M,Diff-Y ,Mult , Sub
ΓòÉΓòÉΓòÉ 49.3. Add-M ΓòÉΓòÉΓòÉ
Description Adds a month to the date.
Identifier Z-A ,9-0
Parameter 1 Date field.
Identifier Z-A ,9-0
Parameter 2 A numeric field containing a value which defines the number of
months you wish to add to a parameter 1.
Identifier Z-A ,9-0
Result variable A date field that will get the calculated date.
Result flag Always turned on (ON), in the + position.
See also .Add, Add-Y, Diff-M,Diff-Y, Sub
ΓòÉΓòÉΓòÉ 49.4. Add-Y ΓòÉΓòÉΓòÉ
Description Adds a year to the date.
Identifier Z-A ,9-0
Parameter 1 Date field.
Identifier Z-A ,9-0
Parameter 2 A numeric field containing a value which defines the number of
years you wish to add to a parameter 1.
Identifier Z-A ,9-0
Result variable A field that will get the calculated date.
Result flag Always turned on (ON) in the + position.
See also .Add, Add-M, Diff-M,Diff-Y, Sub
ΓòÉΓòÉΓòÉ 49.5. Break ΓòÉΓòÉΓòÉ
Description Causes the task to examine the definitions in the Sub totals
window in order to make the calculations defined in this window. If the
breaking values change, it performs the routines marked for execution with the
changing of the values.
Identifier None.
Parameter 1 A label which defines the group of examinations in the break
window.
Identifier Z-A ,9-0
Optional.
Parameter 2 Optional. If you define a field with a real value (Not null) the
command will close the break and act as if the last break occurred.
Result flag Isn't effected.
Result variable None.
ΓòÉΓòÉΓòÉ 49.6. Callers ΓòÉΓòÉΓòÉ
Description Calls another OpenWin task and begins its execution. When setting
the sharedflag ZO is turned on (ON) in order to indicate to the summoned
program that it is a secondary program, and not the main program. After th e
summoned task is executed the calling program continues its execution.
Identifier "
Parameter 1 The name of the OpenWin task (.TSK) to be performed.
Identifier None.
Parameter 2 None.
Result variable None.
Result flag Optional - a flag defined as a result. flag It will get the
value in the ZO flag after completing the called task.
ΓòÉΓòÉΓòÉ 49.7. Clr-Lin ΓòÉΓòÉΓòÉ
Description Clears a window presented by the Edit command or Put-Lin and
presents the screen as it was before the window was displayed.
Identifier #
Parameter 1 The name of the window to be cleared.
Identifier None.
Parameter 2 None.
Result variable None.
Result flag Isn't effected .
See also Put-Lin,Edit, Display
ΓòÉΓòÉΓòÉ 49.8. Comp ΓòÉΓòÉΓòÉ
Description Compares the values of two numbers.
Identifier Z-A,9-0,-,+.
Parameter 1 The first number of the comparison. It can be a local field, a
field from a file, or a numeric field.
Identifier Z-A,9-0,-,+.
Parameter 2 The second number of the comparison.
Identifier None.
Result variable None.
Result flag Vital. Can have the following values:
= (OFF)Parameter 1 equals parameter 2.
+ (ON) Parameter 1 is greater than parameter 2.
+ (ON) Parameter 1 is smaller than parameter 2.
See also Comps
ΓòÉΓòÉΓòÉ 49.9. Comps ΓòÉΓòÉΓòÉ
Description Compares two strings, character by character.
Identifier Z-A,9-0,!.
Parameter 1 First string of a comparison. It can be a local field, a field
from a file, or a character constant
Identifier Z-A,9-0,!.
Parameter 2 Second string of a comparison with parameter 1.
Identifier None.
Result variable None.
Result flag Vital. It can have the following values:
= (OFF) Parameter 1 equals parameter 2.
+ (ON) Parameter 1 is greater than parameter 2.
+ (ON) Parameter 1 is smaller than parameter 2.
See also Comp
ΓòÉΓòÉΓòÉ 49.10. Decode ΓòÉΓòÉΓòÉ
Description Calculates the numeric value of a char string.
Identifier Z-A,9-0.
Parameter 1 A char field which contains digits.
Identifier None.
Parameter 2 None.
Identifier Z-A,9-0.
Result variable A field with the numeric value of the string.
Result flag
= (OFF) The calculation succeeded
+/- (ON) The calculation failed.
See also Encode
ΓòÉΓòÉΓòÉ 49.11. Diff-M ΓòÉΓòÉΓòÉ
Description Calculates the difference in months between two dates.
Identifier Z-A,9-0.
Parameter 1 A date field.
Identifier Z-A,9-0.
Parameter 2 A date field whose value will be reduced from the value of the
date in parameter 1.
Identifier Z-A,9-0.
Result variable A numeric field that will receive the difference in months.
Result flag Can have the following values:
= (OFF) Parameter 1 equals parameter 2. The difference = 0.
+ (ON) Parameter 1 is greater than parameter 2 and the difference is positive.
- (ON) Parameter 1 is smaller than parameter 2 and the difference is negative.
See also- Add,Diff-Y, Sub
ΓòÉΓòÉΓòÉ 49.12. Diff-Y ΓòÉΓòÉΓòÉ
Description Calculates the difference in years between two dates.
Identifier Z-A,9-0.
Parameter 1 A date field. Identifier Z-A,9-0.
Parameter 2 A date field whose value will be reduced from the value of the
date in parameter 1.
Identifier Z-A,9-0.
Result variable A numeric field which will receive the difference in years.
Result flag Can have the following values:
= (OFF) Parameter 1 equals parameter 2 and the difference = 0.
+ (ON) Parameter 1 is greater than parameter 2 and the difference is positive.
- (ON) Parameter 1 is smaller than parameter 2 and the difference is negative.
Also see Add,Diff-M,Sub
ΓòÉΓòÉΓòÉ 49.13. Delete ΓòÉΓòÉΓòÉ
Description Deletes a record from a file according to the current unique
first key value.
Identifier A-Z,9-1. Table Identifier.
Parameter 1 None.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag Can have the following values:
= (OFF) The delete attempt succeeded.
+/- (ON) The delete attempt failed.
See also- Rewrite,Write
ΓòÉΓòÉΓòÉ 49.14. Display ΓòÉΓòÉΓòÉ
Description Displays a window or sub-screen. The desired window must be
defined before using the display command by the Put-Lin command, or the Edit
command.
Identifier #,*.
Parameter1 A window or sub-screen name.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag Isn't effected.
See also- Put-Lin,Accept,Display , Edit
ΓòÉΓòÉΓòÉ 49.15. Div ΓòÉΓòÉΓòÉ
Description The division of two numbers.
In the case of division by zero, the result will be zero.
Identifier Z-A,0-9,-,+.
Parameter 1 The divided . Can be a numeric constant , a local field, or a
field from a file
Identifier Z-A,0-9,-,+.
Parameter 2 The divider.
Identifier Z-A,0-9.
Result variable The division result. Can be a local field or a field from a
file.
Result flag Can have the following values:
= (OFF)The division result equals - 0.
+ (ON) The division result is greater than 0.
- (ON) The division result is smaller than 0.
See also Add,Mult,Sub
ΓòÉΓòÉΓòÉ 49.16. Edit ΓòÉΓòÉΓòÉ
Description The Edit command presents a window to be edited on screen and
enables skipping the Put-Lin This enables and supervises the EDIT operations
defined for the window to be edited in the EDIT operations window. At the
beginning of this command, the following sequence of operations is performed,
until either the edited window is filled or the records for presentation end:
First
,Next
,Display
,Next
,Display ...
The editing is done according to the requirements of the user and can be
automatic, or as defined in the routine which the user programs in the EDIT
commands window. At the end of the EDIT command, the control returns to an
EDIT operation which waits for the next user's selection. The next command in
the program after the Edit command will be executed only after the user selects
the Exit option.
Identifier #
Parameter 1 The window name to be edited.
Identifier None.
Parameter 2 None.
Identifier 0-9,A-Z,+
Result variable A numeric variable. If the value in this variable is 0, the
window will appear in its full size. If the value is 1, the window will appear
as an icon.
Result flag Effected by the exit way chosen.
= (OFF) To exit the window, the Exit option has been selected.
+ (ON) To exit the window, the Exit+ option has been selected.
- (ON) To exit the window, the Exit- option has been selected. See a detailed
explanation for each of the edit commands.
ΓòÉΓòÉΓòÉ 49.17. Encode ΓòÉΓòÉΓòÉ
Description Transfers the value of a numeric field to a char field.
Identifier Z-A,9-0.
Parameter 1 A numeric field whose value is converted to a string.
Identifier None.
Parameter 2 None.
Identifier Z-A,9-0.
Result variable A char field that will receive a string representing the
numeric value of a parameter 1.
Result flag Can have the following values:
= (OFF) The transfer succeeded.
+/- (ON) The transfer failed.
See also- Decode
ΓòÉΓòÉΓòÉ 49.18. Ex-Sql ΓòÉΓòÉΓòÉ
Description Executes a command or a group of SQL commands defined in the SQL
Query . . window.
Identifier ?
Parameter 1 A label which characterizes a group of SQL commands defined under
this label in the SQL queries window.
Identifier !
Parameter 2 Cursor. Use of the cursor is necessary in the command which
refers to a SELECT query, or in the CLOSE command. The cursor is a char
constant which specifies a specific SELECT query, enabling you to call the
same queries mo re than once, with different values in the selected ranges.
The Fetch command refers to a specific query by the cursor.
You can open up to 10 queries with different cursors at the same time.
Identifier 0-9,A-Z.
Result variable A numeric field that will get the return code from the SQL
server. If the value of this field is 100 when the query is executed, and
there is an error, the system error message wi ll be displayed.
Result flag Can have the following values:
= (OFF) The query succeeded.
+ (ON) The query was rejected by the server.
- (ON) There is no contact with the SQL server.
See also Fetch
ΓòÉΓòÉΓòÉ 49.19. Ext-Val ΓòÉΓòÉΓòÉ
Description Transfers a numeric value to the environment menu variable
defined in the menu "Task" command, in order to enable the conditioning of a
task execution.
Identifier (A-Z,0-9)
Parameter 1 A whole numeric field which includes the value to be transferred.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag Can have the following values:
= (OFF) The execution succeeded.
+/- (ON) The execution failed.
ΓòÉΓòÉΓòÉ 49.20. Fetch ΓòÉΓòÉΓòÉ
Description Transfers the data base value found by the SELECT query to the
OpenWin variables.
Identifier ?
Parameter 1 The SELECT query label performed from which you want to Fetch.
Identifier !
Parameter 2 Cursor. A char constant
Identifier
0-9,A-Z.
Result variable
A numeric field that gets the return code from the SQL server. If the value of
this field is 100 when the query is executed, and there is an error, the system
error message will be displayed.
Result flag Can have the following values:
= (OFF) The function succeeded.
+ (ON) The function has been rejected by the server.
- (ON) There is no contact with the server
See also- Ex-Sql
ΓòÉΓòÉΓòÉ 49.21. Find ΓòÉΓòÉΓòÉ
Description Finds a record that fits a key value.
Identifier the table Identifier 1-9,A-Z.
Parameter 1 A key name. For Sequential, Temporary, Relative and Vector files
the key name is always the reserved word RECORD.
Identifier None.
Parameter 2 None.
Result variable None.
Result flag Can have the following values:
= (OFF) A record has been found.
+ (ON) A record hasn't been found.
- (ON) There is no access to the record.
ΓòÉΓòÉΓòÉ 49.22. Get-Day ΓòÉΓòÉΓòÉ
Description Calculates the day of the week for a specified date.
Identifier A-Z,0-9.
Parameter 1 A date field.
Identifier A-Z,0-9.
Parameter 2 A char field. Will receive the name of the day of the week.
Identifier A-Z,0-9.
Result variable. A numeric field. Will get the day in the week as a number
between 1 and 7.
Result flag Always on in the + position. (ON)
ΓòÉΓòÉΓòÉ 49.23. Get-Dat ΓòÉΓòÉΓòÉ
Description Gets the date and hour synchronized with the system clock.
Identifier A-Z,0-9.
Parameter 1 A date field. Will receive the date from the system clock.
Identifier A-Z,0-9.
Parameter 2 A time field. Will receive the time from the system clock.
Identifier None.
Result variable None.
Result flag Can have the following values:
= (OFF) The operation succeeded.
+/- (ON) The operation failed.
ΓòÉΓòÉΓòÉ 49.24. Get-Prn ΓòÉΓòÉΓòÉ
Description Checks the printer number, if chosen at the beginning of the
task.
Identifier None.
Parameter 1 None. Identifier A-Z,0-9.
Parameter 2 Optional. A char field which will receive the PRN file name, if
a printer that prints to a file has been chosen
Identifier A-Z,0-9.
Result variable A numeric field that will receive the number of the printer
selected.
Result flag Can have the following values:
= (OFF) The printing is to the screen.
+ (ON) The printing is to the printer.
ΓòÉΓòÉΓòÉ 49.25. Get-Usr ΓòÉΓòÉΓòÉ
Description Gets the user's name.
Identifier None.
Parameter 1 None.
Identifier None.
Parameter 2 None.
Identifier A-Z,0-9.
Result variable A char field. Will receive the name of the current user.
Result flag Can have the following values:
= (OFF) A user name exists.
- (ON) A user name doesn't exist..
ΓòÉΓòÉΓòÉ 49.26. Goto ΓòÉΓòÉΓòÉ
Description Performs a diversion to a label.
Identifier None.
Parameter 1 None.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag Isn't effected.
Label A label to divert to.
See also- Perform,Return
ΓòÉΓòÉΓòÉ 49.27. Insert ΓòÉΓòÉΓòÉ
Description Transfers a char string to another string in a fixed location.
Identifier !,Z-A,9-0.
Parameter 1 A char field to transfer into a result variable.
Identifier A-Z,9-0.
Parameter 2 A numeric field. The position of parameter 1 in the result
variable.
Identifier !,Z-A,9-0.
Result variable A char field into which you insert parameter 1.
Result flag Can have the following values:
= (OFF) The insertion succeeded.
+ (ON) The insertion failed.
See also- Moves,Substr,Strlen
ΓòÉΓòÉΓòÉ 49.28. Lock ΓòÉΓòÉΓòÉ
Description Performs a unique locking of resources in a certain value.
Identifier 0,9,A-Z.
Parameter 1 A variable that contains the system code defined in the
environment.
Identifier %
Parameter 2 The name of the resource to be locked. This resource must be
defined in the work environment.
Identifier A-Z,0-9.
Result variable A unique value (a field or key) upon which the resource will
be locked.
Result flag Can have the following values:
= (OFF) Locking succeeded.
+ (ON) The locking failed.
See also- Share, Unlock, Get-Env
ΓòÉΓòÉΓòÉ 49.29. Message ΓòÉΓòÉΓòÉ
Description Displays a message window.
Identifier A-Z,0-9,-,+,!.
Parameter 1 The context of the message. Usually is a char constant, but can
also be a numeric constant, or a field.
Identifier +,0-9,A-Z
Parameter 2 Numeric value. Sets the user's requested way of reaction.
0 - OpenWin Help message is displayed and the user is asked to click on "ok".
1 - OpenWin Error message is displayed and the user is asked to click on "ok".
2 - The user is asked to choose between "yes" and "no".
3 - The user is asked to choose between "yes", "no" or "cancel".
Identifier +,0-9,A-Z
Result variable Numeric value. The number of warning beeps to be sounded ( 9
- 0 ).
Result flag Can have the following values:
= (OFF) The user typed "yes".
+ (ON) The user typed "No".
- (ON) The user typed "cancel".
ΓòÉΓòÉΓòÉ 49.30. Move ΓòÉΓòÉΓòÉ
Description Enters a numeric value into a field.
Identifier A-Z,0-9,-,+.
Parameter 1 The numeric value to be moved.
Identifier None.
Parameter 2 None.
Identifier A-Z,0-9.
Result variable The field to which the numeric value will be moved.
Result flag Can have the following values:
= (OFF) The transferred value equals 0.
+ (ON) The transferred value is greater than 0
- (ON) The transferred value is smaller than 0.
See also- Moves
ΓòÉΓòÉΓòÉ 49.31. Moves ΓòÉΓòÉΓòÉ
Description Enters a char value into a field.
Identifier A-Z,0-9,!.
Parameter 1 The value to be moved. Can be a char constant, or a field that
contains a string.
Identifier A-Z,0-9,!.
Parameter 2 Optional. A string that will be added to the right side of the
string in parameter 1.
Identifier A-Z,0-9.
Result variable The field to which the string will be moved.
Result flag Isn't effected.
See also- Move
ΓòÉΓòÉΓòÉ 49.32. Mult ΓòÉΓòÉΓòÉ
Description Multiplies two numbers.
Identifier A-Z,0-9,-,+.
Parameter 1 The multiplied. Can be a numeric constant or a numeric field.
Identifier A-Z,0-9,-,+.
Parameter 2 The multiplier.
Identifier A-Z,0-9.
Result variable The product. A numeric field that will receive the result of
the multiplication.
Result flag Can have the following values:
= (OFF) The product equals 0.
+ (ON) The product is greater than 0.
- (ON) The product is smaller than 0.
See also- Add,Div, Sub
ΓòÉΓòÉΓòÉ 49.33. New-Scr ΓòÉΓòÉΓòÉ
Description Presents a background screen. This command is mandatory for
screen commands, for example, Put-Lin and Edit.
This command can be executed only once in a given task.
Identifier None.
Parameter 1 None.
Identifier None.
Parameter 2 None.
Identifier 0-9,A-Z,!.
Result variable A variable used as a screen heading.
Result flag Isn't effected.
See also- Clr-lin
ΓòÉΓòÉΓòÉ 49.34. Prev ΓòÉΓòÉΓòÉ
Description Reads the previous record in the table.
Identifier A-Z,1-9.
Parameter 1 One of the following options: A key name in a table. A record
will be read with a key value previous to the current.
For Sequential, Temporary, Relative and Vector files, the key name is the
reserved word "RECORD"
Identifier None.
Parameter 2 Optional. The reserved word "NEXT", which is used for reading
non-unique keys.
Identifier None.
Result variable None.
Result flag Can have the following values:
= (OFF) The previous record has been found.
+ (ON) The current record is the first in the table.
- (ON) There is no access to the record.
See also- Read.
ΓòÉΓòÉΓòÉ 49.35. Print ΓòÉΓòÉΓòÉ
Description Prints the contents of a window to the selected output device.
Selection will be made during run time from the printers defined in the
environment printers section .
Identifier #
Parameter 1 The name of the window to be printed.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag Isn't effected.
ΓòÉΓòÉΓòÉ 49.36. Put-Lin ΓòÉΓòÉΓòÉ
Description Prepares the window for presentation on the screen. A New-Scr
command must be performed once to enable this command.
Identifier #
Parameter 1 Window name.
Identifier None.
Parameter 2 None.
Identifier +,0-9,A-Z.
Result variable A numeric variable or a numeric constant. If the value in
this variable is 0, the window will appear on the screen in its full size.If
its value is 1, the window will appear as an icon.
Result flag Isn't effected.
See also- New-Scr, Accept, Display, Edit
ΓòÉΓòÉΓòÉ 49.37. Range ΓòÉΓòÉΓòÉ
Description Activates a range check for the ranges defined in the Range
section. .
Identifier None.
Parameter 1 A label representing a group of ranges defined in the range
window.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag Will receive the following values:
= (OFF) The checked fields are in range.
+ (ON) The checked fields are not in range.
See also- Comp,Comps
ΓòÉΓòÉΓòÉ 49.38. Read ΓòÉΓòÉΓòÉ
Description Reads the record following the current record in the table.
Identifier A-Z,1-9.
Parameter 1 A key name in a table. A record with a key value greater than
the current key value will be read.
For Sequential, Temporary, Relative and Vector files, the key name is the
reserved word "RECORD"
Identifier None.
Parameter 2 Optional. The reserved word "NEXT", which is used for reading
non-unique keys.
Identifier None.
Result variable None.
Result flag Can receive the following values:
= (OFF) The next record has been found.
+ (ON) The current record is the last in the table.
- (ON) There is no access to the record.
See also- Prev,
ΓòÉΓòÉΓòÉ 49.39. Reopen ΓòÉΓòÉΓòÉ
Description Closes a physical table and enables the opening of another
physical table with a structure that fits the table definition specified in the
table definition section.
Identifier A-Z,1-9. The Identifier of a table defined in the table
definition window. Parameter 1 None.
Identifier A-Z,0-9,!.
Parameter 2 To close a table, skip this parameter. To open a table, choose a
variable name which includes the name of the physical file to be opened. Note
that the file structure must be identical with that of the table defined in the
table definition win dow.
Identifier A-Z,0-9.
Result variable To close a table, skip this parameter. To open a table,
choose a variable name which includes the extension of the physical table to be
opened.
Result flag Can receive the following values:
= (OFF) The table has been opened successfully.
+/- (ON) This physical table cannot be opened.
ΓòÉΓòÉΓòÉ 49.40. Re-Start ΓòÉΓòÉΓòÉ
Description
Repeats the execution of a task from the beginning.
This command cats like the last "Return" command in the task. It closes all the
open "Breaks" if there are any and Print or display a report if the task is
using printing commands.
The values of local variables don't decrease to zero. If you wish to
initialize them , use the Move(s) commands.
Identifier None.
Parameter 1 None.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag Isn't effected.
ΓòÉΓòÉΓòÉ 49.41. Return ΓòÉΓòÉΓòÉ
Description Indicates the ending of a routine that was characterized at the
beginning by a label, and returns the flow to the command that called this
routine. If this command ends a task that was called by a CALLERS command, the
calling task will continue in the following command line. If the routine that
ends the task is called from the Edit command, the control will return to the
Edit command. If the routine that ends the task is called by the Perform
command, the flow will continue from the command following the calling of the
perform command.
The task routines - a Return command at the end of a main routine (defined in
the task General Parameters ) ends the routine and starts executing the next
routine. After the execution of the last routine in the task, the task ends.
Identifier None.
Parameter 1 None.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag Isn't effected.
See also- Goto,Perform
ΓòÉΓòÉΓòÉ 49.42. Rewrite ΓòÉΓòÉΓòÉ
Description Updates the contents of an existing record in a table.
Identifier Table identifier, A-Z, 9-0.
Parameter 1 None. The record with the current key value will be updated.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag Can receive the following values:
= (OFF) The record has been updated.
+ (ON) There is no record with the key value.
- (ON) There is no access to this record.
See also- Write
ΓòÉΓòÉΓòÉ 49.43. Search ΓòÉΓòÉΓòÉ
Description Searches for a character string in another string.
Identifier A-Z,0-9.
Parameter 1 A requested string.
Identifier A-Z,0-9.
Parameter 2 A string in which to search.
Identifier A-Z,0-9.
Result variable Optional. A numeric field that will get the location of the
requested string in the string being searched.
Result flag Can have the following values:
= (OFF) The requested string has been found.
+ (ON) The string has not been found.
ΓòÉΓòÉΓòÉ 49.44. Set-Scr ΓòÉΓòÉΓòÉ
Description Displays or Hide a sub-screen. The desired sub-screen must be in
a valid window previously defined using the display command by the Put-Lin
command, or the Edit command.
You cannot display (using Display command) or input data (using Accept command)
to a sub-screen that is in Hide status. Identifier *.
Parameter1 A sub-screen name.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable
Hide or Show
Sets the sub-screen status.
Result flag Isn't effected.
See also- Put-Lin,Accept,Display , Edit
ΓòÉΓòÉΓòÉ 49.45. Seton ΓòÉΓòÉΓòÉ
Description Turns on a logical flag
Identifier None.
Parameter 1 None.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag A logical flag (A0-Z9). Will turn on in the + position. (ON)
Goto Label Optional. If defined, the task will be diverted to this label.
See also- Setoff
ΓòÉΓòÉΓòÉ 49.46. Setoff ΓòÉΓòÉΓòÉ
Description Turns off a logical flag
Identifier None.
Parameter 1 None.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag A logical flag (A0-Z9). Will turn off in the = position.
See also- Seton
ΓòÉΓòÉΓòÉ 49.47. Share ΓòÉΓòÉΓòÉ
Description Executes a non-unique locking of resources with a certain value.
Identifier A-Z, 9-0.
Parameter 1 A variable that contains the current environment code.
Identifier %
Parameter 2 The name of the resource to be locked. This resource must be
defined in the working environment.
Identifier A-Z,0-9.
Result variable A field or a key with whose value the resource will be
locked.
Result flag Can receive the following values:
= (OFF) The locking succeeded.
+ (ON) The locking failed.
See also- Lock,Unlock
ΓòÉΓòÉΓòÉ 49.48. Skip ΓòÉΓòÉΓòÉ
Description Form feeds one page in the printer.
Identifier None.
Parameter 1 None.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag Isn't effected.
See also- Print command.
ΓòÉΓòÉΓòÉ 49.49. Sshift ΓòÉΓòÉΓòÉ
Description Moves the contents of a string left or right by a given number of
characters.
Identifier Z-A,9-0.
Parameter 1 A char field whose contents must be moved.
Identifier -,+.
Parameter 2 Numeric. The number of characters to be moved.
Identifier None.
Result variable None. The moving is done in parameter 1.
Result flag Can receive the following values:
= (OFF) The moving succeeded.
+/- (ON) The moving failed.
Example- A local field called "field" of Lf-T-Rgh Char type is given, with
length 6 and contents "123456". The command- "Sshift 0 field +3" will cause
its contents to turn into "123".The command- "Sshift field -3" will convert it
to "456".
ΓòÉΓòÉΓòÉ 49.50. Stop ΓòÉΓòÉΓòÉ
Description Stops the execution of a task and returns the control to the
level at which the task was called.
Identifier None.
Parameter 1 None.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag None.
See also- Return
ΓòÉΓòÉΓòÉ 49.51. Strlen ΓòÉΓòÉΓòÉ
Description Calculates the length of a string.
Identifier !,A-Z,0-9.
Parameter 1 A field whose length is to be calculated. A char field.
Identifier None.
Parameter 2 None.
Identifier A-Z,0-9.
Result variable The length of the string in parameter 1. A numeric file.
Result flag Can receive the following values:
= (OFF) The calculation succeeded
+ (ON) The calculation failed.
See also- Insert
ΓòÉΓòÉΓòÉ 49.52. Sub ΓòÉΓòÉΓòÉ
Description Subtracts numeric values. Can also refer to date fields.
Identifier A-Z,0-9,-,+.
Parameter 1 The subtracted. A numeric field or a date field.
Identifier A-Z,0-9,-,+.
Parameter 2 The subtraction.
Identifier A-Z,0-9.
Result variable The remainder. Usually a numeric field. If parameter 1 is a
date and parameter 2 is a number, the result field has to be a date filed . If
parameters 1 and 2 are date fields, the result field must be a numeric filed
that will receive the difference in days between the dates.
Result flag Can receive the following values:
= (OFF) The subtraction result equals 0.
+ (ON) The subtraction result is greater than 0.
- (ON) The subtraction result is smaller than 0.
See also- Add, Diff-M,Diff-Y,Div, Mult
ΓòÉΓòÉΓòÉ 49.53. Substr ΓòÉΓòÉΓòÉ
Description Cuts a sub-string out of a char string
Identifier +,A-Z,0-9.
Parameter 1 The length of the requested sub-string. A field or a numeric
constant.
Identifier +,A-Z,0-9.
Parameter 2 The location in the string from which the sub-string will be
taken. A field or a numeric constant.
Identifier A-Z,0-9.
Result variable The string from which you cut the sub-string. The sub-string
that is cut will change the contents of the string in this field. The field
can be a local field or a field from a table.
Result flag Can receive the following values-
= (OFF) The cutting attempt succeeded.
+ (ON) The cutting attempt failed.
See also- Sshift
ΓòÉΓòÉΓòÉ 49.54. Title ΓòÉΓòÉΓòÉ
Description Prints the title of a window. The title will contain the field
descriptions.
Identifier #
Parameter 1 Window name.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag Isn't effected.
ΓòÉΓòÉΓòÉ 49.55. Unlock ΓòÉΓòÉΓòÉ
Description Releases a resource lock with a specified value.
Identifier A-Z, 9-0
Parameter 1 A field the contains the environment code.
Identifier %
Parameter 2 Resource name.
Identifier A-Z,0-9.
Result variable The value in which the resource is locked and which you wish
to release. Can be a key or a field.
Result flag Can receive the following values:
= (OFF) The release request succeeded.
+ (ON) The release request failed.
See also- Lock,Share
ΓòÉΓòÉΓòÉ 49.56. Write ΓòÉΓòÉΓòÉ
Description Writes a new record into a table according to the main key value.
Identifier A-Z,1-9. The table Identifier to which the record should be
written to. A record will be written with the current key value.
Parameter 1 None.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag Can receive the following values:
= (OFF) The writing succeeded.
- (ON) There is no access to the record.
+ (ON) The record already exists.
See also- Rewrite
ΓòÉΓòÉΓòÉ 49.57. Perform ΓòÉΓòÉΓòÉ
Description Calls a routine identified by a label. The routine ends with a
return command which restores the flow to the command following the calling
command.
Identifier None.
Parameter 1 None.
Identifier None.
Parameter 2 None.
Identifier None.
Result variable None.
Result flag None.
Label A label which identifies the addressed routine.
See also Return, Goto
ΓòÉΓòÉΓòÉ 49.58. Get-Env ΓòÉΓòÉΓòÉ
Description Retrieves the current environment code. Comes before a Lock
command.
Identifier None.
Parameter 1 None.
Identifier None.
Parameter 2 None.
Identifier A-Z,9-0
Result variable A field that will receive the environment code.
Result flag Can receive the following values:
= (OFF) An active environment was found.
+ (ON) No active environment was found.
Label A label which identifies the addressed routine.
See also Lock Unlock Share
ΓòÉΓòÉΓòÉ 49.59. VSetInx ΓòÉΓòÉΓòÉ
Description Sets and gets the current vector pointer (index) of a Local
Variable with a repetition factor greater than 1.
Identifier 0.
Parameter 1 The vector name.
Identifier +,0-9,A-Z.
Parameter 2 Numeric. The index value of the desired vector..
Identifier A-Z,9-0
Result variable A field that will receive the current vector index value.
Result flag Can receive the following values:
= (OFF) Command performed.
+/- (ON)Error.
See also VSetInx VDelete VAdd VUpd VFind VSort
ΓòÉΓòÉΓòÉ 49.60. VDelete ΓòÉΓòÉΓòÉ
Description Deletes a vector appearance.
Identifier None.
Parameter 1 None.
Identifier +,0-9,A-Z.
Parameter 2 Numeric. The number of appearances to be deleted from the
vector. Deletion is done from the current vector index onward.
Identifier 0.
Result variable The vector name.
Result flag Can receive the following values:
= (OFF) Command performed.
+/- (ON) Error.
See also VSetInx VDelete VAdd VUpd VFind VSort
ΓòÉΓòÉΓòÉ 49.61. VAdd ΓòÉΓòÉΓòÉ
Description Add appearances to a vector.
Identifier 0-9,A-Z,!,+,-.
Parameter 1 A field to be added to the vector.
Identifier +,-,0-9,A-Z.
Parameter 2 Numeric. The number of appearances to be added. If positive,
after the current index; if negative, before the current index.
Identifier 0
Result variable A vector name.
Result flag Can receive the following values:
= (OFF) Command performed.
+/- (ON) Error.
See also VSetInx VDelete VAdd VUpd VFind VSort
ΓòÉΓòÉΓòÉ 49.62. VUpd ΓòÉΓòÉΓòÉ
Description
Same as VAdd, but updates the field appearances and does not add new ones.
See also VSetInx VDelete VAdd VUpd VFind VSort
ΓòÉΓòÉΓòÉ 49.63. VFind ΓòÉΓòÉΓòÉ
Description Finds a value in one of the vector appearances and sets the
current vector pointer (index)
Identifier 0-9,A-Z,+,-,!.
Parameter 1 A field (value) to be found.
Identifier +,0-9,A-Z.
Parameter 2 Numeric. The number of identical subsequent appearances to look
for.
Identifier 0
Result variable Vector name.
Result flag Can receive the following values:
= (OFF) Appearances were found.
+/- (ON) Appearances were not found.
See also VSetInx VDelete VAdd VUpd VFind VSort
ΓòÉΓòÉΓòÉ 49.64. VSort ΓòÉΓòÉΓòÉ
Description Sorts the vector appearances.
Identifier None.
Parameter 1 None.
Identifier +,-,0-9,A-Z.
Parameter 2 Numeric. Positive or negative. Sets the sorting order.
Identifier 0
Result variable Vector name.
Result flag Can receive the following values:
= (OFF) Command performed.
+/- (ON) Error.
See also VSetInx VDelete VAdd VUpd VFind VSort
ΓòÉΓòÉΓòÉ 49.65. For ΓòÉΓòÉΓòÉ
Description
Begins a "For" loop. It has the following format:
FOR <Range> <VarLoop> [<Step>]
On the first step, this command checks the range's condition and, if its value
is TRUE, it processes commands into the loop's block. After the first step,
the loop's step is added to its variable and after the range's condition is
checked. If its value is TRUE, the loop's block is processed. Otherwise, the
loop's block is skipped.
A "For" block begins at the "For" command and ends at the "EndBlck" command.
Identifier
None.
Parameter 1
<Range> - The loop's condition. It must be a label from the "Range" section.
Identifier
0,1-9,A-Z.
Parameter 2
<VarLoop> - The loop's variable. It may be a numeric field, a table field, or
a local variable.
Identifier
0,1-9,A-Z,+,-.
Result variable
<Step> - The loop's step. It may be a numeric field, a local variable, or a
constant. It is an optional parameter. If it is left empty, the loop's step
equals 1.
Result flag
= (OFF) Command performed.
+/- (ON) Error.
See also
For, While, Until, QtLoop, EndBlck,
ΓòÉΓòÉΓòÉ 49.66. While ΓòÉΓòÉΓòÉ
Description
Begins loop. It has the following format:
WHILE <Range>
This command checks the range's condition and if its value is TRUE, the loop's
block is processed. If its value is FALSE, the loop's block is skipped.
A "While" block begins at the "While" command and ends at the "EndBlck"
command.
Identifier
None.
Parameter 1
<Range> - The loop's condition. It must be a label from the "Range" section.
Identifier
None.
Parameter 2
None.
Identifier
Result variable
None.
Result flag
= (OFF) Command performed.
+/- (ON) Error.
See also
For, While, Until, QtLoop, EndBlck,
ΓòÉΓòÉΓòÉ 49.67. Until ΓòÉΓòÉΓòÉ
Description
Begins loop. It has the following format:
UNTIL <Range>
This command checks the range's condition and, if its value is FALSE, the
loop's block is processed. If its value is TRUE, the loop's block is skipped.
An "Until" block begins at the "Until" command and ends at the "EndBlck"
command.
Identifier
None.
Parameter 1
<Range> - The loop's condition. It must be a label from the "Range"section.
Identifier
None.
Parameter 2
None.
Identifier
None.
Result variable
None.
Result flag
= (OFF) Command performed.
+/- (ON) Error.
See also
For, While, Until, QtLoop, EndBlck,
ΓòÉΓòÉΓòÉ 49.68. QtLoop ΓòÉΓòÉΓòÉ
Description
Break processing of "For", "While" and "Until" loops.
Identifier
None.
Parameter 1
None.
Identifier
None.
Parameter 2
None.
Identifier
None.
Result variable
None.
Result flag
= (OFF) Command performed.
+/- (ON) Error.
See also
For, While, Until, QtLoop, EndBlck,
ΓòÉΓòÉΓòÉ 49.69. EndBlck ΓòÉΓòÉΓòÉ
Description
Defines the last line of a "For", "While" and "Until" loop block.
Identifier
None.
Parameter 1
None.
Identifier
None.
Parameter 2
None.
Identifier
None.
Result variable
None.
Result flag
= (OFF) Command performed.
+/- (ON) Error.
See also
For, While, Until, QtLoop, EndBlck,
ΓòÉΓòÉΓòÉ 49.70. If ΓòÉΓòÉΓòÉ
Description
Begins conditional block. It has the following format:
IF <Range>
This command checks the range's condition and, if its value is TRUE, commands
between "If" and "Else" (if they exist), or between "If" and "EndIf" (if an
"Else" command doesn't exist), are processed. Then, the next command after
"EndIf" is processed.
If the range's condition value is FALSE, commands between "If"and "Else" (if
they exist), or between "If" and "EndIf" (if an "Else command doesn't exist),
are skipped and the next command after "EndIf," or after "Else" (if one
exists), is processed.
Identifier
None.
Parameter 1
<Range> - The "If" condition. It must be a label from the "Range" section.
Identifier
None.
Parameter 2
None.
Identifier
None.
Result variable
None.
Result flag
= (OFF) Command performed.
+/- (ON) Error.
See also
If, Else, EndIf,
ΓòÉΓòÉΓòÉ 49.71. Else ΓòÉΓòÉΓòÉ
Description
Ends a true's conditional block within an If block and begins a false's
conditional block.
Identifier
None.
Parameter 1
None.
Identifier
None.
Parameter 2
None.
Identifier
None.
Result variable
None.
Result flag
= (OFF) Command performed.
+/- (ON) Error.
See also
If, Else, EndIf,
ΓòÉΓòÉΓòÉ 49.72. EndIf ΓòÉΓòÉΓòÉ
Description
Ends an If block.
Identifier
None.
Parameter 1
None.
Identifier
None.
Parameter 2
None.
Identifier
None.
Result variable
None.
Result flag
= (OFF) Command performed.
+/- (ON) Error.
See also
If, Else, EndIf,
ΓòÉΓòÉΓòÉ 49.73. Switch ΓòÉΓòÉΓòÉ
Description
Begins switch's block. It has the following format:
Switch <VarSwitch>
This command begins a switch block and defines the switch variable.
There may be many Case blocks within a switch block.
A "Switch" block ends with an EndSwch command.
Identifier
0,1-9,A-Z.
Parameter 1
<VarSwitch> - The switch variable. It may be a field or local variable.
Identifier
None.
Parameter 2
None.
Identifier
None.
Result variable
None.
Result flag
= (OFF) Command performed.
+/- (ON) Error.
See also
Switch, Case, QtSwtch, EndSwch,
ΓòÉΓòÉΓòÉ 49.74. Case ΓòÉΓòÉΓòÉ
Description
Begins case block. It has the following format:
Case <CaseValue>
<CaseValue> - field, local variable, or constant. Its type must corresponded
to link type switch's variable.
This command checks the value of the switch variable. If it equals the case
value, all commands after this CASE, up to the QtSwtch command, or the EndSwch
command, will be processed.
Identifier
0,1-9,A-Z,+,-.
Parameter 1
<CaseValue> - field, local variable or constant. Its type must corresponded to
link type switch's variable.
Identifier
None.
Parameter 2
None.
Identifier
Result variable
None.
Result flag
= (OFF) command performed.
+/- (ON) Error.
See also
Switch, Case, QtSwtch, EndSwch,
ΓòÉΓòÉΓòÉ 49.75. QtSwtch ΓòÉΓòÉΓòÉ
Description
Breaks the processing of a switch's block.
This command switches control to the first command after the end of the switch
block.
Identifier
None.
Parameter 1
None.
Identifier
None.
Parameter 2
None.
Identifier
Result variable
None.
Result flag
= (OFF) Command performed.
+/- (ON) Error.
See also
Switch, Case, QtSwtch, EndSwch,
ΓòÉΓòÉΓòÉ 49.76. EndSwch ΓòÉΓòÉΓòÉ
Description
Ends a switch's block.
Identifier
None.
Parameter 1
None.
Identifier
None.
Parameter 2
None.
Identifier
Result variable
None.
Result flag
= (OFF) Command performed.
+/- (ON) Error.
See also
Switch, Case, QtSwtch, EndSwch,
ΓòÉΓòÉΓòÉ 49.77. Dialog ΓòÉΓòÉΓòÉ
Description
As you know, the Acceptcommand enables the input of data to a field or to a
number of fields to be grouped by a sub-screen.
The dialog command enables you to activate more than one Accept simultaneously.
To do this, you define a dialog group, beginning with a dialog command and
ending at the E-Dialg command.
Within this group, you can define many Accept commands and their related
commands, for example:
When a program meets a dialog command, it activates all the Accept commands
within the Dialog group.
The Dialog ends when one of the Accepts ends.
When the dialog ends, the task flow continues from the active Accept command.
In the above example there is a "While" loop that loops when any of the
sub-screen fields is empty.
Within this loop there is a dialog group with two Accept commands. Both
Accepts will be activated until all the fields are filled by the user.
Identifier
0,1-9,A-Z,+,-.
Parameter 1
A numeric field or a local variable.
If its value is positive, it indicates the Accept within the Dialog group which
will be in focus. The number should be the relative number of the Accept
command after the Dialog command. To set the second Accept to be in focus, the
value of this parameter should be 2, etc.
If its value is zero, the last sub-screen Accept that was in focus will get the
focus.
If its value is -1, none of the Accepts will get the focus. The focus is set
by the user when he clicks with the mouse on the selected sub-screen.
Identifier
None.
Parameter 2
None.
Identifier
Result variable
None.
Result flag
= (OFF) Command performed.
+/- (ON) Error.
See also
E-Dialg
ΓòÉΓòÉΓòÉ 49.78. E-Dialg ΓòÉΓòÉΓòÉ
Description
Ends a Dialog's block.
Identifier
None.
Parameter 1
None.
Identifier
None.
Parameter 2
None.
Identifier
Result variable
None.
Result flag
= (OFF) Command performed.
+/- (ON) Error.
See also
Dialog
ΓòÉΓòÉΓòÉ 49.79. Ckpw ΓòÉΓòÉΓòÉ
Description
Checks the user's Access Permission for a specified job.
Identifier
0-9,A-Z,!.
Parameter 1
The job name as it is defined in the user's permission utility.
Identifier
None.
Parameter 2
None.
Identifier
Result variable
None.
Result flag
Returns the Access code as defined in the user's permission utility.
See also
Get-Usr
ΓòÉΓòÉΓòÉ 50. U.D.R. Libraries ΓòÉΓòÉΓòÉ
If you have purchased the mathematics library or the statistics library, you
will be able to use their functions as new commands.
User-defined routines are used just like regular OpenWin commands, but before
using them you have to do some preliminary work in order to integrate them
within your specific application. To do so, you need some specific
information. First, you have to know the exact name of the routine(s) you
intend to use. Second, you have to know the names of the server(s) which
executes those routines.
Once you've got this information, you have to supply it your application
environment by using the Define Environment module.
This module contains a section called User Defined Routines .
Enter the Command and Server names you wish to use as explained.
When concluding this work, you may use these routines in the Logical flow of
your task as if they were OpenWin commands with the same format.
SERVER NAMES
Two servers are available, one for mathematics routines (named MTHLAN) and the
other for statistic routines (named STTLAN).
IMPORTANT !
1) The parameter for routines returning numeric results MUST BE of the data
type Float.
2) For all routines, the flag is = - success, or + failure. In case of
failure, an appropriate error message is printed.
STATISTICS ROUTINE NAMES( SERVER NAME STTLAN)
SAMPLE Samples a new value to a given group.
Parameter 1 Alphanumeric, has the group name into which the value has to be
sampled .
Parameter 2 Numeric, the value to be sampled.
Result None.
DESAMP Deletes last sample made on the given group.
Parameter 1 Alphanumeric, the group name.
Parameter 2 None.
Result None.
RESAMP Deletes all the samples made on the given group.
Parameter 1 Alphanumeric, the group name.
Parameter 2 None.
Result None.
SIGMA Gives sum of up-to-date sample values on the given group.
Parameter 1 Alphanumeric, the group name.
Parameter 2 None.
Result Numeric, the sum.
PI Gives multiplication of up-to-date sample values on the given group.
Parameter 1 Alphanumeric, the group name.
Parameter 2 None.
Result Numeric, the multiplication.
AVRG Gives average value of a given sample-group.
Parameter 1 Alphanumeric, the group name.
Parameter 2 None.
Result Numeric, the average.
STDEV Gives standard deviation of a given sample-group.
Parameter 1 Alphanumeric, the group name.
Parameter 2 None.
Result Numeric, the standard deviation.
COVAR Gives coverage of two sample-groups.
Parameter 1 Alphanumeric, the first sample-group name.
Parameter 2 Alphanumeric, the second sample-group name.
Result Numeric, the coverage.
COREL Gives correlation coefficient of two sample-groups.
Parameter 1 Alphanumeric, the first sample-group name.
Parameter 2 Alphanumeric, the second sample-group name.
Result Numeric, the correlation coefficient.
Return codes, in case of failure, which may occur within error messages
-1 Server inactive for input
-2 Unable to create input communication with server
-3 Server inactive for output
-4 Unable to create output communication with server
-5 Failed to send request to server
-6 Failed to receive result from server
-11 Unknown routine name
-12 Failed to convert parameter to a double-precision floating point number
-13 Invalid sample-group name
-14 No more memory left for a new sample-group
-15 No more space left within a sample-group for a new value
-16 Unable to process computation on an un existing sample-group
-17 The two sample-groups do not have same number of elements (relevant for
COVAR and COREL routines)
MATHEMATICS ROUTINE NAMES (MATH SERVER NAME MTHLAN)
POWER Returns Parameter 1** Parameter 2.
Parameter 1 Numeric, the base number.
Parameter 2 Numeric, the power.
Result Numeric, Parameter 1** Parameter 2.
SQURT Returns square root of value.
Parameter 1 Numeric, the input value.
Parameter 2 None.
Result Numeric, square root of Parameter 1.
EXP Returns exponential function of value.
Parameter 1 Numeric, input value.
Parameter 2 None.
Result Numeric, E** Parameter 1.
LAN Return natural logarithm of value.
Parameter 1 Numeric, input value.
Parameter 2 None.
Result Numeric, log-E( Parameter 1).
LOG Returns base 10 logarithm of value.
Parameter 1 Numeric, input value.
Parameter 2 None.
Result Numeric, log-10( Parameter 1).
ABS Returns absolute value of input.
Parameter 1 Numeric, input value.
Parameter 2 None.
Result Numeric, ABS( Parameter 1).
FLOOR Returns highest integer less than or equal to input value.
Parameter 1 Numeric, input value.
Parameter 2 None.
Result Numeric, FLOOR( Parameter 1).
CEIL Returns lowest integer greater than or equal to input value.
Parameter 1 Numeric, input value.
Parameter 2 None.
Result Numeric, CEIL( Parameter 1).
MOD Returns remainder of division of two values.
Parameter 1 Numeric, first input value.
Parameter 2 Numeric, second input value.
Result Numeric, remainder of
Parameter 1/ Parameter 2.
RANDOM Returns a random value.
Parameter 1 None.
Parameter 2 None.
Result Numeric random value.
TRUNC Truncates a number to a given position after decimal point.
Parameter 1 Numeric, the value to be truncated.
Parameter 2 Numeric, the position number.
Result Numeric, TRUNC( Parameter 1).
Return codes, in case of failure, which may occur within error messages
-1 Server inactive for input
-2 Unable to create input communication with server
-3 Server inactive for output
-4 Unable to create output communication with server
-5 Failed to send request to server
-6 Failed to receive result from server
-11 Unknown routine name
-12 Failed to convert parameter to a double-precision floating point number
-13 and -14 inconsistent parameters to routine requirements
-15 A very high result value
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Choose this option to save all changes made. If you exit the Window Design
without pressing OK, no changes will be saved.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Choose this option to cancel the last changes made.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
The window name
All references to the window are made by writing the name of the window. This
name defines the window exclusively.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Style
Select the style of the window requested. Different types of windows are
presented below:
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Background color
This color is the color of the window's background.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Heading
You can define the title for a window by entering a field Identifier and
another field to be used as a title.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Icon's name
You must type in the name of an icon (a .bmp file without the .bmp extension)
which will be presented when the window is reduced to its minimum size.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Icon Position
The icon position is set by writing the coordinates of the bottom left corner.
The position includes two parameters: the deviation from the X axis and the
deviation from the Y axis.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Icon Dimensions
The icon dimensions are set by writing down its width (X) and height (Y).
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Delete Window
This option will delete the window definition and remove the window from the
screen. The window fields must be deleted first.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Windows List
Choose this option to call up a window by selecting it from the window list.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Delete Field
This option will delete a field from the window definition and remove the field
from the window.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Object Details
This option will open a window and display object details such as the field
type or format, location , etc.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Screen name
A window name to which this field belongs.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Presentation/Output field
The field name and the field Identifier which you relate to the window.
Display and input operations in this field relate to this field value.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Input (Choice value) field
When you define a field in a way which enables you to select from the list, for
example List Box, you must enter the field from which the selection will be
made. This should be a multiple factor field.
If you don't wish to choose a field from the list, enter the name of any DUMMY
field.
If the field is a Push Button, the value of the field is displayed.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Style
A field can take different forms. You must select the desired form for
display.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Background color
The background color of the field presented.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Foreground (letters) color
The color in which the context of the field will be presented.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Title Place
You may define the title of a field. The title is taken from the field
description.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
SubScreen name
In order to refer to a field in an input/output procedure you must relate it to
a sub-screen. You can refer a number of fields to the same sub-window and join
them to a single input/output group.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
ID and Help field
You may define a numeric field. If you press F1 during run time while
performing an input operation on this field, you will begin the search for a
help panel with this number as resource ID at the help file.