hExapod4 Geschrieben 26. Februar 2010 Teilen Geschrieben 26. Februar 2010 Hallo zusammen: Folgende Problemstellung: Ich lese aus meiner SQL-Datenbank im ReportViewer von VS2008 eine Tabelle aus. Die einzelnen Zellen sind varchar und werden auch richtig angezeigt und im Report konvertiert (Beispiel: CDbl(Fields!rund_6.Value)). Unter der Tabelle bilde ich dann noch die Summer der Spalte. Problem hierbei ist aber, dass dieses nur funktioniert, wenn in jeder Zelle einer Spalte auch ein Wert steht. Ist eine Zelle leer, bringt er mir unten einen Error. Weiß jemand, wie man dieses umgehen kann und trotzdem unten die Summe rauskommt? Ich will wegen der Übersichtlichkeit nicht überall eine 0 eintragen lassen, sondern die Zelle lieber frei lassen. :old Danke bereits im Vorraus! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lbm1305 Geschrieben 26. Februar 2010 Teilen Geschrieben 26. Februar 2010 Hmm...um eine Summe zu bilden, müssten die Werte in einen Zahlentyp umgewandelt werden. Macht das der ReportViewer automatisch? Arrggg...ich hätte richtig lesen sollen. Es gibt ja eine Funktion :-) Kann man der Funktion nicht sagen, dass ein leeres Feld, was man in einer Datenbank eh nicht haben sollte, dann 0 ist? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
HJST1979 Geschrieben 26. Februar 2010 Teilen Geschrieben 26. Februar 2010 Weiß jemand, wie man dieses umgehen kann und trotzdem unten die Summe rauskommt? Ich will wegen der Übersichtlichkeit nicht überall eine 0 eintragen lassen, sondern die Zelle lieber frei lassen. :old Ich pers. kenne den Reportviewer nicht. Aber wie wäre es wenn du zwar eine 0 einträgst sie aber in "weiß" ausgibst, somit wäre sie für den Endanwender nicht sichtbar und du kannst deine Summe bilden. Gruß Hans-Jörg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
.NETter Geschrieben 26. Februar 2010 Teilen Geschrieben 26. Februar 2010 Hallo, Du kannst die Funktionen jedes einzelnen Feldes ansehen und auch ändern. Rechtsklick aufs entsprechende Textfeld und hier im Kontextmenü "Ausdruck" wählen. Im oberen Bereich wird die die Funktionalität angezeigt mit der Daten in das entsprechende Feld geschrieben werden. Hier prüfst Du den Wert auf NULL (hier wird VB verwendet!): =IIF(Fields!rund_6.Value Is Nothing,"0",Fields!Fields!rund_6.Value) Wird NULL zurückgegeben wird dann eine "0" eingetragen, ansonsten eben der Feldwert. Gruß, Thomas PS: der ReportViewer ist "nur" ein Control welches dir mehr Möglichkeiten zur Verfügung stellt. Die Definition des Berichts erfolgt in RDL (Report Definition Language), wenn die Datei (*.rdlc) mit einem Editor geöffnet wird, findet man hier reines XML. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hExapod4 Geschrieben 26. Februar 2010 Autor Teilen Geschrieben 26. Februar 2010 @Hans-Joerg: Ja, das wäre sicherlich eine Möglichkeit, an die hab ich auch schon gedacht, wobei mir das ein wenig zu unsauber ist ;-) @lbm1305: Genau diesen Befehl suche ich ;-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
.NETter Geschrieben 26. Februar 2010 Teilen Geschrieben 26. Februar 2010 Was hindert Dich daran meine Formel für Deine Zwecke zu nutzen? =Sum(CDbl(IIF(Fields!rund_6.Value Is Nothing,"0",Fields!rund_6.Value ))) Funktioniert einwandfrei. Keine #Error´s mehr und Nullen werden auch nicht angezeigt... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hExapod4 Geschrieben 26. Februar 2010 Autor Teilen Geschrieben 26. Februar 2010 Sorry, ich werds gleich mal testen. Der Post von mir war eigentlich schon viel früher, bevor ich deine Antwort gelesen hab Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
.NETter Geschrieben 26. Februar 2010 Teilen Geschrieben 26. Februar 2010 Kein Problem Gib mal Feedback ob es funzt. Gruß, Thomas Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hExapod4 Geschrieben 26. Februar 2010 Autor Teilen Geschrieben 26. Februar 2010 =Sum(CDbl(IIF(Fields!rund_6.Value Is Nothing,"0",Fields!rund_6.Value ))) Hm, damit bekomme ich immer noch den #Error :old Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lbm1305 Geschrieben 26. Februar 2010 Teilen Geschrieben 26. Februar 2010 (bearbeitet) Überprüft man mit "is Nothing" nur auf "gar nichts"? Es gäbe noch den leeren String "" ?! EDIT: Warum sind die Zellen, in den eine Zahl steht, vom Typ varchar? Bearbeitet 26. Februar 2010 von lbm1305 edit Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
.NETter Geschrieben 26. Februar 2010 Teilen Geschrieben 26. Februar 2010 Also ich habe mir eine Tabelle zum Test gebaut: Bezeichnung (nvarchar(50)) NOT NULL NrAlsVarchar (nvarchar(10)) ALLOWS NULL Zwei Zeilen enthalten im Feld NrAlsVarchar NULL-Werte. Im Report wird nach dem Einbau der Formel in die "Summenberechnung" der Spalte die Summe auch korrekt berechnet. Die Felder der Tabelle bleiben leer, da ich den Wert der einzelnen Felder nicht anfasse sondern nur in der Summenberechnung eine Formel einbaue. Formel an der richtigen Stelle? Oder noch Formeln in den einzelnen Feldwerten der Tabelle? Gruß, Thomas Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hExapod4 Geschrieben 26. Februar 2010 Autor Teilen Geschrieben 26. Februar 2010 Weil man im Vorfeld in der Form auch ein Kürzel eintragen könnte und hier das ganze abgefangen wird um ein anderes Form zu verweisen (Ist eine Branchensoftware, Kunde wollte das so). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
.NETter Geschrieben 26. Februar 2010 Teilen Geschrieben 26. Februar 2010 @ibm1305 ja natürlich muss man hier auch auf einen leeren String prüfen: =Sum(CDbl(IIF(Fields!NrVarchar.Value Is Nothing Or Fields!NrVarchar.Value = "","0",Fields!NrVarchar.Value))) Aber erstmal gings ja um NULL. Gruß, Thomas Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
.NETter Geschrieben 26. Februar 2010 Teilen Geschrieben 26. Februar 2010 Da ich hier etwas von Kürzeln eintragen gelesen habe... Es wird also auch Text dort eingetragen? Das heißt man müsste auch die Möglichkeit abfangen, dass versucht wird mit einem String zu rechnen: =Sum(CDbl(IIF(Fields!NrVarchar.Value Is Nothing Or Fields!NrVarchar.Value = "","0",IIF(ISNUMERIC(Fields!NrVarchar.Value),Fields!NrVarchar.Value, "0")))) So wird zwar der Text in einem Feld angezeigt in der Formel allerding wie eine Null (0) behandelt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hExapod4 Geschrieben 2. März 2010 Autor Teilen Geschrieben 2. März 2010 Funktioniert perfekt, danke! Noch ein Frage: Wie kann ich dem Reportviewer sagen, dass er immer den gleichen Rand hernimmt? Um das ganze beispielsweise an einen Drucker anzupassen, ohne jedesmal im Viewer selbst die Einstellungen vorzunehmen?? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.