0

Geschwindigkeitsprobleme

Hallo,
ich habe eine Tabelle mit 2000 Datensätzen
wo ich ein Feld habe wo die Datensätze fortlaufend durchnummeriert sind
ich habe eine Befehlsschaltfläche die an der aktuellen Position Datensatz
einfügt und auch passend nummeriert.
Ich mache dieses mit folgender Funktion

do as server
closeRecord();
let myPosTyp := 'Pos-Typ';
let myPos := this.Pos + 1;
(select Artikel)[Pos >= myPos].(Pos := Pos + 1);
let myPosNeu := (create Artikel);
myPosNeu.(Pos := myPos);
myPosNeu.('Pos-Typ' := myPosTyp);
popupRecord(myPosNeu)
end

Die Funktion ist aber so langsam dass man an sich damit nicht arbeiten kann

Teilweise kommt doch eine Fehlermeldung vom Server

Kennt jemand eine schnellere Lösung

3 Antworten

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Eigentlich alles richtig, habe jetzt den Code ein bisschen gekürz:

    ---
    do as server
    let me:=this;
    select Artikel where Pos>me.Pos.(Pos:=Pos+1);
    let new:=create Artikel;
    new.Pos:=me.Pos+1;
    new.'Pos-Typ':=me.'Pos-Typ';
    openRecord (new)
    end

    ---

    Leo

    • MSchwippe
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Leider funktioniert der Code nicht

    In der Select Anweisung ist ein Fehler

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hmm,
    und so?
    ---

    do as server
    let me:=this;
    select Artikel [Pos>me.Pos].(Pos:=Pos+1);
    let new:=create Artikel;
    new.Pos:=me.Pos+1;
    new.'Pos-Typ':=me.'Pos-Typ';
    openRecord (new)
    end

    ---

    Leo