0

Datensatz in übergeordneter Tabelle anlegen und mit aktuellem Datensatz verknüpfen

N'Abend Gemeinde,

ich häng' mal wieder:

 

Ich habe (im Wesentlichen) zwei Tabellen, Artikel und Komponenten. Ein 'Artikel' besteht aus einer oder mehreren Komponente(n), weshalb die Tabelle Komponenten N:1 mit Artikel verknüpft wurde.

Mein Aufgabe wäre nun, aus der Komponente bei Bedarf per Button einen Artikel anzulegen und die Komponente im Zuge dessen mit dem Artikel zu verknüpfen. Den ersten Teil hab ich hinbekommen, klappt wunderbar. Ich schaffe es nur partout nicht, meine Komponente mit dem neu angelegten Artikel zu verknüpfen - wie muss ich's anstellen?

Rätselnd,

Torsten

4 Antworten

null
    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten, 

    angenommen, die Verknüpfung zu der Tabelle Artikel heißt auch Artikel. Dann wäre die ganze Formel:

    —-

    let AA:=create Artikel;

    Artikel:=AA

    —-

    Grüße

    Leo 

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

    Hallo Leo,

     

    super, das klappt, vielen Dank.

     

    In Einzelfällen kann es sein, das der anzulegende Artikel bereits existiert. Das kein weiterer angelegt wird, habe ich bereits mittels cnt-Funktion abgefangen (der Artikel enthält einen Identifier, den die Komponente auch hat). Schön wäre es jetzt noch, wenn ich in diesem Fall auch gleich die Verknüpfung herstellen könnte.

    Hast Du noch‘n Tipp, wie ich das bewerkstelligen könnte?

     

    lg, Torsten 

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten.Ich weiß nicht wie dein Identifier aussieht. Angenommen die Artikel heißen Art1, Art2 usw. und Die Varianten heißen Art1Var1, Art2Var1 usw. Dann köönte der Trigger nach änderung bei Variantenname so aussehen:

    let myART := substr(Variantenname, 0, 4);
    if cnt((select Artikel)[Artikelname = myART]) != 0 then
    Artikel := first((select Artikel)[Artikelname = myART])
    else
    let newART := (create Artikel);
    newART.(Artikelname := myART);
    Artikel := newART
    end

    Leo

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

    Hallo Leo,

    ich muss in der Tat nur komplette Feldinhalte vergleichen, der Identifier ist quasi eine MAC-Adresse.

    Auf die Auswahl mit first() hätte ich in der Tat auch selbst kommen können, danke!

    Schönes (Rest-)Pfingstwochenende!

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 4Antworten
  • 2942Ansichten