Calc Datei mit Uhrzeit Speichern und Schließen

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

Moderator: Moderatoren

Zyreon

Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Zyreon » Do, 05.04.2018 15:00

Hallo OpenOfficer,

Setup:
Win10 Pro 64

ich nutze eine Software (virtuelle Tastatur, die nur schreibt) die in eine Calc-Tabelle Ergebinsse einträgt.

Diese würde ich gerne einmal pro Woche automatisch abspeichern am besten mit einem Namen der sich über den Zeitserver generiert und schließt und eine neue Leere Mappe öffnet.

Gibt es ein Tool bzw. Makro mit dem ich die Datei automatisch Speichern kann? Falls ja wie installiere ich dieses?

LG Zyreon

Jörg
*****
Beiträge: 352
Registriert: Mo, 21.10.2013 12:05

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Jörg » Do, 05.04.2018 16:21

Hallo,

Code: Alles auswählen

Sub makeDayCopy()
sMakroName = "makeDayCopy "
sMakroVersion = "2006-08-12 " 
sMakroVersion = "2010-08-05"


oComp = StarDesktop.CurrentComponent

' macro run from blank Desktop
If oComp.supportsService(_
	"com.sun.star.frame.StartModule" ) Then	
' exit without action
Exit Sub
End If
' macro run from Basic IDE
If oComp.supportsService(_
	"com.sun.star.script.BasicIDE" ) Then	
' exit without action
Exit Sub
End If

oDok = ThisComponent

antwort = MsgBox ("Sicherungskopie erstellen?" , 52 , "Sicherung")
if antwort = 7 then
		Exit sub
end if		
dim dummy()
   datei="E:\openoffice\Patientendatei.ods"
   dateiurl=converttourl(datei)
   odoc=thisComponent
   odoc.storeasurl(dateiurl,dummy())
If oDok.hasLocation() then
	
	' check if HELP window is in foreground
	If Instr( oDok.getLocation() , "vnd.sun.star.help:" ) then
		'		msgbox "HELP window in foreground"
	' exit without action
	Exit Sub
	End if

	If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Tools" ) Then
	   GlobalScope.BasicLibraries.loadLibrary( "Tools" ) 
	End If
	    xFile = "E:\openoffice\Sicherungskopien\" & GetFileNameWithoutExtension(oDok.title,) & format(now(),"YYYY-MM-DD-hh'mm'ss") & ".ods"
    sFileURL=converttourl( xFile )

	Dialoglibraries.Loadlibrary("Standard")
	MyDlg= CreateUnoDialog(Dialoglibraries.Standard.Dialog1)
	MyDlg.setvisible (True)
	myctrl = myDlg.getControl("ProgressBar1")
	myctrl.model.backgroundcolor = RGB (255, 159, 70)
	myctrl.ForegroundColor = RGB (255, 0, 0)
	myctrl.model.ProgressValueMax=100
	for i= 0 to 100
	myDlg.getControl("Label1").Text = "In Arbeit... " & i & " %"
	if i > 75 then
	myctrl.ForegroundColor = RGB (2, 159, 70)
	myDlg.getControl("Label1").Text = "Bin gleich fertig! " & i & " %"
	MyCtrl1=MyDlg.getControl("Label1")
	myctrl1.model.textcolor = RGB (2, 159, 70)
	end if
	myctrl. value = i
	wait 80
	next i
	mydlg.setvisible (false) 	
 

if FileExists( sFileURL ) then
		
		msgbox cDokGefunden & chr(13) &_
			sFileURL & chr(13) & _
			cNoCopyMade ,_
	64 ,sMakroName & sMakroVersion
else
	
		oDok.StoreToURL( sFileURL , Array() )
end if

Else
	' no filename by now - cannot do a thing
	msgbox cNoLoc & chr(13) &_
		cSaveAndRerun , 64 , sMakroName & sMakroVersion

End If

	oDialog2.endexecute()
antwort = MsgBox ("Sicherungskopie erfolgreich erstellt" & Chr(13) & "Dokument schließen?", 52 , "Sicherung")
if antwort = 7 then
		Exit sub
end if
oDoc = ThisComponent
    checkclose=odoc.ismodified()
    if checkclose=false then
               odoc.close(true)         

End sub  
End sub        
Mußt halt die Pfade entsprechend anpassen. Das Makro speichert mit Dateinamen und Uhrzeit.
Gruß Jörg

Win 10 Pro AOO 4.1.5.

Zyreon1

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Zyreon1 » So, 08.04.2018 11:14

Hallo Jörg,

leide habe ich noch immer keinen Zugriff auf mein hier Erstelltes Benutzerkonto... :<

Erstmal Vielen Dank für deine Hilfe :)

ich habe momentan ein Problem bzw. Frage zu dem Makro

ich habe es unter Extras -> Makros -> Makros -> Makros verwalten -> OpenOffice unter Standard -> Module1 erstellt.

habe ebenfalls Java SE installiert wollte jetzt einen Test ausführen und er brachte mir den Fehler das er einen Befehl nicht erkennt.

Code: Alles auswählen

Sub makeDayCopy()
sMakroName = "makeDayCopy "
sMakroVersion = "2006-08-12 " 
sMakroVersion = "2010-08-05"


oComp = StarDesktop.CurrentComponent

' macro run from blank Desktop
If oComp.supportsService(_
	"com.sun.star.frame.StartModule" ) Then	
' exit without action
Exit Sub
End If
' macro run from Basic IDE
If oComp.supportsService(_
	"com.sun.star.script.BasicIDE" ) Then	
' exit without action
Exit Sub
End If

oDok = ThisComponent

antwort = MsgBox ("Sicherungskopie erstellen?" , 52 , "Sicherung")
if antwort = 7 then
		Exit sub
end if		
dim dummy()
   datei="C:\Patientendatei.ods"
   dateiurl=converttourl(datei)
   odoc=thisComponent
   odoc.storeasurl(dateiurl,dummy())
If oDok.hasLocation() then
	
	' check if HELP window is in foreground
	If Instr( oDok.getLocation() , "vnd.sun.star.help:" ) then
		'		msgbox "HELP window in foreground"
	' exit without action
	Exit Sub
	End if

	If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Tools" ) Then
	   GlobalScope.BasicLibraries.loadLibrary( "Tools" ) 
	End If
	    xFile = "C:\Sicherungskopien\" & GetFileNameWithoutExtension(oDok.title,) & format(now(),"YYYY-MM-DD-hh'mm'ss") & ".ods"
    sFileURL=converttourl( xFile )

	Dialoglibraries.Loadlibrary("Standard")
	MyDlg= CreateUnoDialog(Dialoglibraries.Standard.Dialog1)
	MyDlg.setvisible (True)
	myctrl = myDlg.getControl("ProgressBar1")
	myctrl.model.backgroundcolor = RGB (255, 159, 70)
	myctrl.ForegroundColor = RGB (255, 0, 0)
	myctrl.model.ProgressValueMax=100
	for i= 0 to 100
	myDlg.getControl("Label1").Text = "In Arbeit... " & i & " %"
	if i > 75 then
	myctrl.ForegroundColor = RGB (2, 159, 70)
	myDlg.getControl("Label1").Text = "Bin gleich fertig! " & i & " %"
	MyCtrl1=MyDlg.getControl("Label1")
	myctrl1.model.textcolor = RGB (2, 159, 70)
	end if
	myctrl. value = i
	wait 80
	next i
	mydlg.setvisible (false) 	
 

if FileExists( sFileURL ) then
		
		msgbox cDokGefunden & chr(13) &_
			sFileURL & chr(13) & _
			cNoCopyMade ,_
	64 ,sMakroName & sMakroVersion
else
	
		oDok.StoreToURL( sFileURL , Array() )
end if

Else
	' no filename by now - cannot do a thing
	msgbox cNoLoc & chr(13) &_
		cSaveAndRerun , 64 , sMakroName & sMakroVersion

End If

	oDialog2.endexecute()
antwort = MsgBox ("Sicherungskopie erfolgreich erstellt" & Chr(13) & "Dokument schließen?", 52 , "Sicherung")
if antwort = 7 then
		Exit sub
end if
oDoc = ThisComponent
    checkclose=odoc.ismodified()
    if checkclose=false then
               odoc.close(true)         

End sub  
End sub   
Bild: https://picload.org/view/dawgpwow/oo-makro.jpg.html

Rocko
*******
Beiträge: 1150
Registriert: Do, 11.10.2012 13:19

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Rocko » So, 08.04.2018 12:01

Zyreon1 hat geschrieben:
So, 08.04.2018 11:14
leide habe ich noch immer keinen Zugriff auf mein hier Erstelltes Benutzerkonto...
Probiers noch einma!
Zyreon - Dein Passwort

Rocko, Moderator
Hast du schon mal einen Blick in die Writer-FAQ und in die Calc-FAQ des Forums geworfen?
Für jeden vor dem Beginn seiner Seminararbeit ein unbedingtes MUSS: http://openoffice-uni.org/

Zyreon
Beiträge: 5
Registriert: Do, 05.04.2018 16:37

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Zyreon » So, 08.04.2018 13:42

Hallo Rocko,

Super Danke kann mein Konto jetzt nutzen :D

Jörg
*****
Beiträge: 352
Registriert: Mo, 21.10.2013 12:05

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Jörg » Mo, 09.04.2018 08:56

Hallo,

Code: Alles auswählen

datei="C:\"Deine Calc-Datei".ods"
Wie heißt Dein Calc-Dokument?

Code: Alles auswählen

xFile = "C:\Sicherungskopien\" & GetFileNameWithoutExtension(oDok.title,) & format(now(),"YYYY-MM-DD-hh'mm'ss") & ".ods
Existiert bei Dir der Ordner Sicherungskopien?

Diese Makro entweder manuell über Schaltfläche ausführen oder über

Extras->Anpassen-> Dokument wird geschlossen
Gruß Jörg

Win 10 Pro AOO 4.1.5.

Zyreon
Beiträge: 5
Registriert: Do, 05.04.2018 16:37

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Zyreon » Mo, 09.04.2018 10:27

Hallo Jörg,

Also ich erstelle heute Mittag mal den Datei-Pfad sorry dachte er erstellt den selber.

C:\Vorlage\Vorlage.ods <- Grunddatei

C:\Sicherungskopie\ <- hier erstellt er dann meine Dateien "YYYY-MM-DD-hh'mm'ss"

Kann ich das Makro automatisieren? sobald Vorlage.ods öffnet? (Sorry ich bin nicht so der Code-Crack :O)

Code: Alles auswählen

Sub makeDayCopy()
sMakroName = "makeDayCopy "
sMakroVersion = "2006-08-12 " 
sMakroVersion = "2010-08-05"


oComp = StarDesktop.CurrentComponent

' macro run from blank Desktop
If oComp.supportsService(_
	"com.sun.star.frame.StartModule" ) Then	
' exit without action
Exit Sub
End If
' macro run from Basic IDE
If oComp.supportsService(_
	"com.sun.star.script.BasicIDE" ) Then	
' exit without action
Exit Sub
End If

oDok = ThisComponent

antwort = MsgBox ("Sicherungskopie erstellen?" , 52 , "Sicherung")
if antwort = 7 then
		Exit sub
end if		
dim dummy()
   datei="C:\Vorlage\Vorlage.ods"
   dateiurl=converttourl(datei)
   odoc=thisComponent
   odoc.storeasurl(dateiurl,dummy())
If oDok.hasLocation() then
	
	' check if HELP window is in foreground
	If Instr( oDok.getLocation() , "vnd.sun.star.help:" ) then
		'		msgbox "HELP window in foreground"
	' exit without action
	Exit Sub
	End if

	If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Tools" ) Then
	   GlobalScope.BasicLibraries.loadLibrary( "Tools" ) 
	End If
	    xFile = "C:\Sicherungskopien\" & GetFileNameWithoutExtension(oDok.title,) & format(now(),"YYYY-MM-DD-hh'mm'ss") & ".ods"
    sFileURL=converttourl( xFile )

	Dialoglibraries.Loadlibrary("Standard")
	MyDlg= CreateUnoDialog(Dialoglibraries.Standard.Dialog1)
	MyDlg.setvisible (True)
	myctrl = myDlg.getControl("ProgressBar1")
	myctrl.model.backgroundcolor = RGB (255, 159, 70)
	myctrl.ForegroundColor = RGB (255, 0, 0)
	myctrl.model.ProgressValueMax=100
	for i= 0 to 100
	myDlg.getControl("Label1").Text = "In Arbeit... " & i & " %"
	if i > 75 then
	myctrl.ForegroundColor = RGB (2, 159, 70)
	myDlg.getControl("Label1").Text = "Bin gleich fertig! " & i & " %"
	MyCtrl1=MyDlg.getControl("Label1")
	myctrl1.model.textcolor = RGB (2, 159, 70)
	end if
	myctrl. value = i
	wait 80
	next i
	mydlg.setvisible (false) 	
 

if FileExists( sFileURL ) then
		
		msgbox cDokGefunden & chr(13) &_
			sFileURL & chr(13) & _
			cNoCopyMade ,_
	64 ,sMakroName & sMakroVersion
else
	
		oDok.StoreToURL( sFileURL , Array() )
end if

Else
	' no filename by now - cannot do a thing
	msgbox cNoLoc & chr(13) &_
		cSaveAndRerun , 64 , sMakroName & sMakroVersion

End If

	oDialog2.endexecute()
antwort = MsgBox ("Sicherungskopie erfolgreich erstellt" & Chr(13) & "Dokument schließen?", 52 , "Sicherung")
if antwort = 7 then
		Exit sub
end if
oDoc = ThisComponent
    checkclose=odoc.ismodified()
    if checkclose=false then
               odoc.close(true)         

End sub  
End sub 

Jörg
*****
Beiträge: 352
Registriert: Mo, 21.10.2013 12:05

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Jörg » Mo, 09.04.2018 12:09

Hallo,

Kann ich das Makro automatisieren? sobald Vorlage.ods öffnet? (Sorry ich bin nicht so der Code-Crack :O)

Eventuell unter EXtras-> Anpassen-> Dokument geöffnet.

Zyreon hat geschrieben:
Mo, 09.04.2018 10:27
C:\Sicherungskopie\ <- hier erstellt er dann meine Dateien "YYYY-MM-DD-hh'mm'ss"
Ja, wenn DU einen entsprechenden Ordner in C: hast

Lösch mal noch diese Zeile.

Code: Alles auswählen

oDialog2.endexecute()
Gruß Jörg

Win 10 Pro AOO 4.1.5.

Zyreon
Beiträge: 5
Registriert: Do, 05.04.2018 16:37

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Zyreon » Mo, 09.04.2018 13:32

Hallo Jörg,

ich habe die Zeile gelöscht und Verzeichnisse erstellt im Ordner Vorlage liegt meine Vorlage.ods, Makro gestartet.

leider habe ich jetzt wieder einen Fehler "Basic-Syntaxfehler. Erwartet: Sub."

Bild: https://picload.org/view/dawdwcgr/oo-makro.jpg.html

Jörg
*****
Beiträge: 352
Registriert: Mo, 21.10.2013 12:05

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Jörg » Mo, 09.04.2018 14:00

hallo,
kann ich jetzt nicht nachvollziehen.
Wie weit läuft das Makro durch?
Stell mal Deinen kompletten Code noch mal rein.


@Moderator
Vielleicht könnte das Thema ins Unterforum Makros verschoben werden?
Gruß Jörg

Win 10 Pro AOO 4.1.5.

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

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Stephan » Mo, 09.04.2018 14:09

@Moderator
Vielleicht könnte das Thema ins Unterforum Makros verschoben werden?
OK, getan.


Gruß
Stephan

Jörg
*****
Beiträge: 352
Registriert: Mo, 21.10.2013 12:05

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Jörg » Mo, 09.04.2018 14:15

Danke Stephan !!
Gruß Jörg

Win 10 Pro AOO 4.1.5.

Toxitom
********
Beiträge: 3500
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Toxitom » Mo, 09.04.2018 14:44

Hey,

der Code ist sehr schlecht geschrieben und sollte dringed überarbeitet ud bereinigt werden. Was direkt auffällt:

Code: Alles auswählen

... oDoc = ThisComponent
    checkclose=odoc.ismodified()
    if checkclose=false then
               odoc.close(true)         

End sub  
End sub 
Doppeltes "end sub" am Ende - Syntaxfehler! Führt bei LibreOffice zu der Fehlermeldung "Sub erwartet".

Code: Alles auswählen

Sub makeDayCopy()
sMakroName = "makeDayCopy "
sMakroVersion = "2006-08-12 " 
sMakroVersion = "2010-08-05"
...
Doppelte Zuweisung eines Wertes zu einer (nicht definierten) Variablen:--> Unsinnig (die erste Zuweisung wird ja direkt wieder überschrieben), schlechter Stil, führt aber nicht zu einem Programmfehler. Verwirrt aber beim Lesen des Codes.

Dazu kommt: Wirres Einrücken und wenig Struktur.

Ich empfehle wirklich, den Code erst mal zu überarbeiten - vielleicht lösen sich dann ja die Probleme "wie von selbst";))

Viele Grüeß
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic

Jörg
*****
Beiträge: 352
Registriert: Mo, 21.10.2013 12:05

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Jörg » Mo, 09.04.2018 15:25

Hallo Toxitom,
hast sicher recht.
Aber bei mir (AOO 4.1.5) läuft er. Auch mit dem 2x End sub.
Hängt möglicherweise mit anderen Codes zusammen.
Würd Euch bitten, den Fragesteller weiter zu unterstützen.

Danke.
Gruß Jörg

Win 10 Pro AOO 4.1.5.

Zyreon
Beiträge: 5
Registriert: Do, 05.04.2018 16:37

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Zyreon » Di, 10.04.2018 13:15

Hallo,

Also ich habe openoffice 4.1.5 installiert aber nur mit Calc. Benötige ich dafür zusatz utility´s

ich bin um jede Hilfe dankbar, ich will hier nur keinen Streit :)

Antworten