Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports
Crystal Reports Forum d'entraide sur Crystal Reports. Avant de poster --> FAQ Crystal, Tutoriels Crystal
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2006, 15h04   #1
Inactif
 
Avatar de Aitone
 
Inscription : novembre 2006
Messages : 3 569
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3 569
Points : 3 291
Points : 3 291
Par défaut Plusieurs résumés différents d'un même champ

Bonjour,

J'ai un groupe COLIS, et dans chaque colis, j'ai un ou plusieurs articles différents. Chaque article a un numéro de référence douanière et une référence douanière concerne plusieurs articles.

Mon problème : je dois en pied de page faire un résumé de chaque quantité d'articles par référence douanière sans pour autant créer de groupe "Réf.. dou.."

Quelqu'un aurait-il une astuce ?

Merci
Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 15h47   #2
Membre confirmé
 
Inscription : mai 2002
Messages : 246
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 246
Points : 256
Points : 256
Envoyer un message via MSN à Machuet
Le principe est assez simple.

Tu initialise deux tableaux dans ton en-tête de document ou de groupe
REFDOUANE
QTEREF

de dimension 1


Ensuite dans ta ligne de détail, tu ajoute une formule qui test si la référence douanière existe déjà dans le tableau REFDOUANE. Si oui alors tu mets à jour QTEREF, sinon tu incrémente les tableaux de 1 et tu mest à jour les deux

Pour finir dans ton pied d'état ou de groupe, tu ajoute une formule du type suivant dans un champ texte par tableau

Code :
1
2
3
4
5
6
7
8
9
10
11
 
shared stringVar array REFDOUANE;
 
LOCAL numbervar temp;
LOCAL stringvar str;
FOR temp := 1 TO UBOUND(REFDOUANE)
    do
(
    str := str & REFDOUANE[temp]+ Chr(13)+ Chr(10)
);
str
et normalement cela devrait fonctionner nickel
Machuet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 15h55   #3
Inactif
 
Avatar de Aitone
 
Inscription : novembre 2006
Messages : 3 569
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3 569
Points : 3 291
Points : 3 291
Alors, là.... tu m'impressionnes...

Seul problème : je n'y connais rien aux tableaux...

Peux-tu me donner un petit coup de pouce pour la création et l'incrémentation.

D'avance merci

Adrien
Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 16h07   #4
Membre confirmé
 
Inscription : mai 2002
Messages : 246
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 246
Points : 256
Points : 256
Envoyer un message via MSN à Machuet
Voici un exemple un peu similaire

en en-tête de groupe
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
IF pagenumber=1 then
(
shared stringVar array COUNTRY := [""];
shared stringVar array TARIF := [""];
Shared numberVar array CTARIF:= [0];
Shared stringvar LC;
 
redim COUNTRY[1];
redim TARIF[1];
redim CTARIF[1];
 
LC = "";
)
Ensuite dans les lignes

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
Whileprintingrecords;
shared stringVar array COUNTRY;
shared stringVar array TARIF;
Shared numberVar array CTARIF;
Shared stringvar LC;
 
 
 
LOCAL numbervar OK;
LOCAL numbervar temp;
 
OK :=0;
//ON test si ON à déjà ce tarif
 
FOR temp := 1 TO UBOUND(TARIF)
    do
    (IF {ITMMASTER.CUSREF_0} = TARIF[temp]
        then
        (CTARIF[temp] := CTARIF[temp] + {@Mt_net};
         OK := 1;
        exit FOR)      
);
// test si ON l'a trouvé où non
If OK = 0 
    then
    if TARIF[1]="" then
        (TARIF[1] := {ITMMASTER.CUSREF_0};
        CTARIF[1] := {@Mt_net})
    else
        (temp := Ubound(TARIF)+1;
        Redim PRESERVE TARIF[temp];
        Redim PRESERVE CTARIF[temp];
        TARIF[temp] := {ITMMASTER.CUSREF_0};
        CTARIF[temp] := {@Mt_net})
Et pour finir dans le pied de groupe la fonction posté ci-dessus.

Voilà j'espère que cela t'ira.

Bon week-end

Machuet
Machuet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2006, 11h02   #5
Inactif
 
Avatar de Aitone
 
Inscription : novembre 2006
Messages : 3 569
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3 569
Points : 3 291
Points : 3 291
Bonjour,

Comme je ne réussissais pas trop avec le code de MAchuet j'ai fait mon 1er sous-état.
Ca se passe bien sauf que j'ai mis comme champ : le numéro de rubrique douanière, sa désignation et la quantité (résumé somme).
Le problème est qu'il me renvoie le résumé de TOUTES les livraisons, alors que je souhaiterai le résumé seulement de la livraison de l'état principal.

Je ne sais pas si je me fais bien comprendre mais quelqu'un a t-il des idées ?

Merci
Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2006, 12h17   #6
Inactif
 
Avatar de Aitone
 
Inscription : novembre 2006
Messages : 3 569
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3 569
Points : 3 291
Points : 3 291
Bon, j'ai ouvert un peu plus les yeux et en bidouillant je m'en suis sorti.

J'avais pas vu qu'on pouvait faire un lien entre les 2
Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h51.


 
 
 
 
Partenaires

Hébergement Web