Befehlsschaltfläche: mehrere Spalten (Unique) von einer HT in eine UT kopieren
Hallo und guten Morgen Ninox Gemeinde,
ich scheitere gerade an ein Script um den Inhalt aus 4 Spalten nur für das Jahr “2020”, in eine Untertabelle zu kopieren.
Mein Gedanke war, ein Jahr in ein Feld einzutragen, dass per Befehlsschaltefläche beim Kopieren berücksichtigt.
Das kopieren einer einzelne Zeile funktioniert mit diesem Script aber leider scheitere ich am Rest...
let me := this;
let myNewRecord := (create “DVF Erfolgsliste”);
myNewRecord.(Year := me.Year);
myNewRecord.(“Name of the Salon/Circuit” := me.“Name of the Salon/Circuit”);
myNewRecord.(PSA := me.PSA);
myNewRecord.(FIAP := me.FIAP)
Viele Grüße
Jerry
13 Antworten
-
Hallo Jerry,
Ich vermute, wenn du Tabelle DVF Erfolgliste öffnest, findest du deine Datensätze. Die sind aber nich mit dem Datensatz der Haupttabelle verknüpft.
Der Kode dafür sollte so Laufen:---
let me := this;
let myNewRecord := (create “DVF Erfolgsliste”);
myNewRecord.NAMEDERHAUPTTABELLE:=me;
myNewRecord.(Year := me.Year);
myNewRecord.(“Name of the Salon/Circuit” := me.“Name of the Salon/Circuit”);
myNewRecord.(PSA := me.PSA);
myNewRecord.(FIAP := me.FIAP)
---
Die doppelten Anführungszeichen durch einfache ersetzen.
Leo
-
Hallo Leo ich danke Dir ganz herzlichst,
ja es funktioniert, wäre es theoretisch möglich die 4 unten stehenden Spalten komplett in einen Rutsch in die Untertabelle “DVF Erfolgsliste” ohne Duplikate zu kopieren?
myNewRecord.(Year := me.Year);
myNewRecord.(“Name of the Salon/Circuit” := me.“Name of the Salon/Circuit”);
myNewRecord.(PSA := me.PSA);
myNewRecord.(FIAP := me.FIAP)Mein Gedanke war, dass ich zum Beispiel mein Wunschjahr in ein Feld eintrage und die 4 Spalten aus der HT in die UT mit entsprechenden eingetragenen Jahr und ohne Duplikate kopiert werden.
Vielen herzlichen Dank
Jerry
-
Hallo Jerry,
was heißt ohne Duplikate? Weche Felder werden geprüft?
-
Hallo Leo,
ich habe eine “Adminseite” aufgebaut, in dem ich gezielt bestimmte aktivitäten vornehme, wie zum Beispiel neue Titel prüfen.
Auf der “Adminseite” habe ich ein Zahl-Feld und ein fx-Feld eingebaut, dass als Ziel hatte, die HT (Success List (International)) auf diese vier Spalten zu prüfen und wenn das Jahr “x” im Zahlenfeld in der HT vorhanden ist, dann alle vier Spalten mit dem Jahr “x” rein zu kopieren.
myNewRecord.(Year := me.Year);
myNewRecord.(“Name of the Salon/Circuit” := me.“Name of the Salon/Circuit”);
myNewRecord.(PSA := me.PSA);
myNewRecord.(FIAP := me.FIAP)Bei einer Teilnahme in ein internationalen Wettbewerb nimmt man mit vier Bilder (vier verschiedene Bildtitel * x Sparten) in einer Sparte teil, dadurch würde vier mal unten stehende Zeilen kopiert werden:
2nd GCPA International 2020 PSA 2020-442 FIAP (null) 2020
2nd GCPA International 2020 PSA 2020-442 FIAP (null) 2020
2nd GCPA International 2020 PSA 2020-442 FIAP (null) 2020
2nd GCPA International 2020 PSA 2020-442 FIAP (null) 2020Da ich aber in der UT nur die Auswertung vornehme, würde ich nur einmal benötigen.
2nd GCPA International 2020 PSA 2020-442 FIAP (null) 2020
Leider werden meine Screenshots nicht angezeigt?
Meine Datenbankstruktur würde so aussehen:
Adminseite klick ich auf Befehlsschaltfläche
4 Spalten in der HT werden in der Untertabelle (unique) kopiert
(alle Tabellen sind miteinander verknpüft)
Viele Grüße
Jerry
-
Hallo Jerry,
leider verstehe ich immer noch nicht. Wie viele Tabellen gibt es insgesamt,
-
Hallo Leo,
es gibt die Tabelle “Administration” mit Befehlsschaltfläche um in den Haupttabelle die vier Spalten die in Untertabelle kopieren soll.
Viele Grüße
Jerry
-
Also 3 Tabellen? Kannst du bitte die Bilder irgendwo auf Cloud posten? Ich verstehe immer noch nicht was du möchtest.
Wenn du für 4 (bzw. für alle) Datensätze in der UT einen HT Datensatz erzeugen möchtest wo die 4 Felder übereinstimmen und dort die 4 Felder rein schreiben dann:
---for i in select UT do
if not i.HT then
if cnt(select HT [FELD1=i.FELD1 and FELD2=i.FELD2 and FELD3=i.FELD3 and FELD4=i.FELD4])=0 then
let new:=create HT;
i.HT:=new;
new.FELD1:=i.FELD1;
new.FELD2:=i.FELD2;
new.FELD3:=i.FELD3;
new.FELD4:=i.FELD4;
else
let my:=first(select HT [FELD1=i.FELD1 and FELD2=i.FELD2 and FELD3=i.FELD3 and FELD4=i.FELD4]);
i.HT:=my
end
end
end---
Leo
-
Hallo Leo, ich danke Dir.
Ich habe drei screenshots gemacht und in Dropbox abgelegt.
Screenshot “Administration” hat Befehlsschaltfläche und Feld für das Jahr
Screenshot HT hat die gepflegten Felder die in
Schreenshot UT kopiert werden sollen.
Viele Grüße
Jerry
Die Felder habe ich in rot markiert die gleich sind.
https://www.dropbox.com/sh/7lw5ncum9yxg93r/AAAkoef99N8QH72Y69ea0Ue-a?dl=0
-
Dann ist es doch umgekehrt: Die Tabelle Success List (International) ist eine Untertabelle und die Tabelle DVF Erfolgsliste ist eine Haupttabelle weil zu einem Datensatz meherere Datensätze von Success List gehören können. Aus der Bilder kann ich nicht erkennen ob die zwei Tabellen miteinnander vrknüpft sind. Welche Tabelle ist mit welcher verknüpft?
-
Hallo Leo,
Success List (International) beinhaltet alle gepflegte Daten aus allen Jahren (2015 bis 2021)
DVF Erfolgsliste ist leer (dient nur für Auswertungen und für Anträge).
Wenn ich die DVF Erfolgsliste öffne und mir die Verknüpfung mit Success List (International) anzeigen lasse, dann wird mir N:1 angezeigt.
(Screenshot habe ich in Dropbox abgelegt)
Feld 1/2/3/4 soll aus der Tabelle Success List (International) in die DVF Erfolgsliste für ein bestimmtes Jahr übertragen werden, wenn ich auf der Administrationsseite (N:1 Verknüpfung zu beiden) die Befehlsschaltfläche + Feld “Zahl für das entsprechende Jahr” anwähle.
Viele Grüße
Jerry
-
-
Hallo Jerry,
---
let me := this;
if me.Jahr then
let myselect:=select “Success List (International)” where Year=me.Jahr
for i in myselect do
if not i.“DVF Erfolgsliste” then
let myChoice:=(select “DVF Erfolgsliste” where Year =i.Year and “Name of the Salon/Circuit” := i.“Name of the Salon/Circuit” and PSA := i.PSA and FIAP := i.FIAP);if cnt(myChoiche)=0 then
let myNewRecord := (create “DVF Erfolgsliste”);
i.“DVF Erfolgsliste”:=myNewRecord;
myNewRecord.(Year := i.Year);
myNewRecord.(“Name of the Salon/Circuit” := i.“Name of the Salon/Circuit”);
myNewRecord.(PSA := i.PSA);
myNewRecord.(FIAP :=i.FIAP)else
let myExistRecord:=first(myChoice);
i.“DVF Erfolgsliste”:=myExistRecordend
---
wen es auch nicht hinhaut, lass dir einen Termin mit Ninox support geben und zeig dort die DB. Es ist nicht möglich so etwas per Ferndiagnose und mit kaputtem Forum zu realisieren.
Leo
-
Hallo Leo,
ich Danke Dir, ich probiere es aus und ggf melde ich mich beim Support
Vielen Dank für deine Hilfe
Viele Grüße
Jerry
Content aside
- vor 4 JahrenZuletzt aktiv
- 13Antworten
- 1029Ansichten