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

Formules Discussion :

Suppression de lignes [CR 10]


Sujet :

Formules

  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieur
    Inscrit en
    Mars 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut Suppression de lignes
    Bonjour à tous,

    J'ai un souci pour la suppression de lignes en Crystal Report.

    Voici le contexte: j'ai un tableau avec plusieurs colonnes dont une colonne qu'on appellera A et une B.
    Je veux supprimer dans un premier temps les lignes où A=B=0. Puis quand cette suppression est appliquée, ajouter des conditions supplémentaires :suppressions des lignes dont la valeur A est égale à la valeur B de la ligne précédente et la valeur B est égale à la valeur A de la ligne suivante. Je souhaite également supprimer les lignes pour lesquelles A=B.

    J'ai donc mis dans la formule suppression de mon Expert de section:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ((Previous ({B})=({A})) and (Next ({A})=({B}))) 
    or {A} = {B}
    Mais je ne sais pas comment intégrer le fait que je veuille dans un premier temps supprimer les lignes où A=B=0. Comment créer une hiérarchie dans les suppressions?

    Merci d'avance pour votre aide.

    Marie

  2. #2
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 941
    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 941
    Points : 2 719
    Points
    2 719
    Par défaut
    Bonour Marie,

    tu es partie sur la fait fait que CR renvoie False ou True lors d'une comparaison.

    tu peux forcer ce renvoi en faisant une chaine de If then Else..

    IF A=B then true else if (previous.......) etc.... et là tu pourras gérer ta hiérarchie..
    Luc

    Disponible - Intervention sur demande tout pays, toutes régions
    Formateur Crystal Reports (toutes versions)
    Contrat de support possible
    N'hésitez pas.... http://paypal.me/lucrascar

  3. #3
    Membre à l'essai
    Femme Profil pro
    Ingénieur
    Inscrit en
    Mars 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Merci pour ta réponse luc_chivas.
    Je teste ça et je te tiens au courant.

    Bonne journée.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Ingénieur
    Inscrit en
    Mars 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Re bonjour Luc,

    J'ai testé une formule dans mon Expert de section

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if {PLREA.QKMD} = 0 then true else 
    if {PLREA.QKMD} = {PLREA.QKMF} then true else 
    if ((Previous ({PLREA.QKMF})=({PLREA.QKMD})) and (Next ({PLREA.QKMD})=({PLREA.QKMF}))) then true else false
    Je veux lui faire comprendre que premièrement il doit me supprimer les lignes où PLREA.QKMD est égal à 0 puis dans un second temps les lignes où PLREA.QKMD est égal à PLREA.QKMF et pour finir les lignes où PLREA.QKMD est égal au PLREA.QKMF de la ligne précédente et où PLREA.QKMF est égal au PLREA.QKMD de la ligne suivante.

    Mais avec cette formule, il n'a pas l'air de comprend ma troisième et dernière condition puisque je retrouve des lignes avec le PLREA.QKMF précédent et le PLREA.QKMF suivant semblables respectivement aux PLREA.QKMD et au PLREA.QKMF de la ligne en cours.

    Y aurait-il un souci dans la formule?

    Merci d'avance pour ton aide.

    Marie

  5. #5
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 941
    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 941
    Points : 2 719
    Points
    2 719
    Par défaut
    Marie;

    Dans ta dernière condition, tu testes l'enregistrement précedent et l'enregistrement suivant, pas la ligne en cours...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((Previous ({PLREA.QKMF})=({PLREA.QKMD})) and (Next ({PLREA.QKMD})=({PLREA.QKMF})))
    tu demandes à effacer la ligne si les deux valeurs précédentes sont égales ET les deux valeurs suivantes... genre je suis sur la ligne 2

    QKMD QKMF
    1 1
    34 12
    4 4
    Luc

    Disponible - Intervention sur demande tout pays, toutes régions
    Formateur Crystal Reports (toutes versions)
    Contrat de support possible
    N'hésitez pas.... http://paypal.me/lucrascar

  6. #6
    Membre à l'essai
    Femme Profil pro
    Ingénieur
    Inscrit en
    Mars 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Merci pour ta réponse.

    Je vois bien ce que tu veux dire. Du coup, j'ai essayé de jouer sur les parenthèses pour isoler le Next et le Previous avec la valeur du dessus ou du dessous et pas avec toute la ligne.
    Mais ça ne fonctionne tjs pas !
    Je te mets quand même le code même si je pense qu'il y a une autre astuce...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if {PLREA.QKMD} = 0 then true else 
    if {PLREA.QKMD} = {PLREA.QKMF} then true else 
    if (((Previous({PLREA.QKMF}))=({PLREA.QKMD})) and ((Next ({PLREA.QKMD}))=({PLREA.QKMF}))) then true else false

  7. #7
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 941
    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 941
    Points : 2 719
    Points
    2 719
    Par défaut
    bonjour,

    jai repris ta formule précédente, et j'ai remplacée les "true" par des numéros, j'ai donc de 1 à 3 en fonction des conditions. j'ai inséré cette formule dans mon rapport sur le ligne détail pour voir quelle condition était remontée. J'ai un fichier Excel qui comprend tes trois configurations
    QKMD QKMF
    1 4
    2 5
    3 6
    0 7
    1 4
    2 5
    3 6
    4 4
    9 9
    9 9
    1 5
    5 7
    7 1

    Ca à l'air de fonctionner.. mais il y a peu être quielque chose qui m'échappe
    Luc

    Disponible - Intervention sur demande tout pays, toutes régions
    Formateur Crystal Reports (toutes versions)
    Contrat de support possible
    N'hésitez pas.... http://paypal.me/lucrascar

  8. #8
    Membre à l'essai
    Femme Profil pro
    Ingénieur
    Inscrit en
    Mars 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Bonjour Luc,

    Merci pour le temps consacrer sur mon problème et désolée pour ma réponse tardive.
    Je ne comprends vraiment pas d'où vient mon problème mais je vais me remettre sur le sujet et je te tiens au courant dès que je trouve le problème.

    Bonne fin de journée.

  9. #9
    Membre à l'essai
    Femme Profil pro
    Ingénieur
    Inscrit en
    Mars 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Bonjour Luc,

    Je pense avoir compris le problème. Il ne semble toujours pas faire de priorités.
    Je m'explique. Pour le tableau ci dessous, je veux qu'il me supprime déjà les lignes pour lesquelles QKMD et QKMF sont égales à 0 (donc ici la ligne 3), puis les lignes pour lesquelles QKMD=QKMF (ici ligne 2) et pour finir ma fameuse condition 3 pour regarder le QKMF précédent et le QKMD suivant (mais sans prendre en compte les lignes déjà supprimer donc par exemple pour la ligne 4, il faut comparer QKMD avec le QKMF de la ligne 1 (puisque les lignes 2 et 3 ont déjà été supprimées).
    Du coup, pour le tableau ci-dessous moi j'aimerais qu'il garde seulement les lignes 1, 5 et 6. Mais lui me garde aussi la ligne 4 parce que je pense qu'il compare le QKMD de la ligne 4 (45) avec le QKMF de la ligne 3 (0).

    QKMD QKMF
    32 45
    45 45
    0 0
    45 52
    52 73
    78 82

    Je ne sais pas si tu as une solution. Moi en tout cas je ne vois pas comment faire.
    Merci d'avance pour ta réponse. A bientôt.

    Marie

  10. #10
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 941
    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 941
    Points : 2 719
    Points
    2 719
    Par défaut
    OK....

    ce qui m'avait échappé, c'est le "Sans prendre en compte les lignes déjà supprimées".....
    Previous ou next s'occupe uniquement des enregistrements lus, en aucun cas de ce qui apparait dans le rapport.....
    Je regarde ce que je trouve et je reviens vers toi
    Luc

    Disponible - Intervention sur demande tout pays, toutes régions
    Formateur Crystal Reports (toutes versions)
    Contrat de support possible
    N'hésitez pas.... http://paypal.me/lucrascar

  11. #11
    Membre à l'essai
    Femme Profil pro
    Ingénieur
    Inscrit en
    Mars 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Merci beaucoup Luc. Je n'avais pas été assez explicite. Je suis désolée.
    A bientôt.

  12. #12
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 941
    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 941
    Points : 2 719
    Points
    2 719
    Par défaut
    Combien penses tu avoir d'enregistrements dans tes rapports.. on doit pouvoir travailler avec des tableaux et des index...
    Luc

    Disponible - Intervention sur demande tout pays, toutes régions
    Formateur Crystal Reports (toutes versions)
    Contrat de support possible
    N'hésitez pas.... http://paypal.me/lucrascar

  13. #13
    Membre à l'essai
    Femme Profil pro
    Ingénieur
    Inscrit en
    Mars 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Mon rapport est trié par salarié. J'ai 35 salariés et environ (mais c'est très variable) 3 ou 4 enregistrements par salarié.

  14. #14
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 941
    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 941
    Points : 2 719
    Points
    2 719
    Par défaut
    Bon alors.....
    Solution somme toute assez facile.. j'étais parti dans des arrays, etc... le délire quoi....... et puis mon coté antillais a refait surface et j'ai trouvé autrechose...

    tu vas traiter tes deux premier cas dans ton expert selection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {Feuil1_.QKMD} <> 0  AND
    {Feuil1_.QKMD} <> {Feuil1_.QKMF}
    et ton troisième cas dans ta section comme tu le fais actuellement, mais il n'y a plus qu'un test...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (((Previous({PLREA.QKMF}))=({PLREA.QKMD})) and ((Next ({PLREA.QKMD}))=({PLREA.QKMF})))
    Luc

    Disponible - Intervention sur demande tout pays, toutes régions
    Formateur Crystal Reports (toutes versions)
    Contrat de support possible
    N'hésitez pas.... http://paypal.me/lucrascar

  15. #15
    Membre à l'essai
    Femme Profil pro
    Ingénieur
    Inscrit en
    Mars 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Merci beaucoup Luc. Ça fonctionne parfaitement et c'était en effet très simple à mettre en place.
    Depuis le temps que je cherche une solution pour ce problème. C'est super.

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

Discussions similaires

  1. [Excel - VBA] Problème de suppression de lignes...
    Par beholder2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2005, 17h27
  2. Suppression de lignes dans un fichier
    Par bubu dans le forum Linux
    Réponses: 2
    Dernier message: 13/01/2005, 10h36
  3. Dbgrid : Comment interdire Suppression de Ligne
    Par Francis dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/11/2004, 08h31
  4. Réponses: 4
    Dernier message: 02/07/2004, 19h14
  5. [VB.NET] Suppression de ligne dans un DataTable
    Par seemax dans le forum Windows Forms
    Réponses: 7
    Dernier message: 06/05/2004, 14h19

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