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 17.1
modifié par Nicolas Schreiber
sur 2026/01/12 15:46
sur 2026/01/12 15:46
Commentaire de modification :
Il n'y a aucun commentaire pour cette version
À la version 14.1
modifié par Nicolas Schreiber
sur 2026/01/12 09:15
sur 2026/01/12 09:15
Commentaire de modification :
Il n'y a aucun commentaire pour cette version
Résumé
-
Propriétés de la Page (1 modifications, 0 ajouts, 0 suppressions)
-
Pièces jointes (0 modifications, 0 ajouts, 10 suppressions)
Détails
- Propriétés de la Page
-
- Contenu
-
... ... @@ -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 ... ... @@ -270,7 +270,7 @@ 270 270 271 271 [[image:1698235351939-869.png]] 272 272 273 -== Ajout de données par défaut entre les champs d ela concat==271 +== 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 300 +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 309 +(% class="box infomessage" %) 310 +((( 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 312 +))) 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]]316 +[[image:1698249410427-526.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]] 317 317 318 - ==groupDataType~=group==318 +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"322 + 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"]]333 +[[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==348 +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" 351 +**groupDataType ** = **"SubGroup"** 352 + label = "Intervenants" 387 387 ~> 388 388 389 389 <field name='PERSONNE_INTERVENANT' label='Intervenant'/> ... ... @@ -391,81 +391,15 @@ 391 391 <field name='PRECISION_INTERVENANT' label='Précisions intervenant ' dataJoinSeparator="\n"/> 392 392 </group_field> 393 393 360 +(% class="wikigeneratedid" %) 361 +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 desortie364 +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 =366 +[[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 -== 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 - 469 469 == Paramétrages complémentaires pour les blocs répétables == 470 470 471 471 il est possible d'inclure aussi dans un group_field ... ... @@ -474,29 +474,39 @@ 474 474 * des champs des notices liées a un des champs du bloc via le tag 'linked_field' 475 475 * 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 476 476 477 - 377 +=== Ajout de données avant - après chaque sous-groupe === 478 478 479 -=== Exemple global === 379 +* **subGroupDataBefore **: séparateur avant les données d'un sous-groupe (Chaine vide si non défini) 380 +* **subGroupDataSeparator **: séparateur entre les données d'un sous-groupe (Espace si non défini) 381 +* **subGroupDataAfter **: séparateur après les donnes d'un sous-groupe (Chaine vide si non défini) 480 480 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 -~> 383 +=== Ajout de données avant - après le groupe === 491 491 492 - <field name='PERSONNE_INTERVENANT' label='Intervenant'/> 385 +Uniquement si groupDataType="group" car la colonne unique contiendra une concaténation de tous les sous-groupes en un seul groupe 386 + 387 +* **groupDataBefore **: séparateur avant les données du groupe (Chaine vide si non défini) 388 +* **groupDataSubGroupSeparator **: séparateur entre les sous-groupes (' / ' espace slash espace si non défini) 389 +* **groupDataAfter **: séparateur après les données du groupe (Chaine vide si non défini) 390 + 391 +=== Exemple global === 392 + 393 +<**group_field **name="INTERVENANT" 394 + groupDataType = "**group**" 395 + label = "Intervenants" 396 + groupDataBefore = "- texte avant le groupe -\n" 397 + groupDataSubGroupSeparator = "\n{séparateur par défaut entre les sous groupe}\n" 398 + groupDataAfter = "\n-texte aprés le groupe" 399 + subGroupDataBefore = "- texte avant le sousgroupe - " 400 + subGroupDataSeparator = " {séparateur par défaut dans le sous groupe} " 401 + subGroupDataAfter = " - texte aprés avant le sousgroupe -" 402 +\\> 403 +\\ <field name='PERSONNE_INTERVENANT' label='Intervenant'/> 493 493 <field name='FONCTION_INTERVENANT' label='Fonction ' dataBefore=" (" dataAfter=")"/> 494 494 <field name='PRECISION_INTERVENANT' label='Précisions intervenant ' dataJoinSeparator="\n"/> 495 495 </group_field> 496 496 408 +[[image:1698310122900-966.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]] 497 497 498 -[[image:1768229192168-268.png||class="img-thumbnail"]] 499 - 500 500 == Filtre sur les données du groupe == 501 501 502 502 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 ... ... @@ -699,7 +699,7 @@ 699 699 subGroupDataSeparator = ", " 700 700 subGroupDataAfter = "" > 701 701 702 -* 612 +* 703 703 ** <linked_field name='BIEN' label='Bien'> 704 704 **~ <field name='DISPLAY' label='Bien' display='true'/> 705 705 </linked_field> ... ... @@ -738,7 +738,7 @@ 738 738 documentTypes="Document-Photo" 739 739 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 740 740 subGroupDataMultMaxi="" 741 - **subGroupDataIndex="1">** 651 + **subGroupDataIndex="1">** 742 742 <!~-~- champ de la table IDOCS ~-~-> 743 743 <field name="LABEL" label="Photo 1 : "/> 744 744 ... ... @@ -748,7 +748,7 @@ 748 748 inputRecordFilter="" 749 749 documentTypes="Document-Photo" 750 750 751 -* 661 +* 752 752 ** resolution="LOW" 753 753 dimImageXYInPixels="192"**/> 754 754 </linked_records_document_records>** ... ... @@ -768,7 +768,7 @@ 768 768 <linked_records_document_records name="PHOTO_INV" 769 769 documentTypes="Document-Photo" 770 770 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 771 - **subGroupDataIndex="1"**> 681 + **subGroupDataIndex="1"**> 772 772 773 773 **~ 774 774 **<photo_document_file name="**_PHOTO1**" ... ... @@ -781,7 +781,7 @@ 781 781 <linked_records_document_records name="PHOTO_INV" 782 782 documentTypes="Document-Photo" 783 783 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 784 - **subGroupDataIndex="2"**> 694 + **subGroupDataIndex="2"**> 785 785 786 786 **~ 787 787 **<photo_document_file name="**_PHOTO2**" ... ... @@ -794,7 +794,7 @@ 794 794 <linked_records_document_records name="PHOTO_INV" 795 795 documentTypes="Document-Photo" 796 796 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 797 - **subGroupDataIndex="3"**> 707 + **subGroupDataIndex="3"**> 798 798 799 799 **~ 800 800 **<photo_document_file name="**_PHOTO3**" ... ... @@ -807,7 +807,7 @@ 807 807 <linked_records_document_records name="PHOTO_INV" 808 808 documentTypes="Document-Photo" 809 809 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 810 - **subGroupDataIndex="4"**> 720 + **subGroupDataIndex="4"**> 811 811 812 812 **~ 813 813 **<photo_document_file name="**_PHOTO4**" ... ... @@ -825,10 +825,11 @@ 825 825 documentTypes="Document-Photo" 826 826 subGroupDataFilter="(IDOC_ACCESSIBILITY = 1)" 827 827 828 -* 738 +* 829 829 ** subGroupDataMultMaxi="4" 830 830 subGroupDataIndex=""> 831 -\\**<photo_document_file name="_PHOTO" 741 + 742 + **<photo_document_file name="_PHOTO" 832 832 label="Photo" 833 833 documentTypes="Document-Photo" 834 834 resolution="LOW"
- 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
- 1768228264778-201.png
-
- Auteur
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.NSR - Taille
-
... ... @@ -1,1 +1,0 @@ 1 -10.9 KB - Contenu
- 1768228658052-477.png
-
- Auteur
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.NSR - Taille
-
... ... @@ -1,1 +1,0 @@ 1 -9.5 KB - Contenu
- 1768228710793-297.png
-
- Auteur
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.NSR - Taille
-
... ... @@ -1,1 +1,0 @@ 1 -10.6 KB - Contenu
- 1768229185769-507.png
-
- Auteur
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.NSR - Taille
-
... ... @@ -1,1 +1,0 @@ 1 -22.8 KB - Contenu
- 1768229192168-268.png
-
- Auteur
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.NSR - Taille
-
... ... @@ -1,1 +1,0 @@ 1 -22.8 KB - Contenu