

Manipuler les données d'un enregistrement en mode expert
Préambule
Les informations ci-dessous s'adressent exclusivement aux utilisateurs ayant une très bonne connaissance de la manipulation des tableaux dans le langage 4D et de la manipulation des données Kentika.
Contexte d'utilisation
Lors du chargement d'un enregistrement en vue d'une mise à jour de ses données grâce à la fonction Record_Load, un certain nombre de tableaux sont créés en mémoire. Ces derniers comportent la description de la structure de l'enregistrement ainsi que les données.
Lors de l'enregistrement, les informations contenues dans les tableaux sont reventilées dans les enregistrements physiques de la base de données 4D et les index sont remis à jour. C'est pourquoi il est impératif de toujours utiliser ces fonctions sur les tables "Document" ; "Auteur" ; "Référence" ; "Personne" et "Revue" pour les données de la fiche signalétique (les données de gestion ne font pas l'objet du même mécanisme).
Variables et tableaux
Variable d'identification de l'enregistrement
LForm_Record_num : numéro d'enregistrement
eList_FileNum : numéro de table (deux derniers caractères du numéro d'enregistrement)
AForm_Record_Type : type (ne tient pas compte de la langue)
AForm_Record_Type_Lib : type dans la langue de l'utilisateur
AForm_Record_Site : code du site
EForm_Record_Filtre : numéro de requête correspondant au filtre de saisie éventuelle
Tableau de structure
Après l'exécution de Record_Load, que ce soit pour créer un nouvel enregistrement ou pour mettre à jour un enregistrement existant, les tableaux de description de structure suivants sont alimentés :
ETForm_numField : numéro des rubriques, tels qu'identifiées en structure
TTForm_Lib : intitulé de la rubrique (dans la langue de l'utilisateur)
TTForm_Att : attributs
L'attribut est une chaîne de 7 caractères suivi d'informations complémentaires optionnelles exprimées en mode xml (def : valeur par défaut ; UseTable : rubrique code utilisant les valeurs d'une autre table ; etiq : étiquette de la rubrique...)
Caractère Contenu
1 : nature 1 à 9 (1=code, 2=thesaurus, 3=format libre, 4=date
5=nombre, 6=email, 7=URL, 8=lien, 9=adresse)
2 : obligatoire 0 ou 1
3 : multiple 0 ou 1
4 : visu 0 ou 1 (0 dans le cas où l'utilisateur n'a pas le droit de voir la rubrique)
5 : index0 ou 1
6 : alerte0 ou 1 (1 si une modification doit provoquer un log de type 3 vs 2 en cas de modification)
7 : code ordre 0, 1 ou 2 rubrique seule, tête de groupe, dépendant d'une autre
Exemple : "4101100" correspond à une rubrique date (4) obligatoire (1) mono valuée (0) visible (1) indexée (1) pas d'alerte (0) rubrique seule (0)
Tableau des valeurs
Les valeurs sont contenues dans des tableaux à deux dimensions. La première dimension correspond à la rubrique, la deuxième aux valeurs. Si une rubrique n'est pas multi-valuée, le tableau correspondant aura toujours une et une seule valeur.
TTForm_Val_code : code des valeurs (dépend de la nature)
TTForm_Val_lib : libellé des valeurs
Contenu des valeurs en fonction de la nature de la rubrique
Suivant la nature, les tableaux indiqués ci-dessus auront des contenus différents.
Nature Contenu "TTForm_Val_Code" Contenu "TTForm_Val_lib"
1 (code) Code de la valeur Libellé de la valeur (dans la langue)
2 (thes) Record_Num (thesaurus)Descripteur
3 (valeur) Valeur
4 (date) Début\Fin Date telle que saisie
5 (nombre) Nombre Nombre saisi
6 (email) email
7 (URL) URL
8 (lien) Record_Num (table liée) Intitulé de l'enregistrement
9 (adresse) Adresse XML ADresse en text
Exemple
Le script suivant modifie le contenu de la rubrique langue (dont l'étiquette est LA et dont on ne connaît pas, a priori, le Field_Num) de l'enregistrement 40103. Si ce dernier contient la valeur "FR", la valeur est changée en"AN"
LForm_Record_Num:=40103
Record_Load (3;1;LForm_Record_Num)
Ce1:=Chercher dans tableau(TTForm_Att;"@<etiq>LA</etiq>@")
Si (Ce1>0)
Ce2:=Chercher dans tableau(TTForm_Val_code{Ce1};"FR")
Si (Ce2>0)
TTForm_Val_code{Ce1}{Ce2}:="AN"
Record_Save (LForm_Record_Num)
Fin de si
Fin de si
Powered by KENTIKA Atomic - © Kentika 2020 tous droits réservés - Mentions légales