Liebe Spezialisten,
ich habe eine Rechnungsvorlage mit einer Verknüpfung zu einer Base-Datenbank erstellt. Über Abfragen werden die Felder für die Rechnungsvorlage bereitgestellt (Adress- und Abrechnungsdaten). Nun möchte ich die Vorlage für den Rechnungsseriendruck verwenden und mit einem Makro aufrufen - aber der Makrorecorder zeichnet nichts auf!
Kennt jemand eine Makrokonstruktion, die die Seriendruckmaske mit der Datenbank-Abfrage-Ansicht aufruft? Ich komme einfach nicht weiter!!!
Dank im Voraus für jede Hilfestellung
Jörg
Makro und Seriendruck
Moderator: Moderatoren
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Makro und Seriendruck
Wenn die Felder in der Vorlage aus einer Abfrage kommen ... dann wird IMHO bei Erstellung eines neuen Dokuments die Abfrage ausgeführt.
Spätestens beim "Drucken" wird der SB-Dialog aufgerufen.
Probiere es mal aus.
Spätestens beim "Drucken" wird der SB-Dialog aufgerufen.
Probiere es mal aus.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Makro und Seriendruck
Hallo Winfried - komma4,
habe erst heute Deine Antwort entdeckt - hatte die Hoffnung auf Antwort schon völlig aufgegeben!!
Leider verstehe ich Deinen Hinweis nicht und hatte in der Zwischenzeit folgenden Weg beschritten:
Sub VorlageEinzelrechnungF4
rem OO-Vorlagendatei (.ott) ist hier die Einzelrechnung
rem nach Aufruf der Vorlage soll das Datenquellenfenster geöffnet werden
rem und die zugehörige Abfrage gestartet und zum Druck übergeben werden
sDatei = "C:\Dokumente und Einstellungen\Jörg\Anwendungsdaten\OpenOffice.org2\user\template\Einzelrechnung.ott"
sURL = ConvertToURL(sDatei)
oDokument=StarDesktop.loadComponentFromURL(sURL, "blank", 0, Array())
istleer = IsNull(oDokument)
If istleer=True then
MsgBox "Dokument nicht geöffnet"
End If
rem Einzelrechnung öffnen
rem define variables
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem Datenquellenfenster öffnen - F4
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ViewDataSourceBrowser"
args1(0).Value = true
dispatcher.executeDispatch(document, ".uno:ViewDataSourceBrowser", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ViewDataSourceBrowser"
args2(0).Value = true
dispatcher.executeDispatch(document, ".uno:ViewDataSourceBrowser", "", 0, args2())
rem hier geht es nicht weiter, da ich den Cursor nicht auf die richtige Abfrage bekomme
End Sub
Hier hänge ich jetzt fest, da ich nicht weis, wie ich den Cursor auf eine der 3 vorhandenen Abfragen steuere und dann starte sowie zum Druck übergebe!
Siehst Du hier einen Weg oder ist der Ansatz unzweckmäßig?
Bin für jede Hilfe dankbar
Jörg
habe erst heute Deine Antwort entdeckt - hatte die Hoffnung auf Antwort schon völlig aufgegeben!!
Leider verstehe ich Deinen Hinweis nicht und hatte in der Zwischenzeit folgenden Weg beschritten:
Sub VorlageEinzelrechnungF4
rem OO-Vorlagendatei (.ott) ist hier die Einzelrechnung
rem nach Aufruf der Vorlage soll das Datenquellenfenster geöffnet werden
rem und die zugehörige Abfrage gestartet und zum Druck übergeben werden
sDatei = "C:\Dokumente und Einstellungen\Jörg\Anwendungsdaten\OpenOffice.org2\user\template\Einzelrechnung.ott"
sURL = ConvertToURL(sDatei)
oDokument=StarDesktop.loadComponentFromURL(sURL, "blank", 0, Array())
istleer = IsNull(oDokument)
If istleer=True then
MsgBox "Dokument nicht geöffnet"
End If
rem Einzelrechnung öffnen
rem define variables
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem Datenquellenfenster öffnen - F4
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ViewDataSourceBrowser"
args1(0).Value = true
dispatcher.executeDispatch(document, ".uno:ViewDataSourceBrowser", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ViewDataSourceBrowser"
args2(0).Value = true
dispatcher.executeDispatch(document, ".uno:ViewDataSourceBrowser", "", 0, args2())
rem hier geht es nicht weiter, da ich den Cursor nicht auf die richtige Abfrage bekomme
End Sub
Hier hänge ich jetzt fest, da ich nicht weis, wie ich den Cursor auf eine der 3 vorhandenen Abfragen steuere und dann starte sowie zum Druck übergebe!
Siehst Du hier einen Weg oder ist der Ansatz unzweckmäßig?
Bin für jede Hilfe dankbar
Jörg
Re: Makro und Seriendruck
Hallo Wolfgang - wolle 2000,
ich habe lange überlegt, was ich zu Deiner Antwort schreiben soll. Ich denke, dass Du Dir wahrscheinlich nicht Deiner Wirkung bewusst bist und deshalb den 'Weg des geringsten Widerstandes' gegangen bist! Ich glaube, dass sich kaum einer im Forum nur als 'Freak' meldet, sondern jeder ein Problem lösen möchte oder muss. Klar, es ist für mich kein Problem, woanders mein Problem zu schildern und auf Antwort zu hoffen, aber ich wünsche mir eine andere Qualität in der Forengemeinde, als die typische Haltung in einem 'Beamtenladen', wo die Zuständigkeit im Vordergrund steht. Ich versuche mich ernsthaft in die Materie von OO einzuarbeiten und finde im Forum leider auch Anfragen, die nach mehreren Tagen keine Antwort erhalten.
Wieviele potentielle OO-Kunden gehen dadurch vielleicht wieder zu Microsoft?!
Du hast mir freundlich mitgeteilt, mich woanders hinzuwenden und ich bitte Dich in aller Freundlichkeit, meine Frage an einen kompetenten Mitarbeiter - z.B. Winfried - weiterzuleiten.
Mit freundlichem Gruss
Jörg
ich habe lange überlegt, was ich zu Deiner Antwort schreiben soll. Ich denke, dass Du Dir wahrscheinlich nicht Deiner Wirkung bewusst bist und deshalb den 'Weg des geringsten Widerstandes' gegangen bist! Ich glaube, dass sich kaum einer im Forum nur als 'Freak' meldet, sondern jeder ein Problem lösen möchte oder muss. Klar, es ist für mich kein Problem, woanders mein Problem zu schildern und auf Antwort zu hoffen, aber ich wünsche mir eine andere Qualität in der Forengemeinde, als die typische Haltung in einem 'Beamtenladen', wo die Zuständigkeit im Vordergrund steht. Ich versuche mich ernsthaft in die Materie von OO einzuarbeiten und finde im Forum leider auch Anfragen, die nach mehreren Tagen keine Antwort erhalten.
Wieviele potentielle OO-Kunden gehen dadurch vielleicht wieder zu Microsoft?!
Du hast mir freundlich mitgeteilt, mich woanders hinzuwenden und ich bitte Dich in aller Freundlichkeit, meine Frage an einen kompetenten Mitarbeiter - z.B. Winfried - weiterzuleiten.
Mit freundlichem Gruss
Jörg
Re: Makro und Seriendruck
Ja, welche denn? Das Dir andere Nutzer auf Deine Fragen die Antworten auf dem Silbertablett servieren?aber ich wünsche mir eine andere Qualität in der Forengemeinde, als die typische Haltung in einem 'Beamtenladen', wo die Zuständigkeit im Vordergrund steht.
Ja und, wo ist da ein Problem - Antwortgarantie gibts in einem rein freiwilligen Forum wohl kaum.Ich versuche mich ernsthaft in die Materie von OO einzuarbeiten und finde im Forum leider auch Anfragen, die nach mehreren Tagen keine Antwort erhalten.
Dürfe den hier Anwesenden relativ gleich sein. Mir zum Beispiel ist es gleich, denn ich leiste hier Hilfe bei Fragen, habe aber keine Absicht dazu hier das Programm zu bewerben (das mache ich anderswo).Wieviele potentielle OO-Kunden gehen dadurch vielleicht wieder zu Microsoft?!
Du hast mir freundlich mitgeteilt, mich woanders hinzuwenden und ich bitte Dich in aller Freundlichkeit, meine Frage an einen kompetenten Mitarbeiter - z.B. Winfried - weiterzuleiten.
Hier wird wohl keiner irgendwas weiterleiten - außerdem gibt es hier keine Mitarbeiter, das Forum hier ist unabhängig, hier tauschen sich Nutzer von OOo auf rein freiwilliger Grundlage aus - hier ist nicht das OOo-Projekt.
Gruß
Stephan
Re: Makro und Seriendruck
Hallo Wolfgang,
entschuldige die von mir ausgelösten Irritationen, aber ich habe verzweifelt nach einer Lösung gesucht
.
Vielleicht interessiert den Einen oder Anderen doch eine Lösung meiner Anfrage, für die ich mich bei Thomas Krumbein und den Vorlagebeispielen von http://www.cfb-service.de bedanken möchte
:
Sub VorlageEinzelrechnung
rem ----------------------------------------------------------------------
rem OO-Vorlagendatei (.ott) ist hier die VorlageEinzelrechnung
rem Vorlagendatei laden von
sDatei = "C:\Dokumente und Einstellungen\Jörg\Anwendungsdaten\OpenOffice.org2\user\template\VorlageEinzelrechnung.ott"
sURL = ConvertToURL(sDatei)
oDokument=StarDesktop.loadComponentFromURL(sURL, "blank", 0, Array())
istleer = IsNull(oDokument)
If istleer=True then
MsgBox "Dokument nicht geöffnet"
End If
rem Vorlage Einzelrechnung öffnen
rem Verbindung zum aktuellen Dokument
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Rem Das geöffnete/aktuelle Dokument drucken
oDoc = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem Druck anstoßen
dim args() as new com.sun.star.beans.PropertyValue
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args())
End Sub
Jetzt erscheint für das jeweilige aktuelle Seriendruckdokument die Abfrage:
'Ihr Dokument enthält Adressdatenbank-Felder. Möchten Sie einen Serienbrief drucken? Ja/Nein/Hilfe - und das war's!
Mit freundlichem Gruss
Jörg
entschuldige die von mir ausgelösten Irritationen, aber ich habe verzweifelt nach einer Lösung gesucht

Vielleicht interessiert den Einen oder Anderen doch eine Lösung meiner Anfrage, für die ich mich bei Thomas Krumbein und den Vorlagebeispielen von http://www.cfb-service.de bedanken möchte

Sub VorlageEinzelrechnung
rem ----------------------------------------------------------------------
rem OO-Vorlagendatei (.ott) ist hier die VorlageEinzelrechnung
rem Vorlagendatei laden von
sDatei = "C:\Dokumente und Einstellungen\Jörg\Anwendungsdaten\OpenOffice.org2\user\template\VorlageEinzelrechnung.ott"
sURL = ConvertToURL(sDatei)
oDokument=StarDesktop.loadComponentFromURL(sURL, "blank", 0, Array())
istleer = IsNull(oDokument)
If istleer=True then
MsgBox "Dokument nicht geöffnet"
End If
rem Vorlage Einzelrechnung öffnen
rem Verbindung zum aktuellen Dokument
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Rem Das geöffnete/aktuelle Dokument drucken
oDoc = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem Druck anstoßen
dim args() as new com.sun.star.beans.PropertyValue
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args())
End Sub
Jetzt erscheint für das jeweilige aktuelle Seriendruckdokument die Abfrage:
'Ihr Dokument enthält Adressdatenbank-Felder. Möchten Sie einen Serienbrief drucken? Ja/Nein/Hilfe - und das war's!
Mit freundlichem Gruss
Jörg
Re: Makro und Seriendruck
Ergänzung zum Makro:
Ich habe festgestellt, dass das Makro unterschiedliche Ergebnisse liefert, wenn es aus der Bibliothek 'Meine Makros/Standard/Module1' oder aus einem am Dokument gespeicherten Makro (z.B.Bibliothek 'Unbenannt1/Standard/Module1') gestartet wird!
Kann ich zwar nicht verstehen, noch erklären
; aber wenn Ihr das o.g. Makro in der Bibliothek 'Meine Makros' speichert und startet, sollte der Seriendruck funktionieren
, ansonsten erscheint -ungewollterweise- die vorhandene Standarddruckermaske, die den Seriendruck umgeht
!
Gruss
Jörg
Ich habe festgestellt, dass das Makro unterschiedliche Ergebnisse liefert, wenn es aus der Bibliothek 'Meine Makros/Standard/Module1' oder aus einem am Dokument gespeicherten Makro (z.B.Bibliothek 'Unbenannt1/Standard/Module1') gestartet wird!
Kann ich zwar nicht verstehen, noch erklären



Gruss
Jörg