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

Dotnet Discussion :

Valeurs de paramètre manquantes avec un sous rapport Crystal report [Débutant]


Sujet :

Dotnet

  1. #1
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut Valeurs de paramètre manquantes avec un sous rapport Crystal report
    Bonjour,

    J'utilise crystal report sous visual studio 2013. J'ai un rapport qui s'appelle facture.rpt qui fonctionne correctement.
    Mais quand je veux l'inclure en tant que sous rapport, j'ai un message d'erreur : Valeurs de paramètre manquantes quand j'utilise la fonction "ExportToDisk"

    Code vb : 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
    30
    31
    32
    33
     
     Public Sub SaveFactureToPDF(ByVal Cmd As Commande, ByVal Path As String)
            Try
                Dim Rest = GetLignesCmdRestant(Cmd)
                Dim LesLignes = GetLigneDevis(Cmd)
                Dim cryRpt As New Factures
                Dim Bidou As New List(Of Bidon)
                Bidou.Add(New Bidon(0))
                cryRpt.SetDataSource(Bidou)
                cryRpt.SetParameterValue("RestantAEnvoyer", Rest.Count > 0)
                'Exemplaire à Renvoyer
                cryRpt.Subreports("Facture.rpt").SetDataSource(LesLignes)
                cryRpt.SetParameterValue("Adresse", BuildAdresseClt(Cmd.Client), "Facture.rpt")
                cryRpt.SetParameterValue("DateDevis", Cmd.DteCommande, "Facture.rpt")
                cryRpt.SetParameterValue("NoCmde", If(Cmd.RefCRM = Nothing, "", Cmd.RefCRM), "Facture.rpt")
                cryRpt.SetParameterValue("Collaborateur", If(Cmd.Collaborateur.RefCRM = Nothing, "", Cmd.Collaborateur.RefCRM), "Facture.rpt")
                cryRpt.SetParameterValue("NumClient", Cmd.Client.RefCRM, "Facture.rpt")
                cryRpt.SetParameterValue("Telephon", Cmd.Collaborateur.Societe.Tel, "Facture.rpt")
                Dim SSTotal As Decimal = (From l In LesLignes Select l.Prix).Sum
                cryRpt.SetParameterValue("SousTotal", SSTotal, "Facture.rpt")
                cryRpt.SetParameterValue("FraisEnvoi", If(Cmd.FraisPort > 0, Cmd.FraisPort.ToString("F2") & " €", "OFFERT"), "Facture.rpt")
                cryRpt.SetParameterValue("ReducVIP", If(Cmd.Client.TauxReductionCmd + Cmd.TauxReduction > 0, -1 * SSTotal * If(Cmd.Client.TauxReductionCmd > 0, Cmd.Client.TauxReductionCmd / 100, 1) * If(Cmd.TauxReduction, Cmd.TauxReduction / 100, 1), 0), "Facture.rpt")
                cryRpt.SetParameterValue("Paiement", BuildPaiementCmd(Cmd), "Facture.rpt")
                cryRpt.SetParameterValue("PrixTotal", Cmd.PrixTotal + Cmd.FraisPort, "Facture.rpt")
                cryRpt.SetParameterValue("Exemplaire", "EXEMPLAIRE A RENVOYER", "Facture.rpt")
     
     
                cryRpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Path)
     
            Catch ex As Exception
                HelperJournal.WriteException(ex)
            End Try
        End Sub

    C'est vraiment un problème de passage de paramètre car quand j'enlève les sous rapports mon rapport se génère proprement et quand je génère le sous rapport comme un rapport principal ça marche aussi.

    Je suis un peu perdu... J'ai essayé de remplir le rapport principal en 1er ou après le sous rapport : toujours l'erreur. J'ai essayé de mettre @ devant le nom du paramètre de sous rapport : index hors limite...
    Je dois aussi préciser que mon sous rapport n'est pas lier à mon rapport principal (c'est juste pour avoir en un seul PDF plusieurs formulaires)
    J'ai essayé aussi
    Code vb : 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
     
     Dim Subr1 As ReportDocument = cryRpt.OpenSubreport("Facture.rpt")
                Subr1.SetDataSource(LesLignes)
                Subr1.SetParameterValue("Adresse", BuildAdresseClt(Cmd.Client))
                Subr1.SetParameterValue("DateDevis", Cmd.DteCommande)
                Subr1.SetParameterValue("NoCmde", If(Cmd.RefCRM = Nothing, "", Cmd.RefCRM))
                Subr1.SetParameterValue("Collaborateur", If(Cmd.Collaborateur.RefCRM = Nothing, "", Cmd.Collaborateur.RefCRM))
                Subr1.SetParameterValue("NumClient", Cmd.Client.RefCRM)
                Subr1.SetParameterValue("Telephon", Cmd.Collaborateur.Societe.Tel)
                Dim SSTotal As Decimal = (From l In LesLignes Select l.Prix).Sum
                Subr1.SetParameterValue("SousTotal", SSTotal)
                Subr1.SetParameterValue("FraisEnvoi", If(Cmd.FraisPort > 0, Cmd.FraisPort.ToString("F2") & " €", "OFFERT"))
                Subr1.SetParameterValue("ReducVIP", If(Cmd.Client.TauxReductionCmd + Cmd.TauxReduction > 0, -1 * SSTotal * If(Cmd.Client.TauxReductionCmd > 0, Cmd.Client.TauxReductionCmd / 100, 1) * If(Cmd.TauxReduction, Cmd.TauxReduction / 100, 1), 0))
                Subr1.SetParameterValue("Paiement", BuildPaiementCmd(Cmd))
                Subr1.SetParameterValue("PrixTotal", Cmd.PrixTotal + Cmd.FraisPort)
                Subr1.SetParameterValue("Exemplaire", "EXEMPLAIRE A RENVOYER")
    Mais ça me dit non pris en compte...

    Ca doit être un problème de syntaxe ... mais je sèche, même sur Google j'ai pas trouvé mon bonheur pour cette erreur.
    MErci de votre aide
    Si débugger est l'art d'enlever les bugs ... alors programmer est l'art de les créer

  2. #2
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut
    En fait c'est pas un problème de syntaxe, mais d'ordre d'exécution
    J'avais bien respecter setdatasource puis le SetParameterValue pour une édition simple.
    Mais quand on fait des sous rapport, il faut faire en premier TOUS les setdatasource et seulement après les SetParameterValue
    Pour le coup, j'ai supprimer le setdatasource de mon rapport principal (ça ne servait à rien, mais au début j'ai cru que l'erreur était là)
    Si débugger est l'art d'enlever les bugs ... alors programmer est l'art de les créer

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/07/2012, 10h58
  2. MasterRapport avec 1 sous rapport par page
    Par jufi3 dans le forum Jasper
    Réponses: 5
    Dernier message: 14/02/2010, 20h28
  3. Réponses: 2
    Dernier message: 27/10/2009, 21h13
  4. probleme avec des sous rapport en iReport
    Par Elasnaoui dans le forum Général Java
    Réponses: 2
    Dernier message: 23/09/2009, 13h53
  5. [CR 2008] Valeurs de paramètre manquantes
    Par iamspacy dans le forum Connectivité
    Réponses: 0
    Dernier message: 31/07/2008, 12h22

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