[Gelöst] Bestimmte Zeile in List ermitteln

9. November 2017 10:42

Hallo,

und zwar muss ich aus einer Tabelle eine bestimmte "übergeordneten Eintrag" ermitteln und weiter verarbeiten. Leider weiß ich nicht, wie ich das am besten bewerkstellige.

Ich versuche das hier mal so gut es mir möglich ist zu erklären:
Ich habe eine Tabellen mit Zeilen, hier gibt es u.a. die Felder "Art" (Option), "Nummer" (Auswahl aus anderer Tabelle), "Bereitstellung" (JA/Nein).
In dem Optionsfeld "Art" gibt es folgende Wahlmöglichkeiten (Artikel, Gruppe, Vorgang).

Nun soll ich eine Prüfung basteln die in Abhängigkeit des Felds "Bereitstellung" den letzten Eintrag mit Art = Gruppe findet und von dieser Zeile dann einen Wert aus der Tabelle die für das Feld "Nummer" genutzt wird holt.

Wenn "Bereitstellung" = Ja Dann
Durchsuche die übergeordneten Zeilen bis du die nächste mit der (Art = Gruppe) findest und nimm den Wert aus dem Feld "Nummer"
Nun setze dein Feld auf den Werte von Nummer.Feld

Ich hoffe es ist einigermaßen verständlich was ich meine

Danke für eure Hilfe

MfG

G3X
Zuletzt geändert von G3X am 15. November 2017 10:17, insgesamt 1-mal geändert.

Re: Bestimmte Zeile in List ermitteln

9. November 2017 12:29

G3X hat geschrieben:Ich hoffe es ist einigermaßen verständlich was ich meine


also für mich nicht - ich bin aber auch manchmal sehr begriffsstutzig :evil:

IF / CASE / SETRANGE / FINDLAST / FIND('+') kennst du? Soll nicht böse gemeint sein - ich will nur wissen, wo man ansetzen muss.

Re: Bestimmte Zeile in List ermitteln

9. November 2017 13:55

hier mal Beispielhaft. Entscheidend für das Ganze ist die Richtige Sortierung.

Code:
IF Bereitstellung THEN BEGIN
  DeineTabelle.SETRANGE(Art, Gruppe);
  IF DeineTabelle.FINDLAST THEN
    Nummer := DeineTabelle.Nummer
END;

Re: Bestimmte Zeile in List ermitteln

15. November 2017 10:17

Hallo,

danke für eure Hilfe.

Mal wieder eine dumme Frage und eine noch dümmere Beschreibung :-o
Manchmal steht man einfach auf dem Schlauch.

Gelöst habe ich das ganze nun wie folgt:
Ich dreh eine Schleife über alle Zeilen und schreibe mir dabei den wert der letzte Zeile mit der Art = Gruppe in die Variable
Nun hab ich immer den richtigen Wert über meine Variable im Zugriff und kann das Feld dann entsprechend auf den Wert setzen.

[Gelöst]

Re: Bestimmte Zeile in List ermitteln

17. November 2017 22:33

G3X hat geschrieben:
Ich dreh eine Schleife über alle Zeilen
[Gelöst]


1. SETRANGE, SETFILTER = Suchkriterien festlegen
2. IF FINDSET THEN BEGIN REPEAT UNTIL = hier iterierst du, solange die Suchkriterien erfüllt sind
3. Alternativ zu FINDSET gibt es FINDFIRST und FINDLAST - soviel ich weiß, gibt es ein Tabu diese mit einer Schleife zu benützen aus Performancegründen
4. Im Rumpf der Schleife machst du die eigentliche Datenverarbeitung, die so oft ausgeführt wird, wie die Bedingung IF FINDSET gilt. Ein trivialer Rumpf wäre INIT blah INSERT oder blah MODIFY(TRUE) oder ganz böse blah COMMITT;

Ansonsten bei Risiken und Nebenwirkungen lesen Sie bitte www.navision24.de oder wenden Sie sich an Ihren Arzt oder Apotheker ;-)