Progressbar mit Zähler und Performance-Saver
Dieser Codeschnipsel bietet die Basis für eine Progressbar innerhalb eines anderen Programmablaufs.
Mit der Funktion Mod()
kann man in die Funktion ProgressBarUpdate()
alle X Datensätzen ausführen, was viel Ressourcen spart und das Programm flüssiger / schneller laufen lässt.
Hier exemplarisch anhand einer Schleife durch oTable mit einem Progressbar-Update alle 50 Datensätze.
JS
| oTable, nRecCount, i |
nRecCount := oTable.CbRecordCount, // Zu beachten bei TbeAdsQuery: Geht natürlich nur mit Query ohne Filter, ansonsten werden Filter nicht berücksichtigt!
i := 0,
startseq
oTable.CbFirst(),
ProgressbarShow('TestProgressbar', 'Nur zum Test', true),
while not oTable.CbEoF do
// Logik wie Datenbankoperationen
i++,
if mod(i, 50) = 0 then // Die IF-Bedingung dient zur besseren Performance, da nur alle 50 Datensätze aktualisiert wird - Ist natürlich skalierbar!
ProgressbarUpdate(100 / nRecCount * i, 'AUSGABE', true),
endif,
oTable.CbNext(),
end,
always
ProgressbarHide(),
stopseq,