0

Felder in eine Liste übertragen

Hallo!

In einer Tabelle "Angebot" habe ich für die Kalkulation die Felder Auflage 1, Auflage 2... Auflage 4. Diese sind Zahlenfelder. Danach habe ich die Funktionsfelder VK-Preis Euro 1; VK_Preis Euro 2... VK-Preis Euro 4. Ich würde gerne die Werte dieser Felder in gleichnamige Felder  der Untertabelle "Preisliste ANG" übertragen, und zwar so, das sich pro Datensatz in dieser Tabelle jeweils die Kombination aus Auflage 1 und VK-Preis Euro 1 etc befindet. Diese Übertragung in die Untertabelle "Preisliste ANG" sollte nach Abschluss der Kalkulation per Befehlsschaltfläche initiiert werden, und dies auch nur dann, wenn die Auflage ungleich Null ist. Es tut mir leid, ich scheitere schon an der Aufgabe, ein einzelnes Feld in eine Untertabelle bedingungslos zu übertragen, daher bitte ich wieder einmal um Eure Hilfe!

Vielen Dank an alle, die sich meines Problems annehmen!

Grüße

Heino

15 Antworten

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Heino:

    ---

    let me:=this;
    let myAUFL:=['Auflage 1','Auflage 2','Auflage 3','Auflage 4'];
    let myPR:=['VK-Preis Euro 1','VK-Preis Euro 2',VK-Preis Euro 3,VK-Preis Euro 4];
    for i in range(4) do
    if item(myAUFL,i)!=0 then 
    let new:=create 'Preisliste ANG';
    new.(Angebot:=me;
    Auflage:=item(myAUFL,i);
    'VK-Preis Euro':=item(myPR,i))
    end
    end

    --

    Leo

    • Heino
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, herzlichen Dank für Deine Hilfe. Leider funkioniert es an einer Stelle nicht:

    let me:=this;
    let myAUFL:=['Auflage 1','Auflage 2','Auflage 3','Auflage 4'];
    let myPR:=['VK-Preis Euro 1','VK-Preis Euro 2','VK-Preis Euro 3','VK-Preis Euro 4'];
    for i in range(4) do
    if item(myAUFL,i)!=0 then
    let new:=create 'Preisliste ANG';
    new.(Angebot:=me;
    Auflage:=item(myAUFL,i);
    'VK-Preis Euro':=item(myPR,i))
    end
    end

    Hier erscheint die Meldung: "Eine Tabelle wurde nicht gefunden: Preisliste ANG in Zeile 6, Spalte 33"

    Diese Meldung verstehe ich nicht, denn die Preisliste ANG existiert als Tabelle, ich habe auch die Schreibweise noch einmal überprüft. Wo liegt da der Fehler?

    Heino

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Heino,

    kann es sein, dass du den Namen der Verknüpfung zur Untertabelle im Formular geändert hast? Geh doch auf dein Datenmodel und schaue dort wie diese Untertabelle wirklich heißt

    Leo

    • Heino
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, vielen Dank! Hast natürlich recht, im Datenmodell konnte ich es dann auch erkennen, der Name war noch auf "Tabelle 1"!

    Einen schönen Sonntag und viele Grüße

    Heino

    • Heino
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, Hallo zusammen,

    ich habe den Code, den Du mir weiter oben genannt hast, erweitert. Es sollen zusätzlich die Zielfelder "Preis A" und "Preis B" befüllt werden. Dazu habe ich Folgendes versucht:

    let me := this;
    let myAUFL := ['Auflage 1', 'Auflage 2', 'Auflage 3', 'Auflage 4'];
    let myPR := ['Vk-Preis Euro 1', 'VK-Preis Euro 2', 'VK-Preis Euro 3', 'VK-Preis Euro 4'];
    let myPR1:= ['100er Preis 1', '100er Preis 2', '100er Preis 3', '100er Preis 4'];
    let myPR2:= ['1000er Preis 1', '1000er Preis 2', '1000er Preis 3', '1000er Preis 4'];
    for i in range(4) do
    if item(myAUFL, i) != 0 then
    let new := (create 'Preisliste ANG');
    new.(Angebot := me;
    Auflage := item(myAUFL, i);
    Preis := item(myPR, i); 
    Preis A:= item(myPR1, i);
    Preis B:= item(myPR2, i))
    end
    end

    Leider wird mir dazu die folgende Fehlermeldung angezeigt:

    Symbol erwartet: ")" in Zeile 12 Spalte 7

    Diese Meldung verstehe ich nicht, ich wüsste nicht, wo ich dort eine Klammer einfügen sollte. Für Hilfe wäre ich wie immer sehr verbunden!

    Heino

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

    Hallo Heino,

     

    auf den ersten Blick fällt mir nur auf, dass du die Feldbezeichnungen 'Preis A' und 'Preis B' im Code mit einfachen Anführungszeichen ausführen solltest...

     

    lg, Torsten

    • Heino
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten,

    aber die Zielfelder Auflage und Preis stehen doch auch ohne (einfache) Anführungszeichen, und vor der Erweiterung um Preis A und Preis B hat der Code funktioniert. Nur jetzt erwartet er eine rechte Klammer an einer für meine Begriffe unlogischen Stelle...

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Heino,

    Die Felder Preis A und Pres B enthalten je 2 Wörter. Sobald ein Feldname ein Leer bzw sonderzeichen enthält muss derFeldname mit einfachen Anführungszeichen eingegrenzt sein. Siehe auch die Zeilen mit let myAufl.

     

    ---

    let me := this;
    let myAUFL := ['Auflage 1', 'Auflage 2', 'Auflage 3', 'Auflage 4'];
    let myPR := ['Vk-Preis Euro 1', 'VK-Preis Euro 2', 'VK-Preis Euro 3', 'VK-Preis Euro 4'];
    let myPR1:= ['100er Preis 1', '100er Preis 2', '100er Preis 3', '100er Preis 4'];
    let myPR2:= ['1000er Preis 1', '1000er Preis 2', '1000er Preis 3', '1000er Preis 4'];
    for i in range(4) do
    if item(myAUFL, i) != 0 then
    let new := (create 'Preisliste ANG');
    new.(Angebot := me;
    Auflage := item(myAUFL, i);
    Preis := item(myPR, i); 
    'Preis A':= item(myPR1, i);
    'Preis B':= item(myPR2, i))
    end
    end

    ---

    Leo

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

    Torsten hat völlig recht. Tabellen- und Feldnamen, die Sonderzeichen enthalten (alle außer Buchstaben, Ziffern und Unterstrich), sind immer in einfache Anführungszeichen zu setzen, weil Ninox sonst nicht weiß, wo der Name endet. Und dann kann es zu solchen Fehlermeldungen kommen, die auf den ersten Blick keinen Sinn ergeben.

    'Auflage' und 'Preis' enthalten keinen Sonderzeichen und benötigen deshalb auch keine Anführungszeichen.

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

    Ich brauche morgens einfach immer zu lange ... (Mittags auch. Und abends.)

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

    Benenn' Dich doch einfach um - "Turbotexter" z.B. ;-)

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

    Ja, spotte ruhig ... Auch das gibt meinem Dasein einen Sinn. 😜

    • Tacho
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Was nützen 1000 PS wenn kein Drehmoment vorhanden ist. Bleib also bitte so wie Du bist, Copytexter! :-)

    • hlauer
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo zusammmen,

    herzlichen Dank für die Hilfe, wieder etwas gelernt! 

    Torsten, wollte nicht Deine Kompetenz anzweifeln, bitte nicht missverstehen. Dein Hinweis war schließlich zielführend. 

    Ich hätte nach dem bewährten Muster - erst nachdenken/ausprobieren, dann schreiben - vorgehen sollen;-)

    Heino

    • hlauer
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Und übrigens: die Reaktionszeiten in diesem Forum finde ich sehr gut!