0

Datensatz in for Schleife verknüpfen

Liebe Ninox Gemeinde,

ich wende mich wahrscheinlich mit einem sehr simplen Anfängerproblem an euch.

 

Zum Aufbau der Datenbank:

Es gibt eine Tabelle Auftragserfassung und eine Tabelle Rechnungen. Beim drücken eines Buttons sollen in der Tabelle Rechnungen alle Aufträge abgerechnet/erzeugt werden die eine Bedingung erfüllen. Das klappt soweit, jedoch möchte ich diverse Daten (Kunde,Leitungspositionen etc.) die im Auftrag vorhanden sind auch mit der Rechnung über die Auftragsnummer verknüpfen.

Meine Formel des Button bisher:

let result1 := dialog("Rechnungslauf starten?", "Sind Sie sicher das Sie den Rechnungslauf starten wollen?", ["Ja", "Nein"]);
if result1 = "Ja" then
for i in select Auftragserfassung where 'Abzurechnen bis Tag' != null do
let me := this;
let cre := (create Rechnungen);
cre.('RG Abzurechnen bis' := i.'Abzurechnen bis Tag');
cre.(Auftragsnummer := i.Auftragsnummer)
end
else
alert("Rechnungslauf abgebrochen")
end

 

Ich habe verstanden, dass ich irgendwie über den Befehl this den aktuellen Datensatz in eine Variable schreiben kann. Ich bekomme aber die Verknüpfung in der Rechnungstabelle nicht hin.

 

Muss das Tabellenfeld in der Tabelle Rechnungen schon ein verknüpftes Funktionsfeld mit der Tabelle Aufträge sein oder ein einfaches Textfeld in das die Auftragsnummer übergeben wird?

Mit der Formel oben wird die Auftragsnummer übergeben aber nicht verknüpft.

 

Ich bin für jede Hilfe dankbar.

4 Antworten

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

    Moin,

     

    Du benötigst eine Verknüpfung von Rechnungen zu Aufträge. Davon ausgehend, dass Dein Button aus Aufträge heraus ausgeführt wird:

     

    let my := this;
    let result1 := dialog("Rechnungslauf starten?", "Sind Sie sicher das Sie den Rechnungslauf starten wollen?", ["Ja", "Nein"]);
    if result1 = "Ja" then
    for i in select Auftragserfassung where 'Abzurechnen bis Tag' != null do
    let me := this;
    let cre := (create Rechnungen);
    cre.('RG Abzurechnen bis' := i.'Abzurechnen bis Tag');
    cre.(Auftragsnummer := i.Auftragsnummer);
    cre.('Aufträge' := my)
    end
    else
    alert("Rechnungslauf abgebrochen")
    end

     

    lg, Torsten

    • CENTaros Finanzen GmbH
    • Robby_Kurze
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hat geklappt.

    Vielen Dank für die Hilfe.

    Wenn ich das richtig verstehe stelle ich mit cre.('Aufträge' := my) eine Verknüpfung zum gesamten Datensatz her und nicht nur zu einem einzelnen Feld.

    Aus Neugier würde mich interessieren ob es auch möglich ist den Button in einer unabhängigen Tabelle zu erstellen? Wäre z.B. interessant wenn man ein Dashboard erstellt.

     

    Bitte nur antworten wenn das nicht zu aufwendig ist.

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

    natürlich kannst Du auch zum Datensatz einer unabhängigen Tabelle verknüpfen, Du brauchst eben nur Kriterien, mit denen das Script diesen eindeutig findet. Hast Du in Deinem Dashboard ein Textfeld mit z.B. einer Auftragsnummer, könntest Du mit

     

    let me := this;
    let my := first(select 'Auftrage' where Auftragsnummer = me.Auftragsnummer)

     

    auf den entsprechenden Auftrag zeigen.

    • CENTaros Finanzen GmbH
    • Robby_Kurze
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Danke Torsten für die schnelle Antwort. Ich werde es bei Gelegenheit testen.