Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - TOME II. Les Objets

14. BC

14.2 Définition d'un BC

NOMODIFY, NOCREATE, NODELETE, NOSEARCH

Ces mots-clés sont utilisés dans le cadre de l'action BC_EDIT_ISAM (voir ACTION). Ils indiquent si l'ISAM sous-jacent peut ou non être modifié à l'aide de ce BC.

NL

Fournit le nombre de lignes des LPG. Par défaut, cette valeur vaut 1. Si les little pages (LPG) couvrent plus d'une ligne, il faut le spécifier. Cette valeur, multipliée par NPG indique le nombre de lignes total réservé dans l'écran aux lignes du BC.

On peut avoir des LPG de plus d'une ligne, mais spécifier NL 1 : dans ce cas les LPG se recouvriront.

LINE

Indique la ligne dans l'écran (et pas dans la APG) où doit apparaître la première LPG.

NPG

Indique le nombre de LPG que l'on veut voir simultanément dans l'écran. L'espace requis doit être prévu au niveau de la APG qui ne s'adapte pas automatiquement.

Cette valeur, multipliée par NPG indique le nombre de lignes total réservé dans l'écran aux LPG.

BC et LBC

BC indique l'ISAM des Bons de Commandes, c'est-à-dire le fichier principal. En plus, il fournit dans cet ISAM le nom ou le numéro des champs qui permettent de faire le lien avec les lignes de Bons de Commande (LBC).

LBC indique pour sa part le nom de l'ISAM des lignes des bons de commande avec le nom ou le numéro de l'INDEX qui est lié aux champs cités dans BC. Le nombre de champs de l'INDEX devra être au moins égal au nombre de champs déterminés par BC.

Si un champ supplémentaire apparaît dans l'INDEX, et que ce champ est SHORT ou LONG, une valeur automatique sera stockée dans ce champ pour permettre de conserver l'ordre d'entrée des LBC pour les impressions ou éditions futures.

Exemple

    BC is_fact num
LBC is_lfact num

Le fichier Bon de Commande est is_fact et le champ permettant d'effectuer le lien avec les lignes est le champ num. Il s'agit ici d'un fichier de factures is_fact dont les records contiennent les informations générales (numéro client, adresse facturation, date, etc) et le fichier secondaire LBC les lignes des factures. Dans ce fichier secondaire, le nom de l'INDEX est également num. Le lien est visiblement effectué via le numéro de facture.

FNKEY

Les FNKEYS des BC sont définies de la même façon que dans les PAGES. Certaines touches fonctions sont cependant réservées et leur comportement ne peut être modifié :

L'édition d'un BC s'effectue de la façon suivante :

Mode édition du BC (APG)

Les touches F2, F3 et F10 doivent donc être définies dans la APG de telle sorte qu'elles la quittent !

Mode édition des LBCS (LPG)

LINK_FN

La LINK_FN est une ACTION qui s'exécute à différents moments pendant l'édition ou l'affichage d'un BC. Elle permet par exemple d'effectuer et d'afficher des totaux.

L'ACTION associée s'exécute au moments suivants :

APG

La APG est la PAGE qui encadre le BC lors de l'affichage. Cette PAGE contient les informations du fichier BC. Pour reprendre l'exemple de la facture, la APG contient le numéro client, le numéro de la facture, la date de facturation, éventuellement le montant total, etc.

Cette PAGE doit recouvrir dans l'écran l'ensemble des LPG. Elle contiendra éventuellement des DRAWS pour séparer les champs des LPG.

Screen dans la APG

Lorsqu'un SCREEN est présent dans la définition de l'APG de la MPAGE, on peut, pour faciliter le placement des LPG, utiliser la méthode suivante. ON place dans le screen %nom_du_champ_lpg à l'endroit de placement du champ désiré de la LPG. L'exemple suivant éclaire cette possibilité :

    APG jvp_bes {
Center
...
SCREEN {
+======================= LeveringsBons ================================+
| |
|----------------------------------------------------------------------|
| Klant $KLANUM *KLANAAM |
| *KLINSTITUUT *KLTEL *KLBTW |
| Bonnummer $BONNR Taal:*T S:*SO C:*PR Munt:*MK Kort F/L:*F /*A|
| Vertegenwoordigers $VERT1 / $VERT2 |
| Datum Levering $DATLEV Korting Faktuur $KORTFAK |
| Leveringsadres $LEVADR Code Faktuur $CODFAK *X |
|Art |Aant.| Omschrijving Krt.|Prijs |
|----------------------------------------------------------------------|
|%ART %AAN %OMSNED %KR %PRIJS |
| |
| |
| |
| |
| |
| |
|----------------------------------------------------------------------|
|*OPM TOT BON *TOT |
| Korting Aktief *KO |
+======================================================================+
}
...
}

LPG jvlpg_bes {
DEFAULTS {ISAM jvf_besl blue line 0}
FIELD name art ISF artnum CODE jvf_art artnum
FIELD name omsned ISAM jvf_art omsned
FIELD name aan ISF aantal
FIELD name kr nc 4 ISF kortart
FIELD name prijs ISF prijs
FIELD name b ISF backo upper
FIELD name ga ISF ga hidden
FIELD name artgrat ISAM jvf_art artnum_g hidden
}

%ART, %AAN, etc font référence aux champs de la LPG.

Dans cette LPG, les champs référencés dans le APG doivent être nommés (ISF ne suffit pas), sans quoi le lien serait impossible.

C'est à la fin de la compilation de la MPAGE que le positionnement correct des champs de la LPG sera effectué en fonction de ce qui se trouve comme champs %nom dans la APG.

LPG

La LPG est la PAGE qui contient les informations du LBC, ou du moins la partie visible en permanence. Dans l'exemple de la facture, il s'agira du code du produit ou de la prestation, de la quantité, du prix unitaire et du prix total.

BPG

La BPG est la PAGE qui permet de visualiser une ligne de bon de commande entièrement. Elle est utilisée non seulement pour voir le contenu complet d'une ligne, mais aussi pour créer une nouvelle ligne.

Cette PAGE apparaît lorsque ENTER est pressé sur une LPG (modification ou visualisation d'une ligne) ou lorsque INS est pressé (pour créer une nouvelle ligne)

Nouveautés en version 4

A partir de la version 4, certains nouveaux mots-clés ont été introduits.

BC à double LBC

Un premier groupe permet de différencier les lignes des bons de commandes (BC à double LBC) : de cette façon, une ligne pourra par exemple contenir une commande de produits et la suivante un commentaire explicatif, un montant d'escompte, etc. Il s'agit toujours du même fichier physique, mais la structure de l'ISAM peut être différente (le début est le même, mais la suite contient dans le premier cas produit, quantité, etc, et dans le second un texte libre.

Pour exploiter ces fonctionnalités, les mots-clés décrits dans la suite doivent être mis en oeuvre. Il faudra:

Autre nouveautés

On pourra en plus - mais ceci ne se limite pas au cas des doubles LBC - ajouter les informations suivantes:

Exemple commenté

L'exemple qui suit est simplifié pour rendre la lecture compréhensible.

/* Menu pour choisir le type de LBC */

MENU jvm_bcc12 {
TITLE " Insérer ? "
OPTION "Nouvel article"
OPTION "Commentaire"
}

/* Bon de commande généralisé */

BC jvbc_bes {
BC jvf_besh bonnr /* Bon de commande (champ lien = bonnr) */
LBC jvf_besl bonnr /* Lignes de BC normales (index = bonnr) */
LBC2 jvf_besl2 /* Lignes de BC Commentaire (même index) */
MENU_1_2 jvm_bcc12 /* Menu choix type LBC */
FLD_1_2 type /* Champ de LBC et LBC2 avec type LBC */
INSERT_LBC /* Insertion entre lignes possible */
WRITE_LBC_FN { /* Fonction exécutée après création */
C_FN JV_insert_line();
}
LINK_FN { /* Fonction lien avec APG */
C_FN JV_bes_tot ();
DISPLAY_FLDS jvp_bes
}
APG jvp_bes /* Page pour BC */
BPG jvbpg_bes /* Page édition LBC type 1 */
BPG2 jvbpg2_cmt /* Page édition LBC type 2 */
LPG jvlpg_bes /* Page affichage LBC type 1 */
LPG2 jvlpg2_cmt /* Page affichage LBC type 2 */
}

Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be