Start eines Makros

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Start eines Makros

Beitrag von Stephan »

Ich will dir nichts böses, aber hast du meinen letzten Post überhaupt gelesen?
Ja.
Ich hab euch gesagt, das entsprechender Code und Beispieldateien morgen folgen
Ja, auch das habe ich gelesen - aber offen gesagt ist das eine Aussage von Dir die doch offensichtlich erst die Reaktion auf massives Drängeln ist das wir Code sehen wollen.

Das 'Tolle' ist nun das inzwischen der Thread soweit gediehen ist, das es zumindest für meine Frage keinen Code mehr braucht, denn meine Frage ist kurz und knapp:

Erzeugst Du die Datei aus einer Vorlage(ndatei) indem Du die Vorlage per Code startest?

[ ] ja
[ ] nein

Falls ja, verwendest Du im ParameterArray die Property-Value "MacroExecutionMode"?

[ ] ja
[ ] nein


Falls nein, dürfte die Wahrscheinlichkeit hoch sein das es daran liegt das Du "MacroExecutionMode" nicht verwendest, wie DPunch wohl bereits vermutet hat.

.....auf mehr von dir gehe ich nicht mehr ein
Nun ja, ich bin ungehalten, aber wundert Dich das? Ehrlich, wenn Du Makros für Kunden schreibst solltest Du mit etwas Frage-Antwort hier im Forum souveräner umgehen können.
Edit: @ DPunch:
Deine Beispieldatei beschreibt genau das Verhalten, was ich euch aufzeige:
NEIN, DAS TUT SIE EBEN NICHT - hättest Du Dich der winzigen Mühe unterzogen die MSG-Box aus der Datei zu entfernen (wie ich es in untenstehender Datei getan habe) wüßtest Du das längst.



Gruß
Stephan
Dateianhänge
Vorlage_Event_ohneMSG.ott
(10.45 KiB) 71-mal heruntergeladen
Philipp_19
****
Beiträge: 115
Registriert: Mo, 29.08.2011 09:01
Wohnort: Duisburg

Re: Start eines Makros

Beitrag von Philipp_19 »

Stephan hat geschrieben:Erzeugst Du die Datei aus einer Vorlage(ndatei) indem Du die Vorlage per Code startest?
Nein.
Stephan hat geschrieben:Nun ja, ich bin ungehalten, aber wundert Dich das? Ehrlich, wenn Du Makros für Kunden schreibst solltest Du mit etwas Frage-Antwort hier im Forum souveräner umgehen können.
Und du bist auf Grund deines ach so enorem Wissenstandes dazu berechtigt, alles und jeden blöd anzumachen, nur weil man nicht sofort deiner Meinung ist und einfach mal auf seinen Beobachtungen behaart, damit man auf seine Frage eine vernünftige Antwort bekommt?
Stephan hat geschrieben:aber offen gesagt ist das eine Aussage von Dir die doch offensichtlich erst die Reaktion auf massives Drängeln ist das wir Code sehen wollen.
Ich hab dir relativ früh ein Makro geschickt, auf das mein Problem zutrifft. Mehr gibt es dazu eigentlich nicht. Von mir aus könnte im zweiten Makro Zelle1+Zelle2 gerechnet werden, oder eben mit Strichen ein Haus gebaut werden. Das entsprechende Makro habt ihr vorliegen. Anstatt jetzt hier so einen Aufstand zu machen, hatte ich lediglich darum gebeten, mir eine Erklärung für dieses VERHALTEN zu geben.
Ich will hier keine Lösungen, das scheint ihr nicht zu verstehen. Die habe ich dank meinen MessageBoxen, da es, Gott weiß warum, seitdem funktioniert!!!!!!
Ich wollte VON ANFANG AN lediglich wissen, warum mir ausgerechnet so eine dumme MessageBox das erwartete Ergebnis geliefert hat.
Und daher auch meine Vermutungen.
Alles was dahinter steht kann euch im Endeffekt geschmiert sein. Ihr habt einen Code, der funktioniert mit Box nicht, mit aber schon. Punkt. WARUM?
Windows XP, OOo 3.3.0
oder
Windows 7, OOo 3.3.0
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Start eines Makros

Beitrag von Stephan »

Nein.
Mmmh, da bin ich jetzt überrascht.

Um jeden Zweifel auszuschließen:

Du nutzt also keinen Makrocode um mit Hilfe der Vorlagendatei eine neu Datei zu erzeugen, d.h. Du startest die *.ott per Hand über Datei-Neu oder über Kontextmenü oder ähnlich?

Und du bist auf Grund deines ach so enorem Wissenstandes dazu berechtigt, alles und jeden blöd anzumachen, nur weil man nicht sofort deiner Meinung ist und einfach mal auf seinen Beobachtungen behaart
Nein, und um genau solche Antworten, die mir unterstellen ich wüßte alles besser, zu vermeiden hatte ich bereits aus Vorsicht deutlich gemacht:
das hat im Übrigen nichts damit zu tun das ich mich für unfehlbar halte
Mehr gibt es dazu eigentlich nicht.
DU SELBST hast BEVOR Du das Makro geschickt hast bereits eine Codezeile gepostet die im Makro garnicht vorkommt.
Ich will hier keine Lösungen
Und warum fragst du dann:
Diese Dokumente sind für Kunden, und am besten wäre es, wenn ich diese MsgBox durch irgendwas ersetzen kann, was der Kunde nicht jedes mal wegklicken muss.
Anstatt jetzt hier so einen Aufstand zu machen, hatte ich lediglich darum gebeten, mir eine Erklärung für dieses VERHALTEN zu geben.
Du verstehst anscheinend das Problem nicht - ich kann nicht etwas erklären was auf einer Beobachtung beruht die nicht dem entspricht was ich als Verhalten von OOo kenne.
Das ist auch keine Frage davon das sich hier Emotionen hochschaukeln, sondern das ich vergleichweise in der Situation bin das mir als Arzt ein Patient sagt er hat Schmerzen und die gehen weg wenn es an der Haustür klingelt - das mag ja wirklich stimmen, nur weiß ich dann eben nicht warum.

Es gibt nun irgendwie 2 WEge:

1.
Entweder wir versuchen Deine Beobachtung mit der MsgBox zu klären.

oder:

2. Du bestehst darauf das es so ist wie Du behauptest, dann kann ich es nicht erklären, den es ist mir vollens unklar warum ein Makro mit einer Msgbox-Zeile starten sollte und ohne nicht.
Ich bin jedenfalls weiterhin der Meinung das das Makro auf jeden Fall startet und lediglich Umstände vorliegen die verhindern das ohne Msg-Box eine sonstige Aktion durch das Makro erfolgt. Ein konkretes Beispiel dafür (Fokus-Ereignis) hatte ich genannt, wieder aber steht jede Bestätigung oder Widerlegung durch dich aus und mangels konkretem, vollständigem Code kann ich das hier nicht selbst testen).



Auch ist weiterhin ungeklärt ob denn nun die zweite, durch mich geänderte Beispieldatei (Vorlage_Event_ohneMSG.ott) bei Dir funktioniert oder nicht, denn Du schreibst nichts dazu.
Eine Antwort hierrauf wie sich diese Datei verhält wenn Du daraus händisch ein neues Dokument erzeugst, also üblicherweise indem Du die Datei nur dopelklickst, wäre wirklich von Interesse, denn würde diese Datei nicht funktionieren wäre das ziemlich eindeutig (mal abgesehen davon das ich dafür keine Erklärung hätte).

Ich bitte Dich somit Folgendes zu tun (ausführlich gesagt):

-lade die Datei "Vorlage_Event_ohneMSG.ott" herunter
-erzeuge das Kontextmenü auf der Datei und überzeuge dich das der Eiuntrag für "Neu" fett geschrieben ist
Bild1.gif
Bild1.gif (10.79 KiB) 2606 mal betrachtet
-öffne die Datei über das Kontextmenü "Öffnen" und überzeuge Dich das Du ein Blatt ohne Text siehst (nur eine Schaltfläche ist zu sehen)
Bild2.gif
Bild2.gif (11.34 KiB) 2606 mal betrachtet
Ist das der Fall?

-schließe die Datei wieder

-öffne die Datei über das Kontextmenü "Neu"

Wird dadurch ein neues Dokument erstellt? Heißt es also in der Titelzeile "Unbenannt..."?

Steht jetzt Text in dem neuen Dokument?
Bild3.gif
Bild3.gif (14.94 KiB) 2606 mal betrachtet
Hast Du sonstige Beobachtungen?



Gruß
Stephan
Philipp_19
****
Beiträge: 115
Registriert: Mo, 29.08.2011 09:01
Wohnort: Duisburg

Re: Start eines Makros

Beitrag von Philipp_19 »

Okay, ich denke das hat so alles keinen Sinn, also eben so:
Stephan hat geschrieben:Du nutzt also keinen Makrocode um mit Hilfe der Vorlagendatei eine neu Datei zu erzeugen, d.h. Du startest die *.ott per Hand über Datei-Neu oder über Kontextmenü oder ähnlich?
Wie bereits beschrieben, haben wir in unserer Software eine extra Schnittstelle, die das Laden der Vorlagen über einen Knopf übernimmt. Wie diese im Hintergrund arbeitet, kann ich nicht sagen, ich kenne den Quellcode nicht. Jedoch werden dabei die Textmarken gefüllt, Makros (zumindest was Word angeht) automatisch angestupst und ein neues Dokument servierbereit dargelegt.
Stephan hat geschrieben:DU SELBST hast BEVOR Du das Makro geschickt hast bereits eine Codezeile gepostet die im Makro garnicht vorkommt.
Ich hatte gesagt, das ich es mit diesem Codeschnipsel VERSUCHT hatte, es aber nicht geklappt hat. Weiterhin habe ich dir erklärt, an welcher Stelle im Code ich diesen Schnipsel eingesetzt hatte. Den kann man hier ab inzwischen getrost vergessen, er funktioniert bei mir mit diesem Makro nicht.
Stephan hat geschrieben:ich kann nicht etwas erklären was auf einer Beobachtung beruht die nicht dem entspricht was ich als Verhalten von OOo kenne.
Dazu bekommt ihr morgen auch eine möglichst abgespeckte Version der beiden Makros, dazu die Vorlage und die Erklärung, was das Makro bewirkt. In minimal Form.
Stephan hat geschrieben:Entweder wir versuchen Deine Beobachtung mit der MsgBox zu klären.
Dann lass uns das bitte mit gegenseitigem Respekt machen. Ich habe meine Beobachtungen geäußert und die wurden in den Wind geschlagen. Hättet ihr von Anfang an einfach auf diesen Beobachtungen beruhend versucht, eine Erklärung für dieses Phänomen zu geben, wären wir vielleicht einen großen Schritt weiter. Ich verstehe durchaus, das Problematiken erst reproduziert werden müssen um nachvollzogen zu werden, aber habe ich dies eben lange genug getan. Das sollte euch inzwischen klar geworden sein.
Stephan hat geschrieben:Eine Antwort hierrauf wie sich diese Datei verhält wenn Du daraus händisch ein neues Dokument erzeugst, also üblicherweise indem Du die Datei nur dopelklickst, wäre wirklich von Interesse
Deine Beispieldatei verhält sich genau so, wie du es vorhergesagt hast. Jedoch herrschen an diesem PC hier andere Voraussetzungen bzw. Grundlagen als an meinem Arbeitsplatz.
Dazu kann ich aber auch nur nochmals darauf verweisen, dass die benötigten Dateien und der fehlende Code morgen nachgereicht werden.

Ich kann leider auch nicht sagen, in wie weit die Schnittstelle unsere Software dies bezüglich eingreift, weil diese eigentlich für Microsoft eingerichtet wurde, und vor einiger Zeit für OOo erweitert wurde.
Dazu habe ich aber schon die entsprechenden Personen im Haus angesprochen, aber die können sich nicht vorstellen, dass die Schnittstelle den Start der Makros blocken sollte. Zudem sind die Makros durchaus lauffähig. Jedoch kam bei meinem Problemfall die Lösung mithilfe dieser MessageBox, und das kann ich mir beim besten Willen nicht erklären, außer eben dass das erscheinen der Box und das Bestätigen irgendeine Art von Refresh beinhaltet.

ich schicke morgen die Sachen, erkläre ganz genau, wie ich vorgehe und hoffe dann hier weiterhin vernünftig über dieses Problem zu reden.
Ich entschuldige mich zusätzlich noch bei dir, Stefan, für die rüden Worte. Wie du bereits sagtest, haben sich die Gemüter etwas erhitzt.
Also, einen schönen Abend noch.
Windows XP, OOo 3.3.0
oder
Windows 7, OOo 3.3.0
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Start eines Makros

Beitrag von F3K Total »

Hallo,
folgende Beobachtungen zu dem Thema unter W7 OOo 3.3.0:

- hänge ich an den Code von Stephan, der bei mir funktioniert,

Code: Alles auswählen

xray thisComponent
dann wird das xray erst dann ausgeführt, wenn ich das Fenster einmal klein und wieder groß mache.
- direkt nach dem Öffnen der .ott per neu oder Doppelklick, vor dem Verändern der Fenstergröße, blinkt der Cursor nicht, danach schon.
- hänge ich das Makro an "Ansicht wurde erzeugt", statt an "neues Dokument" läuft xray und der Cursor blinkt.

Gruß R
Philipp_19
****
Beiträge: 115
Registriert: Mo, 29.08.2011 09:01
Wohnort: Duisburg

Re: Start eines Makros

Beitrag von Philipp_19 »

Diese Beobachtung trifft bei mir ebenfalls zu.
Über das Event "Neues Dokument" passiert eben genau dieser Stillstand, und wird über vergrößern/verkleiner oder eben irgendeinen Menüpunkt auswählen. Eine MsgBox übernimmt bei mir inzwischen genau diese Funktion.
Danke für den Kommentar.

ps: jedoch OHNE xray
Windows XP, OOo 3.3.0
oder
Windows 7, OOo 3.3.0
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Start eines Makros

Beitrag von DPunch »

Aloha
F3K Total hat geschrieben:- hänge ich an den Code von Stephan, der bei mir funktioniert,

Code: Alles auswählen

xray thisComponent
dann wird das xray erst dann ausgeführt, wenn ich das Fenster einmal klein und wieder groß mache.
Das liegt daran, dass das Ausführen eines Dialogs zu einem so frühen Zeitpunkt offensichtlich den Verbindungsaufbau zwischen Model<->Controller<->View unterbricht.
XRay *wird* ausgeführt, hängt aber hinter dem Dokument fest, weil ein Dialog an das aktive Frame gebunden ist, welches zu diesem Zeitpunkt noch nicht identifiziert bzw zugeordnet ist.
Dem kann man manuell z.B. so (vor dem Aufruf von XRay) entgegenwirken:

Code: Alles auswählen

	frame = thisComponent.CurrentController.Frame
	thisComponent.CurrentController.Frame.ActiveFrame = frame
	xray thisComponent
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Start eines Makros

Beitrag von Stephan »

Das liegt daran, dass das Ausführen eines Dialogs zu einem so frühen Zeitpunkt offensichtlich den Verbindungsaufbau zwischen Model<->Controller<->View unterbricht.
XRay *wird* ausgeführt, hängt aber hinter dem Dokument fest, weil ein Dialog an das aktive Frame gebunden ist, welches zu diesem Zeitpunkt noch nicht identifiziert bzw zugeordnet ist.
Verstehe ich leider nicht so recht, denn XRAY ist nicht darauf angewiesen sich auf das ThisComponent des aktuellen Dokuzments zu beziehen, sondern XRAY könnte sich auch, fehlerhaft, auf ein 'anders' ThisComponent beziehen. Oder warum nicht?

Oder verstehe ich F3K Total falsch und es geht garnicht darum das XRAY nicht gestartet wird sondern es startet sehr wohl nur ist das Ausgabefenster nicht im Vordergrund?

Z.B. liefert ja auch:

Code: Alles auswählen

Function xxx
  Msgbox ThisComponent.dbg_properties
  xxx = ThisComponent.Sheets().getByIndex(0).getCellRangeByName("A1").Value
End Function
(gespeichert in der zentralen OOo-Makrobibliothek "Standard" und aufgerufewn als Tabellenfunktion in einer Calc-Zelle) eine Fehlermeldung beim Öffnen des Calc-Dokuments weil das ThisComponent sich zum Öffnungszeitpunkt noch nicht auf das sich gerade öffnende Dokument bezieht, jedoch gleichzeitigh sehr wohl eine Rückgabe für ThisComponent.dbg_properties ansich.


Gruß
Stephan
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Start eines Makros

Beitrag von Stephan »

Danke für den Kommentar.
'danke' das Du Dich dafür bedankst, jedoch meinen Hinweis das die Msgbox evtl. deshalb wichtig wäre weil sie den Fokus des gerade aktiven dokument beeinflußt:

"Allenfalls kann man mutmaßen, nämlich das die Messsage-Box keinen Objekt-Bezug braucht und deshalb immer startet, weil man sie aber manuell beenden muß dabei zwangsweise der Fokus wechselt und dadurch unbeabsichtigt auch ein Objektbezug (mutmaßlich auf das dann aktive Dokument) hergestellt wird."

völlig ignoriert hat.



Stephan
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Start eines Makros

Beitrag von DPunch »

Aloha
Stephan hat geschrieben:sondern XRAY könnte sich auch, fehlerhaft, auf ein 'anders' ThisComponent beziehen
Ein "ThisComponent" in einem Makro auf Dokumentebene kann ja allerdings nur eine Referenz liefern.
Stephan hat geschrieben:Oder verstehe ich F3K Total falsch und es geht garnicht darum das XRAY nicht gestartet wird sondern es startet sehr wohl nur ist das Ausgabefenster nicht im Vordergrund?
Prinzipiell so - allerdings ist es nicht nur nicht im Vordergrund (so dass ein toFront oder so helfen würde), sondern es hängt mehr oder weniger im Nirvana, weil es zu diesem Zeitpunkt keinem Frame zugeordnet werden kann.
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Start eines Makros

Beitrag von Stephan »

Makros (zumindest was Word angeht) automatisch angestupst
Nachdem wir hier bereits eine Riesendiskussion haben willst du jetzt als Argument vorbringen das MS Word Makros laufen? DAS HAT ÜBERHAUPT NICHTS mit OOo-Makros zu tun!
Ich bin langsam fassungslos über Diese Art der Diskussion, denn nicht alles zu wissen ist wahrlich keine Schande nur sich aus Nichtwissen eigene Theorien auszudenken ist wirklich nur noch schräg.
Dann lass uns das bitte mit gegenseitigem Respekt machen. Ich habe meine Beobachtungen geäußert und die wurden in den Wind geschlagen. Hättet ihr von Anfang an einfach auf diesen Beobachtungen beruhend versucht, eine Erklärung für dieses Phänomen zu geben, wären wir vielleicht einen großen Schritt weiter.
Ganz offensichtlich nicht, denn wenn Du nun selbst bestätigst das:
Deine Beispieldatei verhält sich genau so, wie du es vorhergesagt hast.
ist doch Deine Aussage irgendwie die ganze Zeit falsch gewesen.
Jedoch herrschen an diesem PC hier andere Voraussetzungen bzw. Grundlagen als an meinem Arbeitsplatz.
Wonach wir ja schon bisher, mit wenig Erfolg, gefragt hatten.
Dazu habe ich aber schon die entsprechenden Personen im Haus angesprochen, aber die können sich nicht vorstellen, dass die Schnittstelle den Start der Makros blocken sollte.
na dann ... ich halte mich dann raus oder versuche das zumindest
Ich entschuldige mich zusätzlich noch bei dir, Stefan, für die rüden Worte.
Geschenkt, das ist nämlich alles am Thema vorbei.
Viel, viel wichtiger ist inhaltlich klare Aussagen zu machen und daran mangelt es die ganze Zeit - was ich vorstehend aktuell kommentiert hatte, und diese Aussage nimm mir notfalls übel, folgt nämlich dem Motto 'ich fühle mich nicht ernst genommen, deshalb beharre ich umso intensiver auf meiner Meinung und wenn mir das Gegenteil belegt wird wechsele schnell die Meinung'.

Wir alle versuchen hier eine LÖsung zu finden, ohne das wir unfehlbar wären. Was wir aber brauchen sind klare, eindeutige, hinreichend detaillierte Information und zwar nicht weil wir jemanden mit Nachfragen gängeln wollen sondern weil beim Programnmieren manchmal eine Kleinigkeit wie z.B. ein Komma den Unterschied macht ob ein Makro funktioniert oder nicht.


Gruß
Stephan
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Start eines Makros

Beitrag von Stephan »

Ein "ThisComponent" in einem Makro auf Dokumentebene kann ja allerdings nur eine Referenz liefern.
Naja, es kann eigentlich auch eine ungewollt fehlerhafte Referenz liefern, die, weil fehlerhaft, nicht erwünscht ist jedoch auf die XRAY reagieren sollte, wenn ungewollt der Bezug zum 'Dokument-ThisComponent' verrloren geht und ThisComponent plötzlich auf die Basic-IDE verweist.

Ein konkretes Beispiel dafür kann ich momentan, peinlicherweise, nicht angeben, es gibt diese aber hier im Forum und übliche Gegenmaßnahme ist dann wohl das ThisComponent in einer Object-Variable 'aufzubewahren'.
sondern es hängt mehr oder weniger im Nirvana, weil es zu diesem Zeitpunkt keinem Frame zugeordnet werden kann.
Das hieße ja dann wohl das XRAY grundsätzlich nicht funktionieren kann wenn kein Frame da ist. Ist das aber auch wirklich so? Was ist z.B. wenn OOo mit headless-Parameter gestartet wird?



Gruß
Stephan
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Start eines Makros

Beitrag von DPunch »

Stephan hat geschrieben:Naja, es kann eigentlich auch eine ungewollt fehlerhafte Referenz liefern, die, weil fehlerhaft, nicht erwünscht ist jedoch auf die XRAY reagieren sollte, wenn ungewollt der Bezug zum 'Dokument-ThisComponent' verrloren geht und ThisComponent plötzlich auf die Basic-IDE verweist.
Auf Dokumentebene sollte das zu einem RuntimeError führen. Das wechseln des Bezugs von thisComponent sollte nur bei nicht dokument-basierten Makros geschehen.
Wobei ich innerhalb eines Makros bekanntermassen sowieso nur ein einziges Mal thisComponent verwende, so dass ich da nicht mit praktischen Erfahrungen hantieren kann ;)
Das hieße ja dann wohl das XRAY grundsätzlich nicht funktionieren kann wenn kein Frame da ist. Ist das aber auch wirklich so? Was ist z.B. wenn OOo mit headless-Parameter gestartet wird?
Ich habe leider nie headless gestartet, aber ich würde jetzt vermuten, dass das nicht geht - oder XRay solange im Nirvana rumschwebt, bis ein Frame aktiviert wurde.
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Start eines Makros

Beitrag von balu »

Hallo Leute,

es ist mir egal ob ihr nachher meinen Beitrag als "unqaulifiziert" oder "fehlplaziert" abtut, oder nicht. Dennoch möchte ich darauf hinweisen, dass das Problem von Philipp eventuell doch an der Arbeitsumgebung in der Arbeit liegt.

Nun, wie komme ich dazu das besonders hervorzuheben?
Aus gemachter Erfahrung!
Ich hatte ja vor einigen Wochen mit OOo 3.1.1 unter Fedora 11 (Linux) zu kämpfen. Und da war mir folgendes Verhalten in einem Makro negativ aufgefallen. Mit einem so geannten *Komponenten-Walker* (beziehungsweise ähnliches) wollte ich alle geöffneten OOo-Dateien überprüfen, ob eine bestimmte Datei geöffnet ist. Ich hatte auch verschiedene Variationen erstellt. Unter WinXP mit den Standardeinstellungen lief alles bestens. Blos auf dem Zielsystem mit Fedora 11 (aber nicht meiner), funktionierte das Makro nicht es wurde nichts ausgegeben/angezeigt. Bei dieser Makro-Variante wurde überprüft, ob die andere Datei "gelockt" ist, also in etwa so .~lock.3-D_spielerei_1.ods#

Wie gesagt, unter Win kein Problem, aber jedoch unter Fedora. Und der Grund war folgender. Auf dem Zielsystem ist das *File Locking* (Dateisperrung) nämlich ausgeschaltet. Also konnte die eine Makro-Variante nicht funktionieren, da ja die Datei nicht als "gelockt" markiert war obwohl sie geöffnet war.

Ich will jetzt nicht behaupten, oder mutmaßen das es an dem File Locking liegt, sondern nur dauauf hinweisen, dass vielleicht irgendetwas am System eingestellt wurde das dies merkwürdige Verhalten erklären könnte.


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Philipp_19
****
Beiträge: 115
Registriert: Mo, 29.08.2011 09:01
Wohnort: Duisburg

Re: Start eines Makros

Beitrag von Philipp_19 »

Guten Morgen,

Ich habe versucht den Code zu stutzen und die Datei zu anonymisieren, jedoch fiel mir dabei auf, dass dies eher mit der Schnittstelle im Haus als mit OOo zu tun hat. Da über die Schnittstelle Textmarken automatisch gefüllt werden, kam es stets zu einer winzigen Verzögerung.
Das hatte ich hier aber bereits schon einmal angesprochen, ohne großen Erfolg.
OOo Makros starten direkt beim Erzeugen des neuen Dokuments aus der Vorlage heraus, ebenso wie die Textmarken. Die verheddern sich da also.
Mit Wait und ähnliches konnte ich nicht arbeiten, dass hat das Makro nicht daran gehindert falsch zu arbeiten.
Mit dem oben genannten Code + MessageBox konnte ich dem oben genannten Problem aus dem Weg gehen.q
Stephan hat geschrieben:DAS HAT ÜBERHAUPT NICHTS mit OOo-Makros zu tun!
Ich bin langsam fassungslos über Diese Art der Diskussion, denn nicht alles zu wissen ist wahrlich keine Schande nur sich aus Nichtwissen eigene Theorien auszudenken ist wirklich nur noch schräg.
Habe ich auch nie behauptet, ich habe lediglich gesagt, dass die Schnittstelle einen Automatismus integriert hat, der Makros anstupst. Dies ist bei MS-Word zu 100% der Fall, bei OOo vielleicht zu 80%.
Stephan hat geschrieben:ist doch Deine Aussage irgendwie die ganze Zeit falsch gewesen.
Das heißt, dass alles was du nicht weißt und kennst falsch ist? Wie bitte gehst du dann mit Kunden-Problemen um, die nicht reproduziert werden können? Soviel zu meiner Frage-Antwort Fähigkeit...
Stephan hat geschrieben:Wonach wir ja schon bisher, mit wenig Erfolg, gefragt hatten.
Wann und wo, und vor allem: Wann habe ich Informationen dazu vorenthalten?
Stephan hat geschrieben:'danke' das Du Dich dafür bedankst
er war in der Lage mein Problem in einer etwas anderen Art und Weise nachzuvollziehen und wurde dadurch zu einer Person, die möglicherweise den Fehler zu beheben weiß. Das ich deine Antwort für durchaus korrekt halte, und genau solche Sätze meiner Fragestellung abhilfe bringen, kann dir ja inzwischen egal sein. Allem Anschein nach habe ich diesen Satz nicht richtig gelesen.

Aber ehrlich gesagt ist mir bei Leuten wie Stefan wie Lust daran vergangen, hier zu versuchen Diskussionen abzuhalten.
Windows XP, OOo 3.3.0
oder
Windows 7, OOo 3.3.0
Antworten