Code source wiki de Liste en mise à jour avec liste de valeurs paramétrable
Modifié par Julien EYMERY le 2015/08/31 11:08
Afficher les derniers auteurs
| author | version | line-number | content |
|---|---|---|---|
| 1 | ((( | ||
| 2 | = Introduction = | ||
| 3 | ))) | ||
| 4 | |||
| 5 | (% style="color: rgb(0,0,0);" %)Le but est d'avoir une (% style="color: rgb(255,102,0);" %)**liste LST**(%%) en mise à jour avec une **(% style="color: rgb(255,102,0);" %)liste valeur LSV(%%)** en colonne de la liste et ayant des éléments différents en fonction de la valeur d'une **(% style="color: rgb(255,102,0);" %)colonne COL(%%)** de la liste. | ||
| 6 | Sur la dernière **(% style="color: rgb(255,102,0);" %)colonne COL_DER(%%)** en modification de la dernière ligne, la **(% style="color: rgb(255,102,0);" %)touche Entrée(%%)**, doit ajouter une ligne.(%%) | ||
| 7 | ((( | ||
| 8 | = Mise en œuvre = | ||
| 9 | ))) | ||
| 10 | |||
| 11 | (% style="color: rgb(0,0,0);" %)En fin d'initialisation de la liste, il faut appeler la **(% style="color: rgb(255,102,0);" %)méthode Fixer_Mode_Execution(%%)** avec la (% style="color: rgb(255,102,0);" %)**constante _Lst_Mode_Saisie**(% style="color: rgb(0,51,102);" %), p(%%)(%%)our pouvoir être directement en saisie sur les cellules de la liste. | ||
| 12 | (%%) | ||
| 13 | |||
| 14 | |||
| 15 | {{code title="Exemple" language="none"}} | ||
| 16 | * Après initialisation de la liste et de la LSV en fonction de COL. | ||
| 17 | APPELER_METHODE LST FIXER_MODE_EXECUTION _LST_MODE_SAISIE *VRAI W_RET_N2 | ||
| 18 | {{/code}} | ||
| 19 | |||
| 20 | |||
| 21 | |||
| 22 | Sur l'**(% style="color: rgb(255,102,0);" %)événement(%%)** (% style="color: rgb(0,0,0);" %)**(% style="color: rgb(255,102,0);" %)gain focus(%%)**(%%) de la liste (% style="color: rgb(255,102,0);" %)**LSV**(%%), il faut charger la liste de la (% style="color: rgb(255,102,0);" %)**LSV**(%%) en fonction de la (% style="color: rgb(0,0,0);" %)**(% style="color: rgb(255,102,0);" %)COL(%%)**(%%) décideuse. Pour cela il faut récupérer la valeur de cette (% style="color: rgb(0,0,0);" %)**(% style="color: rgb(255,102,0);" %)COL(%%)**(%%) avec la (% style="color: rgb(0,0,0);" %)**(% style="color: rgb(255,102,0);" %)méthode(%%)(% style="color: rgb(255,102,0);" %)Recuperer_Valeur_Colonnes(%%)**(%%). | ||
| 23 | |||
| 24 | |||
| 25 | |||
| 26 | {{code title="LSV:GainFocus" language="none"}} | ||
| 27 | APPELER_METHODE LST RECUPERER_VALEUR_COLONNES 0 W_RET_BO | ||
| 28 | * Et donc tester ici la valeur COL pour charger la LSV en fonction de la valeur de COL. | ||
| 29 | * Note : le paramètre "0" (zéro) précise la ligne courante. | ||
| 30 | {{/code}} | ||
| 31 | |||
| 32 | |||
| 33 | (% style="color: rgb(0,0,0);" %) | ||
| 34 | Sur le changement de la valeur de la **(% style="color: rgb(255,102,0);" %)COL(%%)** décideuse, il faut charger la **(% style="color: rgb(255,102,0);" %)LSV(%%)** de ligne correspondante en fonction de la valeur de la **(% style="color: rgb(255,102,0);" %)COL(%%)**. | ||
| 35 | Pour cela il faut utiliser les **(% style="color: rgb(255,102,0);" %)méthodes Recuperer_Valeur_Colonnes(%%)** et **(% style="color: rgb(255,102,0);" %)Recuperer_Proprietes_Colonnes(%%)** puis ayant chargé la **(% style="color: rgb(255,102,0);" %)LSV(%%)** en fonction de **(% style="color: rgb(255,102,0);" %)COL(%%)**, utiliser les **(% style="color: rgb(255,102,0);" %)méthodes(%%)(% style="color: rgb(255,102,0);" %)Fixer_Proprietes_Colonnes(%%)** et **(% style="color: rgb(255,102,0);" %)Fixer_Valeur_Colonnes(%%)**. | ||
| 36 | (%%) | ||
| 37 | |||
| 38 | |||
| 39 | {{code title="COL:ChangementValeur" language="none"}} | ||
| 40 | APPELER_METHODE LST RECUPERER_VALEUR_COLONNES 0 W_RET_BO | ||
| 41 | APPELER_METHODE LST RECUPERER_PROPRIETES_COLONNES 0 W_RET_BO | ||
| 42 | * | ||
| 43 | * En fonction de la valeur de la colonne COL, on charge ici la LSV et la valeur visible de la LSV. | ||
| 44 | * | ||
| 45 | APPELER_METHODE LST FIXER_PROPRIETES_COLONNES 0 W_RET_BO | ||
| 46 | APPELER_METHODE LST FIXER_VALEUR_COLONNES 0 W_RET_BO | ||
| 47 | * Note : le paramètre "0" (zéro) précise la ligne courante. | ||
| 48 | {{/code}} | ||
| 49 | |||
| 50 | |||
| 51 | (% style="color: rgb(0,0,0);" %) | ||
| 52 | Pour savoir si on se trouve sur **(% style="color: rgb(255,102,0);" %)COL_DER(%%)** de la **(% style="color: rgb(255,102,0);" %)LST(%%)** et de sa dernière ligne, afin que la **(% style="color: rgb(255,102,0);" %)touche(%%)(% style="color: rgb(255,102,0);" %)Entrée(%%)** ajoute une ligne, il faut mémoriser cette information sur un **(% style="color: rgb(255,102,0);" %)gain focus(%%)** et gérer une interception de la **(% style="color: rgb(255,102,0);" %)touche Entrée(%%)** via un **(% style="color: rgb(255,102,0);" %)menu(%%)** ayant cette touche en raccourci secondaire dans les touches accélératrices.(%%) | ||
| 53 | |||
| 54 | |||
| 55 | |||
| 56 | {{code title="COL_DER:GainFocus" language="none"}} | ||
| 57 | W_NOM_COL = 'COL_DER' | ||
| 58 | {{/code}} | ||
| 59 | |||
| 60 | |||
| 61 | |||
| 62 | {{code title="COL_DER:PerteFocus" language="none"}} | ||
| 63 | W_NOM_COL = *BLANK | ||
| 64 | {{/code}} | ||
| 65 | |||
| 66 | |||
| 67 | |||
| 68 | {{code title="COL_DER:MNU_TOUCHE_ENTREE" language="none"}} | ||
| 69 | SI W_NOM_COL = 'COL_DER' | ||
| 70 | SI LST:NUMERO_LIGNE_COURANTE = &NBR_ELT(LST:LISTE) | ||
| 71 | * Renseignement des valeurs initiales des colonnes de la liste | ||
| 72 | INSERER_ELT LST:LISTE | ||
| 73 | * Appel de la méthode Mettre_Focus sur la première colonne en saisie, | ||
| 74 | * avec en paramètre le numéro de la dernière ligne insérée. | ||
| 75 | FIN | ||
| 76 | FIN | ||
| 77 | {{/code}} | ||
| 78 | |||
| 79 | |||
| 80 | (% style="color: rgb(0,0,0);" %)(% style="color: rgb(0,0,0);" %) | ||
| 81 | Sur un **(% style="color: rgb(255,102,0);" %)Bouton de Validation(%%)**, nous pourrons lire la liste **(% style="color: rgb(255,102,0);" %)LST(%%)** complète, afin d'effectuer la mise à jour de la Base de Données. | ||
| 82 | (%%)(%%) | ||
| 83 | |||
| 84 | |||
| 85 | {{code title="BTN_VALIDER:BoutonGaucheClic" language="none"}} | ||
| 86 | LECTURE_LST LST | ||
| 87 | * Création / Mise à jour de la Base de Données en fonction des informations de la liste LST. | ||
| 88 | FIN_LECTURE_LST | ||
| 89 | {{/code}} | ||
| 90 | |||
| 91 |