❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Luis
Beiträge: 3
Registriert: Mo 6. Mär 2017, 10:53

Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.

Beitrag von Luis » Mo 6. Mär 2017, 11:06

Hallo Forum
ich bin noch kein großer Libreoffice Base Künster :-(
Ich suche schon stundenlang nach einer Lösung. Ich möchte dass die Tabelle eines Formulars zuerst den letzten Datensatz (die neuesten Daten) anzeigt und die Bearbeitunszeile, also die Zeile wo die neuen Daten eingeben werden.

Ich kann zwar die Daten im Formular sortieren lassen, sodass die jüngsten Datensätze zuerst oben angezeigt werden, aber die Eingabezeile ist wieder am unteren Ende, wenn ich dann etwas eingeben will, muss ich wieder durch tausende von Datensätzen scrollen.

Ich will nicht unbedingt alle Datensätze gleich laden, sondern eben die jüngsten und am besten den Cursor auf der Eingabezeile.

Ich arbeite momentan mit Version: 5.2.5.1 und einer mysql Datenbank (damit ich von mehreren Stationen auf die Datenbank zugreifen kann)

Bin für jede Hilfe dankbar!
Viele Grüße
Luis

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.

Beitrag von F3K Total » Mo 6. Mär 2017, 15:54

Hallo,
innerhalb eines Tabellenkontrollfeldes ist das nicht machbar. Anbei ein Beispiel mit einem zusätzlichen Eingabeformular (grüne Kontrollfelder) oberhalb des Tabellenkontrollfeldes, nahezu das, was du suchst.
Gruß R
Dateianhänge
Adressen_Eingabe.zip
nur entpacken
(37.26 KiB) 141-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

Luis
Beiträge: 3
Registriert: Mo 6. Mär 2017, 10:53

Re: Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.

Beitrag von Luis » Di 7. Mär 2017, 12:14

Hallo F3K

danke für deine Antwort. Ich habe mir deine Datei angesehen, komm aber nicht direkt weiter.
Du meinst also es geht so nicht. Aber vielleicht habe ich mich auch undeutlich ausgedrückt, deshalb versuche ich es nochmal mit anderen Worten.

Ich wäre glücklich, wenn die Tabelle meines Formular nach dem Laden die letzten (jüngsten) Datensätze anzeigt
und
die Eingabezeile sichtbar wäre.

Ersteres schaffe ich ja einfach durch den Sortieren (z.B. nach Datum oder ID) Befehl, aber dann ist die Eingabezeile am verkehrten Ende.

Es gibt doch auch Makros, welche die Tabelle beim Laden auf die letzte Zeile, bzw Eingabezeile springen lassen. Aber dann werden - glaube ich - die ganzen Daten geladen, und das dauert. Und dass kann ich ja dann auch machen, wenn ich auf die kleine Sonne?, das Symbol für die Eingabezeile unten an der Tabelle klicke.

Viele Grüße
Luis

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.

Beitrag von F3K Total » Di 7. Mär 2017, 13:03

Ja, und genau des wegen, weil "das dauert" habe ich dir eine Alternative vorgeschlagen, die oberen Felder sind immer "auf der Eingabezeile". Was ist das Problem damit? Du kannst auch ein zweites Tabellenkontrollfeld darüber oder darunter setzen, siehe Beispiel anbei.
Eine weitere Möglichkeit:
In der HSQL Datenbank gibt es den SQL Befehl LIMIT, mit dem man die Zahl der zu ladenden Datensätze einschränken kann. Siehe Abfrage qAdressen_Limit Momentan auf die 10 letzten Datensätze eingestellt. So ist die Eingabezeile immer im Tabellenkontrollfeld. Aber man kann halt nicht alle Datensätze sehen. Jetzt könnte man diese Zahl auch per Makro setzen. Da ich aber nicht weiß, wie der LIMIT-Befehl unter mysql lautet, nimm es als Anregung.
Gruß R
Dateianhänge
Adressen_Eingabe2.zip
nur entpacken
(40.43 KiB) 132-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.

Beitrag von F3K Total » Di 7. Mär 2017, 13:45

Sodele,
anbei doch noch die Version mit Makro, im Formular Adressenverwaltung_load_defined_number_of_rows gibt es nun ein Feld, in das man die Anzahl der gewünschten Datensätze eingeben kann. Es wird mit dem Makro S_SET_LOAD_LIMIT ausgelesen, die Zahl wird verwendet um die Abfrage qAdressen_Limit entsprechend zu verändern.
Gruß R

EDIT: Diese Version, in der die Abfrage per Makro verändert wird, läuft komischerweise bei mir unter LO 5.2.5 und 4.4.7 nicht, wohl aber unter AOO 4.1.3, mit der ich sie erstellt habe. Sehr suspekt.
Dateianhänge
Adressen_Eingabe3.zip
(42.01 KiB) 127-mal heruntergeladen
Zuletzt geändert von F3K Total am Di 7. Mär 2017, 15:25, insgesamt 1-mal geändert.
Windows 11: AOO, LO Linux Mint: AOO, LO

Luis
Beiträge: 3
Registriert: Mo 6. Mär 2017, 10:53

Re: Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.

Beitrag von Luis » Di 7. Mär 2017, 13:53

Vielen Dank,
ich werde mich die nächsten Tage damit intensiv befassen!

VG Luis

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.

Beitrag von F3K Total » Di 7. Mär 2017, 14:12

...geht auch ohne Abfrage, wenn das SQL-Kommando des Formulares per Makro verändert wird.
Dateianhänge
Adressen_Eingabe4.zip
(42.65 KiB) 111-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.

Beitrag von F3K Total » Di 7. Mär 2017, 14:41

...einen habe ich noch: in dieser Version benötigt man überhaupt kein Makro, alles per SQL, entweder in der Abfrage oder direkt im Formular:

Code: Alles auswählen

SELECT * 
FROM 
    "Adressen" 
WHERE 
    "ID" 
     IN ( SELECT 
              "X"."ID" 
          FROM "Adressen" "X" 
              JOIN "Adressen" "Y" 
          ON
              "X"."ID" < "Y"."ID" 
          GROUP BY "X"."ID" 
          HAVING COUNT( * ) <= ( SELECT 
                                     "LIMIT" 
                                 FROM 
                                     "FILTER" ) 
                                 OR 
                               ( SELECT 
                                     "LIMIT" 
                                 FROM 
                                      "FILTER" ) 
                                 IS NULL )
Dafür muss man einmal Tabelle aktualisieren klicken, wenn man die Zahl der zu ladenden Datensätze verändert hat.
Ich denke dies ist der richtige Weg und auch die am stabilsten laufende Version ... wird mit MySql sicher auch möglich sein ...
Gruß R
Dateianhänge
Adressen_Eingabe5.zip
nur entpacken
(40.71 KiB) 120-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten