0

Neuer Datensatz per Button MIT FORMULAR-Ansicht

Hallo Zusammen,

 

ich habe eine Tabelle "Protokoll" und in einem Dashboard einen Button "Neues Protokoll erstellen", mit welchem ich auch jetzt schon direkt dahin gelange, ein neues Protokoll zu erstellen mit:

 

let p := (create protokoll);
popupRecord(p)

 

Allerdings öffnet sich dann die "Eingabemaske" nur zu 3/4 des Bildschirms. In einer Formular-Ansicht hat man quasi eine Vollbild-Ansicht. Kann man diese Ansicht nicht direkt ansprechen wenn man sagt "Neues Protokoll erstellen" ?

 

Vielen Dank im Voraus!

7 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Moin, bei popupRecord() schiebt sich der Datensatz über den aktuellen. Mit openRecord() wird der aktuelle Datensatz geschlossen und der neue geöffnet.

    • mirko3
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo. Versuch es mal damit. Stell vorher sicher, dass Du in der Tabelle Protokoll eine Formularansicht hast.

    create Protokoll;
    openTable("Protokoll", "FORMULARNAME");
    openRecord(last(select Protokoll))

    oder, für eine schöne große Ansicht:

    openRecord(openFullscreen(create Protokoll))

    Mirko

    • Kalberg
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Habe den Ansatz von MZ ausprobiert.

     

    mit der ersten Variante wird ein neues Protokoll erstellt und es öffnet sich auch ein Protokoll in der Formular-Ansicht wie ich es haben möchte, allerdings ein Protokoll vom 14.07. und nicht das eben neu-erstellte?! 

     

    Die zweite Methode mit openFullscreen macht genau das was ich haben will allerdings bräuchte ich das ohne Vollbild, links sollte die Leiste mit den Tabellen noch zu sehen sein.

     

    Woran könnte es bei der ersten Methode liegen, dass nicht das neuste-erstellte Protokoll geöffnet wird?

    • mirko3
    • vor 4 Jahren
    • Gemeldet - anzeigen

    popupRecord(create Protokoll)= Du bleibst im Dashboard, es wird nur Dein Formular geöffnet mit einem neuen Datensatz

    openRecord(create Protokoll)=Du schließt das Dashboard, Du wechselst zur Tabelle, es wird nur Dein Formular geöffnet mit einem neuen Datensatz, links ist Deine Tabellenansicht

    create Protokoll; openTable("Protokoll", "FORMULARNAME"); openRecord(last(select Protokoll)) =Du schließt das Dashboard, es wird ein neuer Datensatz angelegt, wechselst zur Tabelle, Du öffnest den Formulartab  (so er angelegt ist) "Formularname" (schön groß) und es wird Dir der letzte, also neue Datensatz angezeigt (was bei mir klappt, anscheinend bei Dir nicht)

    openRecord(openFullscreen(create Protokoll))=wie 2. nur Vollansicht (schön und sehr groß), keine Tabelle, da Vollansicht.

    letzte Möglichkeit: wenn popup in der Tabelle geöffnet ist, dann Schraubenschlüssel, Popupfenster vergrößern (individuell groß), Schraubenschlüssel, 

    Mehr Möglichkeiten kenne ich nicht. Wenn ich das aber richtig lese ist Copytexters Lösung die von Dir gesuchte. openRecord(create Protokoll). Ich dachte Dir ging es um die Größe der Ansicht. ;-)

    • Kalberg
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Anfangs wollte ich eigentlich genau diese Lösung:

     

    create Protokoll; openTable("Protokoll", "FORMULARNAME"); openRecord(last(select Protokoll))

    Allerdings öffnet sich da nicht das gerade erstellte Protokoll sondern immer das vom 14.07.2020. Ganz Komisch.

     

    Allerdings finde ich jetzt mittlerweile für Angestellte die FullScreen-Variante noch besser und über einen "Zurück" Button kommt man wieder zum Dashboard. :-)

     

    Vielen Dank euch!

    • mirko3
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Sebastian, "last" macht manchmal Probleme und landet dann irgendwie doch nicht bei last sondern immer am gleichen Datensatz. Warum weiß ich nicht. Es gibt zwei Lösungsansätze die ich mal bei Leo und Copytexter gelesen habe. Hier letzterer, falls es noch wichtig ist für Dich.

    *

    create Protokoll; 

    openTable("Protokoll", "FORMULARNAME"); 

    openRecord(last((select Protokoll)order by number(Nr)))

    *

    Mirko

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

    Moin, kurz zum "Warum": Die Record-ID besteht aus einem Buchstaben für die Tabelle und der Ziffernfolge der Datensatznummer. Die Standardsortierung erfolgt alphanumerisch von links nach rechts, so das bspw. "2" größer "13" ist. Deshalb gibt "last" manchmal andere Werte zurück als serwartet.

    Mit dem "order by number(Nr)" erzwingt man eine numerische Sortierung der Datensatznummern, bei der 2 natürlich kleiner 13 ist.

    Das Problem ist bereits als Change-Request hinterlegt, denn es wäre natürlich sinnvoll, dass Ninox die Datensatznummern automatisch numerisch sortiert. Insofern ist das mit dem "order by" eher ein Workaround, aber immerhin ein funktionierender.