Entwickler-Ecke
IO, XML und Registry - XML bleibt leer -> Fehler im CrystalReport
Theki - Mo 27.02.12 13:26
Titel: XML bleibt leer -> Fehler im CrystalReport
Hallo zusammen,
ich stehe im Moment vor einem Problem, welches mir vorher garnicht aufgefallen ist.
Ich ziehe mittels OleDbDataAdapter Daten aus einer Access-Datenbank und speicher diese in einer xml Datei ab.
Soweit so gut, befinden ist Daten in der XML-Datei stellt dies kein Problem da.
Nun wurde bei einer Abfrage kein Wert zurück gegeben, somit wurde in die XML nur follgendes geschrieben
XML-Daten
1: 2:
| <?xml version="1.0" standalone="yes"?> <NewDataSet /> |
Beim Erstellen des Berichtes wurde nun ein Fehler zurück geworfen.
Sollte kein Datensatz ausgelesen werden müsste es so aussehen, damit CrystalReport zufrieden ist:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9:
| <?xml version="1.0" standalone="yes"?> <NewDataSet> <MS> <MS-Erg></MS> <MS1-Bes></MS> <MS1-Bem></MS> <MS></MS> </MS> </NewDataSet> |
Mein Routine zum Aulesen sieht so aus:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| sql1 = "Hier steht die SQL" con.Open(); oledbAdapter = new OleDbDataAdapter(sql1, con); oledbAdapter.Fill(myDataSet); oledbAdapter.Dispose(); con.Close(); myDataSet.Tables[0].TableName = "MS"; myDataSet.Tables[0].Columns[0].ColumnName = "MS-Erg"; myDataSet.Tables[0].Columns[1].ColumnName = "MS-Bes"; myDataSet.Tables[0].Columns[2].ColumnName = "MS-Bem"; myDataSet.Tables[0].Columns[3].ColumnName = "MS-Dat";
myDataSet.WriteXml(filePath); |
Hat jemand Ideen? Stehe auf dem Schlauch...
Danke schonmal...
Th69 - Mo 27.02.12 14:59
Hallo Theki,
dann bleibt dir wohl nichts anderes übrig als zu überprüfen, ob die Daten leer sind und dann ein Dummy-Objekt "MS" (in der DataTable myDataSet.Tables[0] mittels NewRow und anschließendem Rows.Add(...)) zu erzeugen.
Ralf Jansen - Mo 27.02.12 15:34
Warum versuchst du einen Report zu erstellen obwohl du keine Daten hast?
Theki - Di 28.02.12 11:23
Diese XML-Datein fließen in Subreport's ein. Manche sind vorhanden, manche nicht... wollte ich relativ dynamisch gestalten. Wenn die Felder leer sind, tauchen die auch nicht auf.
| Zitat: |
Hallo Theki,
dann bleibt dir wohl nichts anderes übrig als zu überprüfen, ob die Daten leer sind und dann ein Dummy-Objekt "MS" (in der DataTable myDataSet.Tables[0] mittels NewRow und anschließendem Rows.Add(...)) zu erzeugen.
|
Das habe ich befürchtet :/
Gibt wohl leider keinen anderen Weg...
Ralf Jansen - Di 28.02.12 11:36
Was ist wenn du vor dem Adapter.Fill ein explizites Adapter.FillSchema aufrufst?
Theki - Di 06.03.12 11:35
Wie würde das ungefähr aussehen, hab diese Funktion noch nie genutzt.
Anhand der Doku zeigt mir das keine umsetzbare Lösung :/
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!