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 4.1
modifié par Nicolas Schreiber
sur 2025/08/05 09:47
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
sur 2026/01/12 15:04
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, 4 ajouts, 0 suppressions)
Détails
- Propriétés de la Page
-
- Titre
-
... ... @@ -1,1 +1,1 @@ 1 -Fonctions avancées : paramétragedes exports tabulés paramétrables1 +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 suivants250 +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 p oermet 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 d ugroupe==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:16 98249410427-526.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]316 +[[image:1768226297481-108.png]] 318 318 319 - leparamé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:16 98249964685-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 - Ilest possible de choisirun**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 noterque pour lestype=SUbGrouplelabeldugroup_field estignoré etquecesontles labelsde chaqueélémentqui sontprisencompte dans lesintitulédecolonne396 +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