5000 Tabellen erzeugen - Wie Performance und Layout verbessern

  • Hallo,

    ich versuche gerade Performanceprobleme zu lösen und habe ein Miniprojekt erstellt:

    Dabei sieht man dass jede 20. Zeile eine falsche Höhe bekommen hat!

    Ändert man die 600 in 500 ist jede 24. Zeile falsch!

    Was mache ich falsch?

    Ciao

    Stefan

    Nachtrag:

    Ich habe die Zeileninhalte mal mit tbl.SaveToString weggeschrieben und die falsche und die richtige Zeile sind bis auf die Nummer identisch!

    Also scheint die Anzeige (wplayNormal) falsch zu sein?

    Nachtrag2:

    Mit wplayLayout ist die Anzeige korrekt, man sieht jetzt dass die oben falsch dargestellten Zeilen die jeweils letzte auf einer Seite sind!

    2 Mal editiert, zuletzt von skoschke (27. April 2018 um 08:57)

    • Offizieller Beitrag

    In dem code werden 5000 Tabellen mit je 1 Zeile und 1 Reihe erstellt - welches Problem löst dies?

    Wie sie ja schon gesehen haben ergibt sich eine andere Höhe durch den Umbruch. Probieren Sie den Umbruch für Tabellen in FormatOptions abzuschalten.,

    Weniger Overhead hat diese code:

  • OK, danke...

    Der Hintergrund der 5000 Tabellen war eigentlich nur die Vereinfachung...

    Ich habe z.B. 5000 Positionen in einem Lieferschein, da sollte wegen einfacherem Zugriff jede Position eine eigene kleine Tabelle werden (3 Zeilen mit 8 Spalten) anstelle einer Gesamttabelle wo dann die Position von Zeile 2345 bis 2347 reicht, ich dachte das macht das Handling leichter...

    Ich wollte ausloten, wie schnell das Hinzufügen dieser 5000 Untertabellen ist, und habe der Einfachheit halber eben nur 1 Zeile/1 Spalte genommen.

    Dabei fiel eben das geschilderte Darstellungsproblem auf.

    Ciao

    Stefan

    • Offizieller Beitrag

    Mit der gezeigten Technik "cell := row.AppendNewCell();" liesse sich auch eine mehrzeilige Tabelle erstellen.

    Code wie dieser wird mit steigender Anzahl der Abätze langsamer da LastPar ja immer neu ermittelt wird.

    WP.ActiveParagraph := WP.BodyText.LastPar;

    Es ist daher immer schneller direkt mit den Absatz Referenzen zu arbeiten und insbesondere die letzte Referenz zu nutzen um weitern Inhalt zu produzieren.

    Das fragliche Anzeige Problem kann ich allerdings nicht erkennen - grundsätzlich arbeitet WPTools immer Seiten basiert und da müssen Umbrüche an manchen Stellen eingebaut werden.

    Wenn Sie eine durchgehende Tabelle brauchen sollten Sie die Zellen über den Name der Zelle anstatt dem Namen der Tabelle adressieren. Namen für Reihen können nicht gespeichert werden.

    Ich befürchte ein Dokument mit 5000 tabellen überfordert manchen RTF "consumer". Das Layout leidet auch.

    (Ich habe den Titel des Beitrags so angepasst, dass er einen Hinweis auf die enthaltene Fragestellung bzw. Lösung enthält.)

    Grüsse,

    Julian

  • Zitat

    Es ist daher immer schneller direkt mit den Absatz Referenzen zu arbeiten und insbesondere die letzte Referenz zu nutzen um weitern Inhalt zu produzieren.

    Ich glaube das muss ich viel mehr im Hinterkopf behalten!

    Danke für die guten Tips!

    Ciao

    Stefan