Performance Steigerung durch Calcsum bzw. Setautocalcfields

20. Dezember 2019 08:17

Hallo,
habe folgenden Code

Code:
Lagermenge := 0;
VerbrArtikelStückliste.RESET;
VerbrArtikelStückliste.SETRANGE("Artikel Nr.",ArtikelNr1);
IF VerbrArtikelStückliste.FINDSET THEN BEGIN
  REPEAT
    Item.RESET;
    IF Item.GET(VerbrArtikelStückliste."Verbr. Artikel Nr.") THEN BEGIN
      Item.CALCFIELDS(Inventory);
      Lagermenge += Item.Inventory;
    END;
  UNTIL VerbrArtikelStückliste.NEXT = 0
END;


Kann ich hier durch Setautocalcfields bzw. Calcsum eine Performance Steigerung erzielen.

Besten Dank und lg
stony

Re: Performance Steigerung durch Calcsum bzw. Setautocalcfie

20. Dezember 2019 08:23

Hallo,

welche Informationen möchtest du mit dieser Abfrage ermitteln?
Wie sieht der Primärschlüssel von VerbrArtikelStückliste aus?

Gruß Fiddi

Re: Performance Steigerung durch Calcsum bzw. Setautocalcfie

20. Dezember 2019 08:29

Der Key ist Artikel Nr.,Verbr. Artikel Nr.,Bedingung
und ich möchte die Lagermenge aller Artikeln welche zu eine Artikel gehören.
Dies ist in der VerbrArtikelStückliste gespeichert.

Re: Performance Steigerung durch Calcsum bzw. Setautocalcfie

20. Dezember 2019 09:03

Hallo,

Ich weiß ja nicht wie deine Daten aussehen, aber laut deinem Datenmodell könnte deine "Verbr. Artikel Nr." N mal (soviele wie es Bedingungen geben kann) in der Lagermenge auftauchen. Wozu benötigst du die Information das dein Artikel 4711 mit Bestand 10 eine Lagermenge von 100 hat (weil du gerade 10 unterschiedliche Bedingungen hast)?
Oder wenn du mehrere Artikel in der Liste hast, was nützt die Summe aller Artikelbestände? Sind das Alternativ- Artikel, oder werden die alle für einen Artikel benötigt? Bei letzterem benötigst du, denke ich, eher den Minimalbestand aller Artikel.

Gruß Fiddi

Re: Performance Steigerung durch Calcsum bzw. Setautocalcfie

20. Dezember 2019 09:03

Versuch es doch einfach.

Ich habe schonmal die Lagerverfügbarkeit (jeder Artikel pro Periode) aufgepopelt in 2009. In 2016 resultierte da durch AUTOCALCFIELDS ein erheblicher Performanceschub.