# Logiciels > Solutions d'entreprise > Business Intelligence > SAP Crystal Reports >  Rpter section sur une mme page

## sgcb01

Bonjour,
comment rpter la section dtail d'un rapport sur une mme page ?
Cordialement.

----------


## luc_chivas

> Bonjour,
> comment rpter la section dtail d'un rapport sur une mme page ?
> Cordialement.


 ::koi::

----------


## sgcb01

avoir plusieurs fois la mme ligne avec les mmes donnes

----------


## luc_chivas

> avoir plusieurs fois la mme ligne avec les mmes donnes


Bonjour, 

Puisqu'on est en lecture de base.. bofff..
par contre, une bonne formule avec une boucle... devrait faire l'affaire

----------


## sgcb01

n'tant pas spcialiste de crystal report, quelques dtails supplmentaires me seraient bien utiles !

----------


## luc_chivas

> n'tant pas spcialiste de crystal report, quelques dtails supplmentaires me seraient bien utiles !


Bonjour, 

le propre de Crystal Reports est de lire squentiellement des enregistrements et d'afficher les dtails que tu souhaite voir apparaitre dans ton rapport.
une fois l'enregistrement lu, CR passe  l'enregistrement suivant.

tu as donc plusieurs possibilits.
Crer dans la section dtails autant de sous section que tu le dsires
Cliques droit sur la section  gauche "insertion section aprs" et remettre les informations dans ces nouvelles sections.
ou alors faire un formule "for i next" dans laquelle tu rcupres tes donnes en terminant par un retour chariot (CHR(13)) et tu affichess cette formules dans le dtails. 
combien de fois veux tu rpter la section dtails, et dans quel but ??

----------


## sgcb01

Je souhaite faire une dition d'tiquettes pour des fiches articles. J'ai besoin sur une mme page d'avoir une dizaine d'tiquettes.

----------


## sgcb01

En plus dans dtail je fais appelle  un sous rapport, je ne peux le copier coller dans plusieurs sections dtails !

----------


## luc_chivas

> Je souhaite faire une dition d'tiquettes pour des fiches articles. J'ai besoin sur une mme page d'avoir une dizaine d'tiquettes.


Dans Crystal Reports, quand tu la possibilit de cre directement  l'ouverture un rapport de type etiquette.. en fait c'est un rapport multicolonne qui fait appel  des format prdfinis.

je viens de lire entre temps les prcisions que tu apportes..... 
est une page d'tiquette avec toujours la mme informations ??

Pour ton sous rapport, on peux imaginer que tu ne le mance qu'une fois en dehors de la sections dtails en rcuprant les informations dans des variables partages (shared variables) puis ce sont ces shared variables que tu utilises dans ton rapport principal

----------


## sgcb01

oui je veux sur une page plusieurs fois la mme tiquettes.

----------


## luc_chivas

Peux tu crer quelque chose en base de donnes.. ? table temporaire, procdure stocke ou autre. ??

----------


## sgcb01

Bonjour, j'ai crer une variable partage dans mon sous rapport (code suivant)
mais lors de l'affichage de ma variable celle-ci j'ai "VRAI" d'afficher au lieu du code de la variable. La variable est de type boolnne ???



```

```

----------


## luc_chivas

> Bonjour, j'ai crer une variable partage dans mon sous rapport (code suivant)
> mais lors de l'affichage de ma variable celle-ci j'ai "VRAI" d'afficher au lieu du code de la variable. La variable est de type boolnne ???
> 
> Shared StringVar Range Array mat;
> ReDim mat[5];
> numberVar j;
> //mat:={REGISTER.CD_REGISTER};
> for j := 1 to 5 do
> (
> ...



Bonjour, 

Il n'y a pas de prcision sur la variable  afficher....Crystal ne peut pas afficher un tableau, juste un lment du tableau.. exemple : mat[1]

----------


## sgcb01

pourquoi j'ai vrai qui s'affiche et non la valeur de la variable

----------


## luc_chivas

> pourquoi j'ai vrai qui s'affiche et non la valeur de la variable


parce que dans ta formule, tu ne demande aucun affichage, le "vrai" signifie queta formule s'est bien droule

----------


## olasa1983

> pourquoi j'ai vrai qui s'affiche et non la valeur de la variable


Bonjour, 
je rencontre le mme problme pour les mmes besoins et je voudrais savoir si tu aurais trouv une solution.

----------


## luc_chivas

> Bonjour, 
> je rencontre le mme problme pour les mmes besoins et je voudrais savoir si tu aurais trouv une solution.


ben la solution c'est de faire afficher la variable... et non pas pas succs de la ligne de commande...
donc une fois sorti de la boucle, faites afficher la variable.. attention, pour un tableau, index obligatoire, Crystal ne peux pas afficher un tableau complet..

----------


## olasa1983

> ben la solution c'est de faire afficher la variable... et non pas pas succs de la ligne de commande...
> donc une fois sorti de la boucle, faites afficher la variable.. attention, pour un tableau, index obligatoire, Crystal ne peux pas afficher un tableau complet..


J'arrive pas  afficher la variable 
voila mon code :


```

```

=>le resultat de la formule ne peut pas etre une plage

De plus je dois afficher un valeur  chaque tour de boucle...

----------


## luc_chivas

essaye de faire un ubound de ton tableau pour voir sa taille en fin de boucle...
ensuite, attention au redim.. n'aurais tu pas besoin d'un preserve ??

----------


## olasa1983

> essaye de faire un ubound de ton tableau pour voir sa taille en fin de boucle...
> ensuite, attention au redim.. n'aurais tu pas besoin d'un preserve ??


j'arrive  afficher le nombre de ligne de mon tableau mais je vois pas comme je fais pour rpter mon tiquette plusieurs fois.

----------


## luc_chivas

c'est toujours la mme etiquette ??

----------


## olasa1983

> c'est toujours la mme etiquette ??


Oui c'est la meme en tout point.

----------


## luc_chivas

c'est une question rcurrente sur ce forum... 
en fait Crystal ne trouvant qu'un enregistrement ne peut afficher qu'un fois l'enregistrement.
Il faut le "ruser".
une des mthode est de rajouter une table avec le nombre de fois que tu veux rpter ton information, mais de n epas lier cette table.. juste afficher une des information de cette table de manire  forcer CR  balayer cette table autant de fois que d'enregistrements dclar.
ce que je fais, 
je crer une feuille excel avec autant de ligne que le nombre d'tiquette dsires. je numrote de 1  n, ces lignes, en mettant un entete quelconque.
je rajoute cette table avec l'expert base de donnes  mon rapport.
dans le rapport, je fais afficher une information de cette table, genre, le numro que j'ai saisi auparavant. j'ai toujours les informations de mon tiquette.. et je lance mon rapport...
autre astuce, si tu ne connais pa le nombre d'tiquette  afficher  (au moins le maximum) et si tu utilises CR2008.
tu cre ton fichier excel avec le maximum d'tiquette que tu veuille gnrer, tu fais la mme manip que plus haut. mais l, dans la section dtail, tu as une fonction qui te permet de limiter le nombre d'enregistrements visibles. A cet endroit, dans la formule conditionnelle, tu rentres ton calcul 


```
((Nbre_Participants \ 8) + 1)*8;
```

----------


## olasa1983

> c'est une question rcurrente sur ce forum... 
> en fait Crystal ne trouvant qu'un enregistrement ne peut afficher qu'un fois l'enregistrement.
> Il faut le "ruser".
> une des mthode est de rajouter une table avec le nombre de fois que tu veux rpter ton information, mais de n epas lier cette table.. juste afficher une des information de cette table de manire  forcer CR  balayer cette table autant de fois que d'enregistrements dclar.
> ce que je fais, 
> je crer une feuille excel avec autant de ligne que le nombre d'tiquette dsires. je numrote de 1  n, ces lignes, en mettant un entete quelconque.
> je rajoute cette table avec l'expert base de donnes  mon rapport.
> dans le rapport, je fais afficher une information de cette table, genre, le numro que j'ai saisi auparavant. j'ai toujours les informations de mon tiquette.. et je lance mon rapport...
> autre astuce, si tu ne connais pa le nombre d'tiquette  afficher  (au moins le maximum) et si tu utilises CR2008.
> ...




Mais dans ce cas il va se poser un problme de performence tant donn qu'il va y avoir un produit cartsien car si j'ai 50000 lignes ligibles qui arrivent de ma base de donnes et que mes paramtres sont au niveau Crystal j'aurai 50000 * le nombre de participants.

----------


## luc_chivas

mais la variable que tu rcupre dans ta requte, elle ne contient pas 50000.. puis que c'est celle que tu utilise dans ta formule....

Au pire, tu peux imprimer 1 tiquette sans ma methode ??
si oui, fais avec ma mthode..et tu verras...
performance..... je pense que c'est l'impression qui est pnalisante..

----------


## GaelleH

J'utilise depuis longtemps une mthode similaire  Luc et je ne constate pas de pb de performance:
j'ai cr une table NBEX dans la bdd ne contenant qu'une colonne NBEX et je l'ai valorise avec 100 enregistrements (tous les entiers de 1  100).

dans mes tats , soit le nombre est calcul dans une formule {@nbex} soit l'utilisateur peut le rentrer en paramtre {?nbex}.

Ensuite j'ajoute dans la formule de slection d'enregistrement ceci :

AND  {NBEX.NBEX} <= {@nbex}  (ou: AND  {NBEX.NBEX} <= {?nbex})

Cela peut servir  deux choses: soit  multiplier la section dtail mais aussi ventuellement  multiplier la nb d'ex d'un tat (en mettant {NBEX.NBEX} comme groupe 1 de l' tat et en sautant de page aprs le pied de page du groupe 1)

----------

