Calc-Diagramm nach Impress per DDE

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Matse
Beiträge: 5
Registriert: Di, 14.03.2006 20:51
Wohnort: Weimar
Kontaktdaten:

Calc-Diagramm nach Impress per DDE

Beitrag von Matse »

Hallo,

ich suche eine Möglichkeit eine Reihe von Diagrammen entweder direkt in Calc als Slideshow zu starten oder eben einen Import der Daten in Diagramme nach Impress. Bin leider mit meiner Suche nicht weitergekommen. Soweit ich es verstanden habe, sollte es per OLE oder DDE gehen.

Zum Verständnis: wir haben in der Firma einen Monitor an der Wand, welcher per Präsentation immer dir aktuellen Umsätze zeigen soll. Die Tabellen sind soweit klar, die Diagramme funktionieren auch wie sie sollen.
Nur leider habe ich keine Möglichkeit gefunden die Diagramme einzeln als Vollbild darzustellen. Eventuell als Makro?

Viele Grüße,

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

Re: Calc-Diagramm nach Impress per DDE

Beitrag von Stephan »

Nur leider habe ich keine Möglichkeit gefunden die Diagramme einzeln als Vollbild darzustellen.
Ansicht-Ganzer Bildschirm (im Menü)?
Eventuell als Makro?
schalte Ganzer Bildschirm ein und schalte das ganze 'Geraffel' (Gitternetzlinien, Scrollleisten, Tabellenreiter, ....) ab und schalte die Blätter per Makro nacheinander aktiv:

Code: Alles auswählen

With Thiscomponent
   For i = 0 To .Sheets().Count - 1
      .CurrentController.SetActiveSheet(.Sheets().getByIndex(i))
      Wait 5000 'entspricht 5 Sekunden
   Next i
End With
und Du hast was du wolltest.

Mit Impress und DDE würde ich das konkrete Problem hingegen nicht lösen, weil es sehr wahrscheinlich Probleme bei de Skalierung drr Diagrame gibt, falls diese nicht alle gleich sind, denn Du kannst per DDE nur ganze Dateien und keine Einzeldiagramme verknüpfen.


Gruß
Stephan
Matse
Beiträge: 5
Registriert: Di, 14.03.2006 20:51
Wohnort: Weimar
Kontaktdaten:

Re: Calc-Diagramm nach Impress per DDE

Beitrag von Matse »

Hi Stephan,

erstmal vielen Dank für die schnelle Anwtwort.

Hab damit auch schon ein bissel gebastelt. Hab aber noch ein paar Fragen dazu:

Deine Lösung mit Makro ist gut, ich hab nur leider 12 Diagramme, welche alle etwas kleiner auf einem Blatt vorhanden sind. Entweder müsste ich jedes Diagramm einzeln pro Blatt verteilen oder hier meine Idee: ich nehme ein Blatt und lasse per Makro einfach die Datensätze ändern. Die Diagramme/Tabellen sind immer gleich - ändern sich nur in den Werten.

Leider ist mein Wissen um das Openoffic-Basic nicht so groß, und ein Basteln per Makro-Aufnahme und Lernen sieht auch nicht nach Erfolg aus. Hier wird einfach zuviel mit Objekten gearbeitet. Wobei ich denke, dass ich das gar nicht alles brauche.

Code: Alles auswählen

sub alles_weg
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 = "InputLineVisible"
args1(0).Value = false

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

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StatusBarVisible"
args2(0).Value = false

dispatcher.executeDispatch(document, ".uno:StatusBarVisible", "", 0, args2())

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

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


end sub
Geht bestimmt einfacher. :D

Es sieht z.Z. so aus:

Code: Alles auswählen

sub Main

do until keypressed

With Thiscomponent
   For i = 4 To 6
      .CurrentController.SetActiveSheet(.Sheets().getByIndex(i))
      Wait 5000 'entspricht 5 Sekunden
   Next i
   
End With

loop

end sub
wobei das mit keypressed, nicht funktioniert - glaub wegen Calc - hier nimmt die Tabelle gleich den Tastendruck entgegen.

Weiterhin wäre es schön, wenn das Makro als Button in der Tabelle verlinkt wird und dieses Linien, Vollbild etc. selber einstellen/verstecken kann.

EDIT: gibt es zum Basic vlt. eine Seite auf deutsch zum Nachlesen?

Grüße,
Matthias
Antworten