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

SCR/AL1 - TOME IV. Les librairies internes

2. La librairie scr4o

2.10 Fonctions de lecture et d'assignation de valeurs

2.10.60 PG_set_isam (file s_pgis.c:509)

Syntax

PG_set_isam(pg, is1, is2)
PAGE *pg;
ISAM *is1, *is2;

Description

Replace toutes les occurences de l'ISAM is1 par l'ISAM is2 dans la PAGE pg: tous les champs liés à is1 le sont dorénavant à is2.

Cette fonction est à utiliser avec précaution. Notamment, la PAGE doit garder ses champs en mémoire pour que cette opération puisse fonctionner correctement (FLD_MEM). Sans cela, après utilisation de la PAGE, les nouvelles valeurs sont perdues. Cependant, si cette opération a lieu dans la BEGIN_FN ou la DISPLAY_FN de la PAGE, cela fonctionne correctement.

Il est clair que les 2 ISAM doivent être semblables, voire identiques au niveau de leur structure et des types des champs qui les composent.

Voir également

FLD_set_isam()

File s_pgis.c

FLD_change_isf(pg, nb_fld, nb_isf, new_val)
PG_set_isam(pg, is1, is2)
SCR_isam_to_page(pg, is)
SCR_page_eq_isam(pg, is)
SCR_page_to_isam(pg, is)
SCR_rec_to_page(pg, is)

FLD_change_isf (file s_pgis.c:479)

Syntax

FLD_change_isf(pg, nb_fld, nb_isf, new_val)
PAGE *pg;
int nb_fld, nb_isf, new_val;

Description

Change dans le champ d'une PAGE le numéro du champ de l'ISAM qui lui est lié. Cette fonction est à utiliser avec précaution. Notamment, la PAGE doit garder ses champs en mémoire pour que cette opération puisse fonctionner correctement (FLD_MEM).

Elle est par exemple utile si on veut faire défiler plusieurs écrans de valeurs en se servant de la même PAGE.

Exemple

    ISAM is_client {
...

FIELD float NAME chaff0
FIELD float NAME chaff1
FIELD float NAME chaff2
FIELD float NAME chaff3
FIELD float NAME chaff4
FIELD float NAME chaff5
FIELD float NAME chaff6
FIELD float NAME chaff7
FIELD float NAME chaff8
FIELD float NAME chaff9
...
}

PAGE pg_client {
...
FIELD ISAM is_client chaff0
FIELD ISAM is_client chaff1
FIELD ISAM is_client chaff2
FIELD ISAM is_client chaff3
FIELD ISAM is_client chaff4
....
}

En C :

Shift(n)
int n;
{
int i;

for(i = 0 ; i < 5 ; i++) {
if(n == 0)
FLD_change_isf(pg_client, i, 0, i);
else
FLD_change_isf(pg_client, i, 0, i + 5);
}
}

Voir également

FLD_set_isam(), PG_set_isam()

SCR_isam_to_page (file s_pgis.c:367)

Syntax

SCR_isam_to_page(pg, is)
PAGE *pg;
ISAM *is;

Description

Copie dans les champs d'une PAGE pg liés aux champs de l'ISAM is les valeurs du record courant de l'ISAM.

Les CODES (ou CODEISAM) définis dans la PAGE sont appliqués récursivement, de façon à remplir correctement tous les champs de la PAGE. Ainsi, la copie de l'ISAM is_client dans la PAGE pg_client qui contient un champ du type :

    FIELD Prompt "Code postal : " ISAM is_client post CODE is_post code
FIELD Prompt "Commune : " ISAM is_post commune output

remplira le champ code postal, puis recherchera dans is_post le code en question (CODE is_post code). L'ayant trouvé, il effectuera une copie de la commune dans le champ suivant (ISAM is_post commune).

Voir également

SCR_rec_to_page(), SCR_page_to_isam()

SCR_page_eq_isam (file s_pgis.c:558)

Syntax

SCR_page_eq_isam(pg, is)
PAGE *pg;
ISAM *is;

Description

Vérifie que les champs de la PAGE pg correspondent à ceux du record courant de l'ISAM is. Cette fonction permet de savoir si lors de l'édition d'un record, celui-ci a été modifié.

Exemple

    En C :
AD_adr_quit()
{
if(SCR_LKEY != SCR_ESCAPE) return(0);
if(SCR_page_eq_isam(p_client, is_client) == 0) return(0);
return(SCR_confirme("Quitter sans sauver (O/N) ?"));
}


Utilisation :
PAGE p_client {
END_FN {C_FN return(AD_adr_quit());}
DEFAULTS {ISAM is_client}
...
}

Voir également

Action PAGE_EQ_ISAM

SCR_page_to_isam (file s_pgis.c:383)

Syntax

SCR_page_to_isam(pg, is)
PAGE *pg;
ISAM *is;

Description

Copie dans le record de l'ISAM is tous les champs de la PAGE pg qui sont liés à cet ISAM. Cette fonction peut être utilisée avant IS_write() ou IS_rewrite().

Voir également

SCR_isam_to_page()

SCR_rec_to_page (file s_pgis.c:269)

Syntax

SCR_rec_to_page(pg, is)
PAGE *pg;
ISAM *is;

Description

Copie dans les champs d'une PAGE ou des PAGES d'une TPAGES pg liés aux champs de l'ISAM is les valeurs du record courant de l'ISAM.

Si pg est une TPAGES, toutes les sous-pages sont traitées.

Contrairement à la fonction SCR_isam_to_page(), cette fonction n'applique pas récursivement les CODEISAM définis dans la PAGE ou les TPAGES.

Voir également

SCR_isam_to_page()

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