🙏 Helfen Sie mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst ✔] Fragen zur IDE und Ergänzungen zur Behandlung von Doppelklick … [5 Fragen + 1 "Nachschlag"]

Alles zur Programmierung im LibreOffice.
nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: Fragen zur IDE und Ergänzungen zur Behandlung von Doppelklick … [4 von mittlerweile 5 Fragen gelöst oder erledigt]

Beitrag von nitja » Fr 5. Apr 2024, 13:47

Gibt neue Erkenntnisse (Mutmaßungen?):
(Vielleicht interessiert das wen, heute oder wer künftig mit ähnlich dürftigem Vorwissen an so etwas heran geht.)
(Der Makrorekorder ist doch für vieles fast alternativlos, wenn man mal herausgefunden hat, wann der was tut und was im UI an ihm vorbei geht.)
·
Bildschirmfoto vom 2024-04-05 12-35-06.png
Bildschirmfoto vom 2024-04-05 12-35-06.png (27.16 KiB) 2659 mal betrachtet

Code: Alles auswählen

sub recorded
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 = "ToPoint"
args1(0).Value = "Grafikseite24_03"

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

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "Grafikseite24_04"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())

rem ----------------------------------------------------------------------	' cf. Pitonyak et al. 16.5.4/5, pgs. 522-524
dim args4(5) as new com.sun.star.beans.PropertyValue				' com.sun.star.sheet.CellFlags	↑ 16.4.2 pg. 497
args4(0).Name = "Flags"								' Formatierungen,	Zahlen,	Formeln,	Text	(Objekte: wirkungslos)
args4(0).Value = "SVFT"								' Styles,		Values,	Formula,	Text
args4(1).Name = "FormulaCommand"
args4(1).Value = 0
args4(2).Name = "SkipEmptyCells"
args4(2).Value = false
args4(3).Name = "Transpose"
args4(3).Value = false
args4(4).Name = "AsLink"
args4(4).Value = false
args4(5).Name = "MoveMode"							' com.sun.star.sheet.CellInsertMode
args4(5).Value = 4								' DOWN,RIGHT,UP,LEFT = 0,1,2,3	??? = 4 (=NONE?)

dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args4())


end sub
Jetzt muss ich noch zusehen, wie ich das mit .copyRange oder .insertTransferable ohne Zwischenablage bewerkstellige.

Und freilich auch das eigentliche neue (n+1.) Diagramm (aus dem bestehenden (n.) als Vorlage) erzeuge und anpasse.
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2533
Registriert: Fr 10. Dez 2010, 10:01

Re: Fragen zur IDE und Ergänzungen zur Behandlung von Doppelklick … [4 von mittlerweile 5 Fragen gelöst oder erledigt]

Beitrag von karolus » Fr 5. Apr 2024, 14:15

Jetzt muss ich noch zusehen, wie ich das mit .copyRange

Code: Alles auswählen

…copyRange( ziel.CellAddress , quelle.RangeAddress )
ziel ist hier das Zellobject links/oben im Zielbereich, quelle ist der Zellbereich der kopiert werden soll.

lässt du dir eigentlich helfen von einem Objektinsktor wie mri.oxt ??
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: Fragen zur IDE und Ergänzungen zur Behandlung von Doppelklick … [4 von mittlerweile 5 Fragen gelöst oder erledigt]

Beitrag von nitja » Fr 5. Apr 2024, 14:34

karolus hat geschrieben:
Fr 5. Apr 2024, 14:15

Code: Alles auswählen

…copyRange( ziel.CellAddress , quelle.RangeAddress )
ziel ist hier das Zellobject links/oben im Zielbereich, quelle ist der Zellbereich der kopiert werden soll.
Soweit eh klar, fehlen nur noch ein paar kleine Details - aber ich bin dran und zuversichtlich.
👉 Jetzt doch weniger zuversichtlich: Ich kann den gewünschten Zielbereich per Makro auswählen (simpel), aber es gelingt mir nicht, den per Makro zu benennen. (Hatte ich bisher in das Namensfeld getippt, musste aber halt wissen wie der heißen soll… und das Makro weiß das eh.) Der Makrorekorder zeichnet keine der entsprechenden Aktionen auf (tippen ins Namensfeld oder via Menü Tabelle»Benannte Bereiche»Festlegen…). 💢
karolus hat geschrieben:
Fr 5. Apr 2024, 14:15
lässt du dir eigentlich helfen von einem Objektinsktor wie mri.oxt ??
Früher hatte ich mal X-Ray (oder so ähnlich) aber damit sind neue Versuche recht bescheiden ausgefallen. (Hab' auch vergessen, wie man damit eigentlich umzugehen hat.)
Das MRI werde ich mir mal genauer anschauen. Danke für den Tipp! 👍
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2533
Registriert: Fr 10. Dez 2010, 10:01

Re: Fragen zur IDE und Ergänzungen zur Behandlung von Doppelklick … [4 von mittlerweile 5 Fragen gelöst oder erledigt]

Beitrag von karolus » Fr 5. Apr 2024, 16:36

Hallo

Wäre es nicht vernünftiger, mal eine Fragestellung zu klären, anstatt immer wieder neue Fragen zu stellen???
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: Fragen zur IDE und Ergänzungen zur Behandlung von Doppelklick … [4 von mittlerweile 5 Fragen gelöst oder erledigt]

Beitrag von nitja » Fr 5. Apr 2024, 17:58

karolus hat geschrieben:
Fr 5. Apr 2024, 16:36
Wäre es nicht vernünftiger, mal eine Fragestellung zu klären, anstatt immer wieder neue Fragen zu stellen???
Du meinst statt im selben thread weitere posts anzuhängen, die bzgl. der zuerst gewählten Überschrift ot wären, für jede dabei neu aufkommende Frage einen neuen thread zu eröffnen?
Hab' ich (in einem anderen Forum) auch schon mal gemacht und wurde dann dafür b̶e̶s̶c̶h̶i̶m̶̶p̶f̶t gerügt, dass das ja zum selben Projekt gehört und ein thread doch gereicht hätte. … ??? …
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: Fragen zur IDE und Ergänzungen zur Behandlung von Doppelklick … [4 von mittlerweile 5 Fragen gelöst oder erledigt]

Beitrag von nitja » Fr 5. Apr 2024, 18:12

nitja hat geschrieben:
Fr 5. Apr 2024, 14:34
👉 Jetzt doch weniger zuversichtlich: Ich kann den gewünschten Zielbereich per Makro auswählen (simpel), aber es gelingt mir nicht, den per Makro zu benennen. …
… und damit der Zusammenhang gewahrt bleibt, doch jetzt hier auch gleich die Lösung:

Code: Alles auswählen

sub onActivate
	if not isInitd then doInit
end sub 'onActivate

sub doInit												' set module variables
	if isInitd then exit sub
	oDoc=thisComponent
	oNmdRngs=oDoc.NamedRanges
	oGkSht=oDoc.Sheets.getByIndex(0)
	sMonth=Array(Format(DateAdd("m",-1,Date),"yy·mm"),Format(Date,"yy·mm"))
	sGfkPg=Array("Grafikseite" & Replace(sMonth(0),"·","_"),"Grafikseite" & Replace(sMonth(1),"·","_"))
	if not oNmdRngs.hasByName(sGfkPg(1)) then NewMonth
	oCtrlr=oDoc.getCurrentController
	isInitd=true
end sub 'doInit

sub NewMonth
	dim oRng as object, oRfCellAddr as object
	if not oNmdRngs.hasByName(sGfkPg(0)) then
'		MsgBox(…
		stop
	end if 'graphic page for previous month missing
	oRfCellAddr=oGkSht.getCellByPosition(0,0).getCellAddress()
	oGfkPg(0)=oNmdRngs.getByName(sGfkPg(0)).getReferredCells
	oGPgRa(0)=oGfkPg(0).RangeAddress
	with oGPgRa(0)
		oRng=oGkSht.getCellRangeByPosition(.StartColumn,.StartRow+33,.EndColumn,.EndRow+33)
		oNmdRngs.addNewByName(sGfkPg(1),oRng.AbsoluteName,oRfCellAddr,0)			' cf. Pitonyak et al. 16.6.1 pgs.531-534
		oGfkPg(1)=oNmdRngs.getByName(sGfkPg(1)).getReferredCells
	end with
end sub 'NewMonth
Läuft! … wobei ich den Verdacht habe, dass die Adressierung mit geeigneterer Referenz-Zelle auch geschickter sein könnte. Die erste Seite beginnt mit der 3.Zeile und alle Seiten sind 33 Zeilen lang.
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: Fragen zur IDE und Ergänzungen zur Behandlung von Doppelklick … [5 von 5 Fragen gelöst oder erledigt + 1 "Nachschlag

Beitrag von nitja » Sa 6. Apr 2024, 11:42

Nachdem alle ursprünglichen Fragen, die mich dieses Thema haben eröffnen lassen, werde ich das jetzt als endgültig gelöst markieren.
Momentan kämpfe ich noch mit der Erstellung des neuen Diagramms aus demjenigen des Vormonats als Vorlage. Aber das ist hier wirklich <ot>, nun doch ein neues Thema. (… wie es mein "Nachschlag" ab gestern (05.04.2024, 13:47) eigentlich auch schon war)
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten