Laden...

Reports mit MySQL mit VS2008 möglich?

Erstellt von krone1 vor 13 Jahren Letzter Beitrag vor 13 Jahren 3.703 Views
K
krone1 Themenstarter:in
4 Beiträge seit 2010
vor 13 Jahren
Reports mit MySQL mit VS2008 möglich?

hallo,

mein erstes Posting hier 😃
Und gleich eine schwierige Frage.

Kann man im Visual Studio 2008 Reports machen und die Daten dafür aus einer MySQL-Db holen?

3.825 Beiträge seit 2006
vor 13 Jahren

Hallo Krone1,

mein erstes Posting hier 😃

willkommen im Forum !

Und gleich eine schwierige Frage.

Ach was !!!

Ja klar geht das.

Du kannst sowohl Crystal Report Reports als auch Reporting Services Reports aus einem Dataset füllen.

Und ein Dataset kannst Du aus MySQL füllen.

Meine Reports funktionieren mit MS SQL, SQL Compact, mySQL, PostgreSQL und Oracle, ohne Änderung.

Du kannst den Report auch direkt mit MySQL über Ole DB verbinden : Datenquelle / Ole DB / MySQL. Ich würde aber den Weg über ein Dataset vorziehen.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

K
krone1 Themenstarter:in
4 Beiträge seit 2010
vor 13 Jahren

Zum Thema "Crystal Reports" findet man einiges im Internet. Allerdings kenne ich das nicht und würde auch gerne vermeiden, es verwenden zu müssen.

Es gibt im Studio ein Element "Bericht".
Rechte Maustaste auf das Projekt -> hinzufügen -> neues Element.
Dann findet man dieses "Bericht".
Das würde ich gerne verwenden.

Außerdem verwende ich den MySQL-connector von http://dev.mysql.com/downloads/connector/net/

Der Weg sollte also folgendermaßen sein:

  1. stored-procedure MySQL
  2. MySQL-connector => DataTable
  3. Bericht
    Funktioniert das damit?

O.T.: Gruß an meine alte Heimat FFM 😉

3.825 Beiträge seit 2006
vor 13 Jahren

Rechte Maustaste auf das Projekt -> hinzufügen -> neues Element.

Damit fügst Du einen Reporting Services Report hinzu. Würde ich auch Crystal vorziehen.

Report aus Dataset füttern :

DataSet ds = new DataSet();
...
// DS füllen
...
reportViewer1.ProcessingMode = ProcessingMode.Local;
// Embedded Report
reportViewer1.LocalReport.ReportEmbeddedResource = "QUASAR3.Reports." + repname;
// Externer Report
// reportViewer1.LocalReport.ReportPath = verz + repname;
ReportDataSource src = new ReportDataSource(dat, ds.Tables[dat]);
reportViewer1.LocalReport.DataSources.Add(src);
Application.DoEvents();
reportViewer1.RefreshReport();

Infoseite zu Report Viewer : http://www.gotreportviewer.com/

Grüße Bernd

PS.: Gruß zurück aus Ffm

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

K
krone1 Themenstarter:in
4 Beiträge seit 2010
vor 13 Jahren

Ok! Also ist so der Datenstrom:
MySQL -> DataTable -> ReportDataSource -> ReportViewer
Dieses ReportDataSource muss man anscheinend noch dazwischenschieben.

"QUASAR3.Reports." + repname;

Was ist denn das für ein String??
Ist das ein beliebiger Name?

3.825 Beiträge seit 2006
vor 13 Jahren

'QUASAR3' ist der Name des Namespace.

'Reports' das Unterverzeichnis in dem meine Reports sind.

'repname' der Name des Reports, mit der Endung '.rdlc'

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

K
krone1 Themenstarter:in
4 Beiträge seit 2010
vor 13 Jahren

Alles klar. Report und Reportviewer sind ja 2 unterschiedliche Sachen.

Ich werde das morgen dann mal ausprobieren 😃

vorerst mal Danke 😃

T
219 Beiträge seit 2006
vor 13 Jahren

Rechte Maustaste auf das Projekt -> hinzufügen -> neues Element.

Damit fügst Du einen Reporting Services Report hinzu. Würde ich auch Crystal vorziehen.

Report aus Dataset füttern :

Hallo BerndFfm,

eine kurze Frage dazu: Das Design des Reports geschieht ja in VS (2008). Da wird ja u.a. eine Datenquelle definiert. Zur Designtime ist das o.k. zur Laufzeit möchte ich aber nur das Dataset verwenden. Wird denn die Datenquelle trotzdem geöffnet, weil ja definiert ?. Das würde ich nicht wollen..

Gruß

Thomas

3.825 Beiträge seit 2006
vor 13 Jahren

Wird denn die Datenquelle trotzdem geöffnet, weil ja definiert ?

Nur wenn Spalten im Bericht vorkommen, die nicht im Dataset enthalten sind.

Also nein.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

F
10.010 Beiträge seit 2004
vor 13 Jahren

Nichteinmal dann.

Der ReportViewer hat keine Möglichkeit eingebaut um sich Daten selber zu besorgen.

T
219 Beiträge seit 2006
vor 13 Jahren

Danke. Ich muß gestehen, dass ich diesen Reportviewer immer ignoriert habe. Es scheint aber zu Unrecht gewesen zu sein -)

Thomas

3.825 Beiträge seit 2006
vor 13 Jahren

Der neue Report Builder Version 3.0 hat eine Vorschau, die natürlich direkt auf die Daten zugreifen will.

Wenn man den Report an den Kunden weitergibt kann es sein dass Datenbank-User und -Kennwort in der rdlc-Datei stehen.

Ich mache das so dass ich die Daten in ein Dataset lade, daraus eine XML-Datei erzeuge (ds.WriteXml) und diese als Quelle im Bericht angebe. Die XML-Datei brauche ich natürlich nur fürs Design und für die Vorschau. Zur Laufzeit reicht das Dataset.

Die XML-Datei kann dann auch ein paar Demodaten beinhalten.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3