Calc Datei mit Uhrzeit Speichern und Schließen

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

Moderator: Moderatoren

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

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Jörg »

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.15
Rocko
*******
Beiträge: 1164
Registriert: Do, 11.10.2012 13:19

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Rocko »

Zyreon1 hat geschrieben: So, 08.04.2018 11:14leide 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 »

Hallo Rocko,

Super Danke kann mein Konto jetzt nutzen :D
Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Jörg »

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.15
Zyreon
Beiträge: 5
Registriert: Do, 05.04.2018 16:37

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Zyreon »

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: 392
Registriert: Mo, 21.10.2013 12:05

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Jörg »

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.15
Zyreon
Beiträge: 5
Registriert: Do, 05.04.2018 16:37

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Zyreon »

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: 392
Registriert: Mo, 21.10.2013 12:05

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Jörg »

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.15
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Stephan »

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


Gruß
Stephan
Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Jörg »

Danke Stephan !!
Gruß Jörg

Win 10 Pro AOO 4.1.15
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Toxitom »

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: 392
Registriert: Mo, 21.10.2013 12:05

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Jörg »

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.15
Zyreon
Beiträge: 5
Registriert: Do, 05.04.2018 16:37

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Zyreon »

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 :)
Zyreon
Beiträge: 5
Registriert: Do, 05.04.2018 16:37

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Beitrag von Zyreon »

Hallo Faol,

Vielen Dank ich habe erst heute gemerkt das bereits die zweite Seite angefangen wurde :P.

Ich teste das Makro heute noch.

die Zeilen ' sind nur Infozeilen und sollte ich bestimmt rauslöschen oder kann ich diese stehen lassen?


MfG Zy
Antworten