4

Cela fonctionnait correctement dans Visual Studio 2008, mais depuis que j'ai basculé vers Visual Studio 2010 et Crystal Reports pour Visual Studio 2010, mes paramètres passés sont ignorés.Comment transmettre des paramètres à Crystal Report pour Visual Studio 2010? On dirait qu'ils sont ignorés

Ils s'affichent dans le rapport, juste ignorés quand il s'agit de la formule de sélection! Voici mon code pour créer le rapport et passer les paramètres.

private void Prepare() 
    { 
     var reportDocument = new ReportDocument(); 

     string reportPath = string.Format(
      "{0}\\{1}", 
      Globals.FormPath, 
      this.FormTemplate.Filename); 

     reportDocument.Load(reportPath); 

     ParameterDiscreteValue parameter; 

     foreach (var control in this.FormTemplateFieldControls) 
     { 
      switch (control.FormTemplateField.DataType) 
      { 
       case FormFieldDataType.Date: 
        this.AddParameterForDateTime(
         reportDocument, 
         control.FormTemplateField.Name, 
         (DateTime)control.EditValue); 
        break; 
       case FormFieldDataType.DateTime: 
        this.AddParameterForDateTime(
         reportDocument, 
         control.FormTemplateField.Name, 
         (DateTime)control.EditValue); 
        break; 
       case FormFieldDataType.Time: 
        this.AddParameterForDateTime(
         reportDocument, 
         control.FormTemplateField.Name, 
         (DateTime)control.EditValue); 
        break; 
       case FormFieldDataType.Guid: 
        this.AddParameterForGuid(
         reportDocument, 
         control.FormTemplateField.Name, 
         (Guid)control.EditValue); 
        break; 
       default: 
        this.AddParameterForString(
         reportDocument, 
         control.FormTemplateField.Name, 
         control.EditValue.ToString()); 
        break; 
      } 
     } 

     this.SetConnectionInfo(reportDocument); 

     var frm = new FormViewer(); 

     frm.Report = reportDocument; 

     frm.ShowDialog(); 

     frm.Dispose(); 

     this.Close(); 
    } 

Lorsque j'exécute le rapport du concepteur, cela fonctionne très bien. Vous pouvez voir que les paramètres sont passés car je les affiche dans mon rapport.

alt text

Pour mes rapports qui vont de procédures stockées semblent les paramètres à passer très bien, il est juste ceux composés de toutes les tables.

Pour ce que ça vaut la peine, voici ma formule de sélection:

{employee.HireDate} >= {?StartDate} And {employee.HireDate} <= {?EndDate} 
+0

Même si j'essaie simplement laisser rapidement Crystal Reports pour les paramètres ne sont pas passés. – mattruma

+0

Ce qui est vraiment bizarre, c'est que si je parcours le code, et regarde les valeurs des paramètres au moment de l'exécution, il s'affiche correctement. – mattruma

+0

Donc, j'ai changé mon rapport pour utiliser une procédure stockée et cela a fonctionné ... mais je ne devrais pas avoir à faire cela ... pouah! – mattruma

Répondre

1

Cela a été résolu avec la dernière version de Crystal Reports pour Visual Studio 2010.

0

Quand vous dites « ils ne sont pas passés », ce qui ne se passé? Sont-ils vides?

Vous pouvez passer en revue les paramètres eux-mêmes, et juste pour les grins, essayez de leur donner un nom différent, quelque chose d'unique. Il pourrait y avoir quelque chose de bizarre avec un autre paramètre de rapport ou la façon dont les paramètres sont définis.