import von Zeilen einer Tabelle in einer anderen gesplittet in einer Untertabelle
Hallo Zusammen
Tabelle1 zu importieren (feld11,feld12,feld13,feld14) in Tabelle2 feld23,feld25, und in Tabelle3 feld36, feld37) wobei feld1 mehrmals in Tabelle1 vorkommen kann
Tabelle2 (Kopt) und Tabelle3 (Details)
let myOBJ := unique((select Tabelle1 where ....).feld11);
for i in myOBJ do
let myTAB2 := (create Tabelle2);
myTab2(feld23 := i.feld13“);
myTab2.(feld25 := i.feld12);
...
for ii in i do /// hiermit soll eine Schlaufe (1-x Mal Feld 1 vorhanden)
let newPos := (create Tabelle3);
let myVAR1:= ii.feld14); /// hier behauptet ninox : ”Der Ausdruck liefert mehrfache Ergenisse zurück“ ???
let newPos.(feld36 := myVAR1);
let newPos.(feld37 := ii.feld17); nnox meldet : ”eine Tabellenstalte wurde nicht gefunden: feld17“ ??? ist aber vorhanden
Ist der Konstrukt falsch? Wer kann helfen?
Beste Grüsse
Frédéric
....
4 Antworten
-
Hallo Frédéric,
ist sehr verwirrend , mal Feld1, mal Feld11. Ich versuche es mit eigenen Worten. Es gibt eine Tabelle1 die nach Ninox importiert wird (aus CSV) dort gehören die Felder 11,12,13 zu einem Kunden. Diese können in mehreren Zeilen gleich sein wenn der Kunde mehrere Positionen hat. Die Felder 14,15,16 beschreiben die Positioneigenschaften. Ziel ist es die Tabelle auf zwei Tabellen zu verteilen, wobei Die Tabelle 2 den Kunden umfasst und die Tabelle3 als Untertabelle zu der Tabelle2 aufgebaut ist. Dan würde ich folgende Formel vorschlagen.---
let myOBJ:=unique((select Tabelle1 where ....).feld11);
for i myOBJ do
let myTab1:=first(select Tabelle1 where Feld11=i);
let newTab2:=create Tabelle2;
newTab2:=Feld23:=myTab1.Feld13;
newTab2:=Feld25:=myTab1.Feld12;
for j in select Tabelle1 where Feld11=i do
let newTab3:=create Tabelle3;
newTab3.Tabelle2:= newTab2;
newTab3.Feld36:=j.Feld14;
newTab3.Feld37:=j.Feld17
end
end
----
vobei die Zeile newTab3.Tabelle2:= newTab2; die Verknüfung aufbauen sollte.
Leo
-
hallo Leo
DANKE!
Meine Idee war:
Ninox-Tabelle1 beinhaltet Daten, die in einer Mutter-Tabelle2 und Untertabelle3 eingespiesst werden soll.
-
Dachte, wenn ich aus Tabelle1 einen let myOBJ := unique((select ...).OBJNR mache
könnte ich mit
for i in myOBJ do den Pointer auf der Objekt-Nr. setzen
dann Daten in die Muttertabelle2 speichern (das sind Spalten die nur in Tabelle2 gehören, und dann mit
for ii in i do um die Zeile(n) in Tabelle1 für OBJNR = myOBJ
Daten in Tabelle3 zu speichern
Generell stellt sich die Frage ob:
for i in VAR do
for ii in i do
als Konstrukt korrekt bzw. möglich ist.
Dein Ansatz stimmt natürlich und besten Dank für deine Bemühungen.
Lieben Sonntagsgruss!Frédéric
-
Hallo Frédéric,
let myOBJ := unique((select ...).OBJNR gibt einen Array aus Werten (in diesem Fall Feld11) und nicht aus Tabellenzeilen. deswegen braucht man im zweiten Schritt auch zweiten select mit zuweisung.
Content aside
- vor 4 JahrenZuletzt aktiv
- 4Antworten
- 791Ansichten