0

Datumabfrage mit Monat und Jahr beim Ausdruck

Habe folgendes Druckformular erstellt und es wird nach "Datum suche" (Datumsfeld) gesucht welches auch perfekt passt.

Wollte nun aber das Datumfeld umbauen in 2 Dropdownfelder (Jahr und Monat) und danach suchen. Verstehe nur nicht wie ich dies in meinem Skript einbaue das es korrekt funktioniert. Vielleicht ist hier ein Profi der mir ein wenig unter die Arme greift und mir ein paar Tipps geben kann. vielen Dank mfg Claus

 

do as server
let POS := (select Spesen);
let PRT := (select 'Drucken Spesen');
for i in unique(POS.Datum) do
if cnt(PRT['Datum suche' = i]) = 1 then
let my := first(PRT['Datum suche' = i]);
for k in POS[Datum = i] do
k.(Druckposition := my)
end
end
end
end

15 Antworten

null
    • Claus.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ein Stück bin ich weitergekommen, Habe nun Monat_ als Number suchen gelassen welches auch funktioniert. Mein letztes Problem ist nun wie kann ich Monat_ und Jahr_ kombiniert suchen lassen? Habe 2 Textfelder (Monat_ und Jahr_ beide mit den entsprechenden Werten) Bin leider zu schlecht um diese 2 Bedingungen zu kombinieren in der Suche wer kann mir da vielleicht bitte Helfen. Das wäre nett. Danke lg Claus

    do as server
    let POS := (select Spesen);
    let PRT := (select 'Drucken Spesen');
    for i in unique(POS.month(Datum)) do
    if cnt(PRT[text(Monat_) = i]) = 1 then
    let my := first(PRT[Monat_ = i]);
    for k in POS[month(Datum) = i] do
    k.(Druckposition := my)
    end
    end
    end
    end

    • Claus.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    das ist der 2 Teil kann man das mit dem oberen Teil kombinieren (hätte gerne nur eine Abfrage daraus gemacht mit dem Teil oben und dem unteren Teil) Verbesserungsvorschläge werden gerne angenommen. Vielen Dank

    do as server
    let POS := (select Spesen);
    let PRT := (select 'Drucken Spesen');
    for i in unique(POS.year(Datum)) do
    if cnt(PRT[text(Jahr_) = i]) = 1 then
    let my := first(PRT[Jahr_ = i]);
    for k in POS[year(Datum) = i] do
    k.(Druckposition := my)
    end
    end
    end
    end

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Claus,

    mir ist nicht ganz klar, wuzu die zwei Tabellen gut sein sollten. Wenn das ganze aber funktioniert und du nur das Jahr einbauen möchtest:

    ---

    do as server
    let POS := (select Spesen);
    let PRT := (select 'Drucken Spesen');
    for i in unique(POS.format(Datum,"MM.YYYY")) do
    if cnt(PRT[(Monat_+"."+Jahr_) = i ]) = 1 then
    let my := first(PRT[(Monat_+"."+Jahr_) = i ]);
    for k in POS[format(Datum,"MM.YYYY") = i] do
    k.(Druckposition := my)
    end
    end
    end
    end

    ---

     

    Leo

    • Claus.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich habe zwei Dropdownfelder wo ich das Jahr und den Monat abfrage (schreibe mir den Wert in das Textfeld Monat_ und Jahr_ ) eigentlich bräuchte es diese Felder nicht nur konnte ich es nicht direkt mit den Dropdownfelder machen (leider nicht Fähig und habe es über den Umweg gemacht) Wenn du Leo vielleicht mir das schreiben könntest mit der Funktion als Dropdown(ich schreibe beim Feld Jahr hinunter text(Jahr_) und beim Monatsfeld number(Monat_) hinunter (dort gibt es das Problem das für Juni nur die Zahl 6 geschrieben wird und nicht 06 daran muss ich noch werkeln.

    Ansonsten würde es wunderbar klappen.

    Vielen Dank Leo

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Also, du bist in einem Formular der Tabelle "Drucken Spesen". Dort hast du ein Auswahlfeld für Monat und ein Auswahlfeln für Jahr. Die Tabelle "Spesen" beinhaltet Datensätze mit Datumsfelder  und die Datenfelder, wo Monats-/ und Jahresangaben übereinstimmen, sollten mit dem deinem aktuellen Datensatz verknüpft werden. Mein Vorschlag:

    1. Auswahfeld Jahr mit Zahlen (2020,2021 usw)

    2. Auswahlfel  Monat mit Monatsnamen (Januar, Februar usw) die IDs MÜSSEN den Monatsnummern entsprechen (1 für Januar, 2 für Februar usw.)

    3. Dei Formel:

    ---

    let me:=this;
    if me.Monat and me.Jahr then
    select 'Spesen'[Druckposition=me].(Druckposition:=0);
    select 'Spesen'[year(Datum)=number(text(me.Jahr) and month(Datum)=number(me.Monat)].(Druckposition:=me)
    end

     

    ---

    Leo

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Klammern vergessen

    let me:=this;
    if me.Monat and me.Jahr then
    select 'Spesen'[Druckposition=me].(Druckposition:=0);
    select 'Spesen'[year(Datum)=number(text(me.Jahr)) and month(Datum)=number(me.Monat)].(Druckposition:=me)
    end

    • Claus.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Das klappt super Danke Leo

     

    Hätte da noch in kleines Problem. Ich sehe die Datensätze beim Ausdruck sind diese vorhanden auch beim Email Versand klappt alles. Wie kann ich aber von den verschiedenen Datensätze auch die Anhänge per Email mitsenden. Habe einen Buotton gemacht mit folgenden Code. Welcher klappt auch mit dem aktuellen Daten aber halt ohne der Untertabelle die Anhänge sind nicht dabei. Wie kann ich das bewerkstelligen oder gibt es ein Beispiel in Webinar? Dann schaue ich es mir an. Vielen Danke für deine Bemühungen.

    let myAnswer := dialog("Senden Email Spesendruck" + " ", " ", ["Ja", "Nein"]);
    if myAnswer = "Ja" then
    let myLayout := "Spesendruck";
    let myFilename := Monat_ + "_" + Jahr_ + "_" + "Spesendruck" + ".pdf";
    let myTempFile := printAndSaveRecord(this, myLayout);
    let DateiAnhang := importFile(this, myTempFile, myFilename);
    sendEmail({
    from: userEmail(),
    to: 'E-Mail',
    subject: "Spesenabrechnung" + Monat_ + " - " + Jahr_,
    Mehrfachauswahl: " + ",
    text: "Infos schicken,
    " + "Spesendruck" + ".
    ""Das sind die Spesen vom ",
    Monat_: " + " + Jahr_ + ".",
    _: " .
    vom xxx",
    html: "<p>Schicke meine Spesen vom </strong> " + Monat_ + " " + Jahr_ + " : &nbsp;

    <p><strong>Jahr:</strong> " + Jahr_ + "&nbsp;
    <p><strong>Monat: </strong> " + Monat_ + "&nbsp;
    <p><strong>Parkspesen: </strong> " + 'Parken Spesen Monat' + "&nbsp;
    <p><strong>Essenspesen: </strong> " + 'Essen Spesen Monat' + "&nbsp;
    <p><strong>Fahrspesen: </strong> " + 'Fahrt Spesen Monat' + "&nbsp;
    <p><strong>Dokumente als Anhang mitgeschickt: </strong> " + DateiAnhang + "&nbsp;

     

    </p>" + "",
    attachments: DateiAnhang
    });
    'Verschickt am' := today() + " - " + time()
    else
    alert("Infos nicht geschickt")
    end

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Sind die Anhänge vorhabnden oder müssen noch generiert werden?

    • Claus.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich bekomme die Daten über einen Verknüpfung (Spesen) das sind die Datensätze (welche auch Anhänge haben Tankbeleg zb) Wenn ich mir nur mit den Buotton wie oben ein Email generieren lasse scheint der Anhang von der aktuellen Seite auf mit den Daten der Verknüpfung "Spesen" ohne Anhäng. Die Anhänge in der Tabelle Spesen sind schon generiert. Wie komme ich da hin kenne mich da leider gar nicht aus und finde auch nix im Forum vergleichbares.

    Sorry Leo

    Vielen dank für deine Unterstützung.

    Benutze dein Skript um die Daten zusammen zuführen welches perfekt funktoniert.

    let me:=this;
    if me.Monat and me.Jahr then
    select 'Spesen'[Druckposition=me].(Druckposition:=0);
    select 'Spesen'[year(Datum)=number(text(me.Jahr)) and month(Datum)=number(me.Monat)].(Druckposition:=me)
    end

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Um alle Anhänge aus der  Untertabelle in Email rein zu bekommen:

    ---

    let myAtt := files(first(Untertabelle));
    for i in Untertabelle do
    myAtt := unique(myAtt, files(i))
    end;

    ---

    Entsprechend bei sendEmail 

    ---

    ......

    attachments: myAtt

    .......

    ---

    Leo

    • Claus.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Sorry das ich es nochmal nach oben bringe Leo vielleicht hast du da einen Tip für mich Danke

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Claus,

    Ich habe es doch geschrieben, für Deine untertabelle Spesen wäre die Formel:

    let myAtt := files(first(Spesen));
    for i in Spesen do
    myAtt := unique(myAtt, files(i))
    end;

    • Claus.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hatte den vorherigen Post nicht geshen. Tut mir leid. Es hat soweit geklappt mit den Anhängen welche ich folgend programmiert habe. Die Anhänge aus der Untertabelle sind angehängt komme nur nicht drauf wie ich meinen Anhang aus der aktuellen Tabelle dazu bekomme. Habe es so versucht "attachments: myAtt + DateiAnhang" oder "attachments: myAtt and DateiAnhang"  irgendwie stehe ich da auf dem Schlauch oder bin einfach nicht besser warscheinlich letzteres. Vielen dank für Deine Hilfe. (ist ein Buotton mit den Qellcode)

     

    let myAtt := files(first(Spesen));
    for i in Spesen do
    myAtt := unique(myAtt, files(i))
    end;
    let myAnswer := dialog("Senden Email Spesendruck" + " ", " ", ["Ja", "Nein"]);
    if myAnswer = "Ja" then
    let myLayout := "Spesendruck";
    let myFilename := Jahr + "_" + Monat + "_" + "Spesendruck" + ".pdf";
    let myTempFile := printAndSaveRecord(this, myLayout);
    let DateiAnhang := importFile(this, myTempFile, myFilename);
    sendEmail({
    from: userEmail(),
    to: 'E-Mail',
    subject: "Spesenabrechnung" + Jahr + " - " + Monat,
    Mehrfachauswahl: " + ",
    text: "Infos schicken,
    " + "Spesendruck" + ".
    ""Das sind die Spesen vom ",
    Monat_: " + " + Monat + ".",
    _: " .
    vom ASGB - Claus Unterweger gesendet",
    html: "<p>Schicke meine Spesen vom </strong> " + Jahr + " " + Monat + " : &nbsp;

    <p><strong>Jahr:</strong> " + Jahr + "&nbsp;
    <p><strong>Monat: </strong> " + Monat + "&nbsp;
    <p><strong>Parkspesen: </strong> " + 'Parken Spesen Monat' + "&nbsp;
    <p><strong>Essenspesen: </strong> " + 'Essen Spesen Monat' + "&nbsp;
    <p><strong>Fahrspesen: </strong> " + 'Fahrt Spesen Monat' + "&nbsp;
    <p><strong>Dokumente als Anhang mitgeschickt: </strong> " + DateiAnhang + "&nbsp;
    <p>Vielen Dank und Grüße Claus &nbsp;

     


    </p>" + "",

    attachments: myAtt + DateiAnhang ???????????

    });
    'Verschickt am' := today() + " - " + time()
    else
    alert("Infos nicht geschickt")
    end

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    attachments: unique(myAtt,files(this))

    • Claus.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Vielen dank das ist die Lösung meines Problems! Wie immer Toplösung Leo !!