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
RDLC-Report: Anzeige von Wert in DataSet1 abhängig von Wert aus DataSet2
Luna1987
myCSharp.de - Member



Dabei seit:
Beiträge: 43
Herkunft: Rostock

Themenstarter:

RDLC-Report: Anzeige von Wert in DataSet1 abhängig von Wert aus DataSet2

beantworten | zitieren | melden

Hallo zusammen :-)
Ich habe eine xml-Datei, die von der Struktur her (grob) wie folgt aussieht:

?xml version="1.0" encoding="utf-8"?>
     <EventData>
          <ListOfEvents Index="A" >
                    <Event ID="1" Name="Event001" />
                    <Event ID="2" Name="Event002" />
                    <Event … />
          </ListOfEvents>
          <ListOfEvents Index="B" >
                    <Event ID="1" Name="Event001" />
                    <Event ID="2" Name="Event002" />
                    <Event … />
          </ListOfEvents>
     </EventData>
Diese xml-Datei deserialisiere ich und ordne sie einem DataGrid zu und zeige abhängig vom gewählten (Event)Index (z.B. "A") die "Events" in dem DataGrid an. Nun möchte ich auf Knopfdruck einen rdlc-Bericht dieser Tabelle erzeugen. Ich benutze dafür den ReportPrinter und gebe ja als PathToData meinen xml-Dateipfad an.


                    ReportPrinter p = new ReportPrinter()
                    {
                        PathToOutput = saveFileDialog.FileName,
                        PathToData = this.filePath,
                        PathToReport = @".\ReportPrinter\config\Report.rdlc",
                        DeviceInfo = @"<DeviceInfo>
                                <OutputFormat>EMF</OutputFormat>
                                <PageWidth>297mm</PageWidth>
                                <PageHeight>210mm</PageHeight>
                                <MarginTop>0mm</MarginTop>
                                <MarginLeft>0mm</MarginLeft>
                                <MarginRight>0mm</MarginRight>
                                <MarginBottom>0mm</MarginBottom>
                                </DeviceInfo>"
                    };
Leider schreibt er mir nun in dem Report ALLE "Events" aller "ListOfEvents". Ich würde aber gerne nur, abhängig vom gewählten (Event)Index die zugehörigen Events in meinem Bericht haben.

Nun könnte ich ja z.B. über die Sichtbarkeit folgenden Ausdruck definieren:
=IIF((Fields!Index.Value, "ListOfEvents") = A, false, true)
(Tabelle, der das DataSet „Event“ zugeordnet ist --> Rechtsklick auf Textfeld in dieser Tabelle --> Textfeldeigenschaften --> Sichtbarkeit --> Je nach Ausdruck einblenden / ausblenden --> oben genannten Ausdruck eingeben).

Leider funktioniert das nicht :-/ Ich bekomme eine Fehlermeldung, wenn ich den Bericht erzeuge. Wenn ich
=IIF(First(Fields!Index.Value, "ListOfEvents") = A, false, true) 
verwende, dann wird zwar der Bericht erzeugt, aber es werden trotzdem alle „Events“ in den Bericht geschrieben.

Wie kann ich die Abhängigkeit zu dem Attribut „Index“ des DataSets „ListOfEvents“ angeben?

Danke im Voraus für Eure Hilfe!
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3782
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

Hallo Luna,

bei Fragen zu Reports gibt es immer wenig Resonanz, sowas macht kein Programmierer gerne ;-)

Vielleicht hilft Dir meine Vorgehensweise :

Ich drucke meine Berichte auch mit Reportviewer aus einem Dataset. Ich gestalte das Dataset immer so dass es die druckbaren Daten anzeigt, ohne dass ich Ausdrücke im Reportviewer verwenden muss.

Also z.B. lösche ich die Zeilen vorher die ich nicht drucken will.

Berechnete Spalten füge ich dem Dataset hinzu und berechne sie in C#.

Vielleicht hilft dir das.

Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 7561
Herkunft: Waidring

beantworten | zitieren | melden

Hallo Luna1987,

ergänzend zu Bernds Antwort bzw. allgemeiner: Es ist so gut wie immer besser wenn zur Anzeige - den Report zähle ich hier als Anzeige - ein eigenes ViewModel erstellt wird, indem alle benötigten Daten fix und fertig vorliegen. Dann braucht die "View" diese nur mehr stupide darstellen.

mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
private Nachricht | Beiträge des Benutzers