Code source wiki de Visual - Arborescence

Modifié par Isabelle FERRIERE le 2015/10/12 15:31

Afficher les derniers auteurs
1
2 {{code language="none"}}
3 * Arborescence
4 NUM_BIN_4 WID_NOEUD
5 NUM_BIN_4 WID_NOEUD_A_SUPP
6 NUM_BIN_4 WID_PARENT
7 NUM_BIN_4 WID_PARENT_1
8 NUM_BIN_2 WPOS_NOEUD
9 ALPHA(250) WTXT_NOEUD
10  
11 * Images
12 NUM_BIN_4 WIMG(4)
13 {{/code}}
14
15
16
17 (% style="line-height: 1.42857;" %)**__* Vider l'arborescence__**(%%)
18
19 {{code language="none"}}
20 WID_NOEUD = _ARB_RACINE
21 APPELER_METHODE ARBO SUPPRIMER WID_NOEUD NB2
22
23 {{/code}}
24
25
26
27 __*** Expanser l'arborescence à l'initialisation**__
28
29
30 {{code language="none"}}
31 * Une fois l'arborescence remplie, expanser le noeud racine :
32 APPELER_METHODE ID_FEN0.ARBO EXPANSER ID_RACINE WEXPANSE RETOUR_NB2
33
34 {{/code}}
35
36
37
38
39 {{hardis-panel title="Exemple 1 : CALENDRIER"}}
40 Remplissage de l'arborescence ARBO à partir de la liste des mois de l'année (WLST_MOIS),
41
42 puis séquentiellement avec les jours de la semaine.
43 {{/hardis-panel}}
44
45
46
47
48
49 {{code language="none"}}
50 **********************************************
51 * Ajouter le noeud racine : MOIS
52 WID_PARENT = _ARB_RACINE
53 WTXT_NOEUD = 'MOIS'
54 WPOS_NOEUD = _ARB_POS_FIN
55 APPELER_METHODE ARBO AJOUTER WID_PARENT WPOS_NOEUD WTXT_NOEUD *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
56  
57 SI NB2 = 1
58    * On va ajouter des noeuds enfants à MOIS
59    * Donc, on mémorise l'ID du noeud MOIS, qui devient noeud parent des mois de l'année
60    WID_PARENT_1 = WID_NOEUD
61  
62    LECTURE_LST WLST_MOIS
63       * On va ajouter un noeud correspondant à chaque mois sous le parent MOIS
64       WID_PARENT = WID_PARENT_1
65       WPOS_NOEUD = _ARB_POS_FIN
66       WTXT_NOEUD = WMOIS
67       APPELER_METHODE ARBO AJOUTER WARBO_ID_PARENT WPOS_NOEUD WTXT_NOEUD *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
68  
69       SI NB2 = 1
70          WID_PARENT = WID_NOEUD
71  
72          * Sous le noeud du mois de l'année, on va ajouter 1 noeud enfant :
73          *  - le n° du mois
74          WPOS_NOEUD = _ARB_POS_FIN
75          WTXT_NOEUD = &NUM_ALPHA(WMOIS_NO)
76          SI WMOIS_NO <= 9
77             WTXT_NOEUD = '0' /// WTXT_NOEUD
78          FIN
79          APPELER_METHODE ARBO AJOUTER WARBO_ID_PARENT WPOS_NOEUD WTXT_NOEUD *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
80  
81          * A ce noeud "n° du mois", on a ajouter 1 noeud frère :
82          *  - le nb de jours
83          SI NB2 = 1
84             WID_PARENT = WID_NOEUD
85  
86             WPOS_NOEUD = _ARB_POS_APRES
87             WTXT_NOEUD = &NUM_ALPHA(WNB_JOURS)
88             WTXT_NOEUD = WTXT_NOEUD /// ' jours'
89             APPELER_METHODE ARBO AJOUTER WID_PARENT WPOS_NOEUD WTXT_NOEUD *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
90          FIN
91       FIN
92    FIN_LECTURE_LST
93 FIN
94  
95 **********************************************
96 * On ajoute un 2nd noeud racine : JOURS DE LA SEMAINE
97 WID_PARENT = _ARB_RACINE
98 WTXT_NOEUD = 'JOURS DE LA SEMAINE'
99 WPOS_NOEUD = _ARB_POS_FIN
100 APPELER_METHODE ARBO AJOUTER WID_PARENT WPOS_NOEUD WTXT_NOEUD *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
101  
102 * On va ajouter un noeud correspondant à chaque jour sous le parent JOURS DE LA SEMAINE
103 SI NB2 = 1
104    WID_PARENT = WID_NOEUD
105    WPOS_NOEUD = _ARB_POS_FIN
106    WTXT_NOEUD = 'Lundi'
107    APPELER_METHODE ARBO AJOUTER WID_PARENT WPOS_NOEUD WTXT_NOEUD *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
108   
109    WID_PARENT = WID_NOEUD
110    WPOS_NOEUD = _ARB_POS_APRES
111    WTXT_NOEUD = 'Mardi'
112    APPELER_METHODE ARBO AJOUTER WID_PARENT WPOS_NOEUD WTXT_NOEUD *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
113  
114    WID_PARENT = WID_NOEUD
115    WPOS_NOEUD = _ARB_POS_APRES
116    WTXT_NOEUD = 'Mercredi'
117 APPELER_METHODE ARBO AJOUTER WID_PARENT WPOS_NOEUD WTXT_NOEUD *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
118  
119    WID_PARENT = WID_NOEUD
120    WPOS_NOEUD = _ARB_POS_APRES
121    WTXT_NOEUD = 'Jeudi'
122    APPELER_METHODE ARBO AJOUTER WID_PARENT WPOS_NOEUD WTXT_NOEUD *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
123   
124    WID_PARENT = WID_NOEUD
125    WPOS_NOEUD = _ARB_POS_APRES
126    WTXT_NOEUD = 'Vendredi'
127    APPELER_METHODE ARBO AJOUTER WID_PARENT WPOS_NOEUD WTXT_NOEUD *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
128  
129    WID_PARENT = WID_NOEUD
130    WPOS_NOEUD = _ARB_POS_APRES
131    WTXT_NOEUD = 'Samedi'
132    APPELER_METHODE ARBO AJOUTER WID_PARENT WPOS_NOEUD WTXT_NOEUD *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
133  
134    WID_PARENT = WID_NOEUD
135    WPOS_NOEUD = _ARB_POS_APRES
136    WTXT_NOEUD = 'Dimanche'
137    APPELER_METHODE ARBO AJOUTER WID_PARENT WPOS_NOEUD WTXT_NOEUD *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
138  
139    WID_PARENT = WARBO_ID_NOEUD
140 FIN
141 {{/code}}
142
143
144
145 [[image:arbo1.png]][[image:arbo2.png]][[image:arbo3.png]]
146
147
148
149 {{hardis-panel title="Exemple 2 : NOMBRES"}}
150 Remplissage de l'arborescence ARBO à partir de la liste des nombres (WLST_NB) de 1 à 1000, écrits en chiffres (WNB_CH) et en lettres (WNB_LTR).
151 {{/hardis-panel}}
152
153
154
155
156
157 {{code language="none"}}
158 * Ajouter le noeud racine : NOMBRES
159 WID_PARENT = _ARB_RACINE
160 WTXT_NOEUD = 'NOMBRES'
161 WPOS_NOEUD = _ARB_POS_FIN
162 APPELER_METHODE ARBO AJOUTER WID_PARENT WPOS_NOEUD WTXT_NOEUD *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
163  
164 SI NB2 = 1
165    * On mémorise l'ID du noeud racine NOMBRES, qui sera parent pour le nombre 1
166    WID_PARENT = WID_NOEUD
167  
168    LECTURE_LST WLST_NB
169       * On initialise le texte du noeud : le nombre aligné à droite, suivi de sa valeur en texte
170       WTXT_NOEUD = &NUM_ALPHA(WNB_CH)
171       SI WNB_CH <= 9
172          WTXT_NOEUD = '   ' // WTXT_NOEUD
173       SINON_SI WNB_CH <= 99
174          WTXT_NOEUD = '  ' // WTXT_NOEUD
175       SINON_SI WNB_CH <= 999
176          WTXT_NOEUD = ' ' // WTXT_NOEUD
177       FIN
178       WTXT_NOEUD = WTXT_NOEUD /// ' -> ' // WNB_LTR
179  
180       * Si nombre 1, on va insérer un noeud enfant
181       * Pour les autres nombres, on va insérer un noeud frère
182       SI WNB_CH = 1
183          WPOS_NOEUD = _ARB_POS_FIN
184       SINON
185          WPOS_NOEUD = _ARB_POS_APRES
186       FIN
187  
188       * On insère le noeud
189       APPELER_METHODE ARBO AJOUTER WID_PARENT WPOS_NOEUD WTXT_NOEUD *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
190  
191       * On mémorise l'ID du dernier noeud inséré afin de lui ajouter un noeud frère
192       SI NB2 = 1
193          WID_PARENT = WID_NOEUD
194       FIN
195    FIN_LECTURE_LST
196 FIN
197 {{/code}}
198
199
200
201 [[image:arbo4.png]][[image:arbo5.png]]
202
203
204
205 {{hardis-panel title="Exemple 3 : ARBORESCENCE AVEC IMAGE"}}
206 Les noeuds de l'aborescence sont précédés d'une image.
207
208 Le texte de chaque noeud est d'une couleur différente.
209 {{/hardis-panel}}
210
211
212
213
214
215
216 {{code language="none"}}
217 * Initialisation de la liste d'images
218 WIMG = 0
219 APPELER_METHODE ARBO AJOUTER_IMAGE 'Printemps.jpg' WIMG(1) NB2
220 APPELER_METHODE ARBO AJOUTER_IMAGE 'Eté.jpg' WIMG(2) NB2
221 APPELER_METHODE ARBO AJOUTER_IMAGE 'Automne.jpg' WIMG(3) NB2
222 APPELER_METHODE ARBO AJOUTER_IMAGE 'Hiver.jpg' WIMG(4) NB2
223  
224 * Initialisation de l'arborescence ARBO
225 APPELER_METHODE ARBO SUPPRIMER _ARB_RACINE NB2
226 APPELER_METHODE ARBO AJOUTER _ARB_RACINE _ARB_POS_FIN 'Saisons' *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
227 APPELER_METHODE ARBO FIXER_COULEUR_TEXTE WID_NOEUD _ARB_COUL_SYSTEME NB2
228 APPELER_METHODE ARBO FIXER_IMAGE WID_NOEUD 0 _ARB_TOUS_ETATS NB2
229  
230 APPELER_METHODE ARBO AJOUTER WID_NOEUD _ARB_POS_FIN 'Printemps' *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
231 APPELER_METHODE ARBO FIXER_COULEUR_TEXTE WID_NOEUD _ARB_COUL_VERTFONCE NB2
232 APPELER_METHODE ARBO FIXER_IMAGE WID_NOEUD WIMG(1) _ARB_TOUS_ETATS NB2
233  
234 APPELER_METHODE ARBO AJOUTER WID_NOEUD _ARB_POS_APRES 'Eté' *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
235 APPELER_METHODE ARBO FIXER_COULEUR_TEXTE WID_NOEUD _ARB_COUL_BLEUFONCE NB2
236 APPELER_METHODE ARBO FIXER_IMAGE WID_NOEUD WIMG(2) _ARB_TOUS_ETATS NB2
237   
238 APPELER_METHODE ARBO AJOUTER WID_NOEUD _ARB_POS_APRES 'Automne' *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
239 APPELER_METHODE ARBO FIXER_COULEUR_TEXTE WID_NOEUD _ARB_COUL_ROUGEFONCE NB2
240 APPELER_METHODE ARBO FIXER_IMAGE WID_NOEUD WIMG(3) _ARB_TOUS_ETATS NB2
241   
242 APPELER_METHODE ARBO AJOUTER WID_NOEUD _ARB_POS_APRES 'Hiver' *AUCUN *AUCUN *AUCUN WID_NOEUD NB2
243 APPELER_METHODE ARBO FIXER_COULEUR_TEXTE WID_NOEUD _ARB_COUL_GRISFONCE NB2
244 APPELER_METHODE ARBO FIXER_IMAGE WID_NOEUD WIMG(4) _ARB_TOUS_ETATS NB2
245 {{/code}}
246
247
248
249 [[image:arbo6.png]]
250
251 (((
252 == Articles connexes ==
253 )))
254
255 Les articles connexes apparaissent ici en fonction des étiquettes que vous avez sélectionnées. Cliquez pour modifier la macro et ajouter ou modifier des étiquettes.
256
257 {{liveData sort="doc.date:desc" source="liveTable" properties="doc.title,doc.date,doc.author" description="Recently updated" limit="5" filters="tag=visual arborescence" sourceParameters="translationPrefix=platform.index."}}{{/liveData}}
258