Domino 9 und frühere Versionen > ND9: Entwicklung

Datenexport Performance optimiert

<< < (3/5) > >>

Ralf_M_Petter:
Wie ich erwartet habe ist die Methode die Columnvalues in einem Array abspeichern und dann nur auf das Array zugreifen wesentlich schneller als wenn ich jedes mal ve.ColumnValues(col) aufrufe. In meinem Test ca. 70%. Also wenn du diese beiden Optimierungen anwendest, sollte dein Code leicht ausreichend schnell laufen.

Was mir noch aufgefallen ist, der Lotusscript Debugger blockiert etwas wenn man ViewNavigatoren verwendet. Bitte daher alle Tests mit abgeschalteten Lotus Script Debugger machen.
 

Andrew Harder:
Mit Buffer hochsetzen ist es also schneller und wenn der Debugger an ist muckt das rum.
Außerdem sollte man ein Array nicht jedesmal neu holen.

Wenn man das ganze NICHT nach Excel exportiert, sondern in ein CSV und erst das über COM in Excel speichert, dann ist der Export noch schneller.
Wurde hier von umi auch schon angedeutet, nur falls das zufälligerweise überlesen wurde.

Legolas:
Hallo Ralf_M_Petter,

habe heute mal Deine Vorschläge umgesetzt.
Geht auch alles deutlich schneller bis auf eine Situation!

Was machst Du, wenn eine Ansicht Text und Multivaluefelder beinhaltet?
Dann kannst Du varX = ve.ColumnValues() nicht setzen. --> Führt zum Typmismatch!
Die als "DIM varX as Variabe" deklarierte Variable, kann keine Wertekombination von Strings und Arrays aufnehmen.
Z.B.: 5 Spaten als String, 1 Spalte mit Multivaluewerten.

Oder habe ich hier Tomaten auf den Augen?

Grüße
Bernd

Ralf_M_Petter:
Eine Idee wäre es das ganze nicht einer Variable zuweisen, sondern direkt in der For all Schleife zu verwenden.

Sinngemäß, da ich jetzt keinen Designer zur Hand habe.

--- Code: ---forall werte in ve.columnvalues
if isArray(werte) then
rem Mache Verarbeitung multi value
else
rem Mache Verarbeitung Single Value
end if
end forall

--- Ende Code ---
Ich hoffe, dass das funktioniert, aber ich kann es derzeit nicht testen, da ich morgen unterwegs bin.

diali:
kannst du nicht mehrere Spalten in der Ansicht zusammenfassen?

Es soll doch nur csv hintern herausfallen.
Jetzt kann doch in der ersten Ansichtsspalte syntaktisch ein Teilstring der CSV drin stehen, der die ersten 10 Spalten zusammenfasst.
Wendest du dies mehrfach an, werden aus 150 Spalten nur noch 15.
Wie viele Spalten du zusammenfasst, würde ich vom Inhalt (Größe) abhängig machen.

Die Zeichenbehandlung für CR, LF usw. kann auch gleich in den Ansichtsspalten mit erledigt werden.

Falls du schon Formatierungen usw. mitgeben willst, dann wäre auch das Excel-XML-Format interessant.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln