2009-11-24 5 views
0

J'ai créé un nouveau rapport à l'aide de Crystal Reports 8.5 (report1) qui utilise une procédure stockée comme source de données. La procédure stockée a 2 paramètres d'entrée (@ p1 et @ p2) et quand j'entre des données de test pour @ p1 et @ p2 dans le rapport de cristal IDE, tout va bien. Ensuite, j'ai ajouté le rapport1 dans Visual Basic 6.0 IDE et ajouté un nouveau formulaire (form1) et un contrôle de visionneuse de rapport de cristal sur formulaire1. Maintenant s'il vous plaît aidez-moi: je veux montrer le rapport1. Quels codes exactement dois-je écrire pour le montrer? Comment envoyer l'utilisateur de données a entré aux paramètres de procédure stockée via l'application? Je reçois aussi ce messsage d'erreur: le serveur n'a pas encore été ouvert »Utilisation de la procédure stockée dans Crystal Report 8.5?

Quel est le problème

+0

Je pense que la générosité attirerait plus de gens pour y répondre de façon urgente ... – Eimantas

+0

comment le généraliser – odiseh

+0

Vous ne pouvez pas commencer une prime sur une question qui n'a pas été posée dans les 48 heures précédentes ... – romaintaz

Répondre

0

Specifying a report

Suppose que SampleReport a été ajouté à votre projet .Net:

Dim parameter1 As CrystalDecisions.Shared.ParameterField 
Dim parameter2 As CrystalDecisions.Shared.ParameterField 

With SampleReport 
    .SetDatabaseLogon("user", "password", "server", "database") 
    'locate first parameter in report 
    parameter1 = .ParameterFields.Find("@p1", "") 
    'locate second parameter in report 
    parameter2 = .ParameterFields.Find("@p2", "") 
End With 

'create a new discrete-parameter value 
Dim stringValue As New CrystalDecisions.Shared.ParameterDiscreteValue() 
stringValue.Value = "USA" 

'assign it to the parameter's current values collection 
parameter1.CurrentValues.Add(stringValue) 

'create a new discrete-parameter value 
Dim numberValue As New CrystalDecisions.Shared.ParameterDiscreteValue() 
numberValue.Value = 100 

'assign it to the parameter's current values collection 
parameter2.CurrentValues.Add(numberValue) 

With Me.CrystalReportViewer1 
    .ReportSource = SampleReport 
End With 
+0

Craig, Comme je l'ai dit, j'ai ajouté le rapport au projet VB6 et j'ai fait ce que vous aviez dit (3 lignes plus haut) mais je n'arrive toujours pas à le montrer. Maintenant, j'ai 3 questions: 1 - Dois-je remplir un jeu d'enregistrements en tant que source de données du rapport lors de l'exécution? 2 - Comment envoyer des paramètres à la procédure stockée pour afficher le rapport? 3- Qu'en est-il du message: "Le serveur n'a pas encore été ouvert"? – odiseh

+0

1. Si vous ajoutez la procédure stockée au rapport en tant que 'table', CR effectuera tout le travail. Vous pouvez attribuer dynamiquement le jeu d'enregistrements dans le code, mais cela est plus compliqué que de simplement l'ajouter au rapport dans le concepteur. 2. J'ajouterais la procédure stockée au rapport comme unique "table". Vous pouvez le faire dans Crystal Reports | Base de données | Database Expert .. Le rapport reconnaîtra les paramètres du SP. Lorsque vous exécutez le rapport, vous pouvez définir les valeurs des paramètres dans le code ou simplement autoriser le rapport à inviter l'utilisateur. – craig

+0

Oh, enfin trouvé .... :) 1- comme vous l'avez aimablement dit, il n'est pas nécessaire de remplir un jeu d'enregistrements après avoir ajouté un SP au rapport au moment du design. 2 - si un pour chaque boucle, en utilisant une instruction select, nous choisissons chaque paramètre et assignons sa valeur. 3 - nous devons utiliser la méthode SetLogOnInfo Craig, Merci beaucoup 3 - – odiseh