0

Ausnahmen bei Arrays

Hallo,

ich habe ein Problem mit Arrays und Ausnahmen:

Ich habe mir eine Datenbank für meine Bienenvölker erstellt. In diese Datenbank werden Bearbeitungen und Beobachtungen zu den einzelnen Völkern eingetragen. Es gibt aber auch wiederkehrende Arbeiten wie das Füttern und das Behandeln der Völker. Diese Arbeiten sollen nicht einzeln über die Völker erfasst werden, sondern über den ganzen Stand. Diese Funktion ist bereits implementiert. Jedoch gibt es von jeder Regel eine Aussnahme, einzelne Völker brauchen kein Futter mehr etc.. Um diese Sonderfälle abzufangen würde ich gerne die Beutennummern der Völker angeben die ausgenommen werden diese Nummern werden dann vom Script nicht mehr beachtet. Natürlich habe ich mir schon eigene Gedanken gemacht aber diese führen leider noch nicht zum Ziel:

 

let ABeutennummern := split(Beutennummern, ",");
let AAusnahmen := split(Ausnahmen, ",");
let controler := 0;
let counter := 0;
if 'Anwenden auf' = 1 then
if Standort = null or 'Datum Fütterung' = null or 'Art Fütterung' = null or Futter = null or Mischung = null then
alert("Es wurden nicht alle Parameter angegeben!");
ABeutennummern := null
else
for v in select Volk do
if last(v.Ertrag.Wanderung.Standort) = Stand then
for a in AAusnahmen do
if number(a) = number(v.'Nr. Beute') then
controler = 1;
counter := counter + 1
end
end;
if controler = 0 then
Beutennummern := Beutennummern + v.'Nr. Beute' + ","
end;
controler = 0
end
end;
ABeutennummern := split(Beutennummern, ",");
Beutennummern := null
end;
alert(ABeutennummern + " " + counter)
else
if Beutennummern = null or 'Datum Fütterung' = null or 'Art Fütterung' = null or Futter = null or Mischung = null then
alert("Es wurden nicht alle Parameter angegeben!");
ABeutennummern := null
end
end;

Zur Erleuterung:

Ich bilde ein Array mit allen Beutennummern am ausgewählten Stand. Die Beutenummern welche die Ausnahme bilden sind in einem zweiten Array gespeichert. Jede Beutenummer am Stand wird mit dem Array verglichen und soll bei Gleichheit nicht in das neue aufgenommen werden.

Vielleicht kan mir einer von Euch weiterhelfen.

Vielen Dank und Gruß

Micha

2 Antworten

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Micha,

    Ist es nicht einfacher zuerst aus Beutenummern und Ausnamen einen Array der zugelassenen Beutenummern zu erstellen?

    ---

    let Zugelassen:=
    for i in split(Beutennummern, ",") do
    let myFlag:=false;
    for j in split(Ausnahmen, ",") do
    if j=i then myFlag:=true
    end;
    if myFlag=false then i
    end

    ---

    Dann ist Zugelassen ein Array, bestehend nur aus zugeleassenen Nummern.

    Leo

    • Michael_Hansen
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

    genau danach habe ich gesucht.

    Vielen Dank
    Micha