Laden...

Crystal Report in C#

Letzter Beitrag vor 18 Jahren 9 Posts 4.181 Views
Crystal Report in C#

Hallo!

Ich habe in Crytal einen Report erstellt, diesen möchte ich jetzt in meiner C#-Anwendung aufrufen. Soweit kein Problem. Allerdings hat dieser Report einen Parameter, den ich füllen muss.
Kann mir jemand sagen, wie ich das in C# machen kann?

MfG
Jens

Hast du das DataSet im Report definiert oder übergibst du es aus deiner Anwendung? Und was genau macht der Parameter?

Mit freundlichen Grüßen

René Paschold
.NET Developer / Trainer / Speaker / Author /
Projectleader / Software-Architect


.blog http://www.rene-paschold.de/
.business http://www.smarthouse.de/

Hallo!

Ich habe einen Report erstellt, indem ich direkt den Zugriff auf eine DB habe.
Der Command ist eine relative einfache SELECT-Abfrage. Der Parameter ist in der WHERE-Bedingung verankert (z.B. WHERE id = 1). Diesen Parameter, in diesem Fall die 1, möchte ich gerne aus meiner Anwendung übergeben.
Andererseits könnte ich auch die Datenbindung an den Report aus C# heraus machen, nur leider habe ich da keinen Ansatzpunkt, wie das funktioniert.

Das ReportDocument müsste doch eine Parameter Collection haben. Ich bin im moment leider nicht vor meinem "richtigen" Arbeitsplatz und kann es deshalb nicht testen.

Ich versuche es mal aus dem Kopf:


CrystalDecisions.Shared.ParameterValues pCol =
  new CrystalDecisions.Shared.ParameterValues();
CrystalDecisions.Shared.ParameterDiscreteValue pWert =
  new CrystalDecisions.Shared.ParameterDiscreteValue();

pWert.Value = "Hier steht dein Wert!";
pCol.Add( pWert );

//Hier der Parametername aus deiner Abfrage
ReportDocument1.DataDefinition.ParameterFields["@wert"].
  ApplyCurrentValues( pCol );

Must mal versuchen ob das so geht. Hab schon eine Weile nichtsmehr mit CR gemacht.

Mit freundlichen Grüßen

René Paschold
.NET Developer / Trainer / Speaker / Author /
Projectleader / Software-Architect


.blog http://www.rene-paschold.de/
.business http://www.smarthouse.de/

Hallo!

Sorry, aber irgendwie komme ich da noch nicht so ganz mit zurecht.

An unhandled exception of type 'CrystalDecisions.CrystalReports.Engine.LoadSaveReportException' occurred in crystaldecisions.crystalreports.engine.dll

Additional information: Invalid report file path.

Ich bekomme beim Starten folgende Fehlermeldung.

Ich muss dazu sagen, ich vorher nur einen ReportViewer auf der Form platziert, und anschließend bei "ReportSource" meinen Report ausgewählt.

Habe eben noch ein reportDocument hinzugfügt, muss die beiden Controls denn noch irgendwie miteinander "verknüpfen?"

Schau mal ob der Pfad zum Report nicht irgendwo hard drin steht ...

Mit freundlichen Grüßen

René Paschold
.NET Developer / Trainer / Speaker / Author /
Projectleader / Software-Architect


.blog http://www.rene-paschold.de/
.business http://www.smarthouse.de/

Hatte auch das Problem mit Parameter an Crystal Reports übergeben und dabei diesen Thread gefunden. Mit der obigen Lösung hab ichs nicht hingekriegt, dafür viel einfacher:

report.SetParameterValue("{?myParam}", "myValue") 

Nur falls sich wieder mal jemand hierher verirren sollte...

Gruss
Mischa

Statt "{?myParam}" kann man auch den "leserlichen" Namen verwenden. So habe ich in nem Report z.B. {?von_datum} und in der leserlicheren Form "von datum". Außerdem ist die Angabe des Parameters case-insensitiv.

möchte noch hinzufügen:

die Anweisung

report.SetParameterValue("{?myParam}", "myValue");

muss nach der Anweisung kommen

report.SetDataSource(ds);

sonst eine Exception zur Laufzeit, wegen fehlenden Parameter