Datensicherung mit Makro

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

Moderator: Moderatoren

Hansi
***
Beiträge: 56
Registriert: Mo, 04.04.2011 09:50

Datensicherung mit Makro

Beitrag von Hansi »

Hallo Leute,

nun ist es passiert,ich habe meine Daten von 6 Monaten ausversehen gelöscht.Dadurch bin ich auf ein neues Problem gestoßen.Ist es möglich eine Datensicherung per Makro zu machen.Sprich wenn 10 Tage der letzten Datensicherung vorbei sind,muß man an eine neue Datensicherung erinnert werden. 10 Tage deswegen,da ich die letzen 10 Tage noch in meiner Datenfernauslesung drin habe.

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

Re: Datensicherung mit Makro

Beitrag von F3K Total »

Hallo,
wenn es sich um ein Calc Dokument handelt, kann man das letzte Backup Datum in einer Zelle speichern. Siehe Anlage.
Das Makro überprüft das aktuelle Datum, meldet wenn das Datum in der Zelle A1 mindestens 10 Tage älter ist und trägt dann das aktuelle Datum in die Zelle ein.

Gruß R
Dateianhänge
remind_backup.ods
(9.07 KiB) 73-mal heruntergeladen
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Datensicherung mit Makro

Beitrag von komma4 »

Hansi hat geschrieben:Sprich wenn 10 Tage der letzten Datensicherung vorbei sind,muß man an eine neue Datensicherung erinnert werden.
Würde ich über das Betriebssystem lösen...

Linux: cronjob, der eine Liste der zu sichernden Dateinamen ausliest und Kopien (mit angehängtem Zeitstempel) in einem Archivverzeichnis erstellt.

Kann mir gut vorstellen, dass es unter Windows entsprechende Freeware Programme gibt.
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)
Hansi
***
Beiträge: 56
Registriert: Mo, 04.04.2011 09:50

Re: Datensicherung mit Makro

Beitrag von Hansi »

Hi,

ich hab da etwas gefunden,weiß nur noch nicht wie ich den eingelesende Dateinamen aus dem FilePicker herausbekomme.

Hier mal der Link http://www.ooowiki.de/StarBasic

Im spezielen FileDateTime.

Ihr wisst das bestimmt.

Gruß
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Datensicherung mit Makro

Beitrag von komma4 »

Hansi hat geschrieben:Im spezielen FileDateTime.
Warum nimmst Du nicht das Änderungsdatum aus den Dateieigenschaften?

Beispiel;

Code: Alles auswählen

If ThisComponent.DocumentProperties.ModifiedBy > "" Then
      With ThisComponent.DocumentProperties.ModificationDate
         sLastSavedTimeStamp =_
         .Year & "-" & _
         Format( .Month, "00" ) & "-" & _
         Format( .Day, "00" ) & " " & _
         Format( .Hours, "00" ) & ":" & _
         Format( .Minutes, "00" ) & ":" & _
         Format( .Seconds, "00" )          
      End With
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)
Hansi
***
Beiträge: 56
Registriert: Mo, 04.04.2011 09:50

Re: Datensicherung mit Makro

Beitrag von Hansi »

komma4 hat geschrieben:Warum nimmst Du nicht das Änderungsdatum aus den Dateieigenschaften?
Hmm,ich glaub geht nicht bei mir.

Erklärung,

ich arbeite mit der Datei " Test".Dessen Sicherungsdatei "Testsave" wird in einem anderen Ordner gespeichert.Über den FilePicker hol ich mir die Datei "Test".Nun muß gesprüft werden,wie alt davon die Sicherungsdatei "TestSave" ist.Und wenn ich mit der Datei "Start" über den FilePicker hole,ist es die Sicherungsdatei "StartSave" die überprüft werden sollte.
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Datensicherung mit Makro

Beitrag von Stephan »

ich hab da etwas gefunden,weiß nur noch nicht wie ich den eingelesende Dateinamen aus dem FilePicker herausbekomme
Siehe:
http://www.starbasicfaq.de/Wiekannmanei ... Dialo.html


Gruß
Stephan
Hansi
***
Beiträge: 56
Registriert: Mo, 04.04.2011 09:50

Re: Datensicherung mit Makro

Beitrag von Hansi »

Hallo,

ich habe eine Lösung für mein Problem gefunden.Im unteren Code seht ihr das ich einfach die Datei nochmal speichere mit einem Datumanhang.Da wird es zwar täglich mit gespeichert,aber das ist der Kompromiss den ich mache.Eine Sache wäre aber doch noch.Es wäre gut wenn die Sicherheitsdatei unter folgenden Verzeichnis gespeichert wird.

file:///C:/Dokumente und Einstellungen/Rene/Eigene Dateien/Winddaten/Backup

Ich bin aber noch nicht dahinter gekommen,wie das mit dem FilePicker geht,ohne noch mal den FilepIcker aufrufen zu müssen.

Code: Alles auswählen

sub AuslagernSpeichern
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object

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 = "Nr"
args1(0).Value = 2

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

rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Daten1"
args2(0).Value = ""
args2(1).Name = "Index"
args2(1).Value = 32767
args2(2).Name = "Copy"
args2(2).Value = true

dispatcher.executeDispatch(document, ".uno:Move", "", 0, args2())
  dim dummy()
    odoc = thiscomponent
SFileDialog=createunoservice("com.sun.star.ui.dialogs.FilePicker") 
SFileDialog.Initialize(Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_SIMPLE))
SFileDialog.appendFilter("Windberechnung (*.wsb)", "*.wsb")
SFileDialog.setDisplayDirectory("file:///C:/Dokumente und Einstellungen/Rene/Eigene Dateien/Winddaten/" )
SFileDialog.setTitle("Daten speichern")

iAccept = SFileDialog.Execute()
If iAccept = 1 Then
  If Right(SFileDialog.Files(0),4) =".wsb" then
   mDatei = SFileDialog.Files(0)
   mDateis = SFileDialog.Files(0)+"_"+ date 
    else   
   mDatei = SFileDialog.Files(0)+".wsb"
   mDateis = SFileDialog.Files(0)+".wsb_"+ date
   print mdateis 
  endif  
   oDoc.storeasURL(mDatei,dummy())
   oDoc.storeasURL(mDateis,dummy()) 
  else
   odoc.close(true)
   dim args3(0) as new com.sun.star.beans.PropertyValue
          args3(0).Name = "Nr"
          args3(0).Value = 3
          dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
   beep 
   exit sub  
end if
Speichern2 = msgbox ("Ihre Datei ist gespeichert.Möchtern Sie das Programm beenden ?",4+32,MyString)  
       If Speichern2 = 6 then
          document.close(true)
          odoc.close(true)
       else        
          odoc.close(true)  
          dim args4(0) as new com.sun.star.beans.PropertyValue
          args4(0).Name = "Nr"
          args4(0).Value = 3
          dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4())
          beep
       end if
end sub 

@@@ Stephan

Du hast mir hier viewtopic.php?f=18&t=48719 einen Code von mottcxo reingestellt.Der gefällt mir sehr gut,nur wann oder durch was beendet der sich ? Das hab ich noch nicht gefunden.

Gruß Hansi
Antworten