Scriptcase Button zum Speichern an beliebiger Stelle in Form
Manchmal möchte man den Scriptcase-Button zum Speichern der Form nicht oben oder unten in der Liste der Buttons anzeigen, sondern an einer bestimmten Stelle in der Form, z.B. neben einem Eingabefeld.
Dazu erzeugt man ein neues ‘Label’-Feld und platziert es an die gewünschte Stelle.
Die Beschriftung des Label-Feldes leer lassen.
Im OnLoad-Event der Form dem Label-Feld den Link zuweisen, mit dem ein Button angezeigt wird und beim Klicken der Javascript-Befehl zum Speichern ausgelöst wird.
Wenn das Label-Feld ‘speichern’ heißt, müsste im OnLoad-Event eingefügt werden:
1 |
{speichern} = '<a href="javascript: nm_atualiza (\'alterar\');" id="sc_b_upd_t" onclick="nm_atualiza (\'alterar\');; return false;" class="scButton_default" title="Update record" style="vertical-align: middle; display:inline-block;">Click to save</a>'; |
Das erzeugt dann in der Form einen Button, mit dem der Inhalt der Felder gespeichert werden kann:
Update – 28.10.2019
Die o.g. Funktionalität arbeitet im Edit-Modus einer Form (ändern eines Datensatzes).
Wenn man aber vor dem Aufruf der Form (z.B. aus einem Grid) den Insert-Modus (Einfügen eines neuen Datensatzes) einschaltet, kann es zu Fehlermeldungen kommen.
Um dies zu vermeiden sollte der Code wie folgt erweitert werden:
1 2 3 4 5 6 7 8 9 10 |
if ($this->nmgp_opcao == 'novo') { // Aktuell im Insert- Modus - also neuen Datensatz einfügen {speichern} = '<a href="javascript: scBtnFn_sys_format_inc();" id="sc_b_upd_t" onclick="scBtnFn_sys_format_inc(); return false;" class="scButton_default" title="Update record" style="vertical-align: middle; display:inline-block;">Click to add</a>'; } else { // Aktuell nicht im Insert- Modus - also alten Datensatz (mit neuen Daten) speichern {speichern} = '<a href="javascript: nm_atualiza (\'alterar\');" id="sc_b_upd_t" onclick="nm_atualiza (\'alterar\');; return false;" class="scButton_default" title="Update record" style="vertical-align: middle; display:inline-block;">Click to save</a>'; } |
Hier wird geprüft, ob sich die Form im Insert-Modus befindet
if ($this->nmgp_opcao == 'novo')
und dann ggfls. mit einer anderen Funktion der neue Datensatz eingefügt.
Vielen Dank an Herrn Pfeiffer für seinen Hinweis dazu.