0

Array einlesen und auslesen

Hallo liebes Forum, ich komme einfach nicht weiter! Ich verstehe einfach nicht wenn man mit select die Tabelle Mitarbeiter begrenzt und dann alles in einer Array einliest z.B. Name, Personalnummer ... Nun möchte ich wieder in einer nicht verknüften Tabelle Arbeitszeit für jeden Mitarbeiter in Arbeitszeit einen neuen DS erstellen und die Array auslesen. Die aktiven Mitarbeiter sind mit einem Ja/Nein Feld als Aktive markiert! Der Buttom ist in der Tabelle UmsatzTag und die  Tabelle Arbeitszeit ist eine Untertabelle.

let myID := this;
for i in select Mitarbeiter where Aktiv = "Ja" do
let aDS_Name := (i.Name);
let new := (create Arbeitszeit);
new.(UmsatzTag := myID)
new.(Name := aDS_Name)
end

 

Danke für Eure Hilfe 

7 Antworten

null
    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Wenn die Tabelle Arbeitszeit eine Untertabelle von der Tabelle UmsatzTag ist dann kann die Formel etwa so aussehen:

    ---

    let myID := this;
    for i in select Mitarbeiter [ Aktiv = true] do
    let new := create Arbeitszeit;
    new.UmsatzTag := myID
    new.Name := i.Name
    end

    ---

    Leo

    • Michael_Reichardt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke Leo, das funktioniert perfekt! Ich verstehe gar nicht warum ich immer mit where und dem Wert "Ja" herum exerimentiert habe. D A N K E

    • Michael_Reichardt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo nochmal, ich habe bei den Mitarbeiten noch die Arbeitstage hinterlegt und wollte den entsprechenden Mitarbeiter jetzt nur einfügen wenn er an diesem Wochentag auch arbeitet. Hab das aber sowohl als seleckt Anweisung als auch if/end Anweisung wie mein Beispiel zeigt nich hinbekommen! Es passiert einfach garnicht ? Kann nochmal jemand mir Starthilfe geben. Lieben Dank

     

    let myID := this;
    let myWT := text(Wochentag);
    for i in (select Mitarbeiter)[Aktiv = true] do
    if i.Montag = myWT = true or i.Dienstag = myWT = true or i.Mitwoch = myWT = true or i.Donnerstag = myWT = true or i.Freitag = myWT = true or i.Samstag = myWT = true or i.Sonntag = myWT = true then
    let var_Name := i.Name;
    let new := (create Arbeitszeit);
    new.(UmsatzTag := myID);
    new.(Name := i.Name + " " + i.Vorname);
    new.(PNr := i.PNr)
    end
    end

    • Michael_Reichardt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leo

    kannst du dir das nochmal anschauen.

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    i.Montag, i.Dienstag usw. - sind es Ja/Naein Felder?

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

     

    ein Vergleich in der Form

     

    if i.Montag = myWT = true

     

    wird wohl schon nicht funktionieren!?

     

    lg, Torsten

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Also, wenn es ja/nein Felder sind, dann kann man es so schreiben:

    ---

    let myID := this;
    let myWT := text(Wochentag);
    for i in (select Mitarbeiter)[Aktiv = true] do

    let myText:=if i.Montag then "Montag" end +if  i.Dienstag then "Dienstag" end+ if  i.Mitwoch then "Mittwoch" end+if i.Donnerstag then "Donnerstag" end+if  i.Freitag then "Freitag" end+if i.Samstag then "Samstag" end + if  i.Sonntag  then "Sonntag" end;

    if contains(myText,myWT) then

    let new := (create Arbeitszeit);
    new.(UmsatzTag := myID);
    new.(Name := i.Name + " " + i.Vorname);
    new.(PNr := i.PNr)
    end
    end

    ---

    Leo

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 7Antworten
  • 3069Ansichten