Tabellenereignisse

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

Moderator: Moderatoren

dinner4one
**
Beiträge: 32
Registriert: Mo, 14.12.2020 10:02

Tabellenereignisse

Beitrag von dinner4one »

Hallo,
ich habe ein Tabellenereigniss -> Dokument aktivieren eines Blattes mit einem globalen Makro verknüpft. Dieses Blatt soll nun vom User kopiert bzw. dubliziert werden. Leider geht beim Anlegen des Blattes die Makroverknüpfung verloren.
Was kann ich da machen um diese Verknüpfung zu erhalten? Gibt es ein anderes Ereigniss der Mappe das man benutzen könnte?
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Tabellenereignisse

Beitrag von Stephan »

Was kann ich da machen um diese Verknüpfung zu erhalten?
Meines Erachtens leider garnichts.
Warum weist Du nicht das gewünschte Ereignis per Makro (erneut) zu? z.B.:

Code: Alles auswählen

Dim Props(1) as new com.sun.star.beans.PropertyValue
Props(0).Name = "EventType"
Props(0).Value = "Script"
Props(1).Name = "Script"
Props(1).Value = "vnd.sun.star.script:Standard.Module1.Main?language=Basic&location=application"

ThisComponent.Sheets.getByIndex(0).Events.ReplaceByName("OnChange", Props())
Gibt es ein anderes Ereigniss der Mappe das man benutzen könnte?
ja, alle die als Tabellenereregnis aufgelistet sind im KOntextmenü des Tabellenrteiters, Punkt "Tabellenereignisse..."



Gruß
Stephan
dinner4one
**
Beiträge: 32
Registriert: Mo, 14.12.2020 10:02

Re: Tabellenereignisse

Beitrag von dinner4one »

Hallo,
Meines Erachtens leider garnichts.
Warum weist Du nicht das gewünschte Ereignis per Makro (erneut) zu?
Schade das nicht ne Option wie "verknüpfte Makros behalten" existiert. Ich wollte dem User ne Möglichkeit geben das Blatt zu dublizieren wenn eines nicht reicht. Die Makroverknüpfung übergibt Parameter an die Filter in der gemeinsamen Datenbereichauswertung.

Nun kann ich nur fertige, mit Verknüpfung ausgerüstete Kopien unsichtbar machen und bei Bedarf mit einer Extrafunktion sichtbar machen. Sonst fällt mir nichts dazu ein.

Trotzdem Danke für die Antwort
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Tabellenereignisse

Beitrag von Stephan »

Nun kann ich nur fertige, mit Verknüpfung ausgerüstete Kopien unsichtbar machen und bei Bedarf mit einer Extrafunktion sichtbar machen. Sonst fällt mir nichts dazu ein.
Hä?

Ich habe Dir die Lösung doch hingeschrieben.

in:

Code: Alles auswählen

Props(1).Value = "vnd.sun.star.script:Standard.Module1.Main?language=Basic&location=application"
ist "Main" der Name des Makros und "Module1" der Modulname sowie "Standard" der Bibliothelksname eines Makros in den Globalen Makros (=Application")

und in:

Code: Alles auswählen

ThisComponent.Sheets.getByIndex(0).Events.ReplaceByName("OnFocus", Props())
ist ThisComponent.Sheets.getByIndex(0) das Blatt, also die kopierte Tabelle, der das Makro für das Ereignis "Dokument aktiviueren" zugewiesen wird.


Macht genau das was Du brauchst, Du musst nur den Code nach dem Kopiuervorgang im Makro durchführen und natürlich die Tabellenobjektbezüge richtig anpassen.

Achtung: das richtige EReignis ist "OnFocus", nicht "OnChange" wie ich fälschlich gepostet hatte.





Gruß
Szephan
Antworten