IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAP Crystal Reports Discussion :

Identification et résumé des suites numériques dans un champ


Sujet :

SAP Crystal Reports

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Par défaut Identification et résumé des suites numériques dans un champ
    Bonjour , le titre de mon article n'est peut-être pas très explicite, mais voici l'idée :

    dans un rapport Crystal, j'utilise un champ numérique d'une base de données Access. Ce champs (comme on peut le voir dans la capture ci-jointe) comporte des valeurs qui parfois se suivent et parfois pas. Ici de 89 à 117 puis on passe à 457 458.


    Je souhaiterais afficher dans le champ Crystal le 1er et le dernier nombre d'une suite et chaque suite serait séparée par / .

    Ex :


    89-117 / 457-458

    Si qq1 à une piste à me suggérer je suis preneur !
    Nom : Capture.PNG
Affichages : 207
Taille : 24,4 Ko

  2. #2
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 950
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 950
    Par défaut
    bonjour,

    je n'ai pas CR devant moi, mais tu devrais t'en sortir en utilisant la fonction "previous" et "next" et 2 variables, une pour la borne de début, la seonde pour la borne de fin.
    la première, tu testes que tu es bien sur le premier enregistrement avec recordnumber, si oui, tu assignes ta valeur à la borne de début sinon, tu testes que le champs sur lequel tu es moins previous de ce meme champs est supérieur à 1, si oui, alors cela devient ta nouvelle borne de début, pour la borne de fin tu fais la même chose en vérifiant que tu n'est pas sur le dernier enregistrement... si cela n'est pas clair, je regarde ça Mercredi et je te dis...

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Par défaut
    OK merci je teste ca en attendant

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Par défaut
    J'ai pas trouvé de code qui fonctionne. Peux-tu juste m'aiguiller pour le début du code ?

    Voici ce que j'ai tenté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    numbervar borneDebut;
    numbervar borneFin;
     
    if(recordnumber=1)then borneDebut ={PdsTotalLotVpf.NUM_TUER}
    else if(previous({PdsTotalLotVpf.NUM_TUER})>1)then
    borneDebut=(previous({PdsTotalLotVpf.NUM_TUER}))

  5. #5
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 950
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 950
    Par défaut
    Je créeun tableau que j'agrandis à chaque tour...
    J'ai donc une formule init en tete de rapport
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    WhilePrintingRecords;
    NumberVar Index:=1;
    StringVar Array Suite;
    ""
    Une formule que je mets sur chaque ligne de détails

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    WhilePrintingRecords;
    StringVar Array Suite;
    NumberVar Index;
    Redim Preserve Suite[index];
    If RecordNumber=1 then 
    (
    Suite[Index]:= totext({Feuil1_.NUM_TUER});
    Index := Index+1;
    Redim Preserve Suite[Index];
    Index;
    )
    Else 
    if(Next({Feuil1_.NUM_TUER}) - {Feuil1_.NUM_TUER}) > 1 then
    (
    Suite[Index]:=totext({Feuil1_.NUM_TUER});
    Index := Index+1;
    Redim Preserve Suite[Index];
    Suite[Index]:=totext(next({Feuil1_.NUM_TUER}));
    Index := Index+1;
    Redim Preserve Suite[Index];
    index
    )
    Else if OnLastRecord then
    (
    Suite[Index]:=totext({Feuil1_.NUM_TUER});
    index;

    ne pas oublier de sélectionner "Valeur par défaut pour les null" car comme on va lire la prochaine valeur (qui sera nulle pour le dernier enregistrement) on sort de la boucle..


    et une formule pour traiter et afficher mon tableau.. (j'ai fait un truc simple)...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WhilePrintingRecords;
    StringVar Array Suite;
    join(suite, "/")

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Par défaut
    Merci de ta réponse. je teste ca demain matin et je te tient au courant.

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Par défaut
    Bonjour Luc j'ai inscrit ces 3 formules dans mon rapport Crystal et insérer celle qui doit se trouver sur la ligne détails de mon Rapport.
    Nom : Capture.PNG
Affichages : 171
Taille : 21,3 Ko

    Par contre ou dois-je insérer le code inti de début de rapport :
    Nom : Capture1.PNG
Affichages : 173
Taille : 3,2 Ko

    et le code qui affiche les résultats :
    Nom : Capture2.PNG
Affichages : 166
Taille : 2,5 Ko

  8. #8
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 950
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 950
    Par défaut
    bonjour,

    le code init doit être insérer dans l'entête de rapport, et le code qui affiche les résultats doit être inséré à un endroit après le traitement de toutes tes lignes...
    si par exemple tes lignes de détails se trouvent dan sun groupe, le code init sera dans l'entête de groupe et le code d'affichage dans le pied de groupe.

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Par défaut
    Merci Luc mais je n'obtient pas le résultat voulu :

    Voici les formules positionnées dans mon rapport dans le Groupe 2 :
    Nom : Capture.PNG
Affichages : 190
Taille : 27,2 Ko

    Voici le résultat lors de l'édition du rapport :

    Nom : Capture1.PNG
Affichages : 172
Taille : 48,2 Ko

    Alors que je devrais obtenir : 587 / 591 / 606
    Nom : Capture2.PNG
Affichages : 169
Taille : 15,6 Ko

  10. #10
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 950
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 950
    Par défaut
    ok, tu n'avais pas prévenu que tes chiffres pouvaient être répétés..

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Par défaut
    Désolé, je t'envois un pdf du rapport final de base pour que tu vois à quoi ca ressemble avant l'ajout de ces codes

    Dec_VPF_21.06.2018.pdf

  12. #12
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 950
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 950
    Par défaut
    Bonjour,

    tu en es où ?
    J'ai fais l'essai avec des répétitions de chiffres, cela a l'air de fonctionner....

  13. #13
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Par défaut
    Bonjour désolé de ma réponse tardive mais j'étais en congés.
    Du coup pour faire plus simple je me contente d'indiquer le 1er numéro de la série et le dernier.
    Ex : si ma suite est 1 , 2 , 3 ,4 ,5
    je note 1-5

    Merci pour ton aide en tout cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. bouton de sélection des valeurs numériques dans un champ
    Par khaoulagammoudi dans le forum QlikView
    Réponses: 5
    Dernier message: 30/08/2016, 09h02
  2. Réponses: 6
    Dernier message: 06/07/2009, 18h09
  3. Réponses: 1
    Dernier message: 10/02/2009, 08h46
  4. Insérer des valeurs numériques dans un TdrawGrid
    Par bobybob dans le forum C++Builder
    Réponses: 1
    Dernier message: 02/12/2008, 18h09
  5. Réponses: 5
    Dernier message: 25/01/2008, 12h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo