Modifications pour le document Fonctions avancées : modification des exports tabulés paramétrables
Modifié par Nicolas Schreiber le 2026/01/12 15:46
Depuis la version 16.1
modifié par Nicolas Schreiber
sur 2026/01/12 15:12
sur 2026/01/12 15:12
Commentaire de modification :
Il n'y a aucun commentaire pour cette version
À la version 3.1
modifié par Nicolas Schreiber
sur 2025/08/05 09:44
sur 2025/08/05 09:44
Commentaire de modification :
Il n'y a aucun commentaire pour cette version
Résumé
-
Propriétés de la Page (2 modifications, 0 ajouts, 0 suppressions)
-
Pièces jointes (0 modifications, 0 ajouts, 5 suppressions)
Détails
- Propriétés de la Page
-
- Titre
-
... ... @@ -1,1 +1,1 @@ 1 -Fonctions avancées : modificationdes exports tabulés paramétrables1 +Fonctions avancées : paramétrage des exports tabulés paramétrables - Contenu
-
... ... @@ -2,10 +2,11 @@ 2 2 {{toc/}} 3 3 {{/box}} 4 4 5 +page en cours de construction 5 5 6 6 = A savoir avant de commencer = 7 7 8 -L'export de données muséologiques vers un tableur (format csv ouexcel natif)met en évidence la particularité de leur organisation technique.9 +L'export de données muséologiques vers un tableur met en évidence la particularité de leur organisation technique. 9 9 10 10 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. 11 11 ... ... @@ -127,7 +127,7 @@ 127 127 * **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) 128 128 * **dataAfter : **separateur apres la donnee du champ répété en cas de multivaluation (Chaine vide si non defini) 129 129 130 -**Exemple : <field name='INTERPRETATION' label='Interpretation' dataBefore="texte avant :" dataAfter="(texte aprés)" dataMultiValueSeparator=" ; "/>**131 +**Exemple : <field name='INTERPRETATION' label='Interpretation' dataBefore="texte avant " dataAfter=" texte aprés" dataMultiValueSeparator=" ; "/>** 131 131 132 132 [[image:1698221647528-156.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]] 133 133 ... ... @@ -228,8 +228,6 @@ 228 228 * de ne pas perdre les libellés de champs (on les indiquera dans **dataBefore**) 229 229 * 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**) 230 230 231 -La concat peut etre vue comme une "variable" que l'on va pouboir utiliser à sa guise 232 - 233 233 == A minima == 234 234 235 235 on va donc créer une "boite" qui va assembler les données de la colonne en concaténant les champs cités ... ... @@ -247,7 +247,7 @@ 247 247 248 248 == Ajout de données avant - aprés == 249 249 250 -Cette "boite" concat est vue comme un "groupe" de données. a ce titre il est possible de lui adjoindre les param ètres suivants249 +Cette "boite" concat est vue comme un "groupe" de données. a ce titre il est possible de lui adjoindre les paramétres suivants 251 251 252 252 * **groupDataBefore **: donnee avant le groupe 253 253 * **groupDataAfter **: donnee apres le groupe ... ... @@ -266,11 +266,11 @@ 266 266 <field name='DESCRIPTION_INTRINSEQUE' dataJoinSeparator="\n"/> 267 267 **</concat>** 268 268 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// 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// 270 270 271 271 [[image:1698235351939-869.png]] 272 272 273 -== Ajout de données par défaut entre les champs d ela concat==272 +== Ajout de données par défaut entre les champs du groupe == 274 274 275 275 Dans l'exemple ci-aprés, on a positionnés les séparateurs de champs dans chacun des champs avec le DataJoinSeparator 276 276 ... ... @@ -299,8 +299,7 @@ 299 299 300 300 (% class="box infomessage" %) 301 301 ((( 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 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 304 304 ))) 305 305 306 306 = Export des champs d'un bloc répétable = ... ... @@ -309,40 +309,20 @@ 309 309 310 310 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 311 311 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 +))) 313 313 314 314 //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)// 315 315 316 -[[image:1 768226297481-108.png]]317 +[[image:1698249410427-526.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]] 317 317 318 - ==groupDataType~=group==319 +le paramétrage de l'export sera défini tel que : 319 319 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 - 343 343 **~ <group_field name="INTERVENANT" 344 344 groupDataType = "group" 345 - label = "Intervenants -group"323 + label = "Intervenants" 346 346 groupDataSubGroupSeparator = "\n\n" 347 347 \\> ** 348 348 ... ... @@ -353,7 +353,7 @@ 353 353 354 354 et génerera la colonne ci dessous 355 355 356 -[[image:1 768226409578-347.png||class="img-thumbnail"]]334 +[[image:1698249964685-586.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]] 357 357 358 358 (% class="box infomessage" %) 359 359 ((( ... ... @@ -368,22 +368,11 @@ 368 368 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 369 369 ))) 370 370 371 - ==groupDataType~=subGroup==349 +Il est possible de choisir un** type= "sous groupe"** 372 372 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 - 381 381 <group_field name="INTERVENANT" 382 -**~ groupDataType ** = **"subGroup"** 383 - label = "Intervenants - uibgroup" 384 - 385 - subGroupDataBefore = "intervenant : " 386 - subGroupDataAfter = "\n" 352 +**groupDataType ** = **"SubGroup"** 353 + label = "Intervenants" 387 387 ~> 388 388 389 389 <field name='PERSONNE_INTERVENANT' label='Intervenant'/> ... ... @@ -391,29 +391,15 @@ 391 391 <field name='PRECISION_INTERVENANT' label='Précisions intervenant ' dataJoinSeparator="\n"/> 392 392 </group_field> 393 393 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 394 394 395 -[[image:1768226447728-811.png||class="img-thumbnail"]] 396 396 397 - legroupDataType="subgroup"estdonc peuutilisé,saufdanslesexportsauformat xmlcarilspermettentdeconserverlarépétabilitédesblocs,etdoncde répéterles noeuxdans leformatxml desortie365 +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 398 398 399 - = sansgroupDataType =367 +[[image:1698308536947-443.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]] 400 400 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 403 403 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 417 == Paramétrages complémentaires pour les blocs répétables == 418 418 419 419 il est possible d'inclure aussi dans un group_field ... ... @@ -657,11 +657,12 @@ 657 657 subGroupDataSeparator = ", " 658 658 subGroupDataAfter = "" > 659 659 660 -* 613 +* 661 661 ** <linked_field name='BIEN' label='Bien'> 662 662 **~ <field name='DISPLAY' label='Bien' display='true'/> 663 663 </linked_field> 664 -\\</reference>** 617 + 618 +</reference>** 665 665 666 666 **<reference source='musee' table='MUS_JOIN_COLIS_MOUV'** 667 667 groupDataType = "subGroup" ... ... @@ -669,7 +669,7 @@ 669 669 subGroupDataBefore = "" 670 670 subGroupDataSeparator = ", " 671 671 subGroupDataAfter = "" > 672 -**<linked_field name='MOUVEMENT_BIEN' label='Bien'>** 626 + **<linked_field name='MOUVEMENT_BIEN' label='Bien'>** 673 673 <field name='DISPLAY' label='Bien' display='true'/> 674 674 </linked_field> 675 675 </reference> ... ... @@ -696,7 +696,7 @@ 696 696 documentTypes="Document-Photo" 697 697 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 698 698 subGroupDataMultMaxi="" 699 - **subGroupDataIndex="1">** 653 + **subGroupDataIndex="1">** 700 700 <!~-~- champ de la table IDOCS ~-~-> 701 701 <field name="LABEL" label="Photo 1 : "/> 702 702 ... ... @@ -705,11 +705,9 @@ 705 705 label="Photo 1" 706 706 inputRecordFilter="" 707 707 documentTypes="Document-Photo" 708 - 709 -* 710 -** resolution="LOW" 662 + ** resolution="LOW" 711 711 dimImageXYInPixels="192"**/> 712 - </linked_records_document_records> **664 + </linked_records_document_records> 713 713 714 714 == Plusieurs images == 715 715 ... ... @@ -726,24 +726,23 @@ 726 726 <linked_records_document_records name="PHOTO_INV" 727 727 documentTypes="Document-Photo" 728 728 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 729 - **subGroupDataIndex="1"**> 730 - 731 -**~ 732 - **<photo_document_file name="**_PHOTO1**" 733 - label="**Photo1**" 681 + ** subGroupDataIndex="1">** 682 + 683 + <photo_document_file name="**_PHOTO1**" 684 + label=**"Photo1"** 734 734 documentTypes="Document-Photo" 735 735 resolution="LOW" 736 736 dimImageXYInPixels="192"/> 737 737 </linked_records_document_records> 738 738 690 + 739 739 <linked_records_document_records name="PHOTO_INV" 740 740 documentTypes="Document-Photo" 741 741 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 742 - **subGroupDataIndex="2"**> 743 - 744 -**~ 745 - **<photo_document_file name="**_PHOTO2**" 746 - label="**Photo2**" 694 + ** subGroupDataIndex="2">** 695 + 696 + <photo_document_file name="**_PHOTO2**" 697 + label=**"Photo2"** 747 747 documentTypes="Document-Photo" 748 748 resolution="LOW" 749 749 dimImageXYInPixels="192"/> ... ... @@ -752,11 +752,10 @@ 752 752 <linked_records_document_records name="PHOTO_INV" 753 753 documentTypes="Document-Photo" 754 754 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 755 - **subGroupDataIndex="3"**> 756 - 757 -**~ 758 - **<photo_document_file name="**_PHOTO3**" 759 - label="**Photo3**" 706 + ** subGroupDataIndex="3">** 707 + 708 + <photo_document_file name="**_PHOTO3**" 709 + label=**"Photo3"** 760 760 documentTypes="Document-Photo" 761 761 resolution="LOW" 762 762 dimImageXYInPixels="192"/> ... ... @@ -765,11 +765,10 @@ 765 765 <linked_records_document_records name="PHOTO_INV" 766 766 documentTypes="Document-Photo" 767 767 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 768 - **subGroupDataIndex="4"**> 769 - 770 -**~ 771 - **<photo_document_file name="**_PHOTO4**" 772 - label="**Photo4**" 718 + ** subGroupDataIndex="4">** 719 + 720 + <photo_document_file name="**_PHOTO4**" 721 + label=**"Photo4"** 773 773 documentTypes="Document-Photo" 774 774 resolution="LOW" 775 775 dimImageXYInPixels="192"/> ... ... @@ -782,16 +782,15 @@ 782 782 <linked_records_document_records name="PHOTO_INV" 783 783 documentTypes="Document-Photo" 784 784 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 785 - 786 -* 787 -** subGroupDataMultMaxi="4" 788 - subGroupDataIndex=""> 789 -\\ **<photo_document_file name="_PHOTO" 790 - label="Photo" 734 + ** subGroupDataMultMaxi="4"** 735 +**~ subGroupDataIndex="">** 736 + 737 + <photo_document_file name="**_PHOTO4**" 738 + label=**"**Photo4**"** 791 791 documentTypes="Document-Photo" 792 792 resolution="LOW" 793 793 dimImageXYInPixels="192"/> 794 - </linked_records_document_records> **742 + </linked_records_document_records> 795 795 796 796 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= 797 797 ... ... @@ -828,7 +828,8 @@ 828 828 subGroupdataMultiValueSeparator="|" 829 829 subGroupDataMultMaxi="1" 830 830 > 831 -\\ <class_extractor 779 + 780 + <class_extractor 832 832 extractorClassName="com.ezida.services.musee.extractor.MusPhotoArkExtractor" 833 833 name="PHOTO_INV_ARK" 834 834 label="" ... ... @@ -894,24 +894,13 @@ 894 894 [[image:1698311964289-353.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]] 895 895 896 896 846 +== == 897 897 898 - ==Conversion données d'un champ en majuscules ==848 + 899 899 900 - <fieldname='TITRE' label='Titre' dataIsToMajus="true"/>850 + 901 901 902 -== Masquer un contenu de champ en fonction d'un menu (champs sensibles) == 903 903 904 -ci dessous si le uiser n'a pas le menu musee_menu_masque_champs_sensibles il pourra voir le champ 905 905 906 -<field name='TITRE' label='Titre' dataIsToMajus="true" inputRecordFilter="('{user.hasMenu.musee_menu_masque_champs_sensibles}' = 'false')"/> 907 907 908 -== Ajouter le label du champ dans le contenu exporté == 909 - 910 -<field name='TITRE' label='Titre' dataBefore='{fieldLabel} : ' /> 911 - 912 -== Exporter des infos de paramétrage de champ == 913 - 914 -fieldInfoName pouura prendre les 3 options label, linkTable, linkSource 915 - 916 -<field_desc_info name="_collec_liee" fieldName="COLLEC_LIEE" 917 - fieldInfoName="linkTable"/> 855 +
- 1768223007353-115.png
-
- Auteur
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.NSR - Taille
-
... ... @@ -1,1 +1,0 @@ 1 -300.9 KB - Contenu
- 1768226297481-108.png
-
- Auteur
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.NSR - Taille
-
... ... @@ -1,1 +1,0 @@ 1 -47.9 KB - Contenu
- 1768226409578-347.png
-
- Auteur
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.NSR - Taille
-
... ... @@ -1,1 +1,0 @@ 1 -9.9 KB - Contenu
- 1768226447728-811.png
-
- Auteur
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.NSR - Taille
-
... ... @@ -1,1 +1,0 @@ 1 -11.6 KB - Contenu
- 1768227008672-422.png
-
- Auteur
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.NSR - Taille
-
... ... @@ -1,1 +1,0 @@ 1 -14.0 KB - Contenu