Modifié par Nicolas Schreiber le 2026/01/12 15:46

Depuis la version 1.2
modifié par admin admin
sur 2025/05/26 14:42
Commentaire de modification : Update document after refactoring.
À la version 17.1
modifié par Nicolas Schreiber
sur 2026/01/12 15:46
Commentaire de modification : Il n'y a aucun commentaire pour cette version

Résumé

Détails

Propriétés de la Page
Titre
... ... @@ -1,1 +1,1 @@
1 -Fonctions avancées : paramétrage des exports tabulés paramétrables
1 +Fonctions avancées : modification des exports tabulés paramétrables
Parent
... ... @@ -1,1 +1,1 @@
1 -1_Fonctionnalités.2_Administration.Menus Administration - Paramétrage.Modèles.WebHome
1 +2_Administration.Administration fonctionnelle.Gérer les modèles ETP.WebHome
Auteur du document
... ... @@ -1,1 +1,1 @@
1 -XWiki.admin
1 +XWiki.NSR
Contenu
... ... @@ -2,11 +2,10 @@
2 2  {{toc/}}
3 3  {{/box}}
4 4  
5 -page en cours de construction
6 6  
7 7  = A savoir avant de commencer =
8 8  
9 -L'export de données muséologiques vers un tableur met en évidence la particularité de leur organisation technique.
8 +L'export de données muséologiques vers un tableur (format csv ou excel natif) met en évidence la particularité de leur organisation technique.
10 10  
11 11  Pour pouvoir répondre aux exigence scientifiques de leur description, il n'est pas possible d'utiliser des grilles de saisie de type tableur, avec juste des lignes et des colonnes, il faudrait un nombre inifini de colonnes.
12 12  
... ... @@ -82,8 +82,7 @@
82 82  
83 83  //Exemple ~://
84 84  
85 -(% style="text-align:center" %)
86 -[[image:1698221408368-344.png||class="img-thumbnail"]]
84 +[[image:1698221408368-344.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
87 87  
88 88  La ligne ci dessous génèrera une colonne dont le titre sera égal au label et les contenus alimentés par le champs cité dans name
89 89  
... ... @@ -97,28 +97,23 @@
97 97  * **name :** nom interne du champ dans la table Flora
98 98  * **label : **intitulé qu'aura la colonne dans le fichier csv
99 99  
100 -(% style="text-align:center" %)
101 -[[image:1698233535559-410.png||class="img-thumbnail"]]
98 +[[image:1698233535559-410.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
102 102  
103 103  === Champs texte libre multiligne (avec retours à la ligne) ===
104 104  
105 -(% style="text-align:center" %)
106 -[[image:1698220705279-359.png||class="img-thumbnail"]]
102 +[[image:1698220705279-359.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
107 107  
108 108  **<field name='PRECISION_UE'  label='Précisions UE '/> **aura pour résultat
109 109  
110 -(% style="text-align:center" %)
111 -[[image:1698220966238-507.png||class="img-thumbnail"]]
106 +[[image:1698220966238-507.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
112 112  
113 113  === Champs multivalués liés à des listes, thésaurus ou table d'autorité ===
114 114  
115 -(% style="text-align:center" %)
116 -[[image:1698220773700-234.png||class="img-thumbnail"]]
110 +[[image:1698220773700-234.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
117 117  
118 118  **<field name='INTERPRETATION'  label='Interpretation'/> **aura pour résultat
119 119  
120 -(% style="text-align:center" %)
121 -[[image:1698221043701-405.png||class="img-thumbnail"]]
114 +[[image:1698221043701-405.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
122 122  
123 123  (% class="box infomessage" %)
124 124  (((
... ... @@ -134,10 +134,9 @@
134 134  * **dataMultiValueSeparator : **separateur de champ multivalue (Si non defini c'est celui qui est defini dans l'attribut   multiValueSeparator du tag 'table', ou si non defini c'est '/' slash par defaut)
135 135  * **dataAfter : **separateur apres la donnee du champ répété en cas de multivaluation   (Chaine vide si non defini)
136 136  
137 -**Exemple : <field name='INTERPRETATION'  label='Interpretation'  dataBefore="texte avant " dataAfter=" texte aprés" dataMultiValueSeparator=" ; "/>**
130 +**Exemple : <field name='INTERPRETATION'  label='Interpretation'  dataBefore="texte avant : " dataAfter=" (texte aprés)" dataMultiValueSeparator=" ; "/>**
138 138  
139 -(% style="text-align:center" %)
140 -[[image:1698221647528-156.png||class="img-thumbnail"]]
132 +[[image:1698221647528-156.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
141 141  
142 142  (% class="box infomessage" %)
143 143  (((
... ... @@ -146,8 +146,7 @@
146 146  
147 147  **<field name='INTERPRETATION'  label='Interpretation'  dataBefore="texte avant : " dataAfter=" (texte aprés)" dataMultiValueSeparator="\n"/>**
148 148  
149 -(% style="text-align:center" %)
150 -[[image:1698221798735-336.png||class="img-thumbnail"]]
141 +[[image:1698221798735-336.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
151 151  
152 152  == Exporter une valeur constante ==
153 153  
... ... @@ -155,8 +155,7 @@
155 155  
156 156  **<constant name="C1" label="Constante1"  dataDefValue="myConstante1" />**
157 157  
158 -(% style="text-align:center" %)
159 -[[image:1698229509017-535.png||class="img-thumbnail"]]
149 +[[image:1698229509017-535.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
160 160  
161 161  == Exporter un ou plusieurs champs d'une table d'autorité liée ==
162 162  
... ... @@ -211,8 +211,7 @@
211 211  **Question : **pourquoi y a t'il parfois des virgule et des points virgules entre chaque valeur de la colonne Type opération.. d'ou viennent ces points virgules ?
212 212  **Réponse : **en fait L**e champ Opération(s) dans la table Stratigraphie n'est pas multivalué mais il est positionné dans un bloc répétable**
213 213  
214 -(% style="text-align:center" %)
215 -[[image:1698226080684-439.png||height="478" width="1071"]]
204 +[[image:1698226080684-439.png||data-xwiki-image-style-alignment="center" height="478" width="1071"]]
216 216  
217 217  **Rappel : **
218 218  Dans les paramétrages généraux du fichier etp on a défini **compressChar=" ; " **//caracteres utilisés lors de concaténation automatiques de données dans des blocs répétables. c'est donc lui qui est utilisé dans le cas présent . les points virgules marquent donc les séparations de blocs répétables//
... ... @@ -219,8 +219,7 @@
219 219  Et on a aussi défini **multiValueSeparator=', ' **//caracteres utiliser pour concaténer les données des champs multivaluées virgule+espace c'est donc lui qui est utilisé dans le cas présent pour lexport du champ TYpe Opération de la table Opération..champ qui est multivaléu dans ladite table//
220 220  
221 221  
222 -(% style="text-align:center" %)
223 -[[image:1698226465622-838.png||height="285" width="966"]]
211 +[[image:1698226465622-838.png||data-xwiki-image-style-alignment="center" height="285" width="966"]]
224 224  
225 225  
226 226  Cet exemple illustre la complexité de manipulation des données muséologique car les blocs répétables et champs multivalués y sont légion
... ... @@ -233,8 +233,7 @@
233 233  
234 234  //Exemple : concaténer tous les champs de Données intrinsèque d'une notice Stratigraphie dans une seule colonne//
235 235  
236 -(% style="text-align:center" %)
237 -[[image:1698234060502-846.png]]
224 +[[image:1698234060502-846.png||data-xwiki-image-style-alignment="center"]]
238 238  
239 239  De facto il sera judicieux
240 240  
... ... @@ -241,6 +241,8 @@
241 241  * de ne pas perdre les libellés de champs (on les indiquera dans **dataBefore**)
242 242  * de n'avoir des séparateurs de champs que si un au moins des champs précédents est non vide...sinon le contenu de la colonne commencera par un séparateur (on les indiquera dans **dataJoinSeparator**)
243 243  
231 +La concat peut etre vue comme une "variable" que l'on va pouboir utiliser à sa guise
232 +
244 244  == A minima ==
245 245  
246 246  on va donc créer une "boite" qui va assembler les données de la colonne en concaténant les champs cités
... ... @@ -258,7 +258,7 @@
258 258  
259 259  == Ajout de données avant - aprés ==
260 260  
261 -Cette "boite" concat est vue comme un "groupe" de données. a ce titre il est possible de lui adjoindre les paramétres suivants
250 +Cette "boite" concat est vue comme un "groupe" de données. a ce titre il est possible de lui adjoindre les paramètres suivants
262 262  
263 263  * **groupDataBefore **: donnee avant le groupe
264 264  * **groupDataAfter **: donnee apres le groupe
... ... @@ -277,11 +277,11 @@
277 277   <field name='DESCRIPTION_INTRINSEQUE'  dataJoinSeparator="\n"/>
278 278  **</concat>**
279 279  
280 -//A noter les \n qui se transforment en retour à la ligne dans la colonne et le datajoinSeparator qui poermet de choisir si on veut un point virgule ou un retour ligne entre chaque champs//
269 +//A noter les \n qui se transforment en retour à la ligne dans la colonne et le datajoinSeparator qui permet de choisir si on veut un point virgule ou un retour ligne entre chaque champs//
281 281  
282 282  [[image:1698235351939-869.png]]
283 283  
284 -== Ajout de données par défaut entre les champs du groupe ==
273 +== Ajout de données par défaut entre les champs de la concat ==
285 285  
286 286  Dans l'exemple ci-aprés, on a positionnés les séparateurs de champs dans chacun des champs avec le DataJoinSeparator
287 287  
... ... @@ -310,7 +310,8 @@
310 310  
311 311  (% class="box infomessage" %)
312 312  (((
313 -les notions de subGroupDataBefore et subGroupDataAfter peuvent aussi etre paramétrées mais n'ont pas grand intéret dans les concat, elles seront plutôt utilisées dans le cas des blocs répétables
302 +Les notions de subGroupDataBefore et subGroupDataAfter peuvent aussi etre paramétrées mais n'ont pas grand intéret dans les concat, elles seront plutôt utilisées dans le cas des blocs répétables.
303 +Les concat ont donc un comportement trés similiare aux groupes de groupDataType = "group", à la différence qu'on peut y mettre n'importe quel champ dedans
314 314  )))
315 315  
316 316  = Export des champs d'un bloc répétable =
... ... @@ -319,21 +319,40 @@
319 319  
320 320  Globalement il ressemblera beaucoup à un concat, à la différence prés qu'un concat ne se joue qu'une seule fois, alors que le bloc de champs se jouera dans l'export autant de fois qu'il y a de groupe saisis dans la notice courante
321 321  
322 -(% class="box infomessage" %)
323 -(((
324 324  On peut se representer cela comme une boucle d'éxécution qui tournera tant qu'il existe encore un bloc répété à exporter
325 -)))
326 326  
327 327  //Exemple avec un bloc de champ répétable contenant 3 champs avec une saisie lacunaire (il est rare que tous les champs soient remplis dans un bloc)//
328 328  
329 -(% style="text-align:center" %)
330 -[[image:1698249410427-526.png||class="img-thumbnail"]]
316 +[[image:1768226297481-108.png]]
331 331  
332 -le paramétrage de l'export sera défini tel que :
318 +== groupDataType~=group ==
333 333  
320 +On va boucler sur les blocs répétables en concaténant les champs qu'il contient, et chaque bloc sera concaténé au précédent (avec groupDataSubgroupSeparator). chaque "bloc" est vu comme un subGroup.
321 +
322 +Dans le cas des groupDataType=group, les subGroup sont regroupés dans une seule "variable"
323 +
324 +il sera possible de définir les data de concaténation ci dessous
325 +
326 + **groupDataBefore**=" données en début de groupe"
327 +
328 +*
329 +** subGroupDataBefore **= "données en début de chaque sous-group"
330 + **subGroupDataSeparator ** = "données entre chaque champ du sous-groupe"**
331 +** subGroupDataAfter** = "\données à la fin de chaque sous-groupe"
332 +\\ **groupDataSubGroupSeparator**=" donnée insérée entre chaque subgroup"**
333 +
334 + **groupDataAfter**="données en fin de groupe
335 +
336 +Cela permet donc un formatage plus fin car ion eput agir à tous les niveaux de la concatenation, notemment le **groupDataSubGroupSeparator **qui permet de gérér les séparateur entre les sous-groupes
337 +\\rappel : un sous-groupe correspond dans le MCD, un bloc répétable est un bloc type="set" posé dans un bloc type="selection"
338 +
339 +[[image:1768223007353-115.png]]
340 +
341 +Exemple avec juste deux retours lignes entre chaque sous-groupe
342 +
334 334  **~ <group_field name="INTERVENANT"
335 335   groupDataType              = "group"
336 - label                      = "Intervenants"
345 + label                      = "Intervenants-group"
337 337   groupDataSubGroupSeparator = "\n\n"
338 338  \\>  **
339 339  
... ... @@ -344,8 +344,7 @@
344 344  
345 345  et génerera la colonne ci dessous
346 346  
347 -(% style="text-align:center" %)
348 -[[image:1698249964685-586.png||class="img-thumbnail"]]
356 +[[image:1768226409578-347.png||class="img-thumbnail"]]
349 349  
350 350  (% class="box infomessage" %)
351 351  (((
... ... @@ -360,11 +360,22 @@
360 360  Un sous-groupe est un ensemble de champs qui appartiennent a la même entite :  au meme bloc de champs (type=set), a la même notice liée ou a la même notice qui référence la notice courante
361 361  )))
362 362  
363 -Il est possible de choisir un** type= "sous groupe"**
371 +== groupDataType~=subGroup ==
364 364  
373 +le fonctionnement est différent, car il n'y a pas "une seule variable" concaténant tous les sous-groupes, mais autant de "sous-variables" que de blocs. On ne peut donc poser que les séparateurs suivants
374 +
375 +**subGroupDataBefore **= "données en début de chaque sous-group"
376 + **subGroupDataSeparator ** = "données entre chaque champ du sous-groupe"
377 +**subGroupDataAfter** = "\données à la fin de chaque sous-groupe"
378 +
379 +Chaque sous-groupe sera ensuite "posé" dans la colonne avec le compressChar=" ; " définit dans l'entête du format
380 +
365 365   <group_field name="INTERVENANT"
366 -**groupDataType   ** = **"SubGroup"**
367 - label                      = "Intervenants"
382 +**~ groupDataType   ** = **"subGroup"**
383 + label                      = "Intervenants - uibgroup"
384 +
385 + subGroupDataBefore = "intervenant : "
386 + subGroupDataAfter = "\n"
368 368  ~> 
369 369  
370 370   <field name='PERSONNE_INTERVENANT'  label='Intervenant'/> 
... ... @@ -372,16 +372,81 @@
372 372   <field name='PRECISION_INTERVENANT'  label='Précisions intervenant ' dataJoinSeparator="\n"/> 
373 373  </group_field>
374 374  
375 -(% class="wikigeneratedid" %)
376 -Dans ce cas chaque élément du groupe générera sa propre colonne, donc ce n'est pas trés différent d'avoir positionné ces 3 champs directement dans le template etp, sans tenir compte du group_field, ou bien directement dans un concat, mais avec la contrainte de ne pouvoir y inclure que des champs du bloc répétable courant
377 377  
395 +[[image:1768226447728-811.png||class="img-thumbnail"]]
378 378  
379 -A noter que pour les type=SUbGroup le label du group_field est ignoré et que ce sont les labels de chaque élément qui sont pris en compte dans les intitulé de colonne
397 +le groupDataType="subgroup" est donc peu utilisé, sauf dans les exports au format xml car ils permettent de conserver la répétabilité des blocs, et donc de répéter les noeux dans le format xml de sortie
380 380  
381 -(% style="text-align:center" %)
382 -[[image:1698308536947-443.png||class="img-thumbnail"]]
399 += sans groupDataType =
383 383  
401 +SI on ne précise pas de groupDataType le moteur les considère comme ue arbre xml complet avec un noeud pour chaque sous-groupe et un noeud pour chaque champ. ça ne peut pas vraiment se matérialiser dans un export colonné, donc dans ce cas les données sont exportées "champ" par "champ", chaque champ étant regroupé dans une colonne avec le compressChar=" ; " définit dans l'entête du format.
402 +De facto on perd la lisibilité du bloc
384 384  
404 +<group_field name="INTERVENANT" 
405 + label  = "Intervenants - sans groupDataType" 
406 +~> 
407 +
408 + <field name='PERSONNE_INTERVENANT'  /> 
409 + <field name='FONCTION_INTERVENANT'  dataBefore=" (" dataAfter=")"/> 
410 + <field name='PRECISION_INTERVENANT'  dataJoinSeparator="\n"/> 
411 +</group_field>
412 +
413 +[[image:1768227008672-422.png]]
414 +
415 +les groupes sans groupDataType seront essentiellement utilisés dans les exports OAI:LIDO pour ocnserver les imbrications de champs et blocs dans le format xml de sortie
416 +
417 +== Extraire un nombre défini de bloc chacun dans sa colonne ==
418 +
419 +Dans certains cas il peut etre interessant d'éclater les blocs et les champs d'un bloc dans des colonnes séparées
420 +
421 +C'est possible avec le subGroupDataIndex mais il fauit prévoir le nombre de colonnes maximum
422 +
423 +Veiller aussi à l'unicité des name en indisuant le nom du bloc dans le fieldName
424 +
425 +<group_field name="INTERVENANT1" fieldName="INTERVENANT" 
426 + label  = "Intervenants - groupe 1" 
427 + subGroupDataIndex ='1'
428 +~> 
429 +
430 + <field name='PERSONNE_INTERVENANT'  label="PERSONNE_INTERVENANT1"/> 
431 + <field name='FONCTION_INTERVENANT'  label="FONCTION_INTERVENANT1" /> 
432 + <field name='PRECISION_INTERVENANT' label="PRECISION_INTERVENANT1"/> 
433 +</group_field>
434 +
435 +<group_field name="INTERVENANT2" fieldName="INTERVENANT" 
436 + label  = "Intervenants - groupe 2" 
437 + subGroupDataIndex = '2'
438 +~> 
439 +
440 + <field name='PERSONNE_INTERVENANT'  label="PERSONNE_INTERVENANT2"/> 
441 + <field name='FONCTION_INTERVENANT'  label="FONCTION_INTERVENANT2" /> 
442 + <field name='PRECISION_INTERVENANT' label="PRECISION_INTERVENANT2"/> 
443 +</group_field>
444 +
445 +<group_field name="INTERVENANT3" fieldName="INTERVENANT" 
446 + label  = "Intervenants - groupe 3" 
447 + subGroupDataIndex ='3'
448 +~> 
449 +
450 + <field name='PERSONNE_INTERVENANT'  label="PERSONNE_INTERVENANT3"/> 
451 + <field name='FONCTION_INTERVENANT'  label="FONCTION_INTERVENANT3" /> 
452 + <field name='PRECISION_INTERVENANT' label="PRECISION_INTERVENANT3"/> 
453 +</group_field>
454 +
455 +
456 +[[image:1768228264778-201.png]]
457 +
458 +== Générer autant de lignes que de blocs répétables ==
459 +
460 +Cette option est utilisée dans l'export e-recolnat pour générer une ligne d'export pour chaque bloc identification d'un specimen (FLO-4677)
461 +
462 +On définit le nom du bloc concernée (un seul par export) dans l'entéte du fichier via recordFromGroupFieldName
463 +
464 +[[image:1768228658052-477.png]]
465 +
466 +[[image:1768228710793-297.png]]
467 +
468 +
385 385  == Paramétrages complémentaires pour les blocs répétables ==
386 386  
387 387  il est possible d'inclure aussi dans un group_field
... ... @@ -390,40 +390,29 @@
390 390  * des champs des notices liées a un des champs du bloc via le tag 'linked_field'
391 391  * des notices qui référencent la notice courante : tag 'reference' pour les liens parent/enfants. ce tag est étudié plus loin dans l'article
392 392  
393 -=== Ajout de données avant - après chaque sous-groupe ===
477 +
394 394  
395 -* **subGroupDataBefore **: séparateur avant les données d'un sous-groupe   (Chaine vide si non défini)
396 -* **subGroupDataSeparator **: séparateur entre les données d'un sous-groupe   (Espace si non défini)
397 -* **subGroupDataAfter **: séparateur après les donnes d'un sous-groupe    (Chaine vide si non défini)
398 -
399 -=== Ajout de données avant - après le groupe ===
400 -
401 -Uniquement si groupDataType="group" car la colonne unique contiendra une concaténation de tous les  sous-groupes en un seul groupe
402 -
403 -* **groupDataBefore **: séparateur avant les données du groupe    (Chaine vide si non défini)
404 -* **groupDataSubGroupSeparator **: séparateur entre les sous-groupes   (' / ' espace slash espace si non défini)
405 -* **groupDataAfter **: séparateur après les données du groupe   (Chaine vide si non défini)
406 -
407 407  === Exemple global ===
408 408  
409 -<**group_field **name="INTERVENANT"
410 - groupDataType              = "**group**"
411 - label                      = "Intervenants"
412 - groupDataBefore            = "- texte avant le groupe -\n"
413 - groupDataSubGroupSeparator = "\n{séparateur par défaut entre les sous groupe}\n"
414 - groupDataAfter             = "\n-texte aprés le groupe"
415 - subGroupDataBefore         = "- texte avant le sousgroupe - "
416 - subGroupDataSeparator      = " {séparateur par défaut dans le sous groupe} "
417 - subGroupDataAfter          = " - texte aprés avant le sousgroupe -"
418 -\\>
419 -\\ <field name='PERSONNE_INTERVENANT'  label='Intervenant'/> 
481 +<group_field name="INTERVENANT"
482 + groupDataType  = "group"
483 + label  = "Intervenants"
484 + groupDataBefore  = "groupDataBefore"
485 + groupDataSubGroupSeparator = "\ngroupDataSubGroupSeparator"
486 + subGroupDataBefore  = "\nsubGroupDataBefore"
487 + subGroupDataSeparator  = "\nsubGroupDataSeparator\n"
488 + subGroupDataAfter  = "\nsubGroupDataAfter"
489 + groupDataAfter  = "\ngroupDataAfter"
490 +~> 
491 +
492 + <field name='PERSONNE_INTERVENANT'  label='Intervenant'/> 
420 420   <field name='FONCTION_INTERVENANT'  label='Fonction ' dataBefore=" (" dataAfter=")"/> 
421 421   <field name='PRECISION_INTERVENANT'  label='Précisions intervenant ' dataJoinSeparator="\n"/> 
422 422  </group_field>
423 423  
424 -(% style="text-align:center" %)
425 -[[image:1698310122900-966.png||class="img-thumbnail"]]
426 426  
498 +[[image:1768229192168-268.png||class="img-thumbnail"]]
499 +
427 427  == Filtre sur les données du groupe ==
428 428  
429 429  D'un certaine manière un bloc répétable peut être considéré comme une table liée embarquée dans la notice courante
... ... @@ -453,8 +453,7 @@
453 453  
454 454  Seul le bloc n° 2 est exporté
455 455  
456 -(% style="text-align:center" %)
457 -[[image:1698310843667-475.png||class="img-thumbnail"]]
529 +[[image:1698310843667-475.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
458 458  
459 459  === Masquer des champs dans un sous-groupe ===
460 460  
... ... @@ -477,8 +477,7 @@
477 477  
478 478  dans le lLoc n° 2  le cchamp PRECISIONS_INTERVENANT n'est pas exporté
479 479  
480 -(% style="text-align:center" %)
481 -[[image:1698311103593-686.png||class="img-thumbnail"]]
552 +[[image:1698311103593-686.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
482 482  
483 483  === Limiter le nombre de sous-groupe exportés ===
484 484  
... ... @@ -523,8 +523,7 @@
523 523   <field name='ELEMENT_PRECISION'  dataJoinSeparator="\n" />
524 524   </group_field>
525 525  
526 -(% style="text-align:center" %)
527 -[[image:1719328382500-862.png||class="img-thumbnail"]]
597 +[[image:1719328382500-862.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
528 528  
529 529  = Export des via des liens par héritage (référence) =
530 530  
... ... @@ -546,8 +546,7 @@
546 546  <?xml version="1.0" encoding="ISO-8859-1"?>
547 547  <export-conf>
548 548   <table name="MUS_BIEN" charset="ISO-8859-1" separator="\t"** compressChar="\n" **newLine="\r\n" multiValueSeparator=', ' valueDelimiter='"'>
549 -
550 -<field name='UNIQUE_KEY'  label='Unique Key'/> 
619 +\\<field name='UNIQUE_KEY'  label='Unique Key'/> 
551 551  <field name='MUSEE'  label='Préfixe'/>
552 552  <field name='NUM_INVENTAIRE'  label='Numéro D'inventaire'/>
553 553  
... ... @@ -560,7 +560,7 @@
560 560  
561 561   <field name='ETAT_MODIFIE_LE'  label='Réalisé le/> 
562 562   <field name='ETAT_MODIFIE_PAR'  label='Réalisé par/> 
563 - **<linked_field name='EMPLACEMENT' label='Emplacement théorique'>**
632 +**<linked_field name='EMPLACEMENT' label='Emplacement théorique'>**
564 564   <field name='LABEL_PARENT' label='Empl. référence hiéra' display='true'/>
565 565   </linked_field>
566 566  
... ... @@ -590,8 +590,7 @@
590 590   <field name='210a' label='712a-Nom' display='true'/>
591 591   <field name='210b' label='712a-Subdivision' display='true'/>
592 592   </linked_field>
593 -
594 - <reference source='system' table='ICOMM_ITEM'
662 +\\ <reference source='system' table='ICOMM_ITEM'
595 595   groupDataType         = "subGroup"
596 596   label                 = "Exemplaires"
597 597   subGroupDataBefore    = "{ "
... ... @@ -613,8 +613,7 @@
613 613  <?xml version="1.0" encoding="ISO-8859-1"?>
614 614  <export-conf>
615 615   <table name="MUS_COLIS" charset="ISO-8859-1" separator="\t" **compressChar="\n"** newLine="\r\n" multiValueSeparator=', ' valueDelimiter='"'>
616 -
617 -<field name='ETAT_MODIFIE_LE'  label='Etat modifié le'/>
684 +\\<field name='ETAT_MODIFIE_LE'  label='Etat modifié le'/>
618 618  <field name='ETAT_AVANCE_COLIS'  label='Etat d_avancement'/>
619 619  <field name='UNIQUE_KEY'  label='Numéro de Code'/>
620 620  
... ... @@ -636,8 +636,7 @@
636 636  ** <linked_field name='BIEN' label='Bien'>
637 637  **~ <field name='DISPLAY' label='Bien' display='true'/>
638 638   </linked_field>
639 -
640 -</reference>**
706 +\\</reference>**
641 641  
642 642  **<reference source='musee' table='MUS_JOIN_COLIS_MOUV'**
643 643   groupDataType         = "subGroup"
... ... @@ -645,69 +645,144 @@
645 645   subGroupDataBefore    = ""
646 646   subGroupDataSeparator = ", "
647 647   subGroupDataAfter     = "" >
648 - **<linked_field name='MOUVEMENT_BIEN' label='Bien'>**
714 +**<linked_field name='MOUVEMENT_BIEN' label='Bien'>**
649 649   <field name='DISPLAY' label='Bien' display='true'/>
650 650   </linked_field>
651 651  </reference>
652 652  
653 653  
654 -= Autres paramétrages =
720 += Exporter des images (uniquement en format de sortie excel natif) =
655 655  
656 -== Conversions de dates et datations ==
722 +== Première image uniquement ==
657 657  
658 -**dataDateFormatDisplay**='yyyy-MM-dd'
724 +Toutes les options de séparateurs, textes avant et aprés, fonctionnent. tous les cghampsd e IDOCS sont exportables
659 659  
660 -dataDateFormatDisplay='yyyy'
726 +C'est l'option **subGroupDataIndex **qui permet de choisir l'image à exporter (premiere, deuxieme, troisieme...)
661 661  
662 -.....
728 +**Attention au choix de la résolution. **
729 +//résolution=LOW// (imagette) sera suffisant pour excel. Si vous prenez MEDIUM ou HIGH le poids du fichier excel risque d'etre éxagéréent conséquent, ce qui compliquera la manipulation du document final
730 +ne mettez pas une //dimImageXYInPixels// supérieurs à192, cela va ralentir le traitement et détérirore la qualité de l'imagette (192 est sa dimension par défaut dasn Flora)
663 663  
664 -//Cela fonctionne pour les champs dates, time et datation//
665 665  
666 -time <field name='CREATE_DATE'  label='Saisi le' dataDateFormatDisplay='yyyy-MM-dd'/>
733 +**<linked_records_document_records** name="PHOTO_INV"
734 + inputRecordFilter=""
735 + linkedRecordFilter=""
667 667  
668 -date <field name='ETAT_MODIFIE_LE'  label='Etat modifié le ' dataDateFormatDisplay='yyyy-MM-dd'/>
737 + groupDataType=""
738 + documentTypes="Document-Photo"
739 + subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
740 + subGroupDataMultMaxi=""
741 + **subGroupDataIndex="1">**
742 + <!~-~- champ de la table IDOCS ~-~->
743 + <field name="LABEL" label="Photo 1 : "/>
669 669  
670 -datation <field name='DATATION_BIEN_DEBUT' dataDateFormatDisplay='yyyy' /> Pour l'instant les dates Avant Jésus-Christ ne sont pas mentionnées comme telmes quand on applique cette conversion
745 + <!~-~- Imagette ~-~->
746 + <photo_document_file name="_PHOTO_1"
747 + label="Photo 1"
748 + inputRecordFilter=""
749 + documentTypes="Document-Photo"
671 671  
672 -(% class="box infomessage" %)
673 -(((
674 -Attention Excel applique ensuite ses propres automates de formatage à l'ouverture du fichier
675 -)))
751 +*
752 +** resolution="LOW"
753 + dimImageXYInPixels="192"**/>
754 + </linked_records_document_records>**
676 676  
677 -== valeur par défaut ==
756 +== Plusieurs images ==
678 678  
679 -**dataDefValue**="maValeurtextuelle"
758 +=== sur plusieurs colonnes ===
680 680  
681 -si le field, linked_field, concat, group_feld est vide, c'est cette valeur qui sera exportée
760 +Il est recommandé de positionner autant de colonnes que d'images à exporter, d'indiquer dans chque colonne le numéro de l'image (premiers, deuxieme, troisieme...) et de les positionner à la fin du tableau cara certaines colonnes seront forcéemnt vides
682 682  
683 -//Exemple : utilisé dans l'export e-recolnat pour avoir par défaut la colonne langue = FR sans devoir la saisir dans toutes les notices. si le champ Langue de  notice est non vide il écrasera la dataDefValue//
762 +Pour cela il suffit de dupliquer le bloc ci dessus et de choisir le bon **subGroupDataIndex="?" **dans chaque colonne
684 684  
685 -== Dones textuelles ajoutées en multilangue ==
764 +Pour ne pas compliquer la lecture du fichier excel il est préférable de ne pas exporter le nom du fichier à chaque fois
686 686  
687 -Flora gére des fichiers de mots clés pour la traduction des labels textuels dans les différentes languies (dans les fichiers *.properties)
766 +Exemple avec 4 images
688 688  
689 -[[image:1698311785574-970.png||height="133" width="841"]]
768 +<linked_records_document_records name="PHOTO_INV"
769 + documentTypes="Document-Photo"
770 + subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
771 + **subGroupDataIndex="1"**>
690 690  
691 -ces mots clés peuvent etre utilisés dans toutes les valeurs textuelles posées dans les tags
773 +**~
774 + **<photo_document_file name="**_PHOTO1**"
775 + label="**Photo1**"
776 + documentTypes="Document-Photo"
777 + resolution="LOW"
778 + dimImageXYInPixels="192"/>
779 + </linked_records_document_records>
692 692  
693 -//Exemple//
781 +<linked_records_document_records name="PHOTO_INV"
782 + documentTypes="Document-Photo"
783 + subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
784 + **subGroupDataIndex="2"**>
694 694  
695 -<field name='TYPE_UE'  label='Type Unité d_enregistrement ' dataBefore='**${menu.label.inventory} **: '/>
786 +**~
787 + **<photo_document_file name="**_PHOTO2**"
788 + label="**Photo2**"
789 + documentTypes="Document-Photo"
790 + resolution="LOW"
791 + dimImageXYInPixels="192"/>
792 + </linked_records_document_records>
696 696  
697 -(% style="text-align:center" %)
698 -[[image:1698311964289-353.png||class="img-thumbnail"]]
794 +<linked_records_document_records name="PHOTO_INV"
795 + documentTypes="Document-Photo"
796 + subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
797 + **subGroupDataIndex="3"**>
699 699  
799 +**~
800 + **<photo_document_file name="**_PHOTO3**"
801 + label="**Photo3**"
802 + documentTypes="Document-Photo"
803 + resolution="LOW"
804 + dimImageXYInPixels="192"/>
805 + </linked_records_document_records>
700 700  
701 -== Export des liens ark vers les images ==
807 +<linked_records_document_records name="PHOTO_INV"
808 + documentTypes="Document-Photo"
809 + subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
810 + **subGroupDataIndex="4"**>
702 702  
703 -Il est toujorus délicat d'incorporer les images en tant que telles dans une colonne excel ou calc car cela rend enuite le fichier difficile à manipuler, et dans le cas de calc elels ne suivent pas les tris réalisés sur le tableau ce qui rend les onnées incohérentes
812 +**~
813 + **<photo_document_file name="**_PHOTO4**"
814 + label="**Photo4**"
815 + documentTypes="Document-Photo"
816 + resolution="LOW"
817 + dimImageXYInPixels="192"/>
818 + </linked_records_document_records>
704 704  
705 -de plus sur de gros volumes cela peut générer des fichiers de trop grande taille, surtout si on intégre les images originales au liue de se contenter des imagettes
820 +=== sur plusieurs lignes ===
706 706  
707 -Nous avons donc choisi de publier les images dans les tablmeurs vai des liens ark
822 +Avec les options ci dessous déclas dans un seul bloc
708 708  
709 -la colonne devra donc etre paramétrée ainsi
824 + <linked_records_document_records name="PHOTO_INV"
825 + documentTypes="Document-Photo"
826 + subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
710 710  
828 +*
829 +** subGroupDataMultMaxi="4"
830 + subGroupDataIndex="">
831 +\\**<photo_document_file name="_PHOTO"
832 + label="Photo"
833 + documentTypes="Document-Photo"
834 + resolution="LOW"
835 + dimImageXYInPixels="192"/>
836 + </linked_records_document_records>**
837 +
838 +Flora générera une seule colonne pour les images, et ajoutera ensuite autant de lignes (vides) que nécésssaire pour poistionner au maximum les 3 Images suivantes (total 4 images exportées=
839 +
840 +Cette disposition complique un peu la manipulation et la lecture des données dans excel à cause des lignes vides
841 +
842 +== (% id="cke_bm_1281128S" style="display:none" %) (%%)Export des liens ark vers les images ==
843 +
844 +Il est parfois délicat d'incorporer les images en tant que telles dans une colonne excel  car cela rend enuite le fichier difficile à manipule
845 +
846 +De plus sur de gros volumes cela peut générer des fichiers de trop grande taille, surtout si on intégre les images originales au liue de se contenter des imagettes
847 +
848 +Il st donc possible de publier les images via des liens ark
849 +
850 +la colonne devra  etre paramétrée ainsi
851 +
711 711  **name="PHOTO_INV" **=nom du champ contenant le lien vers la phototheque (si l'export concerne MUS_PHOTO on indiquera UNIQUE_KEY)
712 712  
713 713  **subGroupDataMultMaxi="1" **Nombre de notices photos lues**, **il est recommandé de ne mettre qu'un seul lien ark car de facto le lien sera automatiquemenrt clicable dans excel (aprés avoir cliqué dans la cellule)
... ... @@ -729,8 +729,7 @@
729 729   subGroupdataMultiValueSeparator="|"
730 730   subGroupDataMultMaxi="1"
731 731   >
732 -
733 - <class_extractor
873 +\\ <class_extractor
734 734   extractorClassName="com.ezida.services.musee.extractor.MusPhotoArkExtractor"
735 735   name="PHOTO_INV_ARK"
736 736   label=""
... ... @@ -747,23 +747,73 @@
747 747  
748 748  résultat obtenu.. avec un clic sur le lien ark exporté
749 749  
750 -(% style="text-align:center" %)
751 -[[image:1698400681257-169.png||class="img-thumbnail"]]
890 +[[image:1698400681257-169.png]]
752 752  
753 753  
754 -Avec Excel vous pouvez utiliser ce lien ark pour intégrer l'image dans la cellule si vous le souhaitez, mais ce n'est pas automatique. le plus simple est de procéder par copie d'écran partielle
893 += Autres paramétrages =
755 755  
756 -* Touche Impr Ecran de votre ordinateur,
757 -* selection de la zone image à copier,
758 -* puis Edition/coller dans la cellule de votre choix
895 +== Conversions de dates et datations ==
759 759  
760 -SI aprés avoir appuyé sur Impr Ecran vous ne pouvez pas selectionner une zone à l'écran, utilisez un outil de capture. dans le présent arcticle nous avons utilisé le freeware Screenpresso
897 +**dataDateFormatDisplay**='yyyy-MM-dd'
761 761  
762 -//Note ! La ligne excel ne s'agrandit pas toute seule, à vous de le faire pour garder une bonne lisibilité. Dans Excel, si vous triez les lignes, les images ainsi collées vont suivre (mais pas dans calc de Libre office)//
899 +dataDateFormatDisplay='yyyy'
763 763  
764 -[[image:1698401052018-622.png]]
901 +.....
765 765  
903 +//Cela fonctionne pour les champs dates, time et datation//
766 766  
905 +time <field name='CREATE_DATE'  label='Saisi le' dataDateFormatDisplay='yyyy-MM-dd'/>
767 767  
907 +date <field name='ETAT_MODIFIE_LE'  label='Etat modifié le ' dataDateFormatDisplay='yyyy-MM-dd'/>
768 768  
769 -
909 +datation <field name='DATATION_BIEN_DEBUT' dataDateFormatDisplay='yyyy' /> Pour l'instant les dates Avant Jésus-Christ ne sont pas mentionnées comme telmes quand on applique cette conversion
910 +
911 +(% class="box infomessage" %)
912 +(((
913 +Attention Excel applique ensuite ses propres automates de formatage à l'ouverture du fichier
914 +)))
915 +
916 +== valeur par défaut ==
917 +
918 +**dataDefValue**="maValeurtextuelle"
919 +
920 +si le field, linked_field, concat, group_feld est vide, c'est cette valeur qui sera exportée
921 +
922 +//Exemple : utilisé dans l'export e-recolnat pour avoir par défaut la colonne langue = FR sans devoir la saisir dans toutes les notices. si le champ Langue de  notice est non vide il écrasera la dataDefValue//
923 +
924 +== Données textuelles ajoutées en multilangue ==
925 +
926 +Flora gére des fichiers de mots clés pour la traduction des labels textuels dans les différentes languies (dans les fichiers *.properties)
927 +
928 +[[image:1698311785574-970.png||height="133" width="841"]]
929 +
930 +ces mots clés peuvent etre utilisés dans toutes les valeurs textuelles posées dans les tags
931 +
932 +//Exemple//
933 +
934 +<field name='TYPE_UE'  label='Type Unité d_enregistrement ' dataBefore='**${menu.label.inventory} **: '/>
935 +
936 +[[image:1698311964289-353.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
937 +
938 +
939 +
940 +== Conversion données d'un champ en majuscules ==
941 +
942 +<field name='TITRE'  label='Titre' dataIsToMajus="true"/>
943 +
944 +== Masquer un contenu de champ en fonction d'un menu (champs sensibles) ==
945 +
946 +ci dessous si le uiser n'a pas le menu musee_menu_masque_champs_sensibles il pourra voir le champ
947 +
948 +<field name='TITRE'  label='Titre' dataIsToMajus="true" inputRecordFilter="('{user.hasMenu.musee_menu_masque_champs_sensibles}' = 'false')"/>
949 +
950 +== Ajouter le label du champ dans le contenu exporté ==
951 +
952 +<field name='TITRE'  label='Titre' dataBefore='{fieldLabel} :  ' />
953 +
954 +== Exporter des infos de paramétrage de champ ==
955 +
956 +fieldInfoName pouura prendre les 3 options label, linkTable, linkSource
957 +
958 +<field_desc_info name="_collec_liee" fieldName="COLLEC_LIEE"
959 + fieldInfoName="linkTable"/>
1768223007353-115.png
Auteur
... ... @@ -1,0 +1,1 @@
1 +XWiki.NSR
Taille
... ... @@ -1,0 +1,1 @@
1 +300.9 KB
Contenu
1768226297481-108.png
Auteur
... ... @@ -1,0 +1,1 @@
1 +XWiki.NSR
Taille
... ... @@ -1,0 +1,1 @@
1 +47.9 KB
Contenu
1768226409578-347.png
Auteur
... ... @@ -1,0 +1,1 @@
1 +XWiki.NSR
Taille
... ... @@ -1,0 +1,1 @@
1 +9.9 KB
Contenu
1768226447728-811.png
Auteur
... ... @@ -1,0 +1,1 @@
1 +XWiki.NSR
Taille
... ... @@ -1,0 +1,1 @@
1 +11.6 KB
Contenu
1768227008672-422.png
Auteur
... ... @@ -1,0 +1,1 @@
1 +XWiki.NSR
Taille
... ... @@ -1,0 +1,1 @@
1 +14.0 KB
Contenu
1768228264778-201.png
Auteur
... ... @@ -1,0 +1,1 @@
1 +XWiki.NSR
Taille
... ... @@ -1,0 +1,1 @@
1 +10.9 KB
Contenu
1768228658052-477.png
Auteur
... ... @@ -1,0 +1,1 @@
1 +XWiki.NSR
Taille
... ... @@ -1,0 +1,1 @@
1 +9.5 KB
Contenu
1768228710793-297.png
Auteur
... ... @@ -1,0 +1,1 @@
1 +XWiki.NSR
Taille
... ... @@ -1,0 +1,1 @@
1 +10.6 KB
Contenu
1768229185769-507.png
Auteur
... ... @@ -1,0 +1,1 @@
1 +XWiki.NSR
Taille
... ... @@ -1,0 +1,1 @@
1 +22.8 KB
Contenu
1768229192168-268.png
Auteur
... ... @@ -1,0 +1,1 @@
1 +XWiki.NSR
Taille
... ... @@ -1,0 +1,1 @@
1 +22.8 KB
Contenu