2009-12-24 3 views

Répondre

0

Im ne sais pas exactement ce que vous demandez, mais voici une façon d'établir une création, le réglage et passer params à un rapport de cristal

de charge un jeu de données standard à partir de votre base de données. Utilisez DateSet.WriteXmlSchema pour créer un schéma Xml. Utilisez l'outil de studio visuel Xsd.exe pour créer un DataSet sécurisé. Importez ceci dans votre projet. chargez les données dans votre nouveau jeu de données de type sécurisé à partir de votre base de données et définissez-le comme source de données des rapports.

Le code ci-dessous vous permet de définir les params

Private Sub foo() 
    Dim parameterValues As New ParameterValues() 
    parameterValues.Add("MyValue") 
    MyDataSourceName.DataDefinition.ParameterFields("MyParamName").ApplyCurrentValues(parameterValues) 
End Sub 

J'espère que cette aide

0

Vous pouvez utiliser DataTable complètement même que ensemble de données ou si vous allez utiliser ensemble de données le code suivant fonctionne sans problème.

ReportDocument cryRpt = new Rep

ortDocument(); 
Cls_Bl_CalibrationHeader clCalibrationHeader = new Cls_Bl_CalibrationHeader(); 
ParameterFieldDefinitions crParameterFieldDefinitions; 
ParameterFieldDefinition crParameterFieldDefinition; 
ParameterValues crParameterValues = new ParameterValues(); 
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue(); 
DataTable DT = null; 

reportPath = "\\Report.rpt"; 
cryRpt.Load(reportPath); 

    DT = clClassName.M_GetByIDDate(sqlStr);       
    cryRpt.SetDataSource(DT); 
    DT = clClass.GetSubReportInfo(); 
    cryRpt.OpenSubreport("SubReport").SetDataSource(DT); 

crParameterDiscreteValue.Value = 1; 
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields; 
crParameterFieldDefinition = crParameterFieldDefinitions["Parameter", "SubReport"]; 
crParameterFieldDefinition.CurrentValues.Clear(); 
crParameterValues = crParameterFieldDefinition.CurrentValues; 
crParameterValues.Add(crParameterDiscreteValue); 
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues); 


crystalReportViewer1.ReportSource = cryRpt; 
crystalReportViewer1.DisplayGroupTree = false; 
crystalReportViewer1.Refresh(); 
0

: D face au même problème et je trouve que si vous définissez DataSets à Subreports avant principal est ok alors.

Questions connexes