Berichts-Designer >Bericht extern aufrufen?
Moderator: Moderatoren
-
- ***
- Beiträge: 55
- Registriert: Do, 25.08.2005 17:42
- Wohnort: Torgau
- Kontaktdaten:
Berichts-Designer >Bericht extern aufrufen?
hallo
kann man mit dem Berichts-Designer Berichte auf Basis mehrerer Quellen, z.B. aus einer Tabelle Kunden und einer Abfrage Leistungen zusammenbringen? Gibt es Unterberichte? Oder muss man erst eine Abfrage mit allen benötigten Daten erstellen?
viele Güße
egottfried
edit:
ich habe es auf Basis einer Abfrage realisiert. Wenn ich auf Bericht ausführen klicke erhalte ich ein schon recht ordentlich aussehendes Writer Dokument zum Ausdrucken. Nun möchte man in einer Anwendung ja nicht erst in die Entwurfsansicht gehen, um von dort aus einen Bericht zu drucken. Kann man das Bericht ausführen mit einem Makro aus einem externen Formular heraus auslösen?
viele Grüsse
egottfried
kann man mit dem Berichts-Designer Berichte auf Basis mehrerer Quellen, z.B. aus einer Tabelle Kunden und einer Abfrage Leistungen zusammenbringen? Gibt es Unterberichte? Oder muss man erst eine Abfrage mit allen benötigten Daten erstellen?
viele Güße
egottfried
edit:
ich habe es auf Basis einer Abfrage realisiert. Wenn ich auf Bericht ausführen klicke erhalte ich ein schon recht ordentlich aussehendes Writer Dokument zum Ausdrucken. Nun möchte man in einer Anwendung ja nicht erst in die Entwurfsansicht gehen, um von dort aus einen Bericht zu drucken. Kann man das Bericht ausführen mit einem Makro aus einem externen Formular heraus auslösen?
viele Grüsse
egottfried
Zuletzt geändert von egottfried am Sa, 08.12.2007 19:12, insgesamt 1-mal geändert.
OpenOffice.org 3.1 / Debian Lenny
http://www.gokusa.de
http://www.gokusa.de
-
- ***
- Beiträge: 55
- Registriert: Do, 25.08.2005 17:42
- Wohnort: Torgau
- Kontaktdaten:
Berichts-Designer >Bericht extern aufrufen?
hallo, ich muss meine Frage konkretisieren.
das ist eine funktionierende Datenbank, die Formulare sind extern abgespeichert. Ich arbeite also mit Writer-Formularen und der Datenbankverbindung ohne dass die .odb selbst geöffnet wird. Nun habe ich einen Bericht mit dem Designer erstellt, um auch Angebote u. Rechnungen drucken zu können. Kann ich den so erstellten Bericht extern speichern? Wenn nicht, dann entsteht das Problem, dass beim Aufruf des intern gespeicherten Berichts die .odb mit gestartet wird u. geöffnet bleibt, was ich eigentlich vermeiden wollte.
Wer weiß einen Ausweg? Alles wieder ändern und interne Formulare nehmen?
mit freundl. Grüssen
egottfried
das ist eine funktionierende Datenbank, die Formulare sind extern abgespeichert. Ich arbeite also mit Writer-Formularen und der Datenbankverbindung ohne dass die .odb selbst geöffnet wird. Nun habe ich einen Bericht mit dem Designer erstellt, um auch Angebote u. Rechnungen drucken zu können. Kann ich den so erstellten Bericht extern speichern? Wenn nicht, dann entsteht das Problem, dass beim Aufruf des intern gespeicherten Berichts die .odb mit gestartet wird u. geöffnet bleibt, was ich eigentlich vermeiden wollte.
Wer weiß einen Ausweg? Alles wieder ändern und interne Formulare nehmen?
mit freundl. Grüssen
egottfried
Zuletzt geändert von egottfried am Sa, 08.12.2007 19:17, insgesamt 1-mal geändert.
OpenOffice.org 3.1 / Debian Lenny
http://www.gokusa.de
http://www.gokusa.de
-
- ***
- Beiträge: 55
- Registriert: Do, 25.08.2005 17:42
- Wohnort: Torgau
- Kontaktdaten:
Re: Berichts-Designer >Bericht extern aufrufen?
hallo,
hab die Fragen gekürzt und den Betreff geändert.
hoffe auf Tipps
egottfried
hab die Fragen gekürzt und den Betreff geändert.
hoffe auf Tipps
egottfried
OpenOffice.org 3.1 / Debian Lenny
http://www.gokusa.de
http://www.gokusa.de
Re: Berichts-Designer >Bericht extern aufrufen?
Passt jetzt nur indirekt. Wie kann man ein Formular benutzen, ohne die Datenbak selbst öffnen zu müssen. Die Forensuche hat mir leider nicht weitergeholfen!
Tuete
Tuete
Re: Berichts-Designer >Bericht extern aufrufen?
Hey egottfried,
verstehe - ehrlich gesagt - deine Frage nicht. Der Berichtsdesigner kann nur in Base aufgerufen werden - die Entwurfsform. Ist schliesslich ein Teil von Base. Der resultierende Bericht ist Writer-Dokument - das kannst du speichern wo immer du willst. Das ist sowieso nicht in Base "drin" und hat auch keine Verbindung mehr zur Datenbank. Der Berichtsdesigner erzeugt auf der Basis des Entwurfs per Skript einen entsprechenden Bericht - und das ist in Base drin. Aber natürlich kannst du dieses Verfahren auch manuell per Skript nachbauen - und dann das Skriptmakro irgendwo speichern... nur, was soll das bringen?
@Tuete:
In dem du das Formular extern abspeicherst - also "Speichern unter" wählst. Dann ist das unabhängig von Base, die Datenbank-verbindung bleibt aber erhalten, so dass das Formuar auch ohne geöffneten Base-Container funktioniert. Voraussetzung natürlich, die Datenbank ist in OOo angemeldet und der Pfad somit bekannt.
Viele Grüße
Thomas
verstehe - ehrlich gesagt - deine Frage nicht. Der Berichtsdesigner kann nur in Base aufgerufen werden - die Entwurfsform. Ist schliesslich ein Teil von Base. Der resultierende Bericht ist Writer-Dokument - das kannst du speichern wo immer du willst. Das ist sowieso nicht in Base "drin" und hat auch keine Verbindung mehr zur Datenbank. Der Berichtsdesigner erzeugt auf der Basis des Entwurfs per Skript einen entsprechenden Bericht - und das ist in Base drin. Aber natürlich kannst du dieses Verfahren auch manuell per Skript nachbauen - und dann das Skriptmakro irgendwo speichern... nur, was soll das bringen?
@Tuete:
In dem du das Formular extern abspeicherst - also "Speichern unter" wählst. Dann ist das unabhängig von Base, die Datenbank-verbindung bleibt aber erhalten, so dass das Formuar auch ohne geöffneten Base-Container funktioniert. Voraussetzung natürlich, die Datenbank ist in OOo angemeldet und der Pfad somit bekannt.
Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
-
- ***
- Beiträge: 55
- Registriert: Do, 25.08.2005 17:42
- Wohnort: Torgau
- Kontaktdaten:
Re: Berichts-Designer >Bericht extern aufrufen?
Hallo, Tuete
in Base mit Datei-"Kopie speichern unter" ein offenes Formular als externes Formular speichern.
Das habe ich mit meinen Formularen gemacht und folgendes erreicht:
-mit Klick auf ein Desktopsymbol öffne ich das Hauptformular.odt
-von dort starte ich über einen Button das Formular VorgangS:
In diesem Formular kann ich nach Datensätzen suchen. Es enthält Unterformulare, die auf Abfragen beruhen und berechnete Werte enthalten, so dass hier keine Eingaben möglich sind. Habe ich einen Datensatz zu bearbeiten, kann ich per Button zum Eingabeformular wechseln:
Darin kann ich den Vorgang verändern und ergänzen, weil sowohl Haupt- als auch Unterformular direkt mit den zugrunde liegenden Tabellen verbunden sind. Hier sehe ich z.B. nur Anzahl und EP, nicht den GP. Den sehe ich, wenn ich das Eingabeformular schließe und zurück wechsele zum VorgangS, wobei die V_ID erneut übergeben und das Formular neu geladen wird.
All das geschieht, ohne dass Base als Fenster geöffnet wird. Die DB-Verbindung besteht auch ohne dies. Und eben das wollte ich auch mit dem Bericht erreichen.
vielen Dank und schönen Sonntag
egottfried
in Base mit Datei-"Kopie speichern unter" ein offenes Formular als externes Formular speichern.
Das habe ich mit meinen Formularen gemacht und folgendes erreicht:
-mit Klick auf ein Desktopsymbol öffne ich das Hauptformular.odt
-von dort starte ich über einen Button das Formular VorgangS:
Code: Alles auswählen
Sub vorg_S
Dim vDoc as Object
Dim vDocCtl as Object
Dim vElement as Object
Dim vElementView as Object
Dim DocPath as String
Dim Args()
DocPath = "file:///home/gottfried/Datenbank/VorgangS.odt"
vDoc = StarDesktop.LoadComponentFromURL(DocPath,"_default",0,Args())
wait 200
vDocCtl = vDoc.getCurrentController()
vForm = vDoc.drawpage.forms(0)
vElement = vForm.getByName("start")
vDocCtl.getControl(vElement).setFocus()
wait 200
FilterAus
End Sub
Code: Alles auswählen
Sub vorg_B
Dim oDoc as Object
Dim vDoc as Object
Dim oDocCtl as Object
Dim oForm as Object
Dim oElement as Object
Dim oElementView as Object
Dim DocPath as String
Dim Args()
Dim suchtext As Integer
oDoc = ThisComponent
oDocCtl = oDoc.getCurrentController()
oForm = oDoc.drawpage.forms(0)
oElement = oForm.getByName("V_ID")
oElementView = oDocCtl.getControl(oElement)
vnr = oElementView.text
DocPath = "file:///home/gottfried/Datenbank/VorgangB.odt"
vDoc = StarDesktop.LoadComponentFromURL(DocPath,"_default",0,Args())
wait 500
vDoc = ThisComponent
vDocCtl = vDoc.getCurrentController()
vForm = vDoc.drawpage.forms(0)
vElement = vForm.getByName("V_ID")
vElement.text = vnr
suchtext = vElement.text
vForm.Filter = "(" + """V_ID""" + "=" + "'" + suchtext + "'"+ ")"
vForm.reload
vFeld2 = vForm.getByName("start")
vDocCtl.getControl(vFeld2).setFocus()
End Sub
All das geschieht, ohne dass Base als Fenster geöffnet wird. Die DB-Verbindung besteht auch ohne dies. Und eben das wollte ich auch mit dem Bericht erreichen.
der Bericht soll, nachdem ein Vorgang fertig bearbeitet wurde als Druckvorschau aufgerufen und dann (als Angebot oder Rechnung) gedruckt werden können, aus eben diesem VorgangS (Übersichtsformular) heraus. Gespeichert werden soll er im Writer-Format nicht. Du schreibst, dass wäre evtl. per Code machbar. Wo findet man etwas darüber? Zusätzlich müsste in meinem Anwendungsfalle auch noch die V_ID als Filter an den Bericht übergeben werden. Das wäre dann ideal.@ Toxitom - ...nur, was soll das bringen?
vielen Dank und schönen Sonntag
egottfried
OpenOffice.org 3.1 / Debian Lenny
http://www.gokusa.de
http://www.gokusa.de
Re: Berichts-Designer >Bericht extern aufrufen?
Wow, danke!
Gleich mal alles testen!
Tuete
Gleich mal alles testen!
Tuete
Re: Berichts-Designer >Bericht extern aufrufen?
Hey egottfried,
Ungetestet: Evt. kannst du ja auch per Code Base im "hidden"-Mode aufrufen und dann dort den Bericht starten??
Gruss
Thomas
Der Berichtsdesigner macht ja auch nichts anderes, als eine Writerdatei per Code zu erzeugen. Das kannst du natürlich auf der Basis der Formulare auch direkt per Basic machen. Das Formular beinhaltet dja auch das Resultset, also die ausgewählten Daten. Die kannst du bequem per Code (z.B. Basic) auslesen und in eine Writertabelle eintragen - bzw. ein komplettes Writer-Dokument erzeugen. Ist aber ziemlicher Aufwand. Ein kleines Beispiel habe ich mal in meinem Base-Buch beschrieben - das meinte ich mit "per Code erstellen".egottfried hat geschrieben:Du schreibst, dass wäre evtl. per Code machbar. Wo findet man etwas darüber?
Ungetestet: Evt. kannst du ja auch per Code Base im "hidden"-Mode aufrufen und dann dort den Bericht starten??
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic