Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
ReportViewer - Leere Felder nicht anzeigen
tristar
myCSharp.de - Member



Dabei seit:
Beiträge: 64

Themenstarter:

ReportViewer - Leere Felder nicht anzeigen

beantworten | zitieren | melden

Hallo,

wie kann ich es bei der Erstellung von Berichten umsetzen, dass wenn ich ein Feld (=Fields!Bemerkung.Value) einfüge - falls dieses leer ist - auch keine Leerzeile eingefügt wird?
private Nachricht | Beiträge des Benutzers
witte
myCSharp.de - Member



Dabei seit:
Beiträge: 966

beantworten | zitieren | melden

... indem man vorher die leeren Objekte vor der Verwendung rausfiltert?
private Nachricht | Beiträge des Benutzers
tristar
myCSharp.de - Member



Dabei seit:
Beiträge: 64

Themenstarter:

beantworten | zitieren | melden

Hm, ok. Nur wie mache ich das?
Oder zumindest ein Stichwort, wonach ich suchen muss?

Mein Problem dabei ist folgendes:
Die Tablix hat 4 Spalten. In der ersten Spalte gebe ich eine Menge sowie eine Restmenge an.
D.h. wenn die Restmenge = 0 ist, dann soll weder der Text Restmenge noch eine Zahl auftauchen.

Und in der 3 Spalte sind die Felder Bezeichnung, Vertragsnummer und Bemerkung. Ist eine Vertragsnummer oder eine Bemekrung vorhanden, soll diese eben angezeigt werden oder nicht.

Der einizige Weg, den ich bisher zum ausblenden gefunden habe, war über die Gruppeneigenschaft.
Aber das ist sicher falsch. Denn wenn ich dort für die Restmenge.Value / Operator <> / Wert 0 eintrage, dann wird meine gesamte Zeile ausgeblendet.
Jedoch sollen natürlich alle anderen Werte angezeigt werden .... wie kann ich dies also auf nur ein Feld beziehen?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von tristar am .
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5988
Herkunft: Leipzig

beantworten | zitieren | melden

Hi tristar,

wie witte schon gesagt hat, kannst du die Objekte auch schon vor der Reportgenerierung filtern und anpassen. Dafür kannst du Linq verwenden, oder einfache Schleifen mit beliebigen Bedingungen.
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
t0ms3n
myCSharp.de - Member



Dabei seit:
Beiträge: 319

beantworten | zitieren | melden

Jede Spalte/Zeile/Zelle hat eine Visibility (?) Eigenschaft. Dort kannst Du eine Expression einfügen, welche entsprechend das Feld ein-oder ausblendet.
private Nachricht | Beiträge des Benutzers
tristar
myCSharp.de - Member



Dabei seit:
Beiträge: 64

Themenstarter:

beantworten | zitieren | melden

Sorry, irgendwie steh ich echt auf dem Schlauch.
Ich habe es auch schon mit einem Ausdruck für ein Feld probiert:
=IIF(First(Fields!Restmenge.Value)=0, true, false)

Nun steht allerdings immer TRUE oder FALSE in meinem Feld und keine Werte bzw nicht ausgeblendet??
private Nachricht | Beiträge des Benutzers
tristar
myCSharp.de - Member



Dabei seit:
Beiträge: 64

Themenstarter:

beantworten | zitieren | melden

Hallo,
leider bin ich immer noch nicht weiter gekommen. :-(
Beim Suchen bin ich auf diesen Foren-Eintrag gestossen, welcher wie von Euch beschrieben das selbe Vorgehen empfielt. http://www.mycsharp.de/wbb2/thread.php?threadid=112540

Leider verstehe ich nicht, wie ich einzelne Daten dan "weg lassen" kann?!?!

Ich habe Daten für einen Lieferschein. Diese Daten lese ich in eine List<Lieferschein> ein und diese übergebe ich dem Report.

Nun kann es sein, dass eine Position nicht vollständig beliefert werden kann und eine Restmenge offen bleibt. Diese Restmenge würde ich dann eben gerne in der Zelle der Lieferanzahl zusätzlich anzeigen wollen.
Ebenso gibt es zu manchen Positionen Bemerkungen.

Prinzipiell funktioniert es ja auch ... nur habe ich die folgenden beiden Probleme:
-Für die Restmenge schreibe ich auch den Text "Restmenge" in die Zelle. Ist die Menge nun 0, wie kann ich verhindern, dass der Text angezeigt wird (also nur dieser Text, nicht die eigentliche Liefermenge).

-Bemerkung: Wir kann ich verhindern, dass für die Bemerkung eine Zeile "reserviert" wird. So ist meine Zeile teilweise extrem hoch, obwohl kein Text drin steht.

Hoffe ihr könnte mir helfen - bin so langsam echt am Verzweifeln! Danke!
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5988
Herkunft: Leipzig

beantworten | zitieren | melden

Zitat von tristar
Leider verstehe ich nicht, wie ich einzelne Daten dan "weg lassen" kann?!?!

Lies dir doch einfach erstmal die Antworten durch, die dir bereits gegeben wurden. Da waren doch einige Ideen dabei, die du noch nicht ausprobiert hast. Falls du damit Probleme hast, mußt du schonmal konkreter nachfragen und mal zeigen, was du schon ausprobiert hast.
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
CWolle
myCSharp.de - Member

Avatar #avatar-4065.jpg


Dabei seit:
Beiträge: 58
Herkunft: Süddeutschland

0 und NULL sind nicht das gleiche

beantworten | zitieren | melden

bei einem Value-Vergleich musst du entweder .Length() mit 0 vergleichen oder du vergleichst mit NULL. Sonst trifft deine Bedingung nie zu
OO gibts seit Platon - hatte der auch C#?
private Nachricht | Beiträge des Benutzers
tristar
myCSharp.de - Member



Dabei seit:
Beiträge: 64

Themenstarter:

beantworten | zitieren | melden

Ich habe es nun so gelöst, dass ich für die entsprechenden Daten eine neue Zeile erstelle. Je nachdem ob Daten enthalten sind, verwende ich einen Ausdruck, um die Zeile anzuzeigen oder eben nicht.
private Nachricht | Beiträge des Benutzers