LL27: Listenvorlage basierend auf XML mit DataSet befüllen

Hallo zusammen,

folgende Situation:

LL27 soll in einem größeren .NET- Projekt verwendet werden. Der Ablauf soll wie folgt ablaufen:

  1. Das Projekt führt eine DB-Abfrage über z.B. zwei Tabellen (Teilekopf/-merkmal) aus und erstellt aus dem DataSet eine XML.
  2. Die XML-Struktur sieht wie folgt aus (soll auch nicht verändert werden):
<NewDataSet>
  <SelectedRow>
    <Attribut1></Attribut1>
    ...
  </SelectedRow>
  <SelectedRow>
    <Attribut1></Attribut1>
    ...
  </SelectedRow>
</NewDataSet>
  1. Die XML wird in den Designer importiert und ist unter der Rubrik Felder definiert. Basierend auf der XML wird im Designer eine Listenvorlage erstellt. Das Projekt sieht in der Baumstruktur so aus: Berichtscontainer → Tabelle: NewDataSet → Tabelle SelectedRow

  2. Im .NET-Projekt soll der Tabelle SelectedRow nun die Werte zugewiesen werden

So viel zum Ablauf. Nun die Frage: Wie kann ich der Tabelle SelectedRow die Werte, die ich aus der DB (über einen anderen Dienst, der die Daten über XML bereitstellt) hole, zuweisen?

DataSet ds = new DataSet();

ds.ReadXml(@"C:\temp\XML\Response.xml");

LL.DataSource = ds;

var path2File = Path.Combine(listPath, "test_temp.cds");

LL.AutoProjectFile = path2File;
LL.AutoProjectType = LlProject.List;
LL.AutoShowSelectFile = false;
LL.AutoShowPrintOptions = false;
ExportConfiguration cfg = new ExportConfiguration(LlExportTarget.Pdf, Path.Combine(exportPath, exportFileName), Path.Combine(listPath, "test_temp.cds"));
LL.Export(cfg);

Wenn ich das ausführe, dann kriege ich diese Fehlermeldung:

Das Projekt verwendet folgende Tabellen, die nicht vorhanden sind: NewDataSet, SelectedRow.

Wo oder wie müsste ich die beiden Tabellen definieren?

Vielen Dank für die Hilfe.

Hallo Herr Hess,

willkommen in unserem Forum.

Die von Ihnen verwendete *.cds-Datei stammt höchstwahrscheinlich aus der Beispielanwendung (DemoApplicationXX.exe). Diese stellt selbst aber keine eigenständige Berichtsdatei dar, sondern ist eine Container-Datei exklusiv für die Beispielanwendung und enthält neben der Berichtsdatei (bspw. *.lst) auch zusätzlich die Datenquelle (vielleicht eine XML-Datei… je nach dem was ausgewählt wurde). In eigenen Anwendungen kann daher diese *.cds-Datei nicht verwendet werden und ist immer nur als Beispiel für die Beispielanwendung zu sehen.

Im vorliegenden Fall müssten Sie daher über den Aufruf von Design() zuerst selbst eine Berichtsvorlage innerhalb der Anwendung erstellen. Versuchen Sie ggf. die *.cds-Datei in der Beispielanwendung im Designer zu öffnen und markieren Sie alle Objekte um diese in die Zwischenablage zu kopieren. Fügen Sie dann alles in der eigenen Anwendung im Designer wieder ein und Sie müssten dann das Layout wieder haben.

Sie können anstelle eines DataSets auch direkt auf die XML-Datei mit List & Label als Datenquelle verweisen. Hierzu gibt es speziell den XmlDataProvider. Eine mögliche Verwendung zeigen die Praxisbeispiele aus der .NET Dokumentation.

Viele Grüße,
Daniel Stein

Hallo Herr Stein,

mit dem Erstellen der Vorlage als *.lst, hat alles wunderbar geklappt.

Vielen Dank

1 Like