On 2020/12/13 13:25:57, Jörg Schmidt <[email protected]> wrote:
> Hallo,
>
> > -----Original Message-----
> > From: Czeslaw Wolanski [mailto:[email protected]]
> > Sent: Saturday, December 12, 2020 6:33 PM
> > To: [email protected]
> > Subject: Re: [Calc] Formeln verankern und ausrichten
>
> > Eine Calc-Datei namens "FormelAusrichten.ods" kann unter
> > folgendem Link heruntergeladen werden:
> >
> > https://drive.google.com/file/d/1rBzF2IHwJAbHyyMAkgIis1Kmt6A-b
> > YF3/view?usp=sharing
>
> Eine einfach zu bedienende Lösung, aber auch viel Arbeit zur Lösung eines
> speziellen Problems eines einzelnen Anwenders.
>
> Leider gibt es kein, mir bekanntes, aktives(*) Extension-Projekt im Sinne
> einer Tool-Sammlung für Calc, wo man Deine zwei Makros integrieren könnte,
> denn eigentlich wären sie dort gut aufgehoben - eventuell sollte man sie dann
> etwas anpassen, so das sie auch für andere Objekte, und nicht allein Formeln,
> funktionieren.
>
> (*)
> es gibt von Thomas die bei der C't veröffentlichten Calc-Makros, aber diese
> werden nicht weiterentwickelt:
> https://www.heise.de/ct/ftp/10/10/174/
>
> siehe: "Download aller Dateien zu diesem Artikel 1010-174.zip"
>
> > In Tabelle1 sind drei Formeln (alle an der *Seite* verankert)
> > und zwei Schaltflächen
> > (Zelle E1 - Schaltfläche "Alle"; Zelle E2 - Schaltfläche
> > "Selektierte").
> > Jede Schaltfläche mit einem zugeordneten Makro.
> >
> > Die Schaltfläche "Alle" zentriert *jede* Formel, die an eine
> > *Zelle* verankert ist.
> > Die Schaltfläche "Selektierte" zentriert *jede selektierte*
> > Formel, die an eine *Zelle* verankert ist.
>
> Vielleicht solltest Du im Falle des Makros für selektierte Formeln, die
> selektierten Formeln gleich auf 'Verankerung an Zelle' setzen, denn dadurch
> das der Anwender bestimmte Formeln selektiert will er ja eigentlich das diese
> Formeln zentriert werden (auch dann wenn sie an der Seite verankert sein
> sollten).
>
> Leider finde ich auf die Schnelle keinen 'nativen' Code dafür, aber per
> dispatcher ist es machbar:
>
> document = ThisComponent.CurrentController.Frame
> dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
> dispatcher.executeDispatch(document, ".uno:SetAnchorToCell", "", 0, Array())
>
>
>
>
> Gruß
> Jörg
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
Hallo,
> Eine einfach zu bedienende Lösung, aber auch viel Arbeit zur Lösung
> eines speziellen Problems eines einzelnen Anwenders.
In der Tat. Aber es war eine lehrreiche Übung.
> Leider gibt es kein, mir bekanntes, aktives(*) Extension-Projekt im Sinne
> einer Tool-Sammlung
> für Calc, wo man Deine zwei Makros integrieren könnte, denn eigentlich wären
> sie dort
> gut aufgehoben - eventuell sollte man sie dann etwas anpassen, so das sie
> auch für
> andere Objekte, und nicht allein Formeln, funktionieren.
>
>(*)
> es gibt von Thomas die bei der C't veröffentlichten Calc-Makros, aber diese
> werden nicht
>weiterentwickelt:
>https://www.heise.de/ct/ftp/10/10/174/
>
> siehe: "Download aller Dateien zu diesem Artikel 1010-174.zip"
Danke für den Link. Die ZIP-Datei (über *ftp*) scheint fehlerhaft zu sein.
Man kann diese Makros anpassen für andere Objekte - alle Informationen, die
gebraucht werden, stehen zur Verfügung. Trotzdem ich würde es nicht wagen so zu
machen ohne den Quelltext genau zu verstehen (was höchstwahrscheinlich niemals
kommt).
> Vielleicht solltest Du im Falle des Makros für selektierte Formeln, die
> selektierten Formeln
> gleich auf 'Verankerung an Zelle' setzen, denn dadurch das der Anwender
> bestimmte Formeln
> selektiert will er ja eigentlich das diese Formeln zentriert werden (auch
> dann wenn sie
> an der Seite verankert sein sollten).
>
> Leider finde ich auf die Schnelle keinen 'nativen' Code dafür, aber per
> dispatcher ist es machbar:
>
> document = ThisComponent.CurrentController.Frame
> dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
> dispatcher.executeDispatch(document, ".uno:SetAnchorToCell", "", 0, Array())
Im Schneckentempo man kann etwas in Bugzillas Fehlerberichten und in dem
Quelltext finden. [1]
Ich wollte nicht den Dispatcher - ".uno:SetAnchorToCell" - verwenden (keine
genaue Angabe für
Objekte), so habe ich experimentiert mit
.SetPropertyValue("Anchor", )
Eine Calc-Datei namens "Experiment.ods" kann unter folgendem Link
heruntergeladen werden:
https://drive.google.com/file/d/11fhONQRmHfCYgigCVfk-Dou2eVyzsAKw/view?usp=sharing
"Tabelle1":
Die Schaltfläche "Zentrieren" zentriert *jede selektierte* Formel (Deine
Anregung angenommen). Wie zuvor, falls die Zelle, an der die Formel verankert
ist, kleiner als die Formel ist, wird die Größe der Zelle angepasst.
"Tabelle2":
Die Schaltfläche "Umschalten" soll die Verankerung des Bildes umschalten
("Seite -- "Zelle").
Gruß
Czesław
[1]
Siehe:
- Bugzilla Issue 33783 - can not set AnchorType of a control in calc via API
https://bz.apache.org/ooo/show_bug.cgi?id=33783
- Quelltext, Suchbegriff "SID_ANCHOR_CELL"
http://openoffice-vm1-he-de.apache.org/search?project=trunk&full=SID_ANCHOR_CELL&defs=&refs=&path=&hist=&type=&si=full
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]