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 :

[CR 9] Sélection sur plage de date


Sujet :

SAP Crystal Reports

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 51
    Points : 33
    Points
    33
    Par défaut [CR 9] Sélection sur plage de date
    Bonjour,

    j'essaie désespérement de faire une sélection par plages de dates dans un sous-état mais ne sais pas comment m'y prendre alors je me permet de vous soumettre mon problème :

    Je souhaiterais que l'utilisateur saisisse en paramètre un mois + une année (ex : 06/2008), je voudrais ensuite utiliser ce paramètre dans l'expert de sélection de mes sous états pour ne récupérer que les enregistrements compris entre le 1er et le dernier jour du mois (ex. : du 01/06/2008 au 30/06/2008).

    je me heure alors à 2 soucis :

    1/ Comment passer le paramètre provenant de l'état principal sous la forme MM/AAAA à mon sous état car quand je l'ajoute à ma liaison de sous-état, il disparait de la liste dés que je referme la fenêtre des propriétés de liaison.

    2/ Comment faire pour, à partir de ce paramètre MM/AAAA, déterminer une plage de date entre le 1er et le dernier jour du mois ?

    Comme vous le voyez je ne suis pas arrivé !!!

    merci d'avance

    Zyco

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 45
    Points : 27
    Points
    27
    Par défaut
    Bonjour,

    Pour ce cas je dirais que tu peux avoirs plusieures possibilités.

    Mais j'en vois 2:

    1) Tu peux tout simplement créer une parametre de type nombre dans ton etat principal. Ensuite tu crée également un autre dans ton sous-rapport avec le même type.
    Puis tu lie les 2 parametres et à partir de là tu utilise le nombre passé de l'état principal au sous-état en le formatant en date.
    Ex: si le paramétre est 062008 tu le transforme en 01062008 et là avec les fonction date tu le formate en 01/06/2008 et tu fais ta selection avec cette valeur date pour ne ramener que les enregistrements compris dans ta plage de date.
    2) Tu crée un parametre date dans tes 2 états(principal et sous-état) ensuite tu le récupéres dans ton sous-rapport et à partir de là tu peux faire tes selections avec ta date saisie.
    Ex: L'utilisateur saisie 01/06/2008. C'est simple tu crée une plage dans ton sous-rapport et tu fais tes selections.

    C'est juste une idée et j'espere que ça t'aidera.
    Merci

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 51
    Points : 33
    Points
    33
    Par défaut
    merci pour la réponse, je vais essayer cette méthode, si ça marche celà va me donne le 1er jour du mois aurais-tu une idée pour obtenir automatiquement le dernier ?

    merci d'avance

    Zyco

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 45
    Points : 27
    Points
    27
    Par défaut
    J'ai une petite idée mais c'est à tester.
    Voila une fois que t'as récuperé ta date dans le sous-rapport, tu peux créer une variable jour qui te permet de savoir exactement le nombre de jour du mois.
    exemple: supposons que tu veux savoir le nombre de jour du mois de juin(06) tu fais : DateSerial (2008,06 ,11 )- dateserial(2008,07,11) et pour cela il suffit d'incrémenter le mois récupére dans ton paramétre(si paramétre est 11/06/2008, tu fais Dateserial(2008,month(6)+1,11) ainsi avec la différence de date tu as le nombre de jour du mois en cours.

    Plus concret:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    shared numbervar mois;
    //tu déclare ta variable qui va contenir le nombre de jour;
    shared numbervar nb_jour;
    //Tu récupére le mois en cours ou celui de ton paramétre date
        mois:=month(dateserial({?date});
    //Ensuite tu calcul le nombre de jour contenu dans le mois
       nb_jour:=abs((DateSerial ({?date})- dateserial(year({?date}),mois+1,day({?date})));
    J'espére que ceci peux te mettre sur la voie.

    Merci

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 51
    Points : 33
    Points
    33
    Par défaut
    En effet leukes, celà m'a mis sur la voie et à m'a même aidé à résoudre mon pb !

    en combinant ta première astuce (qui m'a permis de créer mes formules date début et date fin) et la fonction date serila grâce à laquelle j'ai pu récupérer le premier jour du mois suivant, en déduisant 1 jour, j'obtiens le dernier jour du mois en cours...

    j'ai une autre question à présent mais je change de post !

    Encore merci

    Zyco

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

Discussions similaires

  1. [XL-2007] Sélection sur plage avec 2 conditions
    Par axel56 dans le forum Excel
    Réponses: 4
    Dernier message: 03/04/2014, 07h50
  2. condition de sélection sur période de dates
    Par cd090580 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/07/2010, 09h10
  3. [CR]Aide sur les fonction de date et plage de date.
    Par Job dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 08/11/2005, 09h19
  4. Sélection d'une plage de dates
    Par Bouanda dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/10/2004, 20h27
  5. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 16h56

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