[gelöst] [RTC] Dataset wird zu groß

16. Mai 2013 13:19

Hallo,
ich soll einen neuen Lagerwertbericht (1001) kreieren, der eine Tabelle erzeugt, die Lagerbuchungsgruppe und Lagerort in jeder Zeile anzeigt und nach diesen gruppiert.
Das funktioniert mit einer begrenzten Artikelanzahl auch gut, wenn allerdings zu viele (alle) ausgewählt werden, bekomme ich nur eine leere Seite angezeigt, obwohl in der Seiteninfo ein Dataset angezeigt wird.
Ich vermute, der Hauptspeicher stößt an seine Grenzen, aber wie läßt sich das begrenzen?
Zur Illustration folgende Screenshots:
Lagerwert.jpg

Lagerwert-DataItems.jpg

Lagerwert-Sections.jpg


Wie könnte man z.B. nur die Ergebnisse der Footer-Sections, die im Wesentlichen aus Totals bestehen in den RDLC übernehmen?
Mehr will ich gar nicht darstellen, habe aber keinen Weg gesehen, außer das aus den Body-Daten durch Gruppieren und Summieren zu redesignen.

Vielen Dank für alle Tips!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von effdi am 24. Mai 2013 16:32, insgesamt 1-mal geändert.

Re: [RTC] Dataset wird zu groß

16. Mai 2013 13:29

Soll dieser Report auch im CC laufen oder können wir ihn für RTC allein optimieren?
Wenn für den RTC allein: In den Sections evtl. befindliche GroupHeader/Footer löschen, samt Feldern (diese müssen evtl. verschoben werden). Die Gruppierung allein über RDLC abbilden.
Aus den Footer-Sections alle Textboxen außer den Captions entfernen - allein über RDLC summieren.

Alle Textboxen aus den Sections entfernen, deren Inhalt doppelt vorkommen (z.b. "Menge" und "Wert" tauchen im Standardbericht je 4 mal auf - weg damit).
Du kanns außerdem auf folgende Textboxen verzichten:
FORMAT(TODAY,0,4)
CurrReport.PAGENO
USERID

Versuch mal, ob das schon ausreicht.

Wenn nicht (oder wenn du generell möchtest, dass der Bericht schneller läuft),
Wenn du aus ValueEntry keine einzelnen Datensätze andrucken musst (sondern vielleicht nur einen summierten Wert), dann verzichte auf dieses DataItem und verwende stattdessen eine globale Variable im DataItem darüber, um den Wert zu ermitteln und in deren Section einzubinden.

Re: [RTC] Dataset wird zu groß

16. Mai 2013 13:35

Hallo Frank,

ich habe keine direkte Antwort für dich. Allerdings habe ich mit dem Standardreport "Aktuellen Lagerwert ermitteln" (1001) schon das Problem gehabt, dass nicht genug Speicher zur Verfügung stand. (Dabei hat sich in meinem Fall allerdings der Client aufgehängt.)

Lösen konnte ich das Problem durch die Verwendung eines optimierten Reports, den ich hier gefunden habe:
http://code.msdn.microsoft.com/windowsdesktop/How-to-boost-performance-ffb6c384

Vielleicht kommst du ja mit der optimierten Version des Reports weiter.

Re: [RTC] Dataset wird zu groß

16. Mai 2013 13:49

Hallo Natalie und Alex,
das ging ja superschnell! Danke!
Ich brauche wirklich nur den RTC-Report, werde also in diesem Sinne "entrümpeln".
Melde mich, wenn es Fortschritte oder Rückschläge gibt.

Re: [RTC] Dataset wird zu groß

16. Mai 2013 13:56

Natalie hat geschrieben:Wenn du aus ValueEntry keine einzelnen Datensätze andrucken musst (sondern vielleicht nur einen summierten Wert), dann verzichte auf dieses DataItem und verwende stattdessen eine globale Variable im DataItem darüber, um den Wert zu ermitteln und in deren Section einzubinden.


Meinst Du damit, das komplette DataItem ValueEntry zu entfernen und die Ergebnisse im Body von Location darzustellen (und zu berechnen),
oder nur die Sections von ValueEntry entfernen und die Ergebnisse in den Body von Location zu schreiben?

Re: [RTC] Dataset wird zu groß

16. Mai 2013 13:56

evtl. hilft dir auch diese Information weiter.

Gruß, Fiddi

Re: [RTC] Dataset wird zu groß

16. Mai 2013 15:19

effdi hat geschrieben:Meinst Du damit, das komplette DataItem ValueEntry zu entfernen und die Ergebnisse im Body von Location darzustellen (und zu berechnen),

Genau so.

oder nur die Sections von ValueEntry entfernen und die Ergebnisse in den Body von Location zu schreiben?

Das würde gar nicht funktionieren, weil die Location-Body-Section ausgegeben wird, bevor du in Value Entry etwas ausgeben oder berechnen konntest.

Ziel ist es, dass nicht pro Value Entry eine neue Zeile im DataSet gebildet wird.