Calc Tabelle/n auswählen

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

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Calc Tabelle/n auswählen

Beitrag von clag »

Hallo Kenner und Könner,

unter Menü > Bearbeiten > Tabelle > Auswählen kann man einem kleinen Dialog [ Tabellen auswählen ] öffnen
Kann man diesen Dialog in einem Basic Makro direkt nutzen/aufrufen, und den gewähleten Tabellenamen übergeben?
Wenn ja, wie?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Calc Tabelle/n auswählen

Beitrag von komma4 »

der Kenner hat geschrieben:Der mir bekannte (einzige) Weg einen internen Dialog aufzurufen ist über den Dispatcher.

Dazu brauchst Du die SLOT ID des Dialogs.
Die Datei slots.sxc ist im Netz (und in meinen Datensicherungen) nicht mehr zu finden.

der Könner hat geschrieben:Programmiere den Dialog nach (als "dynamischer Dialog in Basic/Python: geschätzte 100 Zeilen)


Hilft das?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Calc Tabelle/n auswählen

Beitrag von clag »

Hallo komma4,

danke für die schnelle Antwort

MRI hatte mir unter
  • getSheets
    acquire () void .uno.XInterface
nur die Angaben kann noch nicht richtig auswerten,
daher keimte bei mir etwas Hoffnung auf, aber scheinbar zu Unrecht.

Deine Aussage ist natürlich nicht nicht was ich erhofft hatte, aber zumindest brauch ich nicht weiter unnütz rumsuchen,
und von daher ist deine Ansage natürlich auch hilfreich.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Calc Tabelle/n auswählen

Beitrag von balu »

Hallo clag,

unser Moderator Stephan hatte mal ein PDF mit allen SLOT-IDs veröffentlicht. Schau mal hier rein. Da findest Du auch ein einfaches Beispiel wie die SLOT-ID verwendet wird.



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
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Calc Tabelle/n auswählen

Beitrag von clag »

Hallo Balu,

gotcha! "26090" ist genau was ich suche

Code: Alles auswählen

sub Test
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, "slot:26090", "", 0, Array())
end sub 
nun müsste ich nur noch wissen wie ich die Namen der selektierten Tabellen in eine Variable bekomme?

Edit:
suchen [29060]
ersetze [26090]
[X] alles ersetzen

wo @F3K Total Recht hat, hat er Recht :D
Zuletzt geändert von clag am Di, 19.05.2015 19:52, insgesamt 2-mal geändert.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Calc Tabelle/n auswählen

Beitrag von Stephan »

nun müsste ich nur noch wissen wie ich die Namen der selektierten Tabellen in eine Variable bekomme?
Du warst schon weiter und hattest eigentlich begriffen das es nicht geht:
Deine Aussage ist natürlich nicht nicht was ich erhofft hatte, aber zumindest brauch ich nicht weiter unnütz rumsuchen
ich hatte aber heute Morgen parallel auf der internationalen API-Liste von AOO gefragt um mich nochmals zu vergewissen und auch dort ist die Auskunft das es nicht geht und man selbst einen entsprechenden Dialog (nach-)programmieren muss.

http://mail-archives.apache.org/mod_mbo ... line.de%3E

Gruß
Stephan
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Calc Tabelle/n auswählen

Beitrag von clag »

Hallo Stephan,

heute morgen war für mich das Problem der Aufruf dieser "Funktion"
da das nun doch möglich ist, nährte dies erneut meine Hoffnung auf einen brauchbaren Zugriff.
War dann halt nur eine Seifenblasenhoffnung, blopp und weg.

ok dann wird es doch eine DIY Auswahl.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Calc Tabelle/n auswählen

Beitrag von balu »

Hallo Stephan,

das ist jetzt aber schade das dies nicht geht.
Als ich erfahren hatte das man die Internen Dialoge per SLOT aufrufen kann, dachte ich das man eventuell wie beim ("com.sun.star.ui.dialogs.FilePicker" vorgehen kann. Dazu gibt es ja z.B. die Function FileOpenDialog. Okay, ich hatte das jetzt nicht mit der Anforderung von clag getestet, dachte aber das es vielleicht irgendwie geht.

Na ja, kann man nix machen.



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
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Calc Tabelle/n auswählen

Beitrag von clag »

Hallo zusammen,

und es geht doch!
zumindest für meinen Zweck tut es, sogar genauso wie ich es mir vorgestellt hatte!

Ich brauche die gewählte Tabelle hier nicht zwingend als String, sondern es genügt mir
eine der gelisteten Tabellen vom aktuellen Dokument auszuwählen und das funktioniert!
Und man könnte danach auch die aktuelle Tabelle abfragen und man hat den Namen.

Habe es gerade schon eingebaut :D
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Calc Tabelle/n auswählen

Beitrag von F3K Total »

Hallo clag,
clag hat geschrieben:gotcha! "29060" ist genau was ich suche
Funzt nicht.
26090 funzt!
Gruß R
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Calc Tabelle/n auswählen

Beitrag von Stephan »

Liebe Mitleser,

ich wollte das Ganze eigentlich schweigend aussitzen, weil es mir nicht wichtig vorkam deswegen belehrend aufzutreten nur wichtig ist die ID doch garnicht, es tut genausogut der entsprechende dispatch-Befehl den man erhält wenn man dass Ganze mit dem Makrorekorder aufzeichnet:

Code: Alles auswählen

sub Tabelle_Wechseln
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 = "Tables"
args1(0).Value = Array(1)

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


end Sub
Man kann somit auch direkt:

Code: Alles auswählen

dispatcher.executeDispatch(document, ".uno:SelectTables", "", 0, Array())
verwenden.


Gruß
Stephan
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Calc Tabelle/n auswählen

Beitrag von clag »

Hallo Stephan,

danke das du das doch noch einmal ansprichst und klarstellst
Stephan hat geschrieben:dispatcher.executeDispatch(document, ".uno:SelectTables", "", 0, Array())
genau diese Zeile hatte ich dann auch experimentel ermittelt, war mir aber auf Grund der vorherigen hier im Thread
unsicher ob das nun möglicherweise irgend einen "unerlaubten" Funktionsaufruf darstellt.

Aber es scheint sich ja doch um einen ganz Reguläre Funktion zu handeln.

Code: Alles auswählen

dispatcher.executeDispatch(document, ".uno:SelectTables", "", 0, Array())
der "Trick" ist wohl das leere Array, dadurch kommt der Auswahl Dialog zum Vorschein!

Mit der Zeile ist dann auch meine Eingangsfrage eindeutig beantwortet,
man kann die Funktion nutzen aber man kann nicht direkt den Namen als String abgreifen.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Calc Tabelle/n auswählen

Beitrag von Stephan »

war mir aber auf Grund der vorherigen hier im Thread
unsicher ob das nun möglicherweise irgend einen "unerlaubten" Funktionsaufruf darstellt
meines Wissens nein, beide Schreibweisen sind funktionell gleich

die ID zu kennen ist nur wichtig weil es für soffice den Parameter "Slot" gibt.

Der Verweis auf soffice heißt nun nicht das mman alle dispatch-Commands dahin 'Verfüttern' könnte, aber zumindest für die augeschscheinlich Sinnvollen geht das, beispielsweise den Aufruf des Vorlagendialogs:

soffice slot:5500

(diesen Ausdruck also auf der Kommandozeile eingeben oder, bei Windows, unter Start-Ausführen)
der "Trick" ist wohl das leere Array, dadurch kommt der Auswahl Dialog zum Vorschein!
Ja.
Nicht immer aber häufig kann man bei aufgezeichneten Makros die irgendwelche 'Bedienzugriffe' mittels Dialogen beinhalten, den Dialog dadurch zur Anzeige bringen indem man einfach im Makro das aufgezeichnete Parameter-Array für den .uno-Befehl durch ein leeres Arrray ersetzt.


Gruß
Stephan
Antworten