Les bases de mise en oeuvre A5PMTAB

AP_Saisir_Tableaux et AP_Interroger_Tableaux

Le point d’entrée dans a5pmtab est l’une des deux fonctions suivantes : AP_Saisir_Tableaux ou AP_Interroger_Tableaux afin de de gérer un tableau ou un arbre en consultation ou saisie. La version ‘Interroger’ s’assure que l’utilisateur ne pourra jamais entrer en modification, mais la version ‘Saisir’ permet également d’indiquer un mode consultation

Il est donc recommandé d’utiliser AP_Saisir_Tableaux pour permettre des extensions futures sans remettre en cause la structure du code (même si le tableau n’est qu’en consultation)

 

La fonction AP_Saisir_Tableaux reçoit en entrée une chaîne HMP qui va dicter les principales fonctionnalités à activer.

On fait appel à Creer_Parametre pour construire les paramètres de fonctionnement indispensables sous forme de chaîne HMP (voir chapitre suivant).

  • On passera en général FPerso=true

  • Le numéro d’arrêt du tableau est recommandé à partir de 1000

  • Le paramètre important est le NOM qui imposera le nommage des fonctions et procédures, donc ne pas le modifier par la suite

Exemple

image-20241015-093508.png

La fonction remplace le code qui consiste à faire une boucle sur un XmeListConsult puis à traiter les actions utilisateurs par un switch. La fonction d'interrogation se chargera de toutes ces manipulations ce qui permettra de gérer un tableau avec une seule fonction standardisée.


Liste des option HMP

Balise HMP

Valeur par défaut

Remarques

Balise HMP

Valeur par défaut

Remarques

<ID>

 

OBLIGATOIRE.

Ces balises sont remplies à l’appel de Creer_Parametre.

Aucun besoin de les donner explicitement par la suite

Toutes les autres balises sont optionnelles selon comportement souhaité du tableau

<ARRET>

 

<ADR_ENREG>

 

<LG_ENREG>

 

<ADR_SCROLLBAR>

 

<FUNCTION_PERSONALISE>

FALSE

<NOM_FUNCTION_P>

' '

<PRIVILEGE>

Zoom_Privilege_consultation

(tel qu'attendu par XmeListConsultdefault)

Zoom_Privilege_consultation = consultation seule du tableau

Zoom_Privilege_modification = autorise la modification

Zoom_Privilege_Creation = autoriser la création

Zoom_Privilege_suppression = autorise jusqu'à la suppression

 

<SELECTION>

False

(tel qu'attendu par XmeListConsultdefault)

Pour autoriser la sélection multiple dans le tableau

<PERSO>

False

(tel qu'attendu par XmeListConsultdefault)

Mettre true pour autoriser la personnalisation future

<TRI>

False

Indicateur si liste triable

<TRI_CONSERVE_COURANT>

False

Indicateur si un changement de tri conserve le courant

<TRI_AUTO>

True

Indicateur si tri est automatique

<FILTRE>

False

Indicateur gestion automatique du filtre sur les colonnes

<FILTRECOLONNE>

False

Indicateur gestion automatique du filtre rapide sur les colonnes

<SF4>

False

Indicateur gestion spécifique du passage en mode fiche SF4

<F2>

False

Indicateur gestion spécifique du suivant F2

<SF2>

False

Indicateur gestion spécifique du précédent SF2

<NOTE>

False

Indicateur si la touche SF6 traite la gestion de note

<JOINT>

False

Indicateur si la touche CTRLF6 traite la gestion de fichier joint

<F10>

False

Indicateur pour gérer la validation (F10) du tableau (interro ou saisie)

<F11>

False

Indicateur pour gérer la touche (F11) du tableau (interro ou saisie)

<CTRLF4>

False

Indicateur si déploiement niveau arbre

<KEY_CTRLF4>

K_Ctrl_F4

Touche pour déploiement niveau arbre

<SCTRLF4>

False

Indicateur si repli niveau arbre

<KEY_SCTRLF4>

K_Ctrl_SF4

Touche pour repli niveau arbre

<EXPORTTABLEUR>

False

Indicateur export tableur autorisé

<EXPORTTABLEUR_KEY>

K_Ctrl_R

Touche pour l’export tableur

<EXPORT>

True

Indicateur export paramétrable autorisé

<DYNAMIQUE>

False

Indicateur d’un mode chargement dynamique (donc pagination du chargement)

<DYNAMIQUE_SENS>

False

Indicateur pour inverser le sens de chargement dynamique

<PERFORMANCE>

False

Indicateur si permet une mesure de performance

<PERFORMANCE_KEY>

K_F12

Touche pour déclencher la mesure de performance (AnalyseStart / AnalysePause)

<RECHERCHE>

False

Indicateur si recherche active dans le tableau

<RECHERCHE_CELLULE>

False

Indicateur si recherche dans cellule. CEL_CLIC1 et CEL_CLIC2 indique le .TabClic acceptés

<RECHERCHE_CEL_CLIC1>

LIST_CLICK_ACTIVE_CELL

<RECHERCHE_CEL_CLIC2>

LIST_CLICK_COLUMN_CONTROL

<RECHERCHE_TYPE>

' '

Permet de définir le type de recherche :

  • ' ' recherche dans tout l’enreg

  • 'T' recherche dans toutes les colonnes

  • 'S' recherche dans une sélection de colonnes définie dans Definir_Colonnes_Recherche

<RECHERCHE_KEY>

0

Touche pour la recherche. Recommandé : K_CTRL_F

<RECHERCHE_KEY_S>

0

Touche pour le suivant dans la recherche. Recommandé : K_F3

<RECHERCHE_KEY_P>

0

Touche pour le prcédent dans la recherche. Recommandé : K_SF3

<MESSINHIBES>

0

(tel qu'attendu par XmeListConsultdefault)

<TABSQL>

FALSE

Indicateur si on gère le tableau à partir d’un RecordSql (pour le mode dynamique, afin de détecter la fin du chargement)

<SELECTIONDYNAMIQUE>

False

Indicateur d’extension de selection pour un mode dynamique (touches K_CTRL_DOWN, K_SDOWN, K_CTRL_UP, K_SUP, K_CTRL_PGDN,K_SPGDN,K_CTRL_PGUP,K_SPGUP

<GESTIONOFFSET>

False

Indicateur gestion SQL de la pagination pour un mode dynamique

 

Liste des fonctions et procédures appelée dans le programme principal par le moteur a5pmtab

Le moteur, selon les options préalables, va faire appel à des fonctions ou procédures dans le programme principal.

Les prototypes sont disponibles en suivant ce lien Exemple fonction et procédures

A noter que le nom de chaque fonction/procédure est toujours impacté

  • par le mode (AP_Saisir ou AP_Interroger) mais que ce tableau illustre le mode recommandé, à savoir le AP_Saisir tableau et donc “Saisie” dans le nom (à remplacer par “Interro” le cas échéant)

  • par le nom du tableau, car il est recommandé d’utiliser le nommage des tableaux (plutôt que le numéro qui est aussi possible) dans la fonction “Creer_parametres”

Nom de la fonction/procédure

Type

Détails

Nom de la fonction/procédure

Type

Détails

DefProcSaisie_xxx_AvantBoucle

F

Dernière ouverture avant l'entrée dans la boucle xmeListConsult.
Permet en particulier de définir le pilotage initial du tableau.
Pour que le pilotage soit effectif, ToucheInitiale  et ToucheFinale doivent être différents de zéro ou espace

DefProcSaisir_xxx_Pilotage

F

Appelée avant chaque xmelistconsult dans la boucle de traitement du tableau.
Permet de définir le pilotage du tableau.
Pour que le pilotage soit effectif, ToucheInitiale  et ToucheFinale doivent être différents de zéro ou espace

DefProcSaisir_xxx_AvantConsult

F

Appelée avant chaque xmelistconsult dans la boucle de traitement du tableau.
Permet en particulier d'appeler la fonction de mise à jour du menu et de la barre d'outils.

DefProcSaisir_xxx_ArretSpecifique

F

Appelée après le XmeListConsult afin de traiter les points d'arrêt non pris en compte par défaut.
Le paramètre sortir doit être renseigné par la fonction afin de déterminer si on doit sortir (true) ou non (false) de la gestion du tableau.
La fonction doit renvoyer 0 si elle a traité un point d'arrêt. Elle doit renvoyer 1 si la gestion de l'événement est laissée au module de gestion de tableau.

DefProcSaisir_xxx_Abandon

F

Appelée sur abandon K_F9
La fonction doit renvoyer 0 si on doit arrêter la gestion du tableau, 1 sinon.

DefProcSaisir_xxx_Validation

F

Appelée sur validation K_F10
La fonction doit renvoyer 0 si on doit arrêter la gestion du tableau, 1 sinon.

DefProcSaisir_xxx_ModeFiche

F

Appelée sur K_F4

DefProcSaisir_xxx_Precedent

F

Appelée sur K_F2

DefProcSaisir_xxx_Suivant

F

Appelée sur K_SF2

DefProcSaisir_xxx_F11

F

Appelée sur K_F11

DefProcSaisir_xxx_Note

F

Appelée sur K_F6
Permet de renseigner les informations nécessaires à la consultation de la note.

DefProcSaisir_xxx_Joint

F

Appelée sur K_CTRL_F6
Permet de renseigner les informations nécessaires à la consultation des fichiers joints.

DefProcSaisir_xxx_ChargerNote

F

 

DefProcSaisir_xxx_ApresNote

F

 

DefProcSaisir_xxx_ChargerJoint

F

 

DefProcSaisir_xxx_ApresJoint

F

 

DefProcSaisir_xxx_Defaut

F

Appelée lors du traitement par défaut des événements avant l'appel au XmeListConsultDefProc.
Si la fonction retourne 0, XmeListConsultDefProc n'est pas éxécuté.

DefProcSaisir_xxx_Apres

F

Appelée après la gestion des événements, à la fin de la boucle de traitement
Si elle retourne une valeur différente de 0, on sort de la fonction de gestion de tableau.

DefProcSaisir_xxx_Fin

F

Appelée avant la sortie de la fonction de gestion du tableau.

DefProcSaisir_xxx_Recherche

F

 

DefProcSaisir_xxx_InitColRecherche

F

 

DefProcSaisir_xxx_InitTri

F

Appelée lors de l'initialisation du tableau
Permet d'initialiser les critères de tri sur le tableau. Toutes les colonnes précisées dans le paramètre colonne seront triées dans leur ordre d'apparition.
Par défaut aucun tri n'est positionné

DefProcSaisir_xxx_Init_Protection_Export

F

 

DefProcSaisir_xxx_InitFiltre

F

Appelée lors de l'initialisation du tableau
Permet d'initialiser filtres sur le tableau.
Pas encore implémenté.

DefProcSaisir_xxx_InitOption

F

Appelée lors de l'initialisation du tableau
Permet d'initialiser les options de couleur et d'ascenseur
Par défaut les valeurs suivantes sont utilisés :

  • sélection avec la couleur Windows et la bitmap dans la colonne d'état

  • pas de option de création en cliquant sur la colonne d'état

  • initialisation de l'ascenseur

  • pas de curseur dans la colonne treeinfo de l'arbre

DefProcSaisir_xxx_Charger_Dynamique_Debut_Init

F

Début du chargement dynamique, mais que le tout premier chargement ou rechargement

DefProcSaisir_xxx_Charger_Dynamique_debut

F

En début de chargement dynamique, en-dehors du premier Debut_Init

DefProcSaisir_xxx_Charger_Dynamique_recharge_init

F

 

DefProcSaisir_xxx_Charger_Dynamique_recharge_modif

F

 

DefProcSaisir_xxx_Charger_Dynamique

F

Chargement dynamique (a chaque ligne)

DefProcSaisir_xxx_Charger_Dynamique_SousNiveau

F

 

DefProcSaisir_xxx_Charger_Dynamique_fin

F

En fin de chargement dynamique, en-dehors du premier Fin_Init

DefProcSaisir_xxx_Charger_Dynamique_Fin_Init

F

En fin de chargement dynamique, mais que le tout premier chargement ou rechargement

DefProcSaisir_xxx_Charger

F

Appelée lors de l'initialisation du tableau
Permet au programme appelant de remplir le tableau.

DefProcSaisir_xxx_Couleur_Tableau_Actif

P

Appelée avant l'activation d'une couleur sur un tableau actif.

DefProcSaisir_xxx_Couleur_Colonne_Tableau_Actif

F

Appelée pour chaque colonne de chaque tableau
La fonction retourne la couleur à attribuer à COLUMNINFO.COULCOL

DefProcSaisir_xxx_Image_Colonne_Etat

F

 

DefProcSaisir_xxx_Click_Autre_Tableau

F

Appelée avant l'activation d'un clic sur un autre tableau.
Si la fonction retourne false, le clic sur l'autre tableau est invalidé.

DefProcSaisir_xxx_Saisie

F

 

DefProcSaisir_xxx_Copier

F

 

DefProcSaisir_xxx_Coller

F

 

DefProcSaisir_xxx_Delete

F

 

DefProcSaisir_xxx_AIV_Renvoyer_Id

F

 

DefProcSaisir_xxx_AIV_Maj_Ligne_fonctionel

F

 

DefProcSaisir_xxx_AIV_Maj_Ligne_tableau

F

 

DefProcSaisir_xxx_AIV_Sup_Branche_fonctionel

F

 

DefProcSaisir_xxx_List_Height_Changing

F

 

DefProcSaisir_xxx_Filtre_Av

F

 

DefProcSaisir_xxx_DeploiementNiveaux_Maj

P

 

DefProcSaisir_xxx_Defaut

P

 

DefProcSaisir_xxx_Apres

P

 

DefProcSaisir_xxx_Expanser

P

 

DefProcSaisir_xxx_Lecture_Ligne_tableau_Av

P

 

DefProcSaisir_xxx_Lecture_Ligne_tableau_Ap

P

 

DefProcSaisir_xxx_Rupture_Ligne_tableau

P

 

DefProcSaisir_xxx_Rupture_Ligne_tableau_Av

P

 

DefProcSaisir_xxx_Rupture_Ligne_tableau_Ap

P

 

Liste des fonctions et procédures appelables par le programme principal

AP_Saisir_tableau est le principal point d’entrée qui permet d’utiliser a5pmatb, mais il existe plusieurs fonctions ou procédures présentes dans a5pmtab, qui ont un usage pour le programme. Le nom identifie les fonctions/procédures publiques qui commencent par AP_

Nom de la fonction/procédure (module a5pmtab.dhop)

Détails

Nom de la fonction/procédure (module a5pmtab.dhop)

Détails

AP_Trier_Tableau

Pour rappeler le tri du tableau, par exemple après un rechargement

AP_Modifier_Tri_Tableau

Pour modifier le tri courant du tableau

AP_Modifier_ProprieteLigne_HorsTri

Affecte la propriété à la ligne COURANTE du tableau, afin de gérer un nom de propriété et permettre un tri hors tri naturel (voir aide ListSetProp). Exemple : Prop='CUMUL' pour une ligne qui doit toujours être en fin de tableau car la comparaison ' ' avec 'CUMUL' met la ligne 'CUMUL' en dernier

AP_Finir_tableau

Modifie le contexte du tableau pour le marqué comme “terminé”

AP_Annule_Finir_tableau

Modifie le contexte du tableau pour revenir en mode actif. L'appel à cette procédure sortira de la boucle avant le prochain Xmelistconsult
Le retour sera positionné à 3

AP_Choisir_tableau

Choix du tableau courant dans le programme pour le manipuler

AP_Sauvegarder_contexte

Sauvegarde du contexte du tableau courant (forcément le courant, ne permet pas de changer)

AP_Effacer_Filtre

Efface un filtre sur colonnes

AP_Recharge_tableau

Recharge un tableau (avec rappel des fonctions de chargement)

AP_Id

Retourne l'Id du tableau courant de A5PMTAB

AP_Liste_contexte

REtourne l’Id du contexte courant de A5PMTAB

AP_Liste_Filtre

Positionne la liste de filtre selon le tableau passé en Id

AP_Liste_tri

Positionne la liste de tri selon le tableau passé en Id

AP_Liste_tri_AjoutTriForce

Ajout le champ 'enregM'.'champM' de la liste xme en forcé en tant que colonne de tri (!la colonne doit être dans le tableau xme)

AP_Liste_nomTableau

Retourne le nom du tableau courant

AP_Liste_GestionDynamique

Retourne l’indicateur de gestion dynamique du tableau passé en Id

AP_ListeCourante_GestionDynamique

Idem AP_Liste_GestionDynamique pour le tableau courant

AP_Deploiement_des_Niveaux

Déploire les niveaux pour un arbre

AP_DefProcSaisie_Recherche

(ne pas utiliser)

AP_Ajouter_Liste_rupture

Ruptures pour la construction d’arbres.

Voir GTTQ632_sql

AP_Init_Liste_rupture

AP_Ajouter_Niveau_rupture

AP_Modifier_Rech_Tableau

(ne pas utiliser)

 

Compléments d’informations

Export (via a5pm000)

L’export tableur d’a5pmtab passe par le module a5pm000

Voir la documentation à ce sujet et les ouvertures spécifiques A5PM000 - Export Excel

Documentation PDF

Une documentation sur les premiers usages d’a5pmtab est disponible dans la pièce jointe suivante