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

SDK Discussion :

[CR 7]Générer reports CR dans une boucle sous VB6


Sujet :

SDK

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 41
    Points : 30
    Points
    30
    Par défaut [CR 7]Générer reports CR dans une boucle sous VB6
    Bonjour,

    le plus simplement mais peut être pas le plus facile à faire, je cherche à afficher des reports à la volée dans une boucle Do/Loop until, je m'explique, d'un côté j'ai un bout de code VB6 qui va récupérer des données dans une table (locale) Access .mdb, c'est une table avec des champs, "id_commande", "id_article", "nom_article", "id_client", etc..., le résultat est affiché dans un dbgrid, de l'autre, j'ai Crystal Reports 7 dans lequel j'ai sélectionné cette même table pour générer le contenu de mon etat, ce que j'aimerai faire c'est lier la boucle VB à mon état en lui passant comme paramètre mon champ "id_commande", mon problème est que cela imprime tjrs la même commande , alors que si j'ai "id_commande" 1, 2, 3, 4, j'aimerai que cela imprime la commande 1, puis la commande 2, etc...

    mon bout de code,

    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
    27
    28
    29
    Private Sub btnImprimerBL_Click()
    Dim CrAppl As New CRAXDRT.Application
    Dim CrRep As New CRAXDRT.Report
    Dim rs As ADODB.Recordset
    Dim sMySql As String
     
    Set rs = New ADODB.Recordset
     
    sMySql = "SELECT * FROM TBL_RAFALE ORDER BY id_commande ASC;"
     
    rs.Open sMySql, cnxTBLRafale, adOpenForwardOnly, adLockReadOnly
     
    If rs.RecordCount > 0 Then
      Screen.MousePointer = vbHourglass
      rs.MoveFirst
      Set CrRep = CrAppl.OpenReport(App.Path & "\ETAT_RF_BL.rpt")
      Do
        CrRep.RecordSelectionFormula = "{TBL_RAFALE.id_commande}= " & rs!id_commande & " "
        CrRep.Database.SetDataSource rs
        CrRep.PrintOut False
        rs.MoveNext
      Loop Until rs.EOF
      sMySql = ""
      rs.Close
      Set rs = Nothing
      Screen.MousePointer = vbDefault
    End If
     
    End Sub
    ce code fait à peut prêt ce que je veux, ça imprime, mais plusieurs fois la même commande , pourtant dans cette portion,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CrRep.RecordSelectionFormula = "{TBL_RAFALE.id_commande}= " & rs!id_commande & " "
    l'id_commande change bien, comment puis-je faire pour que mon état CR soit imprimé en fonction de id_commande ?

    merci pour votre aide

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    j'ai résolu mon problème avec le code ci-dessous,

    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
    27
    Private Sub btnImprimerBdr_Click()
    Dim rs As ADODB.Recordset
    Dim sMySql As String
     
    Set rs = New ADODB.Recordset
     
    sMySql = "SELECT * FROM TBL ORDER BY id_commande ASC;"
     
    rs.Open sMySql, cnxTBL, adOpenForwardOnly, adLockReadOnly
     
    If rs.RecordCount > 0 Then
      Screen.MousePointer = vbHourglass
      crptBL.DataFiles(0) = "*** CHEMIN DU .MDB ***"
      crptBL.ReportFileName = "*** CHEMIN DU .RPT ***"
      rs.MoveFirst
      Do
        crptBL.SelectionFormula = "{TBL.id_commande}=" & rs!id_commande & " "
        crptBL.Action = 1
        rs.MoveNext
      Loop Until rs.EOF
      sMySql = ""
      rs.Close
      Set rs = Nothing
      Screen.MousePointer = vbDefault
    End If
     
    End Sub
    et ça imprime les états commande par commande..

    a+

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/05/2014, 17h57
  2. [PHP 5.4] Générer des QRCodes dans une boucle
    Par a028762 dans le forum Langage
    Réponses: 3
    Dernier message: 24/07/2013, 12h32
  3. [PHP 5.2] Nombre générer un nombre aléatoire dans une boucle
    Par link.80 dans le forum Langage
    Réponses: 2
    Dernier message: 09/09/2011, 08h26
  4. Réponses: 3
    Dernier message: 25/11/2008, 17h01
  5. Réponses: 1
    Dernier message: 06/05/2008, 13h32

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