[gelöst] Makro - Calc - Schließen einer Tabelle

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

Moderator: Moderatoren

nanduriel
Beiträge: 5
Registriert: Fr, 02.03.2012 15:41

[gelöst] Makro - Calc - Schließen einer Tabelle

Beitrag von nanduriel »

Hallo OpenOffice-Community =)


mein Makro soll nach einer gewissen Zeit die verwendete Star-Office-Tabelle schließen und eventuelle Einträge sichern.


----

Code: Alles auswählen

sub schlafmuetze

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

Wait 50000

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



dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())
        oDoc = thisComponent
odoc.store
odoc.close(true)

end sub


----

Soweit alles gut. Die Datei schließt sich nach der Zeit von selbst.

Aber...
Wenn ich aus der Tabelle vor der definierten Zeit herausgehe, läuft das Makro im Hintergrund weiter.
Auswirkung: ich komme nur noch schreibgeschützt in die Tabelle und muss warten bis die Zeit abgelaufen ist.
Mit welchem Befehl kann ich mein Makro beim vorzeitigen Beenden abbrechen?

Ich dachte ich könnte ein Button in meine Tabelle einfügen "Speichern und Beenden". Das Makro muss mein Makro Schlafmuetze beenden und anschließend die Datei sichern und beenden. Nur weiß ich nicht wie ich das umsetzen soll =(


Danke für eure Hilfe,
Gruß,
Nandu
nanduriel
Beiträge: 5
Registriert: Fr, 02.03.2012 15:41

Re: Makro - Calc - Schließen einer Tabelle

Beitrag von nanduriel »

Habe viel probiert, aber leider immer noch keine Lösungs gefunden.

Hat keiner eine Idee wie ich ein laufendes Makro mit einem WAIT-Befehl beenden kann?
Bzw. WAIT abbrechen kann

Gruß Nandu
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Makro - Calc - Schließen einer Tabelle

Beitrag von F3K Total »

Hallo,
mit einem "Schalter" bexit kannst Du eine Schleife verlassen:

Code: Alles auswählen

global bexit as boolean

sub schlafmuetze
    odoc = thiscomponent
    bexit = false
    for i = 1 to 500
    wait 100
    if bexit then goto 100
    next i
    odoc.store
    odoc.close(true)
    100:
end sub

sub S_exit
    odoc = thiscomponent
    if msgbox ("Soll das Dokument geschlossen werden",36,"Dokument schliessen") = 6 then
        bexit = true
        wait 101
        odoc.store
        odoc.close(true)
    else
        bexit = true    
    endif
end sub
Anbei ein Beispiel

Gruß R
Dateianhänge
Schlafmuetze.odt
(10.68 KiB) 177-mal heruntergeladen
nanduriel
Beiträge: 5
Registriert: Fr, 02.03.2012 15:41

Re: Makro - Calc - Schließen einer Tabelle

Beitrag von nanduriel »

Hallo F3K Total ,


vielen, vielen Dank für die Lösung!
Der Code funktioniert einwandfrei =)

Das Thema kann geschlossen werden.

Ich wünsch allen einen guten Start ins neue Jahr

Gruß,
Nanduriel
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Makro - Calc - Schließen einer Tabelle

Beitrag von lorbass »

nanduriel hat geschrieben:Das Thema kann geschlossen werden.
Do it yourself! Öffne deinen ersten Beitrag des Themas mit Ändern, stelle dem Betreff den Hinweis »[gelöst]« voran und klicke auf Absenden. Fertig.

Gruß
lorbass
Antworten