"Werte hervorheben" ausschalten

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

Moderator: Moderatoren

WN
**
Beiträge: 30
Registriert: Fr, 17.11.2006 23:36

"Werte hervorheben" ausschalten

Beitrag von WN »

Hallo zusammen,

ich habe standardmäßig in Calc "Werte hervorheben" aktiviert (Extras/Optionen/Tabellendokument/Ansicht).
Bei einem Tabellendokument soll dies nicht der Fall sein. Ich möchte deshalb dem Ereignis "Dokument öffnen" ein Makro zuweisen, welches "Werte hervorheben" ausschaltet. Mit dem Makrorekorder habe ich dies auch aufgezeichnet bekommen:

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(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ViewValueHighlighting"
args1(0).Value = false

dispatcher.executeDispatch(document, ".uno:ViewValueHighlighting", "", 0, args1())

Wie geht das in "normalem Code" ? Ich habe bei Dannenhöfer und hier im Forum geschmökert, bin allerdings nicht fündig geworden.

Vielen Dank schon einmal vorweg.

Gruß

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

Beitrag von Stephan »

Wie geht das in "normalem Code" ?
Möglicherweise garnicht, wozu ist das denn wichtig?



Gruß
Stephan
WN
**
Beiträge: 30
Registriert: Fr, 17.11.2006 23:36

Beitrag von WN »

Hallo Stephan,

ehrlich gesagt, habe ich Schwierigkeiten, den Dispatchercode zu verstehen.
Bei normalem Code bilde ich mir zumindest ein, diesen allmählich etwas zu verstehen.
Ich dachte, es gibt vielleicht eine Möglichkeit ähnlich der, den Dokumentenschutz bei Tabellen aufzuheben (isprotected/protect/ unprotected), was handlicher wäre.

Aber wenn es mit "normalem" Code nicht geht:
Gibt es eine Möglichkeit abzufragen, ob "Werte hervorheben" eingeschaltet ist und dieses dann mit dem Dispatchecode auszuschalten ? Wie müsste eine solche Bedingung aufgebaut sein ?

Gruß

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

Beitrag von Stephan »

ehrlich gesagt, habe ich Schwierigkeiten, den Dispatchercode zu verstehen.
Da gibt es doch nichts zu verstehen, es gibt eine Hanvoll dispatch-Befehle und das wars eigentlich schon:
http://www.openoffice.org/files/documen ... rence.html
Aber wenn es mit "normalem" Code nicht geht:


Das habe ich ja nicht gesagt, ich sprach von "möglicherweise" und mehr weiß ich dazu auch nicht.
Im Prinzip müßtest Du erst einmal feststellen ob es im Dokument (mutmaßlich in Settings.xml) einen korrespondierenden Eintrag gibt und wenn ja wie der heißt um dann in der IDL-referenz festzustellen wie/wo dieser anzusprechen wäre.

(genau das der Grund meines "möglicherweise", da ich vor einiger Zeit auf einen Eintrag in Settings.xml stieß, der mit deinem Problem nichts zu tun hat, der aber theoretisch laut IDL-Referenz ansprechbar sein sollte, ich habe es nur praktisch nicht hinbekommen)


Gruß
Stephan
WN
**
Beiträge: 30
Registriert: Fr, 17.11.2006 23:36

Beitrag von WN »

Hallo Stephan,

eine handvoll ist gut (die Hand ist wirklich voll). Das Problem ist, dass ich den Aufbau nicht verstehe.

Zum zweiten Teil Deiner Antwort: ich habe in der Settings.xml gesucht, aber nichts brauchbares gefunden. Auch habe ich ein Tabellendokument kopiert, und einmal einmal mit "Werte hervorheben" abgespeichert und einmal ohne. Nur die Datei content.xml hatte eine andere Größe. Aber die Unterschiede konnte ich auf die schnelle nicht ausmachen.
Der Rest Deiner Antwort waren für mich böhmische Dörfer.

Aber trotzdem vielen Dank für Deine Mühe.

Gruß

WN
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Beitrag von turtle47 »

Hi WN,

Wenn Du zwei Dateien miteinander vergleichen möchtest dann kann ich Dir
das Freeware-Programm WinMerge empfehlen.

Hier gehts zur Homepage von WinMerge: http://winmerge.org/

So wie content.xml jetzt noch formatiert ist kannst Du diese noch nicht mit
mit dem Programm vergleichen. Die Dateien müssen noch etwas modifiziert werden.

Die Datei content.xml hast Du ja in der "normalen" und dann in der geänderten
Version vorliegen.

Öffne die erste Datei mit OOo Writer.
Klicke Menue >Bearbeiten > Suchen und Ersetzen

Bei Suche gibst Du " (Anführungszeichen) ein.
Bei Ersetzen gibst Du "\n" (incl. der Anführungszeichen!!!) ein.

Unten Links "Mehr Optionen" "Regulärer Ausdruck" Haken setzen.

Dann auf "ersetzen Alle" klicken.
Jetzt dauert es ein wenig.

Wenn Writer fertig ist die Datei unter gleichem Namen abspeichern.
Weiderhole das ganze mit der zweiten Datei.

Jetzt kannst Du die Dateien mit WinMerge vergleichen.

Das Programm ist eigentlich selbsterklärend.
Wenn Du die beiden Dateien unter Datei öffnen ausgewählt hast und
anschließend die Dateien angezeigt werden sind die Abweichungen mit
gelben Linien markiert.

Viel Erfolg.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
WN
**
Beiträge: 30
Registriert: Fr, 17.11.2006 23:36

Beitrag von WN »

Hallo Jürgen,

der Dateienvergleich mit WinMerge hat funktioniert. Vielen Dank für den Hinweis auf das Programm. Ich kannte es bisher noch nicht, habe aber schon eine Einsatzmöglichkeit dafür gefunden. Wenn Du mir bitte noch erklären würdest, was ich durch das Ersetzen der " mit "\n" erreicht habe. Das habe ich noch nicht verstanden, zumal nach dem Abspeichern der Datei der Ausdruck "\n" in dieser nicht mehr erscheint.

@Stephan
Der Unterschied in der Datei content.xml ist folgender: Die Datei bei der die Werte hervorgehoben sind enthält folgenden abweichenden Inhalt:

"><office:forms form:automatic-focus="
"false"
" form:apply-design-mode="
"false"

Sagt Dir das etwas bzw. hilft das weiter ?

Viele Grüße und vielen Dank Euch beiden

WN
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Beitrag von turtle47 »

Hi WN,

weshalb so sparsam mit Deinem Namen?

Wenn Du die content.xml z.B. im Writer öffnest wirst Du sehen, dass der Text
nur einen Zeilenumbruch (oberste Zeile) enthält.
Wenn Du die Dateien mit nur einem Zeilenumbruch
vergleichst wirst Du in WinMerge in den Vergleichsfenstern
nur zwei gelbe Zeilen sehen.

Was man braucht, um die abweichden Bereich zu einfacher zu finden
sind mehrere Zeilenumbrüche. Jetzt muss an zuerst in der content.xml schauen
an welcher Stelle möglichst viele gleich Zeichen, in diesem Fall " , sind.

Bei Suchen und Ersetzen wird das " mit "\n" , der String bedeutet einen
Zeilenumbruch einfügen, ersetzt. Denn man kann im Ersetzen-Feld
nicht einfach die Enter-Taste drücken.
Der Text ist zwar somit etwas auseinandergerissen. Öffne deshalb die
Original content.xml nochmal in Writer nach dem abweichenden String,
in Deinen Fall " office:forms form:automatic-focus suchen.

Dann musst Du sehen was genauzwischen den < > steht. Beispiel:

Code: Alles auswählen

<office:forms form:automatic-focus="false" form:apply-design-mode="false"/>
.

Ich hoffe das hilft Dir weiter.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
WN
**
Beiträge: 30
Registriert: Fr, 17.11.2006 23:36

Beitrag von WN »

Hallo Jürgen,

vielen Dank für die Erklärung. Wieder etwas gelernt.
In welcher Art von Dateien (außer xml) kann mit \n ein Zeilenumbruch erzeugt werden ? Sorgt der Haken bei "Regulärer Ausdruck" dafür, dass die Anführungszeichen nicht als solche übernommen werden ?

Viele Grüße
Klaus
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Beitrag von turtle47 »

Hi Klaus,
freut mich, dass ich Dich mit dem richtigen Vornamen ansprechen kann. :D
Danke.
In welcher Art von Dateien (außer xml) kann mit \n ein Zeilenumbruch erzeugt werden ?
Ich habe noch nicht ausprobiert welche Formate WinMerge lesen kann.
Einfach mal ausprobieren.
Sorgt der Haken bei "Regulärer Ausdruck" dafür, dass die Anführungszeichen nicht als solche übernommen werden ?
Ja, so ist es, leider. Das (") wird eben ersetzt durch einen Zeilenumbruch.
Oder hat jemand noch eine andere Idee?

Ich denke das ist aber aber auch nicht schlimm, man weiss aber in welcher "Region"
man nach Abweichungen suchen muss. Das finde ich persönlich am wichtigsten!

Wofür möchtest Du denn Winmerge einsetzen?

Guts Nächtle.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
WN
**
Beiträge: 30
Registriert: Fr, 17.11.2006 23:36

Beitrag von WN »

Hallo Jürgen,

ich muss mal wieder meine Festplatte aufräumen, auf der teilweise doppelte Verzeichnisse und Dateien sind. Dabei ist WinMerge sicher ganz nützlich. Ich kannte bisher nur BeyondCompare. Dies ist aber keine Freeware.

Nochmals vielen Dank für den Tipp.

Viele Grüße
Klaus
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Beitrag von turtle47 »

Hallo Klaus,

vielleicht habe ich mich da missverständlich ausgedrückt.
Das Programm ist nicht dafür gedacht Dateien auf der Festplatte
zu vergleichen sondern nur Inhalte von zwei Dateien, so wie Du
es ja schon gemacht hast.
Zum Suchen von doppelten Dateien gibt es andere Programme.
Schau mal hier: http://www.aidex.de/software/antitwin/

oder einfach mal googlen: suchen doppelte dateien programm

Schöne Grüße

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Antworten