Sub Archiv()
'Skript dient dazu, Taktzeiten in eine .CSV Datei zu speichern
'Variablen definieren
Dim f, fs, fso, Datei, Pfad, Artikel, Solltaktzeit, Isttaktzeit
Dim DD, MM, JJJJ, HH, Min, Sek
Dim DD_HV, MM_HV, JJJJ_HV, HH_HV, Min_HV, Sek_HV 'Hilfsvariablen für Datum / Uhrzeit
Dim strDatum, strUhrzeit 'Hilfsvariablen für Stringzusammensetzung Datum / Uhrzeit
Dim strName 'Hilfsvariable für Dateiname
Dim Zeilenanzahl, Zeilenpuffer
'Variablen vorbelegen
Artikel = SmartTags("DB_Akt_Daten_Daten_Wkz-Name")
DD = Day(Now)
MM = Month(Now)
JJJJ = Year(Now)
HH = Hour(Now)
Min = Minute(Now)
Sek = Second(Now)
Solltaktzeit = SmartTags("Taktzeiten_Taktzeit_Soll")
Isttaktzeit = SmartTags("Taktzeiten_Taktzeit_1_Real")
SmartTags("DB_Skriptvariablen_Taktzeitarchiv_umkopieren") = False
strName = DD & "." & MM & "." & JJJJ & "/" & HH & ":" & Min & ":" & Sek 'Datum und Uhrzeit als Text in Dateinamen anfügen
'Pfad und Datei festlegen
Pfad = "Storage Card SD\Taktzeitarchiv\"
Datei = "Archiv.csv"
'Objekt für das Filehandling erstellen
Set fs = CreateObject("filectl.filesystem")
Set f= CreateObject("filectl.file")
Set fso = CreateObject("filectl.FileSystem")
'Kontrolle ob MMC Karte gesteckt ist
If fso.Dir("\Storage Card SD\") = "" Then
ShowSystemAlarm "SD Karte ist nicht gesteckt, daher Abbruch der Datenübertragung"
Else
'Kontrolle ob Verzeichnis vorhanden. Wenn nicht, dann Verzeichnis erstellen
If fs.dir(Pfad) = "" Then
fs.mkdir(Pfad)
f.close
End If
'Kontrolle ob CSV.Datei vorhanden. Wenn nicht, dann CSV.Datei erstellen
If fs.dir(Pfad + Datei) = "" Then
f.open Pfad + Datei, 8
f.LinePrint "Datum" & ";" & "Uhrzeit" & ";" & "Artikel" & ";" & "Solltaktzeit" & ";" & "Isttaktzeit" & ";"
f.close
End If
'Kontrolle ob Tag < 10 ist. Wenn ja, dann eine 0 vor die Zahl hängen
If DD < 10 Then
DD_HV = CStr("0" & DD)
Else
DD_HV = CStr(DD)
End If
'Kontrolle ob Monat < 10 ist. Wenn ja, dann eine 0 vor die Zahl hängen
If MM < 10 Then
MM_HV = CStr("0" & MM)
Else
MM_HV = CStr(MM)
End If
'Kontrolle ob Stunde < 10 ist. Wenn ja, dann eine 0 vor die Zahl hängen
If HH < 10 Then
HH_HV = CStr("0" & HH)
Else
HH_HV = CStr(HH)
End If
'Kontrolle ob Minute < 10 ist. Wenn ja, dann eine 0 vor die Zahl hängen
If Min < 10 Then
Min_HV = CStr("0" & Min)
Else
Min_HV = CStr(Min)
End If
'Kontrolle ob Sekunde < 10 ist. Wenn ja, dann eine 0 vor die Zahl hängen
If Sek < 10 Then
Sek_HV = CStr("0" & Sek)
Else
Sek_HV = CStr(Sek)
End If
'String für Datum zusammensetzen
strDatum = DD_HV & "." & MM_HV & "." & JJJJ
strUhrzeit = HH_HV & ":" & Min_HV & ":" & Sek_HV
'Zeile nur beschreiben, wenn Skriptbit auf True ist
If SmartTags("DB_Skript_Skript_Archiv") = True Then
'Pfad und Datei öffnen und beschreiben, danach wieder schließen
f.open Pfad + Datei, 8 '8 = Daten anhängen
f.LinePrint strDatum & ";" & strUhrzeit & ";" & Artikel & ";" & Solltaktzeit & ";" & Isttaktzeit & ";"
f.close
'Datei öffnen und beschriebene Zeilen zählen
f.open Pfad + Datei, 1 'Lesen
Zeilenanzahl = 0
Do While f.EOF = False
Zeilenpuffer = f.LineInputString
Zeilenanzahl = Zeilenanzahl + 1
Loop
f.Close
'Kontrolle ob beschriebene Zeilenzahl größer 9999 ist. Wenn ja, dann umkopieren
If Zeilenanzahl > 9 Then
'Taktzeitarchiv umkopieren
SmartTags("DB_Skriptvariablen_Taktzeitarchiv_umkopieren") = True
End If
Else
SmartTags("DB_Skript_Skript_Archiv") = False
End If
End If
'Filehandling zurücksetzen
Set fs = Nothing
Set f = Nothing
Set fso = Nothing
'Skriptvariable zurücksetzen
SmartTags("DB_Skript_Skript_Archiv") = False
End Sub