Téléchargement des produits


Version anglaise


 

Programme de construction de noms HSLREF, avec utilisation du code retour en vue d'une génération C pour un programme de type ADELIA. Ce programme est utilisé avec la DLL FCTSPECC.DLL.

 

Remarque : cet exemple est issu du domaine STANDARDS_BD de la base de connaissances BDCADEL (nouvelle base) d'Adélia Studio.

 

*--------------------------------------------------------------------------------------------------------------------------------

* OBJET : Calcul du nom du FICHIER PHYSIQUE, LOGIQUE et du FORMAT d'une entité logique

*--------------------------------------------------------------------------------------------------------------------------------

*

* Nouvelle version 06/94 : Accès au fichier des fichiers par nom de l'entité

*

* Nom du fichier physique

=

Nom trouvé dans le fichier des fichiers.

* Nom du fichier logique

=

Remplacement du dernier caractère du nom de fichier par 'L1', ou par 'L' si la longueur est 10.

* Nom du format

=

Remplacement du dernier caractère du nom de fichier par 'F'.

*

* Si l'entité n'est pas référencée, elle est créée dans le fichier des fichiers.

* Les deux premiers caractères du nom de l'entité sont définis en tant que préfixe.

* S'ils sont déjà utilisés pour un autre fichier, le programme les remplace par 'QQ' et remplit la description dans

* le fichier des fichiers avec un avertissement.

*

* Si le nom du fichier physique n'existe pas, celui-ci est composé des 6 premiers caractères du nom de l'entité,

* suivis d'un 'P'

*

*--------------------------------------------------------------------------------------------------------------------------------

* PARAMETRES :

*

- P_NOM_ENTITE

(15 : E)

*

- P_NOM_FICHIER

(10 : E/S)

*

- P_NOM_FORMAT

(10 : E/S)

*

- P_NOM_FIC_LOG

(10 : E/S)

*

- CODE_RET

(1 : S)

*--------------------------------------------------------------------------------------------------------------------------------

*

RECEVOIR P_NOM_ENTITE P_NOM_FICHIER P_NOM_FORMAT P_NOM_FIC_LOG CODE_RET

*

* W_NOM_ENTITE = clé pour la vue VUE_FICHIER

W_NOM_ENTITE = *BLANK

W_NOM_ENTITE = P_NOM_ENTITE

LIRE VUE_FICHIER

* Détection d'une erreur E/S en lecture : positionnement du CODE_RET à '1'

SI    *IN90 = '1'

CODE_RET = '1'

TERMINER

FIN

SI    VUE_FICHIER EXISTE

TAB_NOM = *BLANK

PLACER_TABLE FI_NOM_FICHIER TAB_NOM

*

* Récupération du nom du fichier physique

*

P_NOM_FICHIER = *BLANK

P_NOM_FICHIER = FI_NOM_FICHIER

*

* Recherche de la longueur

*

W_LONG_NOM = &LONGUEUR_CHAINE(FI_NOM_FICHIER)

*

* Nom du format

*

TAB_NOM(W_LONG_NOM) = 'F'

PLACER_TABLE TAB_NOM P_NOM_FORMAT

*

SI W_LONG_NOM = 10

*

* Nom du fichier logique : "L" dans le dernier caractère

*

P_NOM_FIC_LOG = FI_NOM_FICHIER

PLACER_A_DROITE 'L' P_NOM_FIC_LOG

SINON

TAB_NOM(W_LONG_NOM) = 'L'

W_LONG_NOM = W_LONG_NOM + 1

TAB_NOM(W_LONG_NOM) = '1'

PLACER_TABLE TAB_NOM P_NOM_FIC_LOG

FIN

SINON

INIT_ZONES VUE_FICHIER

FI_NOM_ENTITE = W_NOM_ENTITE

PLACER_A_GAUCHE W_NOM_ENTITE W6_2

W6 = &TRANSFORMATION(W6_2;'_';'0')

P_NOM_FICHIER = W6 /// 'P'

P_NOM_FORMAT = W6 /// 'F'

P_NOM_FIC_LOG = W6 /// 'L1'

FI_NOM_FICHIER = W6 /// 'P'

FI_ANN_CREATION = *ANNEE

FI_MOI_CREATION = *MOIS

FI_JOU_CREATION = *JOUR

* WW_COD_PREFIXE = clé pour la vue VUE_FIC_PREFIXE

PLACER_A_GAUCHE W_NOM_ENTITE WW_COD_PREFIXE

LIRE VUE_FIC_PREFIXE

* Détection d'une erreur E/S en lecture : positionnement du CODE_RET à '1'

SI *IN90 = '1'

CODE_RET = '1'

TERMINER

FIN

SI VUE_FIC_PREFIXE N_EXISTE_PAS

FI_COD_PREFIXE = WW_COD_PREFIXE

FI_LIB_FICHIER = *JOB

SINON

FI_COD_PREFIXE = 'QQ'

FI_LIB_FICHIER = *JOB // 'Doublon avec' // F2_NOM_ENTITE

FIN

CREER VUE_FICHIER

* Détection d'une erreur E/S sur écriture : positionnement du CODE_RET à '2'

SI *IN90 = '1'

CODE_RET = '2'

TERMINER

FIN

FIN

 

 

Cliquez ci-dessous pour plus d'informations sur :

 

 

↑ Haut de page


  • Aucune étiquette