Globaler Funktion 'this' als Input geben
Hallo
Wie kann ich bei einer globalen Funktion 'this' als input verwenden
function F1(id : ???) do
myId := id
end
ich möchte die Funktion dann über einen Knopf aufrufen und diese soll mit derm aktuellen Datensatz verwendet werden.
F1(this)
Danke fürs helfen und lieber Gruss
Simon
8 Antworten
-
Hallo Simon,
die Funktion sollte so aussehen:
function F1(me:TABELLENNAME) do
me.(Name+", "+Vorname)
end
Wenn du jetzt F1(this) angibst, kriegst du den aktuellen Namen zurück.
Leo
-
Moin Leo
Gibt es bei Funktionen wirklich einen Parameter 'TABELLENNAME'?
Ich wollte dein Script mal testen, erhalte bei der globalen Funktion jedoch immer den Fehler 'Unknown type'
Ich habe alle Schreibweisen die mir eingefallen sind ausprobiert. (Tabellenname, tablename, table etc.)
Getestet habe ich es in der Cloudversion.
Woher soll der Code in der globalen Funktion wissen welche Tabelle mit 'me.' gemeint ist und ob diese Tabelle überhaupt die Felder 'Name' und 'Vorname' enthält?
Mache ich hier einen Denkfehler? -
Hallo Leo
Vielen Dank fürs Antworten. Habe deinen Code kurz so getestet und funktioniert. Werde nun versuchen das ganze in mein Projekt zu implementieren.
@UweG: du musst 'TABELLENNAME' mit dem Namen deiner Tabelle ersetzen dann funktionierts.
Gruss Simon
-
Hallo Uwe,
'TABELLENNAME' ist kein Parameter sonder der Name der Tabelle, welche du Ansprechnen möchtest: z.B. für Tabelle Kontakte wäre die Funktion:
---
function F1(me: Kontakte) do
me.(Name+", "+Vorname)
end
---
Und Funktionsaufruf F1(this) sollte natürlich auch aus der Tabelle Kontakte kommen
Leo
-
Hallo Leo
Soweit funktioniert es. Ich möchte aber nun die Funktion in einer anderen Tabelle aufrufen.
Bsp: Ich habe eine Tabelle Jobs, eine Tabelle Arbeitnehmer, eine Tabelle Vermittlungen und eine Tabelle Vemittlungen_Archiv. Mit meiner Funktion kopiere ich die Vermittlung in Vermittlungen_Archiv und lösche den Datensatz in der Tabelle Vermittlungen. Das ganze löse ich aus mit einem Button auf dem Formular der Tabelle Vermittlung. Nun möchte ich das ganze aber auch von der Tabelle Jobs auslösen können. Wenn da ein Job auf inaktiv gesetzt wird soll auch die Vermittlung archiviert werden.
Wie kann ich die Funktion vermittlung_archivieren, welche sich auf die Tabelle Vermittlung bezieht in der Tabelle Jobs aufrufen?
function vermittlung_archivieren(me : Vermittlungen) do
Datensatz kopieren und löschen
end
Ich habe die Funktion in der Tabelle Jobs folgendermassen versucht aufzurufen. Dann kommt der Fehler die Funktion ist nicht definiert.
vermittlung_archivieren(Vermittlungen._id)
LG Simon
-
Hallo Simon, wenn "Vermittlungen" der Name der N:1-Verknüpfung ist, würde ich's mal ohne das "_id" versuchen:
vermittlung_archivieren(Vermittlungen)
-
Hallo Leo
Danke für die Erklärung.
Wieder einmal zu komplizirt gedacht.
Ich dachte, man kann den Tabellennamen beim Funktionsaufruf übergeben um die Globale Funktion aus verschiedenen Tabellen aufzurufen wenn in den entsprechenden Tabellen die Felder mit gleicher Bezeichnung enthalten sind. -
Hallo Simon,
versuch es so:
vermittlung_archivieren(Vermittlungen)
Leo
Content aside
- vor 3 JahrenZuletzt aktiv
- 8Antworten
- 786Ansichten