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

Depuis la version 4.1
modifié par Nicolas Schreiber
sur 2025/08/05 09:47
Commentaire de modification : Il n'y a aucun commentaire pour cette version
À la version 15.1
modifié par Nicolas Schreiber
sur 2026/01/12 15:04
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
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  
... ... @@ -128,7 +128,7 @@
128 128  * **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)
129 129  * **dataAfter : **separateur apres la donnee du champ répété en cas de multivaluation   (Chaine vide si non defini)
130 130  
131 -**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=" ; "/>**
132 132  
133 133  [[image:1698221647528-156.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
134 134  
... ... @@ -229,6 +229,8 @@
229 229  * de ne pas perdre les libellés de champs (on les indiquera dans **dataBefore**)
230 230  * 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**)
231 231  
231 +La concat peut etre vue comme une "variable" que l'on va pouboir utiliser à sa guise
232 +
232 232  == A minima ==
233 233  
234 234  on va donc créer une "boite" qui va assembler les données de la colonne en concaténant les champs cités
... ... @@ -246,7 +246,7 @@
246 246  
247 247  == Ajout de données avant - aprés ==
248 248  
249 -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
250 250  
251 251  * **groupDataBefore **: donnee avant le groupe
252 252  * **groupDataAfter **: donnee apres le groupe
... ... @@ -265,11 +265,11 @@
265 265   <field name='DESCRIPTION_INTRINSEQUE'  dataJoinSeparator="\n"/>
266 266  **</concat>**
267 267  
268 -//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//
269 269  
270 270  [[image:1698235351939-869.png]]
271 271  
272 -== 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 ==
273 273  
274 274  Dans l'exemple ci-aprés, on a positionnés les séparateurs de champs dans chacun des champs avec le DataJoinSeparator
275 275  
... ... @@ -298,7 +298,8 @@
298 298  
299 299  (% class="box infomessage" %)
300 300  (((
301 -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
302 302  )))
303 303  
304 304  = Export des champs d'un bloc répétable =
... ... @@ -307,20 +307,39 @@
307 307  
308 308  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
309 309  
310 -(% class="box infomessage" %)
311 -(((
312 312  On peut se representer cela comme une boucle d'éxécution qui tournera tant qu'il existe encore un bloc répété à exporter
313 -)))
314 314  
315 315  //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)//
316 316  
317 -[[image:1698249410427-526.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
316 +[[image:1768226297481-108.png]]
318 318  
319 -le paramétrage de l'export sera défini tel que :
318 +== groupDataType~=group ==
320 320  
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 + ** subGroupDataBefore **= "données en début de chaque sous-group"
329 + **subGroupDataSeparator ** = "données entre chaque champ du sous-groupe"
330 + ** subGroupDataAfter** = "\données à la fin de chaque sous-groupe"
331 +\\ **groupDataSubGroupSeparator**=" donnée insérée entre chaque subgroup"
332 +
333 + **groupDataAfter**="données en fin de groupe
334 +
335 +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
336 +\\rappel : un sous-groupe correspond dans le MCD, un bloc répétable est un bloc type="set" posé dans un bloc type="selection"
337 +
338 +[[image:1768223007353-115.png]]
339 +
340 +Exemple avec juste deux retours lignes entre chaque sous-groupe
341 +
321 321  **~ <group_field name="INTERVENANT"
322 322   groupDataType              = "group"
323 - label                      = "Intervenants"
344 + label                      = "Intervenants-group"
324 324   groupDataSubGroupSeparator = "\n\n"
325 325  \\>  **
326 326  
... ... @@ -331,7 +331,7 @@
331 331  
332 332  et génerera la colonne ci dessous
333 333  
334 -[[image:1698249964685-586.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
355 +[[image:1768226409578-347.png||class="img-thumbnail"]]
335 335  
336 336  (% class="box infomessage" %)
337 337  (((
... ... @@ -346,11 +346,22 @@
346 346  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
347 347  )))
348 348  
349 -Il est possible de choisir un** type= "sous groupe"**
370 +== groupDataType~=subGroup ==
350 350  
372 +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
373 +
374 +**subGroupDataBefore **= "données en début de chaque sous-group"
375 + **subGroupDataSeparator ** = "données entre chaque champ du sous-groupe"
376 +**subGroupDataAfter** = "\données à la fin de chaque sous-groupe"
377 +
378 +Chaque sous-groupe sera ensuite "posé" dans la colonne avec le compressChar=" ; " définit dans l'entête du format
379 +
351 351   <group_field name="INTERVENANT"
352 -**groupDataType   ** = **"SubGroup"**
353 - label                      = "Intervenants"
381 +**~ groupDataType   ** = **"subGroup"**
382 + label                      = "Intervenants - uibgroup"
383 +
384 + subGroupDataBefore = "intervenant : "
385 + subGroupDataAfter = "\n"
354 354  ~> 
355 355  
356 356   <field name='PERSONNE_INTERVENANT'  label='Intervenant'/> 
... ... @@ -358,15 +358,12 @@
358 358   <field name='PRECISION_INTERVENANT'  label='Précisions intervenant ' dataJoinSeparator="\n"/> 
359 359  </group_field>
360 360  
361 -(% class="wikigeneratedid" %)
362 -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
363 363  
394 +[[image:1768226447728-811.png||class="img-thumbnail"]]
364 364  
365 -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
396 +le groupDataType="subgroup" est donc peu utilisé, sauf dans les exports au format xml car ile permettent de conserver la répétabilité des blocs, et donc de répéter les nopeux dans le format xml de sortie
366 366  
367 -[[image:1698308536947-443.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
368 368  
369 -
370 370  == Paramétrages complémentaires pour les blocs répétables ==
371 371  
372 372  il est possible d'inclure aussi dans un group_field
... ... @@ -610,12 +610,11 @@
610 610   subGroupDataSeparator = ", "
611 611   subGroupDataAfter     = "" >
612 612  
613 -*
642 +*
614 614  ** <linked_field name='BIEN' label='Bien'>
615 615  **~ <field name='DISPLAY' label='Bien' display='true'/>
616 616   </linked_field>
617 -
618 -</reference>**
646 +\\</reference>**
619 619  
620 620  **<reference source='musee' table='MUS_JOIN_COLIS_MOUV'**
621 621   groupDataType         = "subGroup"
... ... @@ -623,7 +623,7 @@
623 623   subGroupDataBefore    = ""
624 624   subGroupDataSeparator = ", "
625 625   subGroupDataAfter     = "" >
626 - **<linked_field name='MOUVEMENT_BIEN' label='Bien'>**
654 +**<linked_field name='MOUVEMENT_BIEN' label='Bien'>**
627 627   <field name='DISPLAY' label='Bien' display='true'/>
628 628   </linked_field>
629 629  </reference>
... ... @@ -650,7 +650,7 @@
650 650   documentTypes="Document-Photo"
651 651   subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
652 652   subGroupDataMultMaxi=""
653 - **subGroupDataIndex="1">**
681 + **subGroupDataIndex="1">**
654 654   <!~-~- champ de la table IDOCS ~-~->
655 655   <field name="LABEL" label="Photo 1 : "/>
656 656  
... ... @@ -660,7 +660,7 @@
660 660   inputRecordFilter=""
661 661   documentTypes="Document-Photo"
662 662  
663 -*
691 +*
664 664  ** resolution="LOW"
665 665   dimImageXYInPixels="192"**/>
666 666   </linked_records_document_records>**
... ... @@ -680,7 +680,7 @@
680 680  <linked_records_document_records name="PHOTO_INV"
681 681   documentTypes="Document-Photo"
682 682   subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
683 - **subGroupDataIndex="1"**>
711 + **subGroupDataIndex="1"**>
684 684  
685 685  **~
686 686   **<photo_document_file name="**_PHOTO1**"
... ... @@ -693,7 +693,7 @@
693 693  <linked_records_document_records name="PHOTO_INV"
694 694   documentTypes="Document-Photo"
695 695   subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
696 - **subGroupDataIndex="2"**>
724 + **subGroupDataIndex="2"**>
697 697  
698 698  **~
699 699   **<photo_document_file name="**_PHOTO2**"
... ... @@ -706,7 +706,7 @@
706 706  <linked_records_document_records name="PHOTO_INV"
707 707   documentTypes="Document-Photo"
708 708   subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
709 - **subGroupDataIndex="3"**>
737 + **subGroupDataIndex="3"**>
710 710  
711 711  **~
712 712   **<photo_document_file name="**_PHOTO3**"
... ... @@ -719,7 +719,7 @@
719 719  <linked_records_document_records name="PHOTO_INV"
720 720   documentTypes="Document-Photo"
721 721   subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
722 - **subGroupDataIndex="4"**>
750 + **subGroupDataIndex="4"**>
723 723  
724 724  **~
725 725   **<photo_document_file name="**_PHOTO4**"
... ... @@ -737,13 +737,12 @@
737 737   documentTypes="Document-Photo"
738 738   subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)"
739 739  
740 -*
741 -** subGroupDataMultMaxi="4"
742 - subGroupDataIndex="">
743 -**~
744 - <photo_document_file name="**_PHOTO4**"
745 - label=**"**Photo4**"
746 -**~ documentTypes="Document-Photo"
768 +*
769 +** subGroupDataMultMaxi="4"
770 + subGroupDataIndex="">
771 +\\ **<photo_document_file name="_PHOTO"
772 + label="Photo"
773 + documentTypes="Document-Photo"
747 747   resolution="LOW"
748 748   dimImageXYInPixels="192"/>
749 749   </linked_records_document_records>**
... ... @@ -783,8 +783,7 @@
783 783   subGroupdataMultiValueSeparator="|"
784 784   subGroupDataMultMaxi="1"
785 785   >
786 -
787 - <class_extractor
813 +\\ <class_extractor
788 788   extractorClassName="com.ezida.services.musee.extractor.MusPhotoArkExtractor"
789 789   name="PHOTO_INV_ARK"
790 790   label=""
... ... @@ -850,11 +850,24 @@
850 850  [[image:1698311964289-353.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
851 851  
852 852  
853 -== ==
854 854  
880 +== Conversion données d'un champ en majuscules ==
855 855  
882 +<field name='TITRE'  label='Titre' dataIsToMajus="true"/>
856 856  
884 +== Masquer un contenu de champ en fonction d'un menu (champs sensibles) ==
857 857  
886 +ci dessous si le uiser n'a pas le menu musee_menu_masque_champs_sensibles il pourra voir le champ
858 858  
888 +<field name='TITRE'  label='Titre' dataIsToMajus="true" inputRecordFilter="('{user.hasMenu.musee_menu_masque_champs_sensibles}' = 'false')"/>
859 859  
860 -
890 +== Ajouter le label du champ dans le contenu exporté ==
891 +
892 +<field name='TITRE'  label='Titre' dataBefore='{fieldLabel} :  ' />
893 +
894 +== Exporter des infos de paramétrage de champ ==
895 +
896 +fieldInfoName pouura prendre les 3 options label, linkTable, linkSource
897 +
898 +<field_desc_info name="_collec_liee" fieldName="COLLEC_LIEE"
899 + 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