You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@openoffice.apache.org by "technik_div@jrsch.de" <te...@jrsch.de> on 2018/04/26 11:05:04 UTC
Makro druckt falsche Datei
Hallo,
ich habe ein Problem beim Drucken per makro.
ich habe eine be.ods Datei mit dem Makro Liste_drucken
gleichzeitig ist die Datei bu.odt offen.
ich rufe in be.ods das Makro drucken auf und es wird Bu.odt gedruckt.
(bzw. will gedruckt werden)
Ich weiss nicht, woran das liegen könnte.
Horst
Hier das Makro. Das makro ist schon älter, man kann es eleganter lösen.
sub Liste_drucken
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 5
gehezu("Liste.a1:K20000") REM geht zu der Liste
rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Copies"
args2(0).Value = 1
args2(1).Name = "Selection"
args2(1).Value = true
args2(2).Name = "Collate"
args2(2).Value = false
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args2())
end sub
---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org
Re: Es wird immer die odt datei gedruckt, wenn eine offen ist. war:
Makro druckt falsche Datei
Posted by Oliver Brinzing <Ol...@gmx.de>.
Hallo,
verknüpfe die Druck Schaltfläche im Dokument mit einem Makro und hole Dir das Dokument Object über
das Event:
OPTION EXPLICIT
Sub Drucken(oEvt as Object)
Dim oDoc as Object
Dim oBtn as Object
oBtn = oEvt.Source.Model
oDoc = oBtn.getParent.getParent.getParent
MsgBox oBtn.Name & Chr(13) & oDoc.URL
End Sub
Gruß
Oliver
Am 31.05.2018 um 14:26 schrieb technik_div@jrsch.de:
> Hallo,
>
> findet sich keine Idee, woran das liegen könnte. Es wird immer die odt Datei gedruckt, wenn eine
> offen ist statt der ods Datei, die gedruckt werden sollte. Es ist nicht das Makro.
>
> Woran kann das denn liegen.
>
>
> Horst
>
>
>
> -------- Weitergeleitete Nachricht --------
> Betreff: Makro druckt falsche Datei
> Datum: Thu, 26 Apr 2018 13:05:04 +0200
> Von: technik_div@jrsch.de <te...@jrsch.de>
> Antwort an: users-de@openoffice.apache.org
> An: users-de@openoffice.apache.org
>
>
>
> Hallo,
>
> ich habe ein Problem beim Drucken per makro.
>
> ich habe eine be.ods Datei mit dem Makro Liste_drucken
>
> gleichzeitig ist die Datei bu.odt offen.
>
> ich rufe in be.ods das Makro drucken auf und es wird Bu.odt gedruckt.
> (bzw. will gedruckt werden)
>
> Ich weiss nicht, woran das liegen könnte.
>
>
> Horst
>
> Hier das Makro. Das makro ist schon älter, man kann es eleganter lösen.
>
> sub Liste_drucken
> rem ----------------------------------------------------------------------
> rem define variables
> dim document as object
> dim dispatcher as object
> rem ----------------------------------------------------------------------
> rem get access to the document
> document = ThisComponent.CurrentController.Frame
> dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
>
> dim args1(0) as new com.sun.star.beans.PropertyValue
> args1(0).Name = "Nr"
> args1(0).Value = 5
> gehezu("Liste.a1:K20000") REM geht zu der Liste
>
> rem ----------------------------------------------------------------------
> dim args2(2) as new com.sun.star.beans.PropertyValue
> args2(0).Name = "Copies"
> args2(0).Value = 1
> args2(1).Name = "Selection"
> args2(1).Value = true
> args2(2).Name = "Collate"
> args2(2).Value = false
>
> dispatcher.executeDispatch(document, ".uno:Print", "", 0, args2())
> end sub
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
> For additional commands, e-mail: users-de-help@openoffice.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org
RE: Es wird immer die odt datei gedruckt, wenn eine offen ist. war: Makro druckt falsche Datei
Posted by Jörg Schmidt <jo...@j-m-schmidt.de>.
Hallo,
> From: technik_div@jrsch.de [mailto:technik_div@jrsch.de]
> Sent: Monday, June 04, 2018 10:38 AM
> To: users-de@openoffice.apache.org
> Subject: Re: Es wird immer die odt datei gedruckt, wenn eine
> offen ist. war: Makro druckt falsche Datei
> Vermutlich muss ich OO mal neu installieren. Ich werde mich dann noch
> mal melden.
Ganz sicher muss Du das nicht, denn dadurch ändert sich nichts.
Stattdessen benenne das OO-Benutzerverzeichnis um und starte OO dann neu:
http://de.openoffice.info/viewtopic.php?f=27&t=54231#p206070
Gruß
Jörg
---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org
Re: Es wird immer die odt datei gedruckt, wenn eine offen ist. war:
Makro druckt falsche Datei
Posted by "technik_div@jrsch.de" <te...@jrsch.de>.
Hallo alle, die geantwortet haben, danke erst einmal.
Ich habe die verschiedenen Vorschläge durchprobiert, aber es scheint ein
Problem tiefer im System zu sein.
Bei den Testläufen war der Dokumenttitel immer korrekt eingetragen.
Der Fehler tritt auch auf, wenn ich direkt drucken will, also ohne Makro.
Vermutlich muss ich OO mal neu installieren. Ich werde mich dann noch
mal melden.
Horst
Am 31.05.2018 um 14:26 schrieb technik_div@jrsch.de:
> Hallo,
>
> findet sich keine Idee, woran das liegen könnte. Es wird immer die odt
> Datei gedruckt, wenn eine offen ist statt der ods Datei, die gedruckt
> werden sollte. Es ist nicht das Makro.
>
> Woran kann das denn liegen.
>
>
> Horst
>
>
>
> -------- Weitergeleitete Nachricht --------
> Betreff: Makro druckt falsche Datei
> Datum: Thu, 26 Apr 2018 13:05:04 +0200
> Von: technik_div@jrsch.de <te...@jrsch.de>
> Antwort an: users-de@openoffice.apache.org
> An: users-de@openoffice.apache.org
>
>
>
> Hallo,
>
> ich habe ein Problem beim Drucken per makro.
>
> ich habe eine be.ods Datei mit dem Makro Liste_drucken
>
> gleichzeitig ist die Datei bu.odt offen.
>
> ich rufe in be.ods das Makro drucken auf und es wird Bu.odt gedruckt.
> (bzw. will gedruckt werden)
>
> Ich weiss nicht, woran das liegen könnte.
>
>
> Horst
>
> Hier das Makro. Das makro ist schon älter, man kann es eleganter lösen.
>
> sub Liste_drucken
> rem
> ----------------------------------------------------------------------
> rem define variables
> dim document as object
> dim dispatcher as object
> rem
> ----------------------------------------------------------------------
> rem get access to the document
> document = ThisComponent.CurrentController.Frame
> dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
>
> dim args1(0) as new com.sun.star.beans.PropertyValue
> args1(0).Name = "Nr"
> args1(0).Value = 5
> gehezu("Liste.a1:K20000") REM geht zu der Liste
>
> rem
> ----------------------------------------------------------------------
> dim args2(2) as new com.sun.star.beans.PropertyValue
> args2(0).Name = "Copies"
> args2(0).Value = 1
> args2(1).Name = "Selection"
> args2(1).Value = true
> args2(2).Name = "Collate"
> args2(2).Value = false
>
> dispatcher.executeDispatch(document, ".uno:Print", "", 0, args2())
> end sub
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
> For additional commands, e-mail: users-de-help@openoffice.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org
RE: Es wird immer die odt datei gedruckt, wenn eine offen ist. war: Makro druckt falsche Datei
Posted by Jörg Schmidt <jo...@j-m-schmidt.de>.
Hallo,
> From: Wolfgang Jäth [mailto:jawo.ml.hamster@arcor.de]
> "document.Title" steht. Ich hab gerade mal ein bisschen herum
> gespielt,
> und bei mir zumindest steht da steht immer korrekt /das/
> Dokument drin,
imho:
_wenn_ der Titel korrekt angezeigt wird, dann läuft auch das Makro richtig, ein andersartiger Fehler (richtige Titelanzeige und falscher Makrolauf) wäre völlig unerklärlich, denn der dazu nötig Bug im API (application programming interface) wäre längst vielen Nutzern aufgefallen.
> bei dem ich auch "Extras => Makros => Ausführen => ..." [1]
> aufgerufen habe.
So wollte es auch sein, deswegen ist mir das Problem ziemlich unerklärlich, gerade bei einem Dokumentmakro (ich könnte es auch für ein lokal gespeichertes Makro nicht erklären).
> [1] Btw. wollte ich das eigentlich bequemerweise auf eine Tastenkombi
> legen, aber irgendwie funktioniert das nur mit Tabellen-Dateien, nicht
> mit Writer; auch wenn ich im Anpassen-Dialog (X) OpenOffice
> selektiere.
kann ich nicht bestätigen, sondrn funktioniert bei mir (getestet mit ALT+W unter AOO 4.1.5)
Gruß
Jörg
---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org
Re: Es wird immer die odt datei gedruckt, wenn eine offen ist. war:
Makro druckt falsche Datei
Posted by Wolfgang Jäth <ja...@arcor.de>.
Am 31.05.2018 um 16:19 schrieb Jörg Schmidt:
> Hallo,
>
>> From: technik_div@jrsch.de [mailto:technik_div@jrsch.de]
>
>> findet sich keine Idee, woran das liegen könnte. Es wird
>> immer die odt
>> Datei gedruckt, wenn eine offen ist statt der ods Datei, die gedruckt
>> werden sollte. Es ist nicht das Makro.
>>
>> Woran kann das denn liegen.
>
> Es liegt in jedem Falle daran das das Makro den Bezug zum falschen ThisComponent-Objekt herstellt, warum es das aber tut, dafür habe ich bei einem im Dokument gespeicherten Makro spontan keine Erklärung.
>
> Um das Drucken des richtigen Dokumentes zu erreichen musst Du notfalls die Herstellung des richtigen ThisComponent-Bezuges erzwingen indem Du anhand einer Eigenschaft das richtige Dokument bestimmst, z.B. am Titel.
Vielleicht sollte Horst überhaupt erst mal prüfen, was nach der
Zuweisung "document = ThisComponent.CurrentController.Frame" in
"document.Title" steht. Ich hab gerade mal ein bisschen herum gespielt,
und bei mir zumindest steht da steht immer korrekt /das/ Dokument drin,
bei dem ich auch "Extras => Makros => Ausführen => ..." [1] aufgerufen habe.
Evtl. ist letzteres auch ein Ansatzpunkt, nämlich die Frage, wie genau
Horst das Makro aufruft. Und auch nochmal *ganz* genau überprüfen, wo
das Makro tatsächlich gespeicehrt ist (in einem der Dokumente? Unter
"Meine Maktros"? ...?).
[1] Btw. wollte ich das eigentlich bequemerweise auf eine Tastenkombi
legen, aber irgendwie funktioniert das nur mit Tabellen-Dateien, nicht
mit Writer; auch wenn ich im Anpassen-Dialog (X) OpenOffice selektiere.
Hab ich aber jetzt nicht genauer untersucht.
> rem get access to the document
> document = tc.CurrentController.Frame
> dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Hier auf die "dispatcher"-Zeile nen Breakpoint setzen, und "document"
unten in den Beobachter eintragen, Makro starten, und dann im
Beobachtungsfeld nachschauen.
Wolfgang
--
Dank Donald Trump ist mir endgültig klar geworden: Es ist nicht der Turm
von Pisa, der in Schieflage geraten ist, es ist die Welt.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org
RE: Es wird immer die odt datei gedruckt, wenn eine offen ist. war: Makro druckt falsche Datei
Posted by Jörg Schmidt <jo...@j-m-schmidt.de>.
Hallo,
> From: technik_div@jrsch.de [mailto:technik_div@jrsch.de]
> findet sich keine Idee, woran das liegen könnte. Es wird
> immer die odt
> Datei gedruckt, wenn eine offen ist statt der ods Datei, die gedruckt
> werden sollte. Es ist nicht das Makro.
>
> Woran kann das denn liegen.
Es liegt in jedem Falle daran das das Makro den Bezug zum falschen ThisComponent-Objekt herstellt, warum es das aber tut, dafür habe ich bei einem im Dokument gespeicherten Makro spontan keine Erklärung.
Um das Drucken des richtigen Dokumentes zu erreichen musst Du notfalls die Herstellung des richtigen ThisComponent-Bezuges erzwingen indem Du anhand einer Eigenschaft das richtige Dokument bestimmst, z.B. am Titel.
Sub Main
Dim tc As Object
alles = Stardesktop.getComponents
elemente = alles.createEnumeration
Do While elemente.hasmoreElements
aktuell = elemente.NextElement
If HasUnoInterfaces(aktuell, "com.sun.star.frame.XModel") Then
If aktuell.title = "be.ods" Then
tc = aktuell
Exit Do
End If
End If
Loop
rem
----------------------------------------------------------------------
rem define variables
dim dispatcher as object
rem
----------------------------------------------------------------------
rem get access to the document
document = tc.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 5
gehezu("Liste.a1:K20000") REM geht zu der Liste
rem
----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Copies"
args2(0).Value = 1
args2(1).Name = "Selection"
args2(1).Value = true
args2(2).Name = "Collate"
args2(2).Value = false
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args2())
End Sub
Gruß
Jörg
---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org
Es wird immer die odt datei gedruckt, wenn eine offen ist. war: Makro
druckt falsche Datei
Posted by "technik_div@jrsch.de" <te...@jrsch.de>.
Hallo,
findet sich keine Idee, woran das liegen könnte. Es wird immer die odt
Datei gedruckt, wenn eine offen ist statt der ods Datei, die gedruckt
werden sollte. Es ist nicht das Makro.
Woran kann das denn liegen.
Horst
-------- Weitergeleitete Nachricht --------
Betreff: Makro druckt falsche Datei
Datum: Thu, 26 Apr 2018 13:05:04 +0200
Von: technik_div@jrsch.de <te...@jrsch.de>
Antwort an: users-de@openoffice.apache.org
An: users-de@openoffice.apache.org
Hallo,
ich habe ein Problem beim Drucken per makro.
ich habe eine be.ods Datei mit dem Makro Liste_drucken
gleichzeitig ist die Datei bu.odt offen.
ich rufe in be.ods das Makro drucken auf und es wird Bu.odt gedruckt.
(bzw. will gedruckt werden)
Ich weiss nicht, woran das liegen könnte.
Horst
Hier das Makro. Das makro ist schon älter, man kann es eleganter lösen.
sub Liste_drucken
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 5
gehezu("Liste.a1:K20000") REM geht zu der Liste
rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Copies"
args2(0).Value = 1
args2(1).Name = "Selection"
args2(1).Value = true
args2(2).Name = "Collate"
args2(2).Value = false
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args2())
end sub
---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org
Re: Makro druckt falsche Datei
Posted by "technik_div@jrsch.de" <te...@jrsch.de>.
Hallo noch mal.
Ich habe das Problem auch in einem zweiten Dokument mit einfacherem
Programm.
Gedruckt werden soll eine Calc Tabelle, die angewählt ist und in der
auch das Makro liegt.
Gedruckt wird eine odt Tabelle, die auch offen ist, aber nicht angewählt.
Woran liegt das? Was kann man tun? (Außer die andere Datei schließen,
was aber keine Option ist.)
Ich habe gerade versucht normal zu drucken und da wird auch die andere
Datei gedruckt. Dann habe ich die odt Datei geschlossen, gedruckt und
erhielt einen Fatal error mit Absturz
nach Neustart ist die odt nicht geöffnet und das Drucken funktioniert
normal. Öffne ich die odt wieder, geht der Druckbefehl wieder an diese
Datei.
Horst
Die sub ist wohl uninteressant, trotzdem hier:
sub AbrechnungDrucken
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Copies"
args1(0).Value = 1
args1(1).Name = "Collate"
args1(1).Value = true
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args1())
end sub
Am 26.04.2018 um 13:05 schrieb technik_div@jrsch.de:
>
> rem -----------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org