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 15.1
modifié par Nicolas Schreiber
sur 2026/01/12 15:04
sur 2026/01/12 15:04
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, 4 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,39 +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 - ** 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 - 342 342 **~ <group_field name="INTERVENANT" 343 343 groupDataType = "group" 344 - label = "Intervenants -group"323 + label = "Intervenants" 345 345 groupDataSubGroupSeparator = "\n\n" 346 346 \\> ** 347 347 ... ... @@ -352,7 +352,7 @@ 352 352 353 353 et génerera la colonne ci dessous 354 354 355 -[[image:1 768226409578-347.png||class="img-thumbnail"]]334 +[[image:1698249964685-586.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]] 356 356 357 357 (% class="box infomessage" %) 358 358 ((( ... ... @@ -367,22 +367,11 @@ 367 367 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 368 368 ))) 369 369 370 - ==groupDataType~=subGroup==349 +Il est possible de choisir un** type= "sous groupe"** 371 371 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 - 380 380 <group_field name="INTERVENANT" 381 -**~ groupDataType ** = **"subGroup"** 382 - label = "Intervenants - uibgroup" 383 - 384 - subGroupDataBefore = "intervenant : " 385 - subGroupDataAfter = "\n" 352 +**groupDataType ** = **"SubGroup"** 353 + label = "Intervenants" 386 386 ~> 387 387 388 388 <field name='PERSONNE_INTERVENANT' label='Intervenant'/> ... ... @@ -390,12 +390,15 @@ 390 390 <field name='PRECISION_INTERVENANT' label='Précisions intervenant ' dataJoinSeparator="\n"/> 391 391 </group_field> 392 392 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 393 393 394 -[[image:1768226447728-811.png||class="img-thumbnail"]] 395 395 396 - legroupDataType="subgroup"estdonc peuutilisé,saufdanslesexportsauformat xmlcar ilepermettentdeconserverlarépétabilitédesblocs,etdoncde répéterles nopeuxdans 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 397 397 367 +[[image:1698308536947-443.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]] 398 398 369 + 399 399 == Paramétrages complémentaires pour les blocs répétables == 400 400 401 401 il est possible d'inclure aussi dans un group_field ... ... @@ -643,7 +643,8 @@ 643 643 ** <linked_field name='BIEN' label='Bien'> 644 644 **~ <field name='DISPLAY' label='Bien' display='true'/> 645 645 </linked_field> 646 -\\</reference>** 617 + 618 +</reference>** 647 647 648 648 **<reference source='musee' table='MUS_JOIN_COLIS_MOUV'** 649 649 groupDataType = "subGroup" ... ... @@ -651,7 +651,7 @@ 651 651 subGroupDataBefore = "" 652 652 subGroupDataSeparator = ", " 653 653 subGroupDataAfter = "" > 654 -**<linked_field name='MOUVEMENT_BIEN' label='Bien'>** 626 + **<linked_field name='MOUVEMENT_BIEN' label='Bien'>** 655 655 <field name='DISPLAY' label='Bien' display='true'/> 656 656 </linked_field> 657 657 </reference> ... ... @@ -678,7 +678,7 @@ 678 678 documentTypes="Document-Photo" 679 679 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 680 680 subGroupDataMultMaxi="" 681 - **subGroupDataIndex="1">** 653 + **subGroupDataIndex="1">** 682 682 <!~-~- champ de la table IDOCS ~-~-> 683 683 <field name="LABEL" label="Photo 1 : "/> 684 684 ... ... @@ -687,11 +687,9 @@ 687 687 label="Photo 1" 688 688 inputRecordFilter="" 689 689 documentTypes="Document-Photo" 690 - 691 -* 692 -** resolution="LOW" 662 + ** resolution="LOW" 693 693 dimImageXYInPixels="192"**/> 694 - </linked_records_document_records> **664 + </linked_records_document_records> 695 695 696 696 == Plusieurs images == 697 697 ... ... @@ -708,24 +708,23 @@ 708 708 <linked_records_document_records name="PHOTO_INV" 709 709 documentTypes="Document-Photo" 710 710 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 711 - **subGroupDataIndex="1"**> 712 - 713 -**~ 714 - **<photo_document_file name="**_PHOTO1**" 715 - label="**Photo1**" 681 + ** subGroupDataIndex="1">** 682 + 683 + <photo_document_file name="**_PHOTO1**" 684 + label=**"Photo1"** 716 716 documentTypes="Document-Photo" 717 717 resolution="LOW" 718 718 dimImageXYInPixels="192"/> 719 719 </linked_records_document_records> 720 720 690 + 721 721 <linked_records_document_records name="PHOTO_INV" 722 722 documentTypes="Document-Photo" 723 723 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 724 - **subGroupDataIndex="2"**> 725 - 726 -**~ 727 - **<photo_document_file name="**_PHOTO2**" 728 - label="**Photo2**" 694 + ** subGroupDataIndex="2">** 695 + 696 + <photo_document_file name="**_PHOTO2**" 697 + label=**"Photo2"** 729 729 documentTypes="Document-Photo" 730 730 resolution="LOW" 731 731 dimImageXYInPixels="192"/> ... ... @@ -734,11 +734,10 @@ 734 734 <linked_records_document_records name="PHOTO_INV" 735 735 documentTypes="Document-Photo" 736 736 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 737 - **subGroupDataIndex="3"**> 738 - 739 -**~ 740 - **<photo_document_file name="**_PHOTO3**" 741 - label="**Photo3**" 706 + ** subGroupDataIndex="3">** 707 + 708 + <photo_document_file name="**_PHOTO3**" 709 + label=**"Photo3"** 742 742 documentTypes="Document-Photo" 743 743 resolution="LOW" 744 744 dimImageXYInPixels="192"/> ... ... @@ -747,11 +747,10 @@ 747 747 <linked_records_document_records name="PHOTO_INV" 748 748 documentTypes="Document-Photo" 749 749 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 750 - **subGroupDataIndex="4"**> 751 - 752 -**~ 753 - **<photo_document_file name="**_PHOTO4**" 754 - label="**Photo4**" 718 + ** subGroupDataIndex="4">** 719 + 720 + <photo_document_file name="**_PHOTO4**" 721 + label=**"Photo4"** 755 755 documentTypes="Document-Photo" 756 756 resolution="LOW" 757 757 dimImageXYInPixels="192"/> ... ... @@ -764,16 +764,15 @@ 764 764 <linked_records_document_records name="PHOTO_INV" 765 765 documentTypes="Document-Photo" 766 766 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 767 - 768 -* 769 -** subGroupDataMultMaxi="4" 770 - subGroupDataIndex=""> 771 -\\ **<photo_document_file name="_PHOTO" 772 - label="Photo" 734 + ** subGroupDataMultMaxi="4"** 735 +**~ subGroupDataIndex="">** 736 + 737 + <photo_document_file name="**_PHOTO4**" 738 + label=**"**Photo4**"** 773 773 documentTypes="Document-Photo" 774 774 resolution="LOW" 775 775 dimImageXYInPixels="192"/> 776 - </linked_records_document_records> **742 + </linked_records_document_records> 777 777 778 778 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= 779 779 ... ... @@ -810,7 +810,8 @@ 810 810 subGroupdataMultiValueSeparator="|" 811 811 subGroupDataMultMaxi="1" 812 812 > 813 -\\ <class_extractor 779 + 780 + <class_extractor 814 814 extractorClassName="com.ezida.services.musee.extractor.MusPhotoArkExtractor" 815 815 name="PHOTO_INV_ARK" 816 816 label="" ... ... @@ -876,24 +876,13 @@ 876 876 [[image:1698311964289-353.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]] 877 877 878 878 846 +== == 879 879 880 - ==Conversion données d'un champ en majuscules ==848 + 881 881 882 - <fieldname='TITRE' label='Titre' dataIsToMajus="true"/>850 + 883 883 884 -== Masquer un contenu de champ en fonction d'un menu (champs sensibles) == 885 885 886 -ci dessous si le uiser n'a pas le menu musee_menu_masque_champs_sensibles il pourra voir le champ 887 887 888 -<field name='TITRE' label='Titre' dataIsToMajus="true" inputRecordFilter="('{user.hasMenu.musee_menu_masque_champs_sensibles}' = 'false')"/> 889 889 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"/> 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