❤️ 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. 🤗

Im Bericht ein Feld anzeigen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Mr. Cutty
Beiträge: 18
Registriert: So 10. Mär 2013, 16:51

Im Bericht ein Feld anzeigen

Beitrag von Mr. Cutty » Mo 11. Mär 2013, 19:01

Moin Community,

als Datenbankneuling habe ich seit ein paar Tagen folgendes Problem, wo ich einfach nicht weiter komme: In einer Kochrezeptdatenbank möchte ich eine Zutaten-/Einkaufsliste via Formular ausdrucken. Im Bericht möchte ich in der Kopfzeile den Rezeptnamen aufführen und im Hauptteil alle für das entsprechende Rezept benötigten Zutaten. As far, as good.

Nun meine Frage: Wie ist es zu bewerkstelligen, dass im Bericht nicht sämtliche Zutaten und Rezeptnamen auftauchen, sondern nur die zusammengehörenden, also pro Satz? Seit Tagen google ich mir die Finger wund und komme auf keine Lösung.

Danke für's Lesen.

Cutty

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

Re: Im Bericht ein Feld anzeigen

Beitrag von F3K Total » Mo 11. Mär 2013, 20:54

Hi,
das hängt vom Aufbau der Datenbank, den Tabellen/Abfragen usw. ab.
Ohne mehr Infomationen darüber wirds schwer mit der Hilfe.

Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Im Bericht ein Feld anzeigen

Beitrag von RobertG » Mo 11. Mär 2013, 21:38

Hallo Cutty,

schon im Base-Handbuch das Kapitel Berichte gelesen? (http://de.libreoffice.org/hilfe-kontakt/handbuecher/ - etwas nach unten scrollen ...)

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Mr. Cutty
Beiträge: 18
Registriert: So 10. Mär 2013, 16:51

Re: Im Bericht ein Feld anzeigen

Beitrag von Mr. Cutty » Mo 11. Mär 2013, 23:18

'N Abend Community,

erstmal danke für die Antworten.

Ich weiß gar nicht mehr wieviele Handbücher, Anleitungen und Videoclips ich in den letzten Tagen durchgeackert habe. Im Prinzip geht es mir nur darum die Zusammenhänge zu begreifen; deshalb öffne ich etliche fertige Datenbanken um zu sehen, wie man was umgesetzt hat. An dieser Stelle vielen Dank an Robert für die Vorlagen.

Habe durch Zufall einen Lösungsansatz für einen anderen User entdeckt, der vor der gleichen Frage stand, und werde den mal ausprobieren.

Wenn ich nun nach folgender Anleitung vorgehe, bleibt mein Bericht leer.
Zitat von eBayer aus dem Openoffice Forum:

Die ID genügt.
Im Bericht gehst Du auf Ansicht - Berichtsnavigator - Bericht.
Nun werden rechts im Entwurf 2 Tabs aufgezeigt (Allgemein und Daten)
Daten anklicken und nun bei Art des Inhalts SQL-Befehl auswählen - dann in der Zeile "Inhalt" auf den Button mit den 3 Punkten klicken.
Nun kommst Du in einen Abfrageentwurf, wo Du die beteiligten Tabellen und die Datenfelder durch Doppelklick auswählen kannst.
Erste Tabelle ist Deine Hilfstabelle, 2. und weitere Tabellen mußt Du selbst kennen.
Wichtig ist nun, daß Du die ID der Hilfstabelle mit der ID Deiner Datentabelle verbindest (Beziehung aufbauen).
Du kannst die Funktionalität dieser Abfrage jederzeit während Deiner Arbeit testen. Wenn die Abfrage funktioniert, sollte der Bericht auch funktionieren.
Komme einfach zu keinem Ergebnis, egal was ich auch mache. Die angehängte Übungsdatenbank beinhaltet eine Tabelle mit Namen Ort. Dort sind die Spalten Auto-ID, Ort, Name, Straße enthalten. Eine Hilfstabelle mit Namen Hilfe beinhaltet eine Spalte mit Namen Ort und ID.

Ich bekomme es einfach nicht hin, dass mir im Bericht nur ein Ort angezeigt wird, anstelle aller Orte, die in der Tabelle enthalten sind. Es ist zum Haareraufen.

Schönen Abend noch.

Gruß

Franky
Dateianhänge
Übungen.zip
Übungsdatei
(3.18 KiB) 230-mal heruntergeladen

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Im Bericht ein Feld anzeigen

Beitrag von RobertG » Di 12. Mär 2013, 16:08

Hallo Franky,

Du willst nur einen Datensatz im Bericht sehen? Kein Formular, wo Du den auswählst? Dann mache das doch mit einer Parameterabfrage. Siehe Anhang.

Gruß

Robert
Dateianhänge
bungen.odb.zip
(6.73 KiB) 259-mal heruntergeladen
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Mr. Cutty
Beiträge: 18
Registriert: So 10. Mär 2013, 16:51

Re: Im Bericht ein Feld anzeigen

Beitrag von Mr. Cutty » Di 12. Mär 2013, 16:49

Moin Robert,

herzlichen Dank für die Antwort.
Du willst nur einen Datensatz im Bericht sehen? Kein Formular, wo Du den auswählst?
Ich glaube, ich habe gewaltig geschusselt. Du hast selbstverständlich recht, dass es über ein Formular gehen soll. Manchmal sind die Bretter vorm Kopf reichlich dick.

Mein Gedanke ist der, dass ich in einer Kochrezeptedatenbank (da habe ich eine astreine Vorlage aus dem OO Forum) in einem Formular einen Datensatz (Rezept) auswähle. Mir schwebt vor, aus diesem Formular heraus eine Einkausliste und auf Wunsch das komplette Rezept ausdrucken zu lassen. Ich dachte da an eine Geschichte über einen Button im Formular. Die vorhandene Vorlagendatenbank aus dem OO Forum ist prima zum ausprobieren. Wenn ich die Zusammenhänge begriffen habe, möchte ich eine komplett eigene Datenbank erstellen => der Ehrgeiz ist geweckt. :-)

Als ich auf die Schnelle diese kleine Übungsdatenbank erstellt habe, hatte ich natürlich nicht mehr an das Formular gedacht. Dort wird ja quasi der anzuzeigende Datendatz ausgewählt. Wenn ich nun die ID von der Rezepttabelle in die Hilfstabelle kriege, wäre das die halbe Miete, vermute ich mal. Leider muss ich gerade mit dem Hund los. Nachher werde ich das nochmal austesten. Irgendwie kann das nix Schlimmes sein, was mich verzweifeln lässt. Werde mich heute Abend nochmal diesbezüglich melden.

Gruß

Franky

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Im Bericht ein Feld anzeigen

Beitrag von RobertG » Di 12. Mär 2013, 17:39

Hallo Franky,

ich habe das noch einmal zusammengeklickt: Das Formular selbst besteht aus zwei Teilen: Hauptformular und Unterformular. Einfach einmal im Formularnavigator nachsehen. Das Hauptformular greift auf die Tabelle "Filter" zu. Abgespeichert wird, indem der Button betätigt wird. Rufst Du die Abfrage auf, dann ist da das drin, was Du haben möchtest. Das kannst Du dann im Bericht nutzen.
Direkt starten kannst Du den Bericht aus dem Formular heraus mit einem kleinen Makro - falls Du das möchtest. Dann melde Dich wieder.

Gruß

Robert
Dateianhänge
Ort_Formular_Filter.odb.zip
(13.75 KiB) 237-mal heruntergeladen
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Mr. Cutty
Beiträge: 18
Registriert: So 10. Mär 2013, 16:51

Re: Im Bericht ein Feld anzeigen

Beitrag von Mr. Cutty » Di 12. Mär 2013, 18:03

Moin Robert,

astrein, vielen Dank. Nun kann ich mal etwas rumexperimentieren und schauen, wie ich das umgesetzt bekomme. Dank solch emsiger Helfer wie Dir, macht mir der Umgang mit Base reichlich Spaß.

Edit:
Habe versucht Deine Vorschläge umzusetzen. Als Anhang habe ich mal die Datenbank von Maikäfer aus dem OO Forum angehängt, wo ich versucht habe, Deine Vorschläge einzupflegen. Irgendwie bekomme ich keine Anzeige im Bericht. Der bleibt schlicht und ergreifend leer. Vermutlich sitzt der Kinken in der Abfrage. Doch wo liegt bloß mein Gedankenfehler?

Ich habe alle benötigten Tabellen in Beziehung gesetzt, damit alle Infos (Felder) zusammengesetzt werden, die man im Bericht (tatsächlich ja Einkaufsliste) benötigt. Als da wären: Rezeptname (Tabelle Rezepte), Anzahl der Personen, Zutat (Tabelle Zutaten), Anzahl (in der Tabelle irrtümlich Gewicht genannt), Einheit (g, kg, ml, l, TL, EL, St, Ds, etc...) (alles Tabelle Anleitung).

Gruß

Franky
Dateianhänge
Übung - Rezepte.odb.zip
(27.23 KiB) 242-mal heruntergeladen

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Im Bericht ein Feld anzeigen

Beitrag von RobertG » Di 12. Mär 2013, 19:52

Hallo Franky,

das ganze hat zwei Klinken:
Der erste sitzt in der Abfrage. Da müssen alle Felder so miteinander verbunden sein, dass beim Rezept auch wirklich alle zugehörigen Zutaten usw. mit aufgenommen werden. Auch bei fehlenden Feldern muss eine Anzeige des Rezeptes möglich sein. Also besser so:

Code: Alles auswählen

SELECT "tblRezept"."Rezept", "tblRezept"."Portionen", "tblZutaten"."Zutat", "tblAnleitung"."Gewicht", "tblAnleitung"."Einheit", "tblRezept"."pkRezept" FROM "Filter" LEFT JOIN "tblRezept" ON "Filter"."Integer" = "tblRezept"."pkRezept" LEFT JOIN "tblAnleitung" ON "tblAnleitung"."fkRezept" = "tblRezept"."pkRezept" LEFT JOIN "tblZutaten" ON "tblAnleitung"."fkZutat" = "tblZutaten"."pkZutat"
Die zweite Klinke sitzt in dem Formular. Du möchtest am liebsten einen Datensatz, den Du gerade im Hauptformular aufgesucht hast, gleichzeitig in einer anderen Tabelle speichern - der Filtertabelle. Die Idee mit dem Filter ist anders konstruiert. Sie erfordert eine Eingabe der entsprechenden Primärschlüsselnummer des Rezeptes und ein Formular, das nur immer im ersten Datensatz eine Abspeicherung vornimmt - gegebenenfalls also z.B. ein Eingabefeld zum Übertragen der Rezeptnummer sowie ein Button zum Abspeichern (der momentane aktualisiert ein Formular ...). Dann funktioniert das Ganze ohne Makro. Ansonsten hilft nur ein Makro - aber da Du bereits Makros eingebaut hast müsste das auch kein Problem sein:

Code: Alles auswählen

SUB Filter_schreiben
	DIM oDoc AS OBJECT
	DIM oDrawpage AS OBJECT
	DIM oForm AS OBJECT
	DIM oFeld AS OBJECT
	DIM oDatenquelle AS OBJECT
	DIM oVerbindung AS OBJECT
	DIM oSQL_Anweisung AS OBJECT
	DIM stSql AS STRING
	DIM stInhalt AS STRING
	oDoc = thisComponent
	oDrawpage = oDoc.drawpage
	oForm = oDrawpage.forms.getByName("HF_Rezept")
	oFeld = oForm.getByName("pkRezept")
	stInhalt = oFeld.getCurrentValue()
	oDatenquelle = ThisComponent.Parent.CurrentController
	If NOT (oDatenquelle.isConnected()) THEN
		oDatenquelle.connect()
	END IF
	oVerbindung = oDatenquelle.ActiveConnection()
	oSQL_Anweisung = oVerbindung.createStatement()
	stSql = "UPDATE ""Filter"" SET ""Integer"" = '"+stInhalt+"' WHERE ""ID"" = TRUE"
	oSQL_Anweisung.executeUpdate(stSql)
	' ThisDatabaseDocument.ReportDocuments.getByName("Name deines Berichtes").open
END SUB
Das Makro sucht das Feld in dem Formular auf, in dem der Primärschlüssel steht. Den schreibt es in den Filter. Wenn Du schließlich noch einen Bericht erstellt hast, der funktioniert, dann kannst Du den Namen des Berichtes zum Schluss eintragen und der gefilterte Bericht erscheint.
Das Makro verbindest Du mit dem Button. Der Button braucht dann keine andere Funktion mehr zu haben (aktuell aktualisiert er ein Formular ...)

An eine Überarbeitung des Formulars habe ich mich nicht ran gewagt, da einige Zellen dort nicht an dem einzigen Absatz links oben in der Ecke verankert sind. Dann kann das Formular schnell lauter Verschiebungen aufweisen.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Mr. Cutty
Beiträge: 18
Registriert: So 10. Mär 2013, 16:51

Re: Im Bericht ein Feld anzeigen

Beitrag von Mr. Cutty » Di 12. Mär 2013, 19:58

Hallo Robert,

vielen herzlichen Dank für Deine Bemühungen. Dank Deiner Hilfe bin ich wieder etwas schlauer geworden. Werde mich gleich mal ransetzen und ausprobieren.

Schönen Abend noch.

Gruß

Franky


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