Makro und Seriendruck

Das Textverarbeitungsprogramm

Moderator: Moderatoren

joe0107
Beiträge: 6
Registriert: Fr, 04.04.2008 09:39

Makro und Seriendruck

Beitrag von joe0107 »

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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makro und Seriendruck

Beitrag von komma4 »

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.
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)
joe0107
Beiträge: 6
Registriert: Fr, 04.04.2008 09:39

Re: Makro und Seriendruck

Beitrag von joe0107 »

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
joe0107
Beiträge: 6
Registriert: Fr, 04.04.2008 09:39

Re: Makro und Seriendruck

Beitrag von joe0107 »

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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Makro und Seriendruck

Beitrag von Stephan »

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, welche denn? Das Dir andere Nutzer auf Deine Fragen die Antworten auf dem Silbertablett servieren?
Ich versuche mich ernsthaft in die Materie von OO einzuarbeiten und finde im Forum leider auch Anfragen, die nach mehreren Tagen keine Antwort erhalten.
Ja und, wo ist da ein Problem - Antwortgarantie gibts in einem rein freiwilligen Forum wohl kaum.
Wieviele potentielle OO-Kunden gehen dadurch vielleicht wieder zu Microsoft?!
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).
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
joe0107
Beiträge: 6
Registriert: Fr, 04.04.2008 09:39

Re: Makro und Seriendruck

Beitrag von joe0107 »

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
joe0107
Beiträge: 6
Registriert: Fr, 04.04.2008 09:39

Re: Makro und Seriendruck

Beitrag von joe0107 »

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 8) ; 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
Antworten