0

Bestellmenge nach Liefermenge kopieren

Ich habe eine Untertabelle in meinem Auftrag mit den benötigten Komponenten. Jeder Datensatz enthält neben den Komponenteninformationen auch eine Bestellmenge. Nun möchte ich mit einem Knopfdruck alle Bestellmengen in das Feld Liefermenge kopieren. Ich habe keine Ahnung wie man in Ninox Datensatz für Datensatz der Erfassungstabelle durchgeht und die Werte kopiert. Hat jemand eine Lösung oder Tip ?

16 Antworten

null
    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    ist das Feld Liefermenge auch in der Tabelle Liefermenge?

    • Bernd.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo. Es gibt nur die Untertabelle der Komponenten im Auftrag. Dort gibt es für jede Komponente ein Feld Bestellmenge, Liefermenge, Beschreibung usw.. Ich möchte nun die Werte von Bestellmenge nach Liefermenge übertragen.

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    ok, im Auftrag eine Befehlsschaltfläche einfügen, dort folgenden Kript unter Funktion schreiben. Tabellennamen und Feldnamen gegebenen falls anpassen:

    let ANR := Nr;

    for UDS in select('Untertabelle' where Auftrag.Nr = ANR) do

        let BME := UDS.Bestellmenge;

        UDS.Liefermenge := BME;

     

    end;

    viel Glück...

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    sollte sogar noch einfache gehen:

    for UDS in 'Untertabelle' do

       let BME := UDS.Bestellmenge;

       UDS.Liefermenge := BME;

    end;

    • Bernd.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Bernd,

    vielen Dank das funktioniert genau so wie ich es mir vorgestellt habe. Ich bewundere immer wieder wie Ihr das alles so aus den Ärmeln schüttelt. Klasse. 

    Jetzt bin ich mal so unverschämt und stelle noch eine Frage. Ich würde gewisse Komponenten einfach über einen Knopf hinzufügen damit ich nicht immer in die Suche rein muss.

    Also ich habe einen Knopf unterhalb der Komponentenliste und wenn ich diesen Betätige wird eine bestimmte Komponente hinzugefügt. Das mit dem Datensatz anlegen habe ich verstanden nur das mit der Suche des bestimmten Datensatz nicht. Also Suche in der Komponentenliste in der Spalte Type die Komponente mit der Type "FH-2007" und füge diesen Datensatz meiner Komponentenliste hinzu.

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    ich verstehe es nicht so richtig: im letzten Satz steht: ...suche in der Komponentenliste... ...und füge diesen Datensatz meiner Komponentenliste hinzu ?

    Möchtest Du wirklich den Datensatz kopieren oder wo steht die Komponente (Tabelle) und wo soll sie hinzu gefügt werden (Tabelle)?

    • Bernd.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Entschuldige ich habe mich vertippt.

    Ich habe eine Tabelle mit den Komponenten und ich möchte dort die Komponente mit dem Typ "FHA2007-A1" suchen und diesen Datensatz in die Untertabelle "Komponentenliste" kopieren. Die Komponentenliste ist eine Untertabelle meines Auftrags.

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    also, suchen kann man damit, das alles in einer Befehlsschaltfläche:

    let STY := "FHA2007-A1";  --> schreibe immer den Suchbegriff in eine Variable, man ist später flexibler

    let DAS := select 'Komponenten' where Typ = STY;  --> hier werden alle Datensätze zurückgegeben, die entsprenen..

    let FDA := first(DAS);   --> es wird nur ein Datengesatz gefunden, trotzdem Zugriff auf Datensatzebene (1. Satz)

    let NKL := create 'Komponentenliste';  --> neuer Datensatz in der Komponentenliste

    jetzt mußt Du selbst weiter entscheiden: z.B.

    NKL.Typ := FDA.Typ;

    NKL.Bezeichnung := FDA.Bezeichnungstext;

    usw...

    • Bernd.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo !

    Klasse ich werde das heute Abend ausprobieren.

    Vielen vielen Dank !

    • Bernd.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Bernd,

    wenn ich den Code so eingebe meldet das System immer folgenden Fehler obwohl die Namen stimmen.

    "Eine Tabellenspalte wurde nicht gefunden: Type in Zeile 5, Spalte 11

    let STY := "FHA2007-A1";
    let DAS := select Komponenten where Type = STY;
    let FDA := first(DAS);
    let NKL := create Komponentenliste;
    NKL.Type := FDA.Type

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    letzte Zeile mal ändern in

    let TYP := FDA.Type;

    NKL.Type := TYP;

    eine Wertzuweisung mche ich immer von einer Variablen... der  Ode wird ja immer "optimiert". es würden dann folgendes daraus gemacht werden:

    NKL.(Type := FDA.Type); aber in NKL gibt es kein FDA...

    • Bernd.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Eine Tabellenspalte wurde nicht gefunden: Type in Zeile 6, Spalte 11

    let STY := "FHA2007-A1";
    let DAS := select Komponenten where Type = STY;
    let FDA := first(DAS);
    let NKL := create Komponentenliste;
    let TYP := FDA.Type;
    NKL.Type := TYP;

    • Bernd.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Ich glaube ich habe die Ursache gefunden. In der Tabelle Komponentenliste existiert ja nur eine "Anzuzeigende Spalte " vom Typ "TYPE"

    • Bernd.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Die Suche der Komponente erfolgt zwar über das Feld Type jedoch muss der Komplette Datensatz in dem das Suchwort Type enthalten ist in die Komponenteliste kopiert werden.

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    dann mache ich das immer so, die einzelnen Felder jeweils zuweisen..., das zu kopierende Feld in eine Variable schreiben und dann den anderen Datensatz zuweisen...

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    und das Feld für Feld

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 16Antworten
  • 4334Ansichten