0

Gehe zum nächsten/vorherigen Datensatz im Vollbildmodus

Hallo Forum,

ich nutze für meine Datenbank den Vollbildmodus. Das ist für Benutzer, die lediglich in Formularen arbeiten wollen, sehr angenehm. Dadurch werden die Schaltflächen aus der Normalansicht ausgeblendet, was für diese Benutzer ebenfalls nicht nachteilig ist. Drucken, Löschen, Duplizieren und Neuanlegen eines Datensatzes können mit Befehlsschaltflächen abgebildet werden. Nur für die Schaltflächen nächster bzw. vorhergehender Datensatz habe ich bisher keinen Ersatz gefunden. Diese sind beim Abarbeiten von Listen sehr hilfreich. Hat jemand von euch dafür eine Lösung parat?

Vielen Dank und liebe Grüße, Jörg

7 Antworten

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

    Hallo Jörg, mit folgenden Schaltflächen-Codes könnte man in der Tabelle durchlaufend vor- und zurücknavigieren, wobei nach dem letzten Datensatz zum ersten gesprungen würde - und umgekehrt.

    Vorwärts/Nächster Datensatz:

    let me := number(Nr);
    if me = last((select TABELLE).number(Nr)) then
        openFullscreen(first((select TABELLE) order by number(Nr)))
    else
        openFullscreen(first(select TABELLE where number(Nr) > me))
    end

    Rückwärts/Vorheriger Datensatz:

    let me := number(Nr);
    if me = first((select TABELLE).number(Nr)) then
        openFullscreen(last((select TABELLE) order by number(Nr)))
    else
        openFullscreen(last(select TABELLE where number(Nr) < me))
    end

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

    Hallo Copytexter, danke für deinen Vorschlag. Ich weiß jetzt nicht, woran es liegt aber bei mir geht mit jedem Klick auf die Schaltfläche ein neues Fenster auf. Das sieht man zuerst gar nicht, weil die Fenster sozusagen übereinander liegen. Jedenfalls kommt man nur wieder zurück zur Ausgangsposition, wenn man die Anzahl Fenster schließt, die man vorher geöffnet hat. Also, wenn ich fünf mal Vorwärts geklickt habe, muss ich fünf mal auf das X klicken, um die Fenster zu schließen. Ich nutze die Mac App.

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

    Ich habe deinen Code folgendermaßen ergänzt:

    let me := number(Nr);
    if me = last((select RPosition).number(Nr)) then
      let myNext := first((select RPosition) order by number(Nr));
      closeRecord();
      popupRecord(myNext)
    else
      let myNext := first(select RPosition where number(Nr) > me);
      closeRecord();
      popupRecord(myNext)
    end

    Das scheint zu klappen.

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich mach mal hierzu eine Anmerkung.

    Leo hat in den Beispielen in der Reference Datenbank im Webinar DE Team beschrieben, wie man per Button zu dem nächsten/vorigen Datensatz wechseln kann.

    Der Link zu den Beispielen führt zu einer Tabelle in der die Skripte praktisch getestet werden können.

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

    Moin Uwe. Vielen Dank für den Tipp, das ist eine tolle Fundgrube.

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

    Hallo Jörg, „normalerweise“ ist ein vorheriges closeRecord() nicht erforderlich, weil ein openRecord() den aktuellen Datensatz automatisch schließt, um den neuen zu öffnen. Aber es kann natürlich sein, dass es sich beim openFullscreen() anders verhält, das habe ich nicht ausprobiert, sondern im eigentlichen Code einfach nur openRecord() durch openFullscreen() ersetzt. Und wenn es bei dir so funktioniert, dann ist es ja perfekt.

    Falls du die Tabelle beim Vor- und Zurückspringen nicht nach der Record-ID, sondern nach einem Datenfeld sortiert haben willst, dann solltest du Uwes Hinweis folgen und mal in die Praxisbeispiele der Referenz-DB schauen. Dort finden sich einige nützliche Code-Schnipsel, unter anderem eben auch die von Leo zum Vor-/Zurück-Springen mit spezifischer Sortierung.

    Ach, sehe gerade, dass du schon reingeschaut hast. Na, dann ... ;)

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

    Hallo Copytexter. Vielen Dank für deine Hilfe. Du und Uwe habt mir sehr geholfen. Ich habe jetzt eine Lösung, bin aber noch nicht am Ziel. Das liegt offensichtlich daran, dass ich die Funktion in einer Untertabelle nutzen möchte. Deshalb auch popupRecord und nicht openRecord. openRecord springt ja zur zugehörigen Tabelle und das kann ich nicht gebrauchen.

    Das Problem begrenzt sich jetzt auf die Optik. Durch closeRecord wird das alte Formular nach rechts rausgeschoben und und durch popupRecord kommt das neue von rechts herein. Da wird einem schon schwindelig, wenn man einige Datensätze geblättert hat. :-))

    Leider kann man closeRecord nicht gezielt für einen bestimmten Record einsetzen, sonst könnte man zuerst den neuen Datensatz “hereinholen” und den dahinterliegenden schließen. Vielleicht kommt da noch eine Ergänzung in den Funktionen.

    Nochmals vielen Dank!

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 7Antworten
  • 860Ansichten