Seite 1 von 1
Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.
Verfasst: Mo 6. Mär 2017, 11:06
von Luis
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
Re: Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.
Verfasst: Mo 6. Mär 2017, 15:54
von F3K Total
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
Re: Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.
Verfasst: Di 7. Mär 2017, 12:14
von Luis
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
Re: Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.
Verfasst: Di 7. Mär 2017, 13:03
von F3K Total
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
Re: Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.
Verfasst: Di 7. Mär 2017, 13:45
von F3K Total
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.
Re: Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.
Verfasst: Di 7. Mär 2017, 13:53
von Luis
Vielen Dank,
ich werde mich die nächsten Tage damit intensiv befassen!
VG Luis
Re: Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.
Verfasst: Di 7. Mär 2017, 14:12
von F3K Total
...geht auch ohne Abfrage, wenn das SQL-Kommando des Formulares per Makro verändert wird.
Re: Formular-Tabelle-letzte Datensätze und Eingabezeile zuerst.
Verfasst: Di 7. Mär 2017, 14:41
von F3K Total
...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