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

VB 6 et antérieur Discussion :

Probleme vb6 et crystal report (données entre deux dates)


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Probleme vb6 et crystal report (données entre deux dates)
    j'ai ce probleme la , je doit parcourir les lignes et colonnes et je doit comparer chaque colonne avec datedebut et datefin (DTpicker1 et DTpicker2) et afficher les données qui sont entre ces deux dates dans une etat crystal reports .

    j'ai essayer avec ce code la mais il m'affiche que 2 lignes :

    Code Visual Basic :
    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
     
    With etatp
     
    'Set rs = New ADODB.Recordset
     
    rs.Open "Select * from Programme Order By coup_prg ASC;", devec_base
    If Not rs.EOF Then
    rs.MoveFirst
    F2 = "{programme.coup_prg} In  ['" & DTPicker3.Value & "','" & DTPicker4.Value & "']"
    F2 = F2 & "or {programme.pré_prg} In  ['" & DTPicker3.Value & "','" & DTPicker4.Value & "']"
    F2 = F2 & " or {programme.mont_prg} In  ['" & DTPicker3.Value & "','" & DTPicker4.Value & "']"
    F2 = F2 & "or {programme.emba_prg} In  ['" & DTPicker3.Value & "','" & DTPicker4.Value & "']"
    F2 = F2 & "or {programme.livr_prg} In  ['" & DTPicker3.Value & "','" & DTPicker4.Value & "'] "
    F2 = F2 & "or {programme.mar_prg} In  ['" & DTPicker3.Value & "','" & DTPicker4.Value & "']"
    F2 = F2 & "or {programme.piquint_prg} In  ['" & DTPicker3.Value & "','" & DTPicker4.Value & "']"
    F2 = F2 & "or {programme.piquext_prg} In  ['" & DTPicker3.Value & "','" & DTPicker4.Value & "']"
    End If
     
    rs.MoveNext
    .ReplaceSelectionFormula F2
     
    rs.Close
    Set rs = Nothing
    End With
    Voila des Snapshoot:
    etat générale :

    et celle la entre deux dates : 23/01/2000 et 11/11/2011



    j'espere trouver une solution , merci d'avance

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 172
    Points
    17 172
    Par défaut
    Salut
    Dans les informations de ton profil tu indiques
    Développeur .NET
    Ici tu es sur le forum VB 6 et antérieur, qui est légèrement différent de VB.NET.
    Pour le cas soumis, tu programmes avec quel outils?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    je suis .Net mais maintenant je programme avec Visual Basic 6

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Points : 328
    Points
    328
    Par défaut
    Je verrais bien un problème de format de valeur.
    Comme ce sont des dates, les valeurs que tu envoie sont bien dans le format attendu par CR ?
    Il est possible que ce que tu ne les envoie pas sous le format attendu par CR et qu'il les interprète mal (année à la place du jour etc...).

    Sinon, ton filtre fonctionne correctement sans passer par vb (en mettant des valeurs en dur du côté CR) ?



    Sinon, a ta place, je procèderais plutôt de la manière suivante :
    1) modifier le filtre dans CR pour qu'il utilise deux formules (disons datemin & datemax) comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    {programme.coup_prg} In  [{@datemin},{@datemax}]
    or {programme.pré_prg} In  [{@datemin},{@datemax}]
    or {programme.mont_prg} In  [{@datemin},{@datemax}]
    or {programme.emba_prg} In  [{@datemin},{@datemax}]
    or {programme.livr_prg} In  [{@datemin},{@datemax}]
    or {programme.mar_prg} In  [{@datemin},{@datemax}]
    or {programme.piquint_prg} In  [{@datemin},{@datemax}]
    or {programme.piquext_prg} In  [{@datemin},{@datemax}]
    2) créer ces deux formules (datemin & datemax) avec pour chaque une valeur par défaut

    3) du côté vb, remplacer uniquement le contenu de deux formules/variables avec la vrai valeur (ici . DTPicker3.Value & DTPicker4.Value).

    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
     
    ' bmin & bmax servent à ne pas boucler plus que nécessaire, surtout s'il y a 
    ' plusieurs dizaines/centaines de formule
        dim bmin as boolean
        bmin=false
        dim bmax as boolean
        bmax=false
        With etatp
            For i = 1 To .FormulaFields.Count
                If .FormulaFields(i).FormulaFieldName = "datemin" Then 
                    .FormulaFields(i).Text = DTPicker3.Value
                    bmin=true
                end if
                If .FormulaFields(i).FormulaFieldName = "datemax" Then 
                    .FormulaFields(i).Text = DTPicker4.Value
                    bmax=true
                end if
                if bmin and bmax then exit for
            Next i
        End With
    Tu vois l'idée ? Ce code n'est pas testé mais inspiré de celui que j'utilise (pour CR XI) pour passer des paramètres à mes éditions qui ne peuvent passer par la saisie de paramètre de crystal.


    Cela te permet de :
    • Tester ton état (en mettant dans les deux formules min/max une valeur telle que ton code vb la retournera).
    • Eventuellement définir des valeurs par défaut (par ex. les 1er et derniers jours de l'année, du mois, etc..) sans avoir besoin de traiter ces cas du côté VB : S'il ne modifie pas le contenu de tes formules/variables, c'est cette valeur qui sera utilisée.
    • Tu peut modifier ta sélection dans ton état sans toucher au code VB - pour autant que l'état ne nécessite pas de nouveaux paramètres mais même dans ce cas, grosso modo, il suffit de rajouter 6 lignes et de modifer le test de sortie de boucle sans toucher au reste du code.
    • Afficher comme texte/commentaire ces critères dans ton état pour préciser quels les critères ont été utilisés lors de l'édition (le même état peut potentiellement sortir plusieurs fois dans la journée avec des critères différents)

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    d'abord merci bcp pour votre réponse.

    il y'a quelques trucs qui ne sont pas pratique en visual basic 6 comme (.formulasfields) et (.formulafieldsName) c pas pariel que CR XI il y'a que (.formulas), pour les formules j'ai cree deux en CR (?datemax ,?datemin) mais je ne sais pas comment les liers avec DTpicker3 et DTpicker4 en vb?
    j'ai cree un filtre au niveau du CR comme vous avez déja noter .
    NB: c la premiere fois que je développe avec VB6

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Points : 328
    Points
    328
    Par défaut
    Qu'elle version de CR utilise-tu ? Le moteur fourni avec ?

    Mon exemple est en vb6 mais avec le moteur CR XI (j'utilise le composant Crystal ActiveX Report Viewer Library 11.0).

    L'absence de .formulasfields/.formulafieldsName n'est pas du à VB6 mais au moteur CR que tu adresse. Ton "objet" Formulas est une collection ou un tableau ? Si oui, que contient-il ? Le "contenu" de formules ou des objets ? Si ce sont des objets, qu'elles sont leurs propriétés ? il y en a peut qui ont un autre nom mais la même fonctionnalité ?

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    j'utilise Seagate Crystal Reports ,et les propriété trouver sont (.Formulas ) et (.ParameterFileds) .
    j'ai trouver une difficulté pour affecter les deux formules ({?datemin} et {?datemax}) avec les Dtpicker1 et DTpicker2 , qd je debug une via VB6 un fenetre de dialogue apparait pour que je saisie les deux parameters !

    comment je peut annuler ce fenetre de dialogue et l'annuler ?

    Sinon Le filtre Marche Trés Bien , juste le sousie que je vien de noter

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Points : 328
    Points
    328
    Par défaut
    Je ne sais pas ce qu'est ce Seagate CR mais comme la licence se ballade d'une marque à l'autre depuis quelques années...

    S'il te demande réellement deux paramètres (et que ce n'est pas une erreur de formulation), c'est que tu a créé deux paramètres et non pas deux formules.
    Et tu n'affecte pas DtPickerX à la formule (correspondante), tu remplace le contenu de la formule par la valeur du dtp.

    Dans mon exemple, ".FormulaFields(i).Text=xxx" ne remplace pas la formule par quelque chose ni ne change son nom, cela change son contenu.
    Si ton dtp vaut "01/02/2013" et que le "code/texte" de ta formule (avant exécution), lui vaut/contient "01/01/0001", après exécution, il vaudra/contiendra "01/02/2013".

Discussions similaires

  1. [2014] Calcul de données entre deux dates indéfinies + heure
    Par nLineMayuri dans le forum Développement
    Réponses: 6
    Dernier message: 01/06/2015, 17h06
  2. SQL, sortir données entre deux dates
    Par Nemesis-fr dans le forum Langage SQL
    Réponses: 11
    Dernier message: 31/01/2014, 16h08
  3. Calcul de Données entre deux dates
    Par fokher dans le forum Requêtes
    Réponses: 0
    Dernier message: 06/01/2014, 10h13
  4. selection de donnée entre deux date
    Par chalcol dans le forum Oracle
    Réponses: 3
    Dernier message: 11/03/2009, 10h23
  5. probleme entre application developpez en vb6 et crystal reports 2008
    Par sooprano dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/02/2009, 09h43

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