0

Neuer Datensatz Button

Hallo Zusammen

 

Wie kann ich in einer Tabelle mit einem Button einen neuen Datensatz aslegen? 

 

Gruss Sandro

23 Antworten

null
    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Sandro,

    z.B. so:

    ---

    let newContact:=create Kontakte;

    newContact.Name:="leo"

    ---

     

    Leo

    • Dirk_Patzer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Indem Du dem Button eine Funktion gibst. Mit aktiviertem Schraubenschlüssel und einer Tabelle "Test" geht das z.B. mit:

    create Test;

    • GrischaMedia.ch
    • grischabock
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Perfekt, vielen Dank euch

    • GrischaMedia.ch
    • grischabock
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hab mal beides versucht, ein neuer Datensatz wird erstellt. Bekomme ich es aber noch hin, dass ich dann gleich weiter schreiben kann? Das sich der neue Datensatz gleich öffnet meine ich?

    • Dirk_Patzer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Du kannst (zumindest am Mac) einfach cmd+n drücken und dann poppt der neue Datensatz gleich mit auf. Wenn Du es per Button machen willst, müsstest Du den Befehl popupRecord verwenden.

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    let newContact:=create Kontakte;

    newContact.Name:="leo"

    popupRecord(record(Kontakte,number(newContact.Nr)))

    • GrischaMedia.ch
    • grischabock
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leo und Dirk

    Habe es nun mal mit und ohne Nummer versucht. Erhalte aber immer den Fehler Ende erwartet popupRecord

    let newAufgabe:=create Aufgaben;
    newAufgabe.'Aufgabe *':=""
    popupRecord(record(Aufgaben,number(newAufgabe.Nr)))

     

    Bildschirmfoto 2018-08-02 um 21.03.08

     

    Gruss Sandro

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Da habe ich wohl das Semikolon am ende der Zeile 2 vergessen. Du rauchst aber hier die zeile zwei gar nicht, wenn du die Aufgabe leer haben möchtest.

    ---

    let newAufgabe:=create Aufgaben;
    popupRecord(record(Aufgaben,number(newAufgabe.Nr)))

    ---

    Leo

    • Dirk_Patzer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Semikolon am Ende müsste das Problem lösen Sandro. Probiere es mal. Wenn du nicht möchtest, dass sich die Popups stapeln, kann Du mit closeRecord(); den vorherigen Datensatz schließen. Musst Du aber vor dem popupRecord-Befehl anwenden.

    • GrischaMedia.ch
    • grischabock
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Perfekt, vielen Dank an euch beide. 

    Ja auf das Semikolon hätte ich auch kommen können. den cloreRecord habe ich noch eingebaut. 

    Gruss Sandro

    • Florian_Wisser
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo zusammen,

     

    kann mir einer sagen, warum das hier nicht funktioniert?

     

    Hab eine Datenbank die heisst BESUCHER in der gibt es aktuell nur die Textfelder Nachname und Vorname

    Und meine Startseite ist auch eine Datenbank mit einem einzigen Datensatz. Dort gibt es das Feld Vorname. und Nachname. und den Button: NEUANMELDUNG mit folgender Funktion. Er findet aber angeblich die Tabellenspalten Nachname. und Vorname. nicht... Wenn ich statt dessen einen Text mit "" angebe fügt der den ein. Hab auch mal das Backup angefügt...

    let newBESUCHER := (create BESUCHER);
    newBESUCHER.(Nachname := 'Nachname.');
    newBESUCHER.(Vorname := 'Vorname.');
    popupRecord(record(BESUCHER,number(newBESUCHER.Nr)))

     

    Gruß Florian Wisser

     

    https://www.dropbox.com/s/olzmjajohcx9wom/BESUCHERANMELDUNG.ninox?dl=0

    • Florian_Wisser
    • vor 5 Jahren
    • Gemeldet - anzeigen

    P.S. ich hab das urspünlgich so eingetragen wie LEO vorgeschlagen hat aber die Klammern setzten sich jedes mal automatisch und ersetzen die ' '

    • Florian_Wisser
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Habs jetzt auf Umwegen gelöst. Sollte aber doch eigentlich auch so gehen...

     

    let x1 := 'Nachname.';
    let x2:= 'Vorname.';

    let newBESUCHER := (create BESUCHER);
    newBESUCHER.(Nachname := x1);
    newBESUCHER.(Vorname := x2);
    popupRecord(record(BESUCHER,number(newBESUCHER.Nr)))

    • Marwin
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Geht es denn wenn du 

    this.

    Vor Nachname.‘ machst ?

     

    Ansonsten sucht er nämlich in dem erstellten BESUCHER Datensatz nach dem Feld, weiß nur nicht ob this dann abhilft aber denke schon, sonst wäre es so wie du gemacht hast richtig 

     

    Grüße 

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

    Hallo,

     

    let my := this;
    let newBESUCHER := (create BESUCHER);
    newBESUCHER.(Nachname := my.'Nachname.');
    newBESUCHER.(Vorname := my.'Vorname.');
    popupRecord(newBESUCHER)

     

    hast Du die Felder tatsächlich mit Punkt am Ende benamt ("Nachname.", "Vorname.")? Intuitiv wäre ich von 

     

    newBESUCHER.(Nachname := my.Nachname);
    newBESUCHER.(Vorname := my.Vorname);

     

    ausgegangen.

     

    lg, Torsten

    • Florian_Wisser
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hi,

    ja das mit dem Punkt hatte ich nur mal gemacht um einen Unterschied bei den Feldern zur anderen Datenbank zu bekommen. Aber Danke funktioniert so! lg

    • Andreas_Schmitz
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Warum geht der Button aber nicht mehr, wenn man die Funktion Datensatz erstellen für den Benutzer generell abstellt?

    • Florian_Wisser
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Andreas,

     

    ich nehme an das hast Du schon selbst beantwortet. Wenn das erstellen von demjenigen Benutzer der mittels des Buttons das skript ausführte: "Erstelle Datensatz (create DATENSATZ), dazu aber keine Berechtigung hat, nehme ich an gehts auch nicht.

     

    lg Flo

    • Andreas_Schmitz
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Für was braucht man dann aber einen Button? Hat er die Berechtigung kann er es über + machen, oder habe ich hier einen Denkfehler. Der Button bekommt erst dann Sinn, wenn man dadurch das Kopieren eines Datensatzes verhindenr kann und dafür müssen die Icons in der Kopfzeile (Kopieren und Neu erstellen) erst einmal deaktiviert werden. Dann finktioniert aber der Button auch nicht mehr! 

    • Florian_Wisser
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Nein der Button ist einfach eine möglichkeit verschieden Funktionen innerhalb eines bestehenden Datensatzes auszuführen. In meinem Fall oben hat der Button z.B. noch eine erweiterte Funktion (Hab nicht das gesamten Skript da drin stehen) das er erst sucht ob ein Datensatz mit dem Namen und Vornamen schon vorhanden ist, wenn ja diesen öffnet und wenn nein, einen neuen Erstellt und da die Felder schon vorausfüllt. Ist ja ganz was anderes. Die Buttons kann man ja für viele Dinge nutzen

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

    .. dennoch total nervig, dass das Button-Script strikt nach User-Recht handelt. Das war unter V2.x noch anders, da hat duplicate() oder delete() in Skripten noch unabhängig vom Userrecht funktioniert.

     

    lg, Torsten

    • Florian_Wisser
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ah war das so? Ok hatten den Fall glaube ich gar nicht. Man könnte sich dann evtl. helfen wenn man nicht Datensätze nur von bestimmten Usern zum erstellen zulässt sondern über "nur schreibst wenn:" userhasrole() or "hilfsfeld" = true, und das verdeckte Hilfsfeld dann vor dem erstellscript auf True und dahinter wieder false setzen? Nur so als Gedanke. Müsste man mal testen.

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

    die Rechte zum erstellen oder löschen von Datensätzen lassen sich ausschließlich über die Rollen steuern... :-/

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 23Antworten
  • 8816Ansichten