0

Automatisches setzen eines dynamischen Auswahlfeldes

Ich habe eine Tabelle Quittungen mit einem dynamischen Auswahlfeld auf die Währungs-Tabelle aus der dann über die entsprechende Währung der Umrechnungsfaktor für den Quittungs-Betrag in Euro gezogen wird. Das funktioniert alles bestens.

In dem Bild 1 sieht man, dass in dem Fall der Rumänische Leu gesetzt ist mit dem Faktor 0,2.

Aus der Quittung wird dann, nach Prüfung der Quittung im Büro, automatisch der Beleg für die Buchhaltung erzeugt. Siehe nachstehender Code. Die Frage bezieht sich auf die beiden in Fett gedruckten Zeilen:

if 'Buchungsbeleg ist erzeugt' = 1 then
    alert("Die Buchung wurde schon erzeugt")
else
    let Me := this.Nr;
    let VProjektNr := number(this.Projektzuweisung.PNr);
    let VMitarbeiterNr := number(this.Projektzuweisung.MNr);
    let VPartnerNr := record(Projekte,VProjektNr).Partner;
    let VDatum := this.Datum;
    let VQNr := number('Quittungs-Typ');
    let VBelegtext := record('Quittungs-Typ',VQNr).Deutsch + " - " + Bemerkung;

    let VWaehrung := this.'Währung';

    let VFaktor := this.Umrechnungsfaktor;
    let VBetragQuittung := 'Betrag - Quittung';
    let VBetrag := 'Betrag in €';
    let VKostenkonto := this.Kostenkonto;
    let VJahr := number(year(this.Datum));
    let VKontoSoll := first((select Konten where Konto = VKostenkonto and Jahr = VJahr).Nr);
    let VKontoHaben := first((select Konten where Konto = "1200" and Jahr = VJahr).Nr);
    do as server
        let NewRecord := (create Belege);
        NewRecord.('Unternehmen auswählen' := 1);
        NewRecord.('Mitarbeiter/Lieferant' := VMitarbeiterNr);
        NewRecord.(Datum := VDatum);
        NewRecord.(Partner := VPartnerNr);
        NewRecord.(Projekt := VProjektNr);
        NewRecord.(Status := 2);
        NewRecord.(Text := VBelegtext);

        NewRecord.('Währung' := VWaehrung);

        NewRecord.(Quittungsbetrag := VBetragQuittung);
        NewRecord.(Umrechnungsfaktor := VFaktor);
        NewRecord.(Betrag := VBetrag);
        NewRecord.('Konto Soll' := VKontoSoll);
        NewRecord.('Konto Haben' := VKontoHaben);
        NewRecord.(Quittung := Me)
    end;
    Freigegeben := 1;
    'Buchungsbeleg ist erzeugt' := 1
end

Nach dem automatischen Erzeugen des Belegs sind dort alle Werte richtig übernommen, mit einer Ausnahme. Im dynamischen Auswahlfeld "Währung" des Belegs wird EURO als Währung angezeigt. Dies ist der Datensatz mit Nr = 1 in der Währungstabelle. Ich habe schon mit einem alert(VWaehrung) getestet, dass der richtige Wert aus der Quittung in der Variablen ist.

Selbst wenn ich NewRecord.('Währung' := VWaehrung); manuell in NewRecord.('Währung' := 2); setze, das ist der Nr Wert, wird weiter der EURO im neu erstellten Beleg angezeigt.

Hat jemand eine Idee, was ich hier ändern kann, damit es funktioniert???

2 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 2 Wochen
    • Gemeldet - anzeigen

    Hallo Bernd, versuch es mal mit number():

    let VWaehrung := this.number('Währung');
      • Inhaber / Geschäftsführer
      • Bernd_Rutzel.1
      • vor 13 Tagen
      • Gemeldet - anzeigen

       Danke für den Tipp. Das Problem war allerdings ein anderes. Ich hatte beim Anlegen eines neuen Datensatzes den Default auf EURO gesetzt.

      Interessanterweise hat dieser Trigger zu dem Problem geführt. Ich war davon ausgegangen, dass mit (create Belege) erstmal auf EURO gesetzt wird und dann über das Script ggfs. die andere Währung diesen Wert wieder überschreibt. Macht das System aber leider nicht.

Content aside

  • vor 13 TagenZuletzt aktiv
  • 2Antworten
  • 59Ansichten
  • 2 Folge bereits