0

"individuelles Zahlungsziel (Tage)" in Vorlage "Rechnungen" funktioniert bei mir nicht.

Hallo an Alle,

Wenn ich in der Vorlage "Rechnungen" die Auswahl "....anderes" im Feld Zahlungsziel auswähle, dann erscheint das Feld "individuelles Zahlungsziel (Tage)" und eine vorgegebene Zahl 30, jedoch lässt sich die Zahl nicht verändern.

Ich habe mir die Funktionen angeschaut, leider bin ich noch sehr neu bei Ninox und verstehe noch nicht, wie man Formeln schreibt usw.

Mir ist lediglich aufgefallen, dass bei ""individuelles Zahlungsziel (Tage)"" im Feld "Schreibar wenn" folgendes in einem rötlich gefärbten Kästchen steht

not (Y = 3 or Y = 4 or Y = 5 or Y = 6 or Y = 7)

mit dem Hinweis, dass eine Tabellenspalte nicht gefunden wurde.

 

Hat jemand eine Idee oder Lösung?

 

Vielen Dank im Voraus für Eure Hilfe.

Gruß

Kruna

11 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo, entferne die fehlerhafte Zeile einfach komplett aus "Schreibbar wenn", dann lässt sich das Feld ändern.

    • Kruna
    • vor 4 Jahren
    • Gemeldet - anzeigen

    HAllo Copytexter,

    vielen Dank für Deine schnelle Antwort.

    Stimmt, das Feld lässt sich nun ändern, aber die Zahl wird nicht zum Feld "erwarteter Zahlungseingang" addiert bzw. das Datum bleibt gleich.

    Ich habe mir mal die Formel angeschaut, werde daraus aber nicht schlau. Letzendlich funktioniert jeden Auswahl bis auf die letzte.

    Wo könnte der Fehler liegen?

     

    let myDate := if 'Zahlungseingang (erwartet)' then
    'Zahlungseingang (erwartet)'
    else
    switch Zahlungsziel do
    case 1:
    'Datum der Rechnungsstellung' + 7
    case 2:
    'Datum der Rechnungsstellung' + 14
    case 3:
    date(year('Datum der Rechnungsstellung'), month('Datum der Rechnungsstellung') + 1, day('Datum der Rechnungsstellung'))
    case 4:
    date(year('Datum der Rechnungsstellung'), month('Datum der Rechnungsstellung') + 3, day('Datum der Rechnungsstellung'))
    case 5:
    date(year('Datum der Rechnungsstellung') + 1, month('Datum der Rechnungsstellung'), day('Datum der Rechnungsstellung'))
    case 6:
    'Datum der Rechnungsstellung' + 'individuelles Zahlungsziel (Tage)'
    default:
    'Datum der Rechnungsstellung' + 30
    end
    end;
    myDate

     

    Gruß

    Kruna

    • Kruna
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Guten Morgen,

    ich denke/hoffe, dass ich nun eine Lösung gefunden habe. Zumindest funktioniert es jetzt so, wie ich es gerne möchte.

    Nach langen Versuchen, an der Formel Veränderungen vorzunehmen, habe ich den die ersten Zeilen 'einfach' weggelassen und folgenes steht nun da:

     

    switch Zahlungsziel do
    case 1:
    Rechnungsdatum + 7
    case 2:
    Rechnungsdatum + 14
    case 3:
    date(year(Rechnungsdatum), month(Rechnungsdatum) + 1, day(Rechnungsdatum))
    case 4:
    date(year(Rechnungsdatum), month(Rechnungsdatum) + 3, day(Rechnungsdatum))
    case 5:
    date(year(Rechnungsdatum) + 1, month(Rechnungsdatum), day(Rechnungsdatum))
    case 6:
    Rechnungsdatum + 'individuelles Zahlungsziel (Tage)'
    end

    Ich hoffe nur, dass ich durch das Weglassen, nicht irgendein anderes Feld davon betroffen ist und es dann an anderer Stelle irgendwo hakt.

    Bis dahin und Gruß

    Kruna

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Kruna, das Problem scheint folgendes zu sein: Die Vorlage arbeitet mit einem versteckten Datumsfeld namens 'Zahlungseingang erwartet', welches bei Änderung der Auswahl im Feld 'Zahlungsziel' berechnet wird. Für den "case 6" (= "... anderes") heißt das:

    'Datum der Rechnungsstellung' + 'individuelles Zahlungsziel (Tage)'

    Was im Prinzip ja auch stimmen würde. Problem: Das Feld 'individuelles Zahlungsziel (Tage)' hat in dem Moment noch gar keinen Wert, weil es ja auch erst bei Auswahl "... anderes" eingeblendet wird. Gibt man dort dann einen Wert ein, wird er vom Feld 'Zahlungseingang (erwartet)' nicht berücksichtigt, weil das Trigger-Script "Nach Änderung" nur die Standardfälle 30, 14 und 7 Tage abfragt.

    Man könnte diesen Trigger "Nach Änderung" im Feld 'individuelles Zahlungsziel (Tage)' um die Möglichkeit ergänzen, dass keiner der Standardwerte eingegeben wurde und die Berechnung deshalb anhand des eingegebenen Wertes zu erfolgen hat. zum Beispiel mit einem "else" bei der letzten if-Abfrage. Ich markiere die beiden einzufügenden Zeilen mal mit "-->"

    if not 'individuelles Zahlungsziel (Tage)' then
        Zahlungsziel := 3
    else
        if 'individuelles Zahlungsziel (Tage)' = 30 then
            Zahlungsziel := 3;
            'individuelles Zahlungsziel (Tage)' := null
        else
            if 'individuelles Zahlungsziel (Tage)' = 14 then
                Zahlungsziel := 2;
                'individuelles Zahlungsziel (Tage)' := null
            else
                if 'individuelles Zahlungsziel (Tage)' = 7 then
                    Zahlungsziel := 1;
                    'individuelles Zahlungsziel (Tage)' := null
    -->       else
    -->           'Zahlungseingang (erwartet)' := 'Datum der Rechnungsstellung' + 'individuelles Zahlungsziel (Tage)'
                end
            end
        end
    end

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hatte sich überschnitten. Teste es halt (auch den Wert für 'individuelles Zahlungsziel (Tage)' mal ändern), und wenn es mit deiner Variante funktioniert, dann hast du dein Ziel ja erreicht.

    • Kruna
    • vor 4 Jahren
    • Gemeldet - anzeigen

    HAllo Copytexter,

     

    vielen, vielen, tausend Dank! Ich habe die beiden ZEilen eingefügt und siehe da, es hat einwandfrei geklappt!

    Ich werde mich daher eher an Deine Lösung halten, da wie eben erwähnt, ich nicht weiß was für 'Folgen' das an anderer Stelle haben kann, wenn man 'einfach' irgendetwas an der Formel weglässt.

     

    Ich habe da noch ein anderes Problem mit styled(Text), das bekomme ich einfach nicht hin! Ich habe mehere Beispiele aus anderen Datenbanken versucht, aber leider nicht hinbekommen.

    Es wäre toll, wenn as Feld "erwarteter Zahlungseingang" grün ist und, wenn das Datum überschritten ist, das Feld rot wird.

    Wie erreich ich das denn?

    Gruß

    Kruna

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Dazu könnte man die letzte Zeile, mit der die Variabe "myDate" angezeigt wird, einfach wie folgt ersetzen:

     

    [...]
    styled(text(myDate), if myDate <= today() then "Red" else "Green" end)

    • Kruna
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter,

    Klasse, genau danach habe ich dei ganze Zeit gesucht!!!! Das hat prima funktioniert.

    Nochmals tausend Dank für die schnelle Hilfe!

    Gruß

    Kruna

    • Kruna
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo,

    ich habe den Vorgang nicht ganz zuende gedacht.

    Nun ist der Kunde im 'Zahlungsverzug'. Ist es denn auch möglich, dass das Feld wieder grün wird, wenn der Kunde bezahlt hat? Ich meine, wenn ich den Status auf 'bezahlt' setze, dann bleibt das Feld rot.

     

    Bildschirmfoto 2020-03-02 um 07.47.09

     

    Vielen Dank!

    Gruß

    Kruna

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Moin, in der einfachsten Form könnte man den Status einfach als Bedingung hinzufügen:

    let myColor := if text(Status) != "bezahlt" and myDate <= today() then "Red" else green" end;
    styled(text(myDate), myColor)

    Möglicherweise möchte man aber, dass das Feld 'fällig am' nach Zahlung gar keine Farbe hat, damit "Grün" nur die offenen innerhalb des Zahlungsziels zeigt. Dann könnte man es bspw. auch so machen:

    let myColor := if text(Status) = "bezahlt" then
        "White"
    else
        if myDate <= today then
            "Red"
        else
            "Green"
        end
    end;
    styled(text(myDate), myColor)

    Wobei man statt text(Status) != "bezahlt" auch auf die numerische ID abfragen könnte, aber die wusste ich jetzt natürlich nicht, deshalb bin ich mit text() lieber auf Nummer Sicher gegangen.

    • Kruna
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Moin,

    stimmt, daran habe ich garnicht gedacht. Eigentlich dienen die Farben dazu, übersichtlich sehen zu können, welche Vorgänge/Posten noch 'offen' bzw. 'in Bearbeitung! sind.

    Wenn die RG bezahlt ist, macht es kein Sinn, wenn sie weiterhin grün bleibt! Daher macht weiß oder eine andere Farbe wirklich eher Sinn. Vielen Dank für diesen Hinweis!

    ID=3, aber auch so hat es prima geklappt, nur das bei <=today die Klammer gefehlt hat, bzw. erst dann akzeptiert wurde, als ich sie hinzugefügt habe.

    Tausen, tausend DAnk!!!!

     

    Gruß

    Kruna