Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe

Commits:

2 changed files:

Changes:

  • src/site/markdown/report/index.md.vm
    ... ... @@ -118,7 +118,7 @@ version applicative, à savoir dans
    118 118
     
    
    119 119
     Dans la configuration de l'assistant, par défaut on utilise ce fichier.
    
    120 120
     
    
    121
    -Il est envisagé en *v10* de faire évoluer cela pour que chaque rapport puisse être décrit dans un fichier séparé. 
    
    121
    +Depuis la version **9.3.0**, chaque rapport est décrit dans un fichier séparé.
    
    122 122
     
    
    123 123
     Cela aura pour avantage :
    
    124 124
     
    
    ... ... @@ -126,6 +126,54 @@ Cela aura pour avantage :
    126 126
      * de simplifier l'écriture de ceux-ci (on pourra alors supprimer tous les préfixes actuellement utilisés pour identifier un rapport).
    
    127 127
      * de pouvoir organiser ces rapports par modèle métier, ou par type d'organisation
    
    128 128
     
    
    129
    +Tous les rapports sont regroupés dans un répertoire des resources de la version applicative, à savoir dans
    
    130
    +
    
    131
    +```.observe/resources-${project.version}/report/default```
    
    132
    +
    
    133
    +dont voici le contenu (en 9.3.0)
    
    134
    +
    
    135
    +```
    
    136
    +resources-9.3.0-RC-5/report/
    
    137
    +└── default
    
    138
    +    ├── ll
    
    139
    +    │   ├── llCommonTripGearUseFeatures.report
    
    140
    +    │   ├── llLanding.report
    
    141
    +    │   ├── llLogbookActivities.report
    
    142
    +    │   ├── llLogbookCatches.report
    
    143
    +    │   ├── llLogbookSamplesOnActivity.report
    
    144
    +    │   ├── llLogbookSamplesOnBoth.report
    
    145
    +    │   └── llLogbookSamplesOnTrip.report
    
    146
    +    └── ps
    
    147
    +        ├── psCommonTripGearUseFeatures.report
    
    148
    +        ├── psLocalmarketBatch.report
    
    149
    +        ├── psLocalmarketSample.report
    
    150
    +        ├── psLocalmarketSurvey.report
    
    151
    +        ├── psLogbookActivity.report
    
    152
    +        ├── psLogbookSampleMeasures.report
    
    153
    +        ├── psLogbookSampleSet.report
    
    154
    +        ├── psLogbookSampleSpeciesMeasuresCount.report
    
    155
    +        ├── psLogbookSampleSpeciesMeasures.report
    
    156
    +        ├── psLogbookTrip.report
    
    157
    +        ├── psLogbookWellPlanCheck.report
    
    158
    +        ├── psLogbookWellPlan.report
    
    159
    +        ├── psObservationActivitiesByZone.report
    
    160
    +        ├── psObservationActivityWithComment.report
    
    161
    +        ├── psObservationAllActivities.report
    
    162
    +        ├── psObservationCatch.report
    
    163
    +        ├── psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.report
    
    164
    +        ├── psObservationCatchTotalCountByGroupPerReasonForDiscard.report
    
    165
    +        ├── psObservationCatchTotalCountByGroupPerSpeciesFate.report
    
    166
    +        ├── psObservationCatchWeightByGroupAndSpeciesFateDiscardPerAssociation.report
    
    167
    +        ├── psObservationCatchWeightByGroupPerReasonForDiscard.report
    
    168
    +        ├── psObservationCatchWeightByGroupPerSpeciesFate.report
    
    169
    +        ├── psObservationDailySetAndCatch.report
    
    170
    +        ├── psObservationFobUsageExtended.report
    
    171
    +        ├── psObservationFobUsageMinimal.report
    
    172
    +        ├── psObservationLengthsDistribution.report
    
    173
    +        ├── psObservationRepartionCaleeParCuve.report
    
    174
    +        └── psObservationSetByAssociation.report
    
    175
    +```
    
    176
    +
    
    129 177
     ## Description du fonctionnement général d'un rapport
    
    130 178
     
    
    131 179
     ### Prération des variables
    

  • src/site/markdown/report/syntax.md
    ... ... @@ -6,78 +6,110 @@ Ce document décrit comment écrire un rapport.
    6 6
     
    
    7 7
     Comme écrit dans la page de présentation des rapports, ceux-ci sont décrits dans un fichier de type *properties*.
    
    8 8
     
    
    9
    -La syntaxe a été uniformisée en version 9.
    
    9
    +La syntaxe a été uniformisée en version 9 et depuis la 9.3.0 chaque rapport est décrit dans un fichier séparé.
    
    10 10
     
    
    11 11
     ### Identifiant d'un rapport
    
    12 12
     
    
    13
    -Chaque rapport possède un identifiant unique; celui-ci est utilisé pour identifier toute sa description dans le fichier
    
    14
    -global.
    
    13
    +Chaque rapport possède un identifiant unique; le nom du fichier correspondant est **id.report**.
    
    15 14
     
    
    16 15
     Voici un premier exemple de rapport pour mieux comprendre comment cela s'organise :
    
    17 16
     
    
    18 17
     ```properties
    
    19
    -report.llCommonTripGearUseFeatures.modelType=LL
    
    20
    -report.llCommonTripGearUseFeatures.name=Liste des équipements
    
    21
    -report.llCommonTripGearUseFeatures.description=Afficher les équipements
    
    22
    -report.llCommonTripGearUseFeatures.columns=Equipement,Nombre,Utilisé dans la marée,Mesures
    
    23
    -report.llCommonTripGearUseFeatures.repeatVariable.1.name=gearUseFeaturesId
    
    24
    -report.llCommonTripGearUseFeatures.repeatVariable.1.type=java.lang.String
    
    25
    -report.llCommonTripGearUseFeatures.repeatVariable.1.request=Select g.id \
    
    18
    +modelType=LL
    
    19
    +name=Liste des équipements
    
    20
    +name.en=Gears uses features
    
    21
    +name.es=
    
    22
    +description=Afficher les équipements
    
    23
    +description.en=Display gear uses features
    
    24
    +description.es=
    
    25
    +columns=Equipement,Nombre,Utilisé dans la marée,Mesures
    
    26
    +columns.en=Gear,Number,Used in trip?,Measures
    
    27
    +columns.es=
    
    28
    +repeatVariable.1.name=gearUseFeaturesId
    
    29
    +repeatVariable.1.type=java.lang.String
    
    30
    +repeatVariable.1.request=Select g.id \
    
    26 31
     From fr.ird.observe.entities.data.ll.common.TripImpl m \
    
    27 32
     Join m.gearUseFeatures g \
    
    28 33
     Where \
    
    29 34
     m.id In :tripId \
    
    30 35
     and g in elements (m.gearUseFeatures) \
    
    31
    -Order By g.gear.label2
    
    32
    -report.llCommonTripGearUseFeatures.request.1.location=0,0
    
    33
    -report.llCommonTripGearUseFeatures.request.1.layout=row
    
    34
    -report.llCommonTripGearUseFeatures.request.1.request=Select \
    
    35
    -concat(CASE When g.gear.code IS NULL Then 'Aucun code' Else  g.gear.code End, ' - ', g.gear.label2), \
    
    36
    +Order By g.gear.@i18nColumnName@
    
    37
    +request.1.location=0,0
    
    38
    +request.1.layout=row
    
    39
    +request.1.request=Select \
    
    40
    +concat(CASE When g.gear.code IS NULL Then '@noCode@' Else  g.gear.code End, ' - ', g.gear.@i18nColumnName@), \
    
    36 41
     g.number, \
    
    37
    -( CASE g.usedInTrip When true Then 'Oui' Else Case g.usedInTrip When false Then 'Non' Else 'Indéterminé' End End )\
    
    42
    +( CASE g.usedInTrip When true Then '@yes@' Else Case g.usedInTrip When false Then '@no@' Else '@Null@' End End )\
    
    38 43
     From fr.ird.observe.entities.data.ll.common.GearUseFeaturesImpl g \
    
    39 44
     Where g.id = :gearUseFeaturesId
    
    40
    -report.llCommonTripGearUseFeatures.request.1.repeat.name=gearUseFeaturesId
    
    41
    -report.llCommonTripGearUseFeatures.request.1.repeat.layout=column
    
    42
    -report.llCommonTripGearUseFeatures.operations.1.type=ComputeMeasurementsLongline
    
    45
    +request.1.repeat.name=gearUseFeaturesId
    
    46
    +request.1.repeat.layout=column
    
    47
    +operations.1.type=ComputeMeasurementsLongline
    
    48
    +i18n.Null=Indéterminé
    
    49
    +i18n.Null.en=Undefined
    
    50
    +i18n.Null.es=Indeterminado
    
    51
    +i18n.noCode=Aucun code
    
    52
    +i18n.noCode.en=No code
    
    53
    +i18n.noCode.es=
    
    43 54
     ```
    
    44 55
     
    
    45 56
     Ici l'identifiant du rapport est ```llCommonTripGearUseFeatures```.
    
    46 57
     
    
    47 58
     Par convention, on utilise le domaine métier **ll**, suivi du sous-domaine métier **Common**, puis enfin un suffixe qui
    
    48 59
     exprime ce que le rapport doit produire **TripGearUseFeatures**.
    
    49
    -
    
    50
    -Dans le fichier global, toutes les entrées commençants par **report.llCommonTripGearUseFeatures** permettent alors de
    
    51
    -décrire le rapport.
    
    52
    -
    
    60
    +  
    
    53 61
     ### Méta-données d'un rapport
    
    54 62
     
    
    55 63
     Il existe cinq méta-données pour un rapport (dont trois sont obligatoires) :
    
    56 64
     
    
    57 65
     ```properties
    
    58
    -report.xxx.modelType=PS ou LL
    
    59
    -report.xxx.name=Nom du rapport
    
    60
    -report.xxx.description=Description du rapport
    
    61
    -report.xxx.columns=En-têtes des colonnes du rapport (séparées par des virgules) [Optionnel]
    
    62
    -report.xxx.rows=En-têtes des lignes du rapport (séparées par des virgules) [Optionnel]
    
    66
    +modelType=PS ou LL
    
    67
    +name=Nom du rapport
    
    68
    +name.en=Nom du rapport (Anglais)
    
    69
    +name.es=Nom du rapport (Espagnol)
    
    70
    +description=Description du rapport
    
    71
    +description.en=Description du rapport (Anglais)
    
    72
    +description.es=Description du rapport (Espagnol)
    
    73
    +columns=En-têtes des colonnes du rapport (séparées par des virgules) [Optionnel]
    
    74
    +columns.en=En-têtes des colonnes du rapport (séparées par des virgules) (Anglais) [Optionnel]
    
    75
    +columns.es=En-têtes des colonnes du rapport (séparées par des virgules) (Espagnol) [Optionnel]
    
    76
    +rows=En-têtes des lignes du rapport (séparées par des virgules) [Optionnel]
    
    77
    +rows.en=En-têtes des lignes du rapport (séparées par des virgules) (Anglais) [Optionnel]
    
    78
    +rows.es=En-têtes des lignes du rapport (séparées par des virgules) (Espagnol) [Optionnel]
    
    63 79
     ```
    
    64 80
     
    
    65
    -```report.xxx.modelType``` permet de définir le domaine métier sur lequel porte le rapport, valeurs possibles :
    
    81
    +```modelType``` permet de définir le domaine métier sur lequel porte le rapport, valeurs possibles :
    
    66 82
     
    
    67 83
     * **PS** pour le domaine *Senne*
    
    68 84
     * **LL** pour le domaine *Palangre*.
    
    69 85
     
    
    70 86
     En *V10*, on ajoutera certainement **COMMON** pour le domaine métier des marées agnostiques.
    
    71 87
     
    
    72
    -```report.xxx.name``` permet de définir le nom du rapport, ce texte est celui affiché dans la liste déroulante des
    
    88
    +```name``` permet de définir le nom du rapport en français, ce texte est celui affiché dans la liste déroulante des
    
    73 89
     rapports à sélectionner dans l'assistant.
    
    74 90
     
    
    75
    -```report.xxx.description``` permet de définir une description longue d'un rapport, ce texte est celui affiché
    
    91
    +```name.en``` permet de définir le nom du rapport en anglais, si vide le texte français est utilisé.
    
    92
    +
    
    93
    +```name.es``` permet de définir le nom du rapport en espagnol, si vide le texte français est utilisé.
    
    94
    +
    
    95
    +```description``` permet de définir une description longue d'un rapport, ce texte est celui affiché
    
    76 96
     comme description lorsqu'un rapport est sélectionné dans l'assistant.
    
    77 97
     
    
    78
    -```report.xxx.colomns``` **[Optionnel]** permet de définir les en-têtes de colonnes de manière fixe.
    
    98
    +```description.en``` version anglaise, si vide le texte français est utilisé.
    
    99
    +
    
    100
    +```description.es``` version espagnole, si vide le texte français est utilisé.
    
    79 101
     
    
    80
    -```report.xxx.rows``` **[Optionnel]** permet de définir les en-têtes de lignes de manière fixe.
    
    102
    +```colomns``` **[Optionnel]** permet de définir les en-têtes de colonnes de manière fixe.
    
    103
    +
    
    104
    +```colomns.en``` version anglaise, si vide le texte français est utilisé.
    
    105
    +
    
    106
    +```colomns.es``` version espagnole, si vide le texte français est utilisé.
    
    107
    +
    
    108
    +```rows``` **[Optionnel]** permet de définir les en-têtes de lignes de manière fixe.
    
    109
    +
    
    110
    +```rows.en``` version anglaise, si vide le texte français est utilisé.
    
    111
    +
    
    112
    +```rows.es``` version espagnole, si vide le texte français est utilisé.
    
    81 113
     
    
    82 114
     Il est possible de ne pas les indiquer si le rapport n'a pas d'en-têtes de colonnes ou de lignes fixes; Ces en-têtes
    
    83 115
     seront alors définies via les requêtes du rapport.
    
    ... ... @@ -100,9 +132,9 @@ variable attend que la seconde soit remplie...**
    100 132
     Pour décrire une variable trois lignes sont nécessaires, comme on peut le voir dans l'exemple suivant :
    
    101 133
     
    
    102 134
     ```properties
    
    103
    -report.xxx.variable.1.name=speciesGroup
    
    104
    -report.xxx.variable.1.type=fr.ird.observe.dto.referential.common.SpeciesGroupReference
    
    105
    -report.xxx.variable.1.request=Select distinct sg \
    
    135
    +variable.1.name=speciesGroup
    
    136
    +variable.1.type=fr.ird.observe.dto.referential.common.SpeciesGroupReference
    
    137
    +variable.1.request=Select distinct sg \
    
    106 138
     From TripImpl t \
    
    107 139
     Join t.routeObs r \
    
    108 140
     Join r.activity a \
    
    ... ... @@ -114,11 +146,11 @@ Where t.id In :tripId \
    114 146
     Order By sg.code
    
    115 147
     ```
    
    116 148
     
    
    117
    -```report.xxx.variable.1.name``` définit l'*alias* de la variable que l'on pourra ensuite utiliser dans le
    
    149
    +```variable.1.name``` définit l'*alias* de la variable que l'on pourra ensuite utiliser dans le
    
    118 150
     reste de la définition du rapport (par exemple dans d'autres variables, variables de répétition, requêtes ou
    
    119 151
     opérations).
    
    120 152
     
    
    121
    -```report.xxx.variable.1.type``` définit le type de la variable. Ce type doit être un type de *dto* ou une
    
    153
    +```variable.1.type``` définit le type de la variable. Ce type doit être un type de *dto* ou une
    
    122 154
     *référence de dto*. On ne peut pas ici utiliser un type d'*entité*, puisque l'interface graphique (selon le principe de
    
    123 155
     séparation des couches) n'a pas connaissance du modèle des entités.
    
    124 156
     
    
    ... ... @@ -133,13 +165,13 @@ l'arbre de navigation; la notion de *dto* étant utilisée au niveau d'un formul
    133 165
     * comment décorer la donnée
    
    134 166
     * comment transformer l'entité
    
    135 167
     
    
    136
    -```report.xxx.variable.1.request``` définit la requête **hql** pour récupérer l'univers des valeurs de
    
    168
    +```variable.1.request``` définit la requête **hql** pour récupérer l'univers des valeurs de
    
    137 169
     la variable.
    
    138 170
     
    
    139 171
     Il est possible de documenter cette variable en utilise une quatrième ligne optionnelle :
    
    140 172
     
    
    141 173
     ```properties
    
    142
    -report.xxx.variable.1.comment=Un commentaire optionnel pour documenter la variable
    
    174
    +variable.1.comment=Un commentaire optionnel pour documenter la variable
    
    143 175
     ```
    
    144 176
     
    
    145 177
     **À noter que l'utilisation d'une variable dans le reste du rapport se fait toujours via son identifiant technique
    
    ... ... @@ -151,9 +183,9 @@ sélection des marées sur lequel on veut appliquer le rapport**.
    151 183
     Voici un second exemple de deux variables dont la seconde utilise la première :
    
    152 184
     
    
    153 185
     ```properties
    
    154
    -report.xxx.variable.1.name=discardMode
    
    155
    -report.xxx.variable.1.type=fr.ird.observe.dto.data.ps.observation.SpeciesFateDiscardModeDto
    
    156
    -report.xxx.variable.1.request=Select distinct new fr.ird.observe.dto.data.ps.observation.SpeciesFateDiscardModeDto(sf.discard) \
    
    186
    +variable.1.name=discardMode
    
    187
    +variable.1.type=fr.ird.observe.dto.data.ps.observation.SpeciesFateDiscardModeDto
    
    188
    +variable.1.request=Select distinct new fr.ird.observe.dto.data.ps.observation.SpeciesFateDiscardModeDto(sf.discard) \
    
    157 189
     From TripImpl t \
    
    158 190
     Join t.routeObs r \
    
    159 191
     Join r.activity a \
    
    ... ... @@ -162,9 +194,9 @@ Join c.catches ca with ca.totalCount Is Not Null \
    162 194
     Join ca.speciesFate sf \
    
    163 195
     Where t.id In :tripId \
    
    164 196
     Order By sf.discard
    
    165
    -report.xxx.variable.2.name=speciesGroup
    
    166
    -report.xxx.variable.2.type=fr.ird.observe.dto.referential.common.SpeciesGroupReference
    
    167
    -report.xxx.variable.2.request=Select distinct sg \
    
    197
    +variable.2.name=speciesGroup
    
    198
    +variable.2.type=fr.ird.observe.dto.referential.common.SpeciesGroupReference
    
    199
    +variable.2.request=Select distinct sg \
    
    168 200
     From TripImpl t \
    
    169 201
     Join t.routeObs r \
    
    170 202
     Join r.activity a \
    
    ... ... @@ -194,9 +226,9 @@ Comme indiqué plus haut, la syntaxe d'une variable de répétition est identiqu
    194 226
     Pour décrire une variable de répétition, trois lignes sont nécessaires, comme on peut le voir dans l'exemple suivant :
    
    195 227
     
    
    196 228
     ```properties
    
    197
    -report.xxx.repeatVariable.1.name=gearUseFeaturesId
    
    198
    -report.xxx.repeatVariable.1.type=java.lang.String
    
    199
    -report.xxx.repeatVariable.1.request=Select g.id \
    
    229
    +repeatVariable.1.name=gearUseFeaturesId
    
    230
    +repeatVariable.1.type=java.lang.String
    
    231
    +repeatVariable.1.request=Select g.id \
    
    200 232
     From fr.ird.observe.entities.data.ll.common.TripImpl m \
    
    201 233
     Join m.gearUseFeatures g \
    
    202 234
     Where \
    
    ... ... @@ -205,10 +237,10 @@ and g in elements (m.gearUseFeatures) \
    205 237
     Order By g.gear.label2
    
    206 238
     ```
    
    207 239
     
    
    208
    -```report.xxx.repeatVariable.1.name``` définit l'*alias* de la variable de répétition à utiliser dans une requête, autre
    
    240
    +```repeatVariable.1.name``` définit l'*alias* de la variable de répétition à utiliser dans une requête, autre
    
    209 241
     variable de répétition ou opération
    
    210 242
     
    
    211
    -```report.xxx.repeatVariable.1.type``` définit le type de la variable de répétition. Contrairement aux variables, les
    
    243
    +```repeatVariable.1.type``` définit le type de la variable de répétition. Contrairement aux variables, les
    
    212 244
     variables de répétition sont utilisées en interne pour exécuter le rapport, on peut donc utiliser directement des types
    
    213 245
     d'*entité*,
    
    214 246
     ou bien des types *simples* qui correspondent aux types d'une colonne en base (**java.lang.String**, **java.lang.Float
    
    ... ... @@ -219,7 +251,7 @@ requêtes :
    219 251
     si on définit une variable de type *entité*, c'est bien l'entité qui sera injectée dans la requête *hql*, et non pas
    
    220 252
     juste son identifiant technique.**
    
    221 253
     
    
    222
    -```report.xxx.repeatVariable.1.request``` définit la requête **hql** pour récupérer l'univers des valeurs de la variable
    
    254
    +```repeatVariable.1.request``` définit la requête **hql** pour récupérer l'univers des valeurs de la variable
    
    223 255
     de répétition
    
    224 256
     
    
    225 257
     Il est possible d'utiliser dans une requête de variable de répétition, un alias sur toute variable du rapport (dont la
    
    ... ... @@ -235,13 +267,13 @@ l'univers de cette variable de répétion, ce qui peut etre utilise (et nous nou
    235 267
     pas décrire via la requete *hql.
    
    236 268
     
    
    237 269
     ```properties
    
    238
    -report.xxx.repeatVariable.1.addNull=true
    
    270
    +repeatVariable.1.addNull=true
    
    239 271
     ```
    
    240 272
     
    
    241 273
     Il est possible de documenter cette variable de répétition en utilisant une ligne optionnelle :
    
    242 274
     
    
    243 275
     ```properties
    
    244
    -report.xxx.repeatVariable.1.comment=Un commentaire optionnel pour documenter la variable de répétition
    
    276
    +repeatVariable.1.comment=Un commentaire optionnel pour documenter la variable de répétition
    
    245 277
     ```
    
    246 278
     
    
    247 279
     ### requêtes d'un rapport
    
    ... ... @@ -255,9 +287,9 @@ On distingue deux types de requêtes :
    255 287
     Les deux types de requêtes nécessitent les trois lignes, comme décrit dans l'exemple suivant :
    
    256 288
     
    
    257 289
     ```properties
    
    258
    -report.xxx.request.1.location=0,0
    
    259
    -report.xxx.request.1.layout=row
    
    260
    -report.xxx.request.1.request=Select \
    
    290
    +request.1.location=0,0
    
    291
    +request.1.layout=row
    
    292
    +request.1.request=Select \
    
    261 293
     concat(CASE When g.gear.code IS NULL Then 'Aucun code' Else  g.gear.code End, ' - ', g.gear.label2), \
    
    262 294
     g.number, \
    
    263 295
     ( CASE g.usedInTrip When true Then 'Oui' Else Case g.usedInTrip When false Then 'Non' Else 'Indéterminé' End End )\
    
    ... ... @@ -265,10 +297,10 @@ From fr.ird.observe.entities.data.ll.common.GearUseFeaturesImpl g \
    265 297
     Where g.id = :gearUseFeaturesId
    
    266 298
     ```
    
    267 299
     
    
    268
    -```report.xxx.request.1.location``` définit la position dans le résultat final où positionner le résultat de cette
    
    300
    +```request.1.location``` définit la position dans le résultat final où positionner le résultat de cette
    
    269 301
     requête.
    
    270 302
     
    
    271
    -```report.xxx.request.1.layout``` définit la disposition à utiliser pour placer le résultat de cette requête dans le
    
    303
    +```request.1.layout``` définit la disposition à utiliser pour placer le résultat de cette requête dans le
    
    272 304
     résultat final. Deux valeurs sont possibles :
    
    273 305
     
    
    274 306
     * **row** pour signifier que le résultat de la requête sera positionné en ligne à partir de la position précedemment
    
    ... ... @@ -277,24 +309,24 @@ résultat final. Deux valeurs sont possibles :
    277 309
       précedemment définie. Ce mode est une transposition du résultat de la requête : une ligne du résultat de la requête
    
    278 310
       sera une colonne dans le résultat final
    
    279 311
     
    
    280
    -```report.xxx.request.1.request``` définit le code **hql** qui permet de construire le résultat à placer ensuite dans le
    
    312
    +```request.1.request``` définit le code **hql** qui permet de construire le résultat à placer ensuite dans le
    
    281 313
     résultat final du rapport
    
    282 314
     
    
    283 315
     Pour une requête avec variable de répétition, il faut alors ajouter les deux lignes suivantes :
    
    284 316
     
    
    285 317
     ```properties
    
    286
    -report.xxx.request.1.repeat.name=gearUseFeaturesId
    
    287
    -report.xxx.request.1.repeat.layout=column
    
    318
    +request.1.repeat.name=gearUseFeaturesId
    
    319
    +request.1.repeat.layout=column
    
    288 320
     ```
    
    289 321
     
    
    290
    -```report.xxx.request.1.repeat.name``` définit l'*alias* de la variable de répétition à utiliser. La requête sera
    
    322
    +```request.1.repeat.name``` définit l'*alias* de la variable de répétition à utiliser. La requête sera
    
    291 323
     exécutée
    
    292 324
     autant de fois qu'il y a de valeurs dans l'univers calculé de la variable de répétition.
    
    293 325
     
    
    294 326
     **À noter qu'il faut alors que le corps de cette requête doit utiliser l'alias de cette variable de répétition, même si
    
    295 327
     dans les faits, rien ne l'oblige, mais le résultat sera alors toujours le même...**
    
    296 328
     
    
    297
    -```report.xxx.request.1.repeat.layout``` définit la disposition à utiliser pour constuire le résultat final de la
    
    329
    +```request.1.repeat.layout``` définit la disposition à utiliser pour constuire le résultat final de la
    
    298 330
     requête appliqué à chaque valeur de la variable de répétition. Deux valeurs sont possibles :
    
    299 331
     
    
    300 332
     * **row** pour signifier que pour chaque valeur de l'univers de la variable de répétition, le résultat de la requête
    
    ... ... @@ -309,7 +341,7 @@ sont pas compatibles.**
    309 341
     Il est possible de documenter cette requête en utilisant une ligne optionnelle :
    
    310 342
     
    
    311 343
     ```properties
    
    312
    -report.xxx.request.1.comment=Un commentaire optionnel pour documenter la requête
    
    344
    +request.1.comment=Un commentaire optionnel pour documenter la requête
    
    313 345
     ```
    
    314 346
     
    
    315 347
     ### Opérations d'un rapport
    
    ... ... @@ -323,23 +355,23 @@ Les deux types d'opération nécessitent une première ligne pour déclarer le t
    323 355
     dans l'exemple suivant :
    
    324 356
     
    
    325 357
     ```properties
    
    326
    -report.xxx.operations.1.type=SumIntRow
    
    358
    +operations.1.type=SumIntRow
    
    327 359
     ```
    
    328 360
     
    
    329
    -```report.xxx.operations.1.type``` définit le type d'opération à réaliser.
    
    361
    +```operations.1.type``` définit le type d'opération à réaliser.
    
    330 362
     
    
    331 363
     Dans le cas où l'opération est paramétrable, on doit alors ajouter une autre ligne avec le paramétrage de l'opération :
    
    332 364
     
    
    333 365
     ```properties
    
    334
    -report.xxx.operations.1.parameters=0|1
    
    366
    +operations.1.parameters=0|1
    
    335 367
     ```
    
    336 368
     
    
    337
    -```report.xxx.operations.1.parameters``` définit le paramétrage à utiliser pour exécuter l'opération.
    
    369
    +```operations.1.parameters``` définit le paramétrage à utiliser pour exécuter l'opération.
    
    338 370
     
    
    339 371
     Il est possible de documenter cette opération en utilisant une ligne optionnelle :
    
    340 372
     
    
    341 373
     ```properties
    
    342
    -report.xxx.operations.1.comment=Un commentaire optionnel pour documenter l'opération
    
    374
    +operations.1.comment=Un commentaire optionnel pour documenter l'opération
    
    343 375
     ```
    
    344 376
     
    
    345 377
     Les opérations disponibles et leur documentation sont décrites dans le document [suivant](./embedded-operations.html).
    
    ... ... @@ -355,14 +387,18 @@ Un rendu est défini par deux lignes :
    355 387
     2. Une pour paramétrer ce rendu
    
    356 388
     
    
    357 389
     ```properties
    
    358
    -report.xxx.columnRenderers.1.type=HighlightIfAbsoluteDeltaIsPositive
    
    359
    -report.ccc.columnRenderers.1.parameters=10|11|0.0001|0.5
    
    390
    +columnRenderers.1.type=HighlightIfAbsoluteDeltaIsPositive
    
    391
    +columnRenderers.1.parameters=10|11|0.0001|0.5
    
    360 392
     ```
    
    361 393
     
    
    362 394
     Il est possible d'ajouter plusieurs rendus sur un même rapport.
    
    363 395
     
    
    364 396
     Les rendus disponibles et leur documentation sont décrits dans le document [suivant](./embedded-column-renderers.html).
    
    365 397
     
    
    398
    +### Traductions
    
    399
    +
    
    400
    +**TODO**
    
    401
    +
    
    366 402
     ## Pour aller plus loin
    
    367 403
     
    
    368 404
     Vous pouvez aussi consulter la [documentation des rapports embarqués par l'application](./embedded-reports.html).