long SCR_STEP_BCCOUNT : incrément du compteur de lignes dans les bons de commandes. Lors de la création d'une ligne à la fin d'un bon de commande, le numéro interne du record est incrémenté de cette valeur. Cette variable est fixée par défaut à 20L et peut être modifiée par l'utilisateur, notamment pour en diminuer la valeur si le nombre de lignes du BC est très élevé.
char *DT_MONTHS_NAMES[] = {
"JAN", "FEB", "MAR", "APR", "MAY", "JUN",
"JUL", "AUG", "SEP", "OCT", "NOV", "DEC"
};
Cette variable est utilisée lors de l'affichage du calendrier par la fonction DT_calendar(). Elle peut être adaptée pour tenir compte de la langue de l'application. Le nombre de mois et de lettres par mois doit cependant être maintenu.
Exemple :
char *FR_MONTHS_NAMES[] = {
"Jan", "Fév", "Mar", "Avr", "Mai", "Jun",
"Jul", "Aou", "Sep", "Oct", "Nov", "Déc"
};
extern char *DT_MONTHS_NAMES[];
...
DT_MONTHS_NAMES = FR_MONTHS_NAMES;
char *DT_DAYS_NAMES = "Mo Tu Wd Th Fr Sa Su";
Cette variable est utilisée lors de l'affichage du calendrier par la fonction DT_calendar(). Elle peut être adaptée pour tenir compte de la langue de l'application. Le nombre de caractères doit cependant être maintenu.
La section GLOBAL peut contenir les mots-clés suivants en liaison avec la mise en veille d'une application :
LOCK_TXT "texte"
LOCK_DELAY secs
LOCK_FN action_defn
Les deux premiers permettent respectivement de fixer le texte qui doit apparaître dans l'écran pendant la mise en veille et le délai à partir duquel la mise en veille doit être activée.
L'action définie par le mot-clé LOCK_FN est exécutée à la fin du lockscreen, c'est-à-dire avant que l'application ne redémarre : par exemple, il peut s'agir de l'affichage d'une PAGE avec demande d'un mot de passe.
Cette fonctionnalité permet de protéger un écran qui est abandonné en cours d'application.
Lors de l'édition d'un MENU, la touche LINEFEED a le même comportement que la touche ENTER.
Cette action (en C, PG_scan_isam()) arrête le comptage lorsqu'une touche est pressée, ce qui n'était pas le cas auparavant.
Deux nouvelles options sont disponibles uniquement dans le cas de ctree plus v.6 :
Les fonctions suivantes sont ajoutées à la librairie de fonctions de ctree 6:
On fixe les valeurs de l'enregistrement de départ et de fin de recherche, ainsi que le numéro de l'index:
IS_set_firstv(is, idx)
et
IS_set_lastv(is, idx)
On calcule ensuite le nombre d'engistrements entre les deux clés :
long IS_search_nb_2val(is)
Ce calcul est rapide car aucun enregistrement n'est lu : seuls les index sont consultés.
Ces fonctions effectuent une recherche dans un index donné, sans lire l'enregistrement lui-même tant que cela n'est pas explicitement demandé. Il est donc impossible de connaître la valeur des champs de l'enregistrement courant!
On lance la recherche (en principe la condition est SCR_EQ ou SCR_EQ1 ..SCR_EQn):
IS_search_rec_idx(is, nu_index, cond)
Si une clé est trouvée on peut lire la clé suivante ou la précédente:
IS_prev_rec_idx(is)
et
IS_next_rec_idx(is)
Enfin, on peut forcer la lecture de l'enregistrement complet:
IS_read_current(is)
Impressions
Généralisation de la fonction PR_listing():
PR_listing_fn(pr, pg_ref, pg_scan, cmp, file, fn)
Cette fonction est identique à PR_listing() avec un filtre supplémentaire: fn est un pointeur sur une fonction qui s'exécute avant le traitement de chaque record et permet le rejet de certains enregistrements.
Sa syntaxe est :
int fn(ISAM *is, long nb_read, long nb_found, int success)
Elle se comporte comme les fonctions utilisateurs dans le cas des SCAN (SC_scan_page p.ex.).
Si fn retourne 0, l'enregistrement est traité normalement. Si fn retourne 1, l'enregistrement n'est pas imprimé mais la lecture continue. Si fn retourne -1, la lecture est interrompue.
Le nombre de tabulations verticales et horizontales sont modifiées : 20 tabulations horizontales (TABS nn nn ...) et 15 tabulations verticales (VTABS nn nn ...).
Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be