0

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

null
    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    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

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    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?

    • Simon.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    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

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    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

    • Simon.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    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

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Simon, wenn "Vermittlungen" der Name der N:1-Verknüpfung ist, würde ich's mal ohne das "_id" versuchen:

     

    vermittlung_archivieren(Vermittlungen)

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    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.

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Simon,

    versuch es so:

    vermittlung_archivieren(Vermittlungen)

    Leo

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 8Antworten
  • 775Ansichten