1 VAXFORM                        
HELP/VAXFORM .
-------------

VAXFORM permet la creation et l'utilisation d'ecrans sous VAX/VMS
pour des terminaux VT52 et VT100 (VT2xx, VT3xx en mode VT100).
Le programme d'application ecrit en COBOL,FORTRAN ou BASIC-PLUS-2
fait reference a un ou plusieurs ecrans par leur numero unique dans 
l'application (n = 1 a 255).

            ************************************

ELEMENTS D'UN ECRAN:  3 classes 
--------------------

CHAMP= zones de saisie modifiable(ensemble des champs= buffer de saisie)
LIBELLES= textes non modifiables
MESSAGES= textes non modifiables affiches sur la derniere ligne

            ************************************

ATTRIBUTS DE VISUALISATION : ( sur VT100  avec option "ADVANCED VIDEO")
----------------------------

INVERSION DE CONTRASTE:    I   DEFAUT  (-I)
CARACTERE GRAS:		   G   DEFAUT  (-G)
CLIGNOTEMENT:              C   DEFAUT  (-C)
SOULIGNEMENT:              S   DEFAUT  (-S)
Un champ est saisi s'il a au moins un caractere non blanc,
sinon il est vide.
Un champ est saisi en creation ou en modification.

            ************************************

CODAGE DES CHAMPS:
------------------

ALPHANUMERIQUE:  TYPE    A
NUMERIQUE:       TYPE    D
         Numerique entier signe:	   Dn
         Numerique entier non signe:      +Dn
         Numerique non entier signe:      Dn.p
         Numerique non entier non signe:  +Dn.p
Notons que le format de saisie depend du langage utilise
(voir clause FORMAT).

            ************************************

ATTRIBUTS DE SAISIE:
--------------------

CHAMP PROTEGE:      P  DEFAUT (-P) (ne peut saisi)
CHAMP OBLIGATOIRE:  O  DEFAUT (-O) ( doit etre saisi; sinon erreur)
CHAMP A REMPLIR:    R  DEFAUT (-R) (saisi entier s'il est obligatoire)
CHAMP ALPHABETIQUE: A  DEFAUT (-A) (tout caractere A a Z)
CHAMP NUMERIQUE:    N  DEFAUT (-N) ( chiffre de 0 a 9)
VISUALISER LES 0:   Z  DEFAUT (-Z) (zero non significatifs)
TABULATION MANU:    T  DEFAUT (-T)(utiliser une fonction si champ plein)
SOUS-PROGRAMME:     S  DEFAUT (-S) ( retour a l'appelant; non vide )
SOUS-PROGRAMME:     I  DEFAUT (-I) ( retour a l'appelant )
TETE DE CHAPITRE:   C  DEFAUT (-C) 

            ************************************

DEFINITION DES LIBELLES:
------------------------

Les libelles sont de 3 types.
DATE:     FORMAT     JJ-MMM-AN
HEURE:    FORMAT     HH:MM
LIBELLE:  FORMAT     texte

            ************************************

DEFINITION DES MESSAGES:
------------------------

Les messages sont affiches sur la derniere ligne du terminal.
Ils sont globaux (associes a l' application)
         locaux (associes a l'ecran)
         internes (associes au controle de la saisie)
Les messages de type ERREUR sont valides par la touche DELETE
Les messages de type QUESTION sont valides par O ou N

            ************************************

LANGAGE DE SAISIE:
------------------

Le langage est defini par un ensemble de clauses dont certaines 
sont obligatoires.
CLAUSE= CLAUSE P1,....,Pn ; COMMENTAIRES
Les Pi sont soit des valeurs ou liste de valeurs entre <,>,
soit des textes entre<,>
LISTE DES CLAUSES:
------------------

DEBUT   no. d'ecran  ;obligatoire et doit etre la premiere
VIDEO                ;optionnelle permet de changer le contraste
VALID                ;optionnelle permet de poser la question VALIDATION
ALPHA                ;optionnelle materialise les champs alphanumeriques
DIGIT                ;optionnelle materialise les champs numeriques
DEFSAI               ;optionnelle change les attributs de saisie d'ecran
DEFVIS               ;optionnelle change les attributs de visualisation
FORMAT               ;obligatoire definit le format du buffer de saisie
CHAMP   no.champ,  ligne,colonne,nature,<ats1,...,atsn>;,<atv1,...,atvn>;  
LIBEL   no.libelle,ligne,colonne,<texte>,<atv1,...atvn>;
DATE    no.libelle,ligne,colonne,<atv1,...,atvn>;
HEURE   no.libelle,ligne,colonne,<atv1,...,atvn>;
ERREUR  no.message,<texte>,<atv1,...,atvn>;
QSTION  no.message,<texte>,<atv1,...,atvn>;
FIN            	   ;obligatoire  derniere clause

            ************************************

FONCTION DES TOUCHES DE SAISIE:
-------------------------------

La saisie d'ecran est controllee par 12 touches.
DELETE (ou REBOUT) efface le caractere precedent le curseur
LINE FEED       efface le champ 
--> (caractere suivant) deplace le curseur vers la droite
<-- (caractere precedent) deplace le cursuer vers la gauche
|
V   (champ suivant) positionne le curseur sur le champ suivant
^
|   (champ precedent) positionne le curseur sur le champ precedent
RETURN  passage au champ suivant ,le reste du champ est efface
ESCAPE passage au champ precedent,le reste du champ est efface
PF1 (fin de saisie) abandon de la saisie d'un ecran
PF2 (debut d'ecran) positionne le curseur en debut d'ecran
PF3 (fin ecran) positionne le curseur a la fin de l'ecran
TAB (tabulation) quitte un champ vers l'aval
Les autres touches sont inoperantes.
Une erreur de manipulation des touches de controle entraine 
l'impression d'un mmessage d'erreur(ex.CHAMP OBLIGATOIRE)

            ************************************

COMPILATEUR D'ECRANS:
---------------------

Un fichier source d'ecran (.FRM) ecrit en langage VAXFORM
fournie apres compilation des fichiers objet(.OBJ) et listing(.LIS)
Pour le compiler appeler l'utilitaire VAXFORM.

            ************************************

GENERATEUR D'ECRAN:
-------------------

Il permet de creer un fichier image (.ECR) de l'ecran.
Pour generer un ecran appeler l'utilitaire VAXFORM.

            ************************************

LIBRAIRIE D'ECRAN:
------------------

Les modules objets d'ecrans sont regroupes dans une librairie 
(dont le nom est choisi par l'utilisateur).
Les librairie d'ecrans sont gerees par le librarian du VAX.
Pour creer une librairie appeler l'utilitaire VAXFORM.

            ************************************

LIBRAIRIES DE SAISIE D'ECRANS:
------------------------------

Les programmes d'application controlent les ecrans par l'intermediaire
de routines regroupees dans librairie FRMLIB.OLB .
Seule la routine MESSAG.MAR peut etre modifiee (voir plus loin).
Appel des routines:
En FORTRAN:
   CALL routine (P1,...,Pn)
En COBOL:
   CALL routine USING P1,...,Pn
En BASIC:
   CALL routine BY REF (P1,...,Pn)

Liste des routine appelees par les programmes d'application:
INIFRM   ;Obligatoire ,premiere appelee,identifie le terminal
INIECR(no.d'ecran);specifie l'ecran
SAIECR(no.ecran,buffer,mode,status);controle la saisie
AFFECR(no.ecran,buf,mode,status);affiche l'ecran sans saisie
SAICHA(no.champ,buf,mode,status);saisie d'un champ
AFFCHA(no.champ,buf,mode,status);affichage d'un champ
AFFLIB(no.libelle,status);affichage d'un libelle
AFFMSL(no.message,status);affiche un message local(erreur ou question)
AFFMSG(no.message,status);affiche un message global
CHGVIS(type,no.elem,indic,mask,status);modifie les attributs de visu.
CHGSAI(no.champ,indic,mask,status);modifie les attributs de saisie
SAITXT(ligne,colonne,buf,bufl,status);saisie d'une chaine de caracteres
AFFTXT(ligne,colonne,buf,bufl,status);affiche un texte
VALERR ;demande la frappe de la touche  DELETE 
EFFECR ;efface l'ecran du terminal
SONNE ; fait entendre la sonnerie du terminal
POSCUR(ligne,colonne);positionne le curseur 
Pour plus de renseignements se referer a la brochure FORM11.

            ************************************

EDITION DE LIEN:
----------------

L'edition de lien du programme d'application avec la librairie
d'ecrans et la librairie FRMLIB.OLB se fait en appelant
l'utilitaire VAXFORM. 

            ************************************

MODIFICATION DE LA ROUTINE MESSAG.MAR:
--------------------------------------

L'utilisateur a la possibilite de choisir les textes des 
messages internes et definir des messages globaux.
Pour cela il appelle l'utilitaire FORM et repond a la 
question concernant la modification des messages.
La modification se fait sous editeur de texte EDIT invoque par
l'utilitaire VAXFORM.
Le reste du travail est execute par VAXFORM.
Il est imperatif de ne pas modifier l'ordre des messages internes 
ni de supprimer des entrees(20 messages).

            ************************************

L'UTILITAIRE VAXFORM:
------------------

Cette utilitaire permet de:
       Creer une librairie d'ecrans
       Compiler un ecran et l'inserer dans une librairie existante
       Generer le fichier image d'un ecran
       Modifier la routine MESSAG.MAR et l'inserer dans FRMLIB.OLB
       Faire l'edition de lien de l'application 
L'utilisateur devra repondre aux questions posees par VAXFORM.
Il peut au choix executer une ou plusieurs fonctions.
A la fin de la cession il pourra executer son application 
en tapant: RUN 'nom de l'application'
Pour appeler l'utilitaire VAXFORM faire @VAXFORM_DIR:VAXFORM

            ************************************
