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
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 |
---|---|---|
<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_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 |
---|---|---|
DefProcSaisie_xxx_AvantBoucle | F | Dernière ouverture avant l'entrée dans la boucle xmeListConsult. |
DefProcSaisir_xxx_Pilotage | F | Appelée avant chaque xmelistconsult dans la boucle de traitement du tableau. |
DefProcSaisir_xxx_AvantConsult | F | Appelée avant chaque xmelistconsult dans la boucle de traitement du tableau. |
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. |
DefProcSaisir_xxx_Abandon | F | Appelée sur abandon K_F9 |
DefProcSaisir_xxx_Validation | F | Appelée sur validation K_F10 |
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 |
DefProcSaisir_xxx_Joint | F | Appelée sur K_CTRL_F6 |
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. |
DefProcSaisir_xxx_Apres | F | Appelée après la gestion des événements, à la fin de la boucle de traitement |
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 |
DefProcSaisir_xxx_Init_Protection_Export | F |
|
DefProcSaisir_xxx_InitFiltre | F | Appelée lors de l'initialisation du tableau |
DefProcSaisir_xxx_InitOption | F | Appelée lors de l'initialisation du tableau
|
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 |
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 |
DefProcSaisir_xxx_Image_Colonne_Etat | F |
|
DefProcSaisir_xxx_Click_Autre_Tableau | F | Appelée avant l'activation d'un clic sur un autre tableau. |
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 |
---|---|
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 |
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