Seite 1 von 1
Bericht mit 2 Spalten im Detailbereich
Verfasst: Mi 19. Nov 2014, 20:37
von miniaturbuch1
Hallo,
kann man bei Libre Office den Detailbereich in zwei Spalten aufteilen?
Ich möchte die Datensätze zweispaltig anordnen:
1 TITEL AUTOR 33 TITEL AUTOR
VERLAG AUSGABEORT JAHR VERLAG AUSGABEORT JAHR
BEMERKUNGEN BEMERKUNGEN
2 TITEL AUTOR 34 TITEL AUTOR
VERLAG AUSGABEORT JAHR VERLAG AUSGABEORT JAHR
BEMERKUNGEN BEMERKUNGEN
3 35
usw. usw.
Leider finde ich keine Möglichkeit, den Bereich in Spalten aufzuteilen und
den Umweg über Etikettendruck möchte ich auch nicht.
Weiß jemand, ob das überhaupt geht?
merci im Voraus,

Re: Bericht mit 2 Spalten im Detailbereich
Verfasst: Mi 19. Nov 2014, 22:05
von RobertG
Hallo miniaturbuch1,
nein, eine Darstellung verschiedener Datensätze in Spalten nebeneinander war zwar ursprünglich vorgesehen, ist aber nie realisiert worden.
Du musst also versuchen, die Daten, die Du nebeneinader darstellen willst, auch in eine Datenzeile zu bekommen. So etwas könnte vermutlich mit einer Abfrage zu bewerkstelligen sein. Ich habe so etwas für Kalender allerdings mit einem Makro gemacht, das direkt eine Tabelle mit den entsprechenden Spalten für 7 Tage nebeneinander ausfüllt.
Ergänzung: ich habe das jetzt einmal an einer Beispieltabelle mit einer Abfrage probiert und damit zwei Spalten nebeneinander in einer Datenzeile dargestellt:
Code: Alles auswählen
SELECT "T1"."Name" AS "Name1","T1"."ZeilenNr" AS "Zeile1", "T2"."Name" AS "Name2","T2"."ZeilenNr" AS "Zeile2"
FROM
(SELECT * FROM (SELECT "a".*, (SELECT COUNT("ID") FROM "Tabelle1" WHERE "ID" <= "a"."ID") AS "ZeilenNr" FROM "Tabelle1" AS "a") WHERE MOD("ZeilenNr",2) > 0) AS "T1",
(SELECT * FROM (SELECT "a".*, (SELECT COUNT("ID") FROM "Tabelle1" WHERE "ID" <= "a"."ID") AS "ZeilenNr" FROM "Tabelle1" AS "a") WHERE MOD("ZeilenNr",2) = 0) AS "T2"
WHERE "T1"."ZeilenNr" = "T2"."ZeilenNr" - 1
Sieht schon etwas abenteuerlicher aus, weil insgesamt 4 SELECTs aufeinander zugreifen.
Zuerst wird die Zeilennummerierung erstellt - von 1 beginnend, müsste noch eine eindeutige Sortierung enthalten, wenn nicht der Primärschlüssel gewühlt wird.
Dann wird von diesen Zeilen nur jede zweite ausgewählt. Für die erste Spalte die, bei denen die Zeilennummer ungerade ist, für die zweite Spalte die, für die die Zeilennummer gerade ist. Die ZeilenNr muss dabei mitgenommen werden, damit die Beziehung zwischen den beiden «Tabellen» (sind ja eigentlich Abfragen) definiert werden kann. Schließlich wird auf die erste «Tabelle» mit "T1" zugegriffen, auf die zweite Tabelle mit "T2". Die Beziehing zwischen "T1" und "T2" ist eine um 1 größere Zeilennummer in "T2".
Wenn Du so etwas in einem Bericht nutzen möchtest, dann empfehle ich Dir, die entsprechende Abfrage als Ansicht zu speichern. Dann klappt auch der Bericht einwandfrei, ohne dass an dem Code durch den Report-Builder rumgemäkelt wird.
Gruß
Robert
Re: Bericht mit 2 Spalten im Detailbereich
Verfasst: Do 20. Nov 2014, 19:47
von miniaturbuch1
Hallo Robert,
die Idee ist beachtenswert. Erstaunlich, was für Lösungsmöglichkeiten doch ersonnen werden.
Wenn ich es richtig verstanden habe, sind die Datensätze dann immer Zeile für Zeile links/rechts 1/2; 3/4 dann gelistet.
Das ergibt zwei Spalten, aber die Datensätze sind nicht in der Spalte selbst fortlaufend, sondern jeder zweite Datensatz steht untereinander.
Ich danke Dir für Deine Hilfe
Servus,
Luggi
Re: Bericht mit 2 Spalten im Detailbereich
Verfasst: Fr 21. Nov 2014, 19:09
von RobertG
Hallo Luggi,
Du hast mich da auch eine Idee gebracht, die ich gleich für das nächste Handbuch umgesetzt habe: Zweispaltiger Bericht war ja gar nicht so schwer, aber ein zweispaltiger Bericht, der auch noch eine bestimmte Sortierung beinhaltet braucht dann doch eine Abfrage, mit der der Report-Builder nicht zurecht kommt. Aus der Abfrage dann eine Ansicht erstellt und schon funktioniert auch eine Übersicht, bei der entsprechende Sortierfunktionen mit enthalten sind.
Ich hänge die Beispieldatei einmal an. Eine Beschreibung dazu wird es dann beim nächsten Handbuch geben.
Gruß
Robert
Re: Bericht mit 2 Spalten im Detailbereich
Verfasst: Sa 22. Nov 2014, 17:59
von RobertG
Noch ein kleiner Nachtrag:
Die in der ersten Variante von mir gepostete Lösung hat einen Haken: Sie zeigt nicht alle Datensätze an, wenn es sich um eine ungerade Anzahl von Datensätzen handelt.
Code: Alles auswählen
SELECT "T1"."Name" AS "Name1","T1"."ZeilenNr" AS "Zeile1", "T2"."Name" AS "Name2","T2"."ZeilenNr" AS "Zeile2"
FROM
(SELECT * FROM (SELECT "a".*, (SELECT COUNT("ID") FROM "Tabelle1" WHERE "ID" <= "a"."ID") AS "ZeilenNr" FROM "Tabelle1" AS "a") WHERE MOD("ZeilenNr",2) > 0) AS "T1",
(SELECT * FROM (SELECT "a".*, (SELECT COUNT("ID") FROM "Tabelle1" WHERE "ID" <= "a"."ID") AS "ZeilenNr" FROM "Tabelle1" AS "a") WHERE MOD("ZeilenNr",2) = 0) AS "T2"
WHERE "T1"."ZeilenNr" = "T2"."ZeilenNr" - 1
Das Ganze müsste entsprechend angepasst werden, so dass mit einem LEFT JOIN auf "T1" gearbeitet werden kann. Dies ist leider nicht so einfach möglich, da bei einem LEFT JOIN eine Bedingung wie
nicht möglich ist.
Code: Alles auswählen
SELECT "T1"."Name" AS "Name1","T1"."ZeilenNr" AS "Zeile1", "T2"."Name" AS "Name2","T2"."ZeilenNr" AS "Zeile2"
FROM
( SELECT "Name", "ZeilenNr", "ZeilenNr" AS "Zeile" FROM
( SELECT "a"."Name", ( SELECT COUNT( "ID" ) FROM "Tabelle1" WHERE "ID" <= "a"."ID" ) AS "ZeilenNr" FROM "Tabelle1" AS "a" ) WHERE MOD( "ZeilenNr", 2 ) > 0 ) AS "T1"
LEFT JOIN ( SELECT "Name", "ZeilenNr", "ZeilenNr" - 1 AS "Zeile" FROM
( SELECT "a"."Name", ( SELECT COUNT( "ID" ) FROM "Tabelle1" WHERE "ID" <= "a"."ID" ) AS "ZeilenNr" FROM "Tabelle1" AS "a" ) WHERE MOD( "ZeilenNr", 2 ) = 0 ) AS "T2"
ON "T1"."Zeile" = "T2"."Zeile"
Führt dagegen zum Ziel.
Ergänzung: Ich habe das Ganze jetzt bereits in das Kapitel "Berichte" für das Handbuch Base LO 4.4 übernommen. Allein dieses Kapitel umfasst inzwischen über 40 Seiten. Die Bispieldatenbank habe ich auch entsprechend angepasst:
http://robert.familiegrosskopf.de/lo_hb_dev/
Gruß
Robert
Re: Bericht mit 2 Spalten im Detailbereich
Verfasst: So 14. Nov 2021, 13:17
von AndreasB
Ein freundliches Hallo an das Forum,
ich habe ein Thema, das eventuell hier hin passt. Ich befasse mich erst seit kurzem mit LO-Base und verwende die eingebettete HSQLDB.
Das Ergebnis einer Abfrage liefert eine Liste mit z.B. 4 Zeilen (Datensätze) mit z.B. 3 Feldern. Diese Daten sollen in einem Formular angezeigt werden, bei dem horizontal die Datensätze und vertikal die 3 Felder als Blöcke nebeneinander angezeigt werden. Diese Darstellung wird auch bei Vergleichs-Testberichten verwendet, wo mehrere Produkte nebeneinander dargestellt werden und die Eigenschaften zeilenweise darunter angeordnet sind, sodass man die Eigenschaften der Produkte zeilenweise vergleichen kann. Meines Wissens gibt es bei LO-Base keine standardmäßige Lösung.
Das Thema ist vor längerer Zeit bereits im Forum besprochen worden; möglicherweise gibt es zwischenzeitlich eine einfachere Form der Realisierung.
Über einen Lösungsvorschlag würde ich mich freuen.
Vielen Dank.
Mit freundlichen Grüßen
Andreas
Re: Bericht mit 2 Spalten im Detailbereich
Verfasst: So 14. Nov 2021, 15:43
von Wanderer
AndreasB hat geschrieben: ↑So 14. Nov 2021, 13:17
Ein freundliches Hallo an das Forum,
ich habe ein Thema, das eventuell hier hin passt.
Eventuell, aber eher fraglich.
Ganz sicher aber sollte man nach 7 Jahren einen neuen Thread aufmachen...