Dim fso, f, ts, Dateiname, VZ_NAME, DT_STRING, DT_SPLIT, i
' Script nur Durchlaufen wenn Werte vorhanden, um Nulleinträge zu verhindern
If (SmartTags("ARCHIVIERUNG\WERT")(0) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(1) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(2) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(3) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(4) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(5) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(6) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(7) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(8) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(9) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(10) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(11) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(12) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(13) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(14) > 0) Or (SmartTags("ARCHIVIERUNG\WERT")(15) > 0) Then
Set fso = CreateObject ("Scripting.FileSystemObject")
' DATUM UHR VON SPS
DT_STRING = Replace(SmartTags("COM_VISU\COM_VISU.Uhrzeit_Panel"), " ", ".")
DT_STRING = Replace (DT_STRING, ":", ".")
DT_SPLIT = Split(DT_STRING, ".")
' AUSGABE = JAHR . MONAT . TAG LEERZEICHEN STUNDE : MINUTE
DT_STRING = DT_SPLIT(2) & "." & DT_SPLIT(1) & "." & DT_SPLIT(0) & " " & DT_SPLIT(3) & ":" & DT_SPLIT(4)
' VERZEICHNIS
VZ_NAME = "D:\BDE\" 'SmartTags("DATEIABLAGE")
' Verzeichnis erzeugen (Objekt erzeugen)
Set fso = CreateObject("Scripting.FileSystemObject")
'Prüfung ob das Verzeichnis existiert
If Not fso.FolderExists(VZ_NAME) Then ' Wenn es nicht existiert, dann anlegen
fso.CreateFolder (VZ_NAME)
Else 'Fehlermeldung ausgeben
End If
' Schreiben zu Internem Medium. Vorwahl über Bildschirmgrafik.
Dateiname = VZ_NAME & "ZAEHLER.csv"
' CSV-DATEI ANLEGEN UND SPALTENÜBERSCHRIFTEN EINTRAGEN
If Not fso.FileExists(Dateiname) Then
fso.CreateTextFile (Dateiname)
Set f=fso.GetFile(Dateiname)
Set ts=f.OpenAsTextStream(8,-2)
ts.WriteLine ("DATUM UND UHRZEIT; REZEPTUR_ID; WERT 0 ; WERT 1 ; WERT 2 ; WERT 3 ; WERT 4 ; WERT 5 ; WERT 6 ; WERT 7 ; WERT 8 ; WERT 9 ; WERT 10 ; WERT 11 ; WERT 12 ; WERT 13 ; WERT 14 ; WERT 15 ")
ts.Close
End If
' VARIABLEN IN CSV-DATEI SCHREIBEN
Set f=fso.GetFile(Dateiname)
Set ts=f.OpenAsTextStream(8,-2)
ts.WriteLine (DT_STRING & ";" & SmartTags("REZEPTUR\REZEPTUR.MASCHINE.Rezeptur_ID") & ";" & SmartTags("ARCHIVIERUNG\WERT")(0) & ";" & SmartTags("ARCHIVIERUNG\WERT")(1) & ";" & SmartTags("ARCHIVIERUNG\WERT")(2) & ";" & SmartTags("ARCHIVIERUNG\WERT")(3) & ";" & SmartTags("ARCHIVIERUNG\WERT")(4) & ";" & SmartTags("ARCHIVIERUNG\WERT")(5) & ";" & SmartTags("ARCHIVIERUNG\WERT")(6) & ";" & SmartTags("ARCHIVIERUNG\WERT")(7) & ";" & SmartTags("ARCHIVIERUNG\WERT")(8) & ";" & SmartTags("ARCHIVIERUNG\WERT")(9) & ";" & SmartTags("ARCHIVIERUNG\WERT")(10) & ";" & SmartTags("ARCHIVIERUNG\WERT")(11) & ";" & SmartTags("ARCHIVIERUNG\WERT")(12) & ";" & SmartTags("ARCHIVIERUNG\WERT")(13) & ";" & SmartTags("ARCHIVIERUNG\WERT")(14) & ";" & SmartTags("ARCHIVIERUNG\WERT")(15))
ts.Close
' Werte nach Schreiben in die Datei abnullen
SmartTags("ARCHIVIERUNG\WERT")(0) = 0
SmartTags("ARCHIVIERUNG\WERT")(1) = 0
SmartTags("ARCHIVIERUNG\WERT")(2) = 0
SmartTags("ARCHIVIERUNG\WERT")(3) = 0
SmartTags("ARCHIVIERUNG\WERT")(4) = 0
SmartTags("ARCHIVIERUNG\WERT")(5) = 0
SmartTags("ARCHIVIERUNG\WERT")(6) = 0
SmartTags("ARCHIVIERUNG\WERT")(7) = 0
SmartTags("ARCHIVIERUNG\WERT")(8) = 0
SmartTags("ARCHIVIERUNG\WERT")(9) = 0
SmartTags("ARCHIVIERUNG\WERT")(10) = 0
SmartTags("ARCHIVIERUNG\WERT")(11) = 0
SmartTags("ARCHIVIERUNG\WERT")(12) = 0
SmartTags("ARCHIVIERUNG\WERT")(13) = 0
SmartTags("ARCHIVIERUNG\WERT")(14) = 0
SmartTags("ARCHIVIERUNG\WERT")(15) = 0
End If
Set ts = Nothing
Set f = Nothing
Set fso = Nothing
Set Dateiname = Nothing
Exit Sub
Const ForReading = 1
Dim fso, F, i, j, Zeile(1000000), Inhalt, VON_DATUM, BIS_DATUM, VON_MONAT_NULL, VON_TAG_NULL, VON_STUNDE_NULL, BIS_MONAT_NULL, BIS_TAG_NULL, BIS_STUNDE_NULL
' ########################################################
' Variablen Initialisieren
' ########################################################
SmartTags("ARCHIVIERUNG\AUSGABE")(0) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(1) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(2) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(3) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(4) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(5) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(6) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(7) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(8) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(9) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(10) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(11) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(12) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(13) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(14) = 0
SmartTags("ARCHIVIERUNG\AUSGABE")(15) = 0
' ########################################################
' Variablen eine Null vorranstellen, wenn sie kleiner als 10 sind
' ########################################################
If SmartTags("ARCHIVIERUNG\VON_MONAT") < 10 Then
VON_MONAT_NULL = "0"
Else
VON_MONAT_NULL = ""
End If
If SmartTags("ARCHIVIERUNG\VON_TAG") < 10 Then
VON_TAG_NULL = "0"
Else
VON_TAG_NULL = ""
End If
If SmartTags("ARCHIVIERUNG\VON_STUNDE") < 10 Then
VON_STUNDE_NULL = "0"
Else
VON_STUNDE_NULL = ""
End If
If SmartTags("ARCHIVIERUNG\BIS_MONAT") < 10 Then
BIS_MONAT_NULL = "0"
Else
BIS_MONAT_NULL = ""
End If
If SmartTags("ARCHIVIERUNG\BIS_TAG") < 10 Then
BIS_TAG_NULL = "0"
Else
BIS_TAG_NULL = ""
End If
If SmartTags("ARCHIVIERUNG\BIS_STUNDE") < 10 Then
BIS_STUNDE_NULL = "0"
Else
BIS_STUNDE_NULL = ""
End If
' ########################################################
' Suchstring zusammensetzen
' ########################################################
VON_DATUM = SmartTags("ARCHIVIERUNG\VON_JAHR") & "." & VON_MONAT_NULL & SmartTags("ARCHIVIERUNG\VON_MONAT") & "." & VON_TAG_NULL & SmartTags("ARCHIVIERUNG\VON_TAG") & " " & VON_STUNDE_NULL & SmartTags("ARCHIVIERUNG\VON_STUNDE") & ":00"
BIS_DATUM = SmartTags("ARCHIVIERUNG\BIS_JAHR") & "." & BIS_MONAT_NULL & SmartTags("ARCHIVIERUNG\BIS_MONAT") & "." & BIS_TAG_NULL & SmartTags("ARCHIVIERUNG\BIS_TAG") & " " & BIS_STUNDE_NULL & SmartTags("ARCHIVIERUNG\BIS_STUNDE") & ":00"
' ########################################################
' Datei auslesen
' ########################################################
Set fso = CreateObject("Scripting.FileSystemObject")
Set F = fso.OpenTextFile("D:\BDE\ZAEHLER.csv", ForReading)
i = 0
Do While F.AtEndOfStream <> True
Zeile(i) = F.ReadLine
i = i + 1
Loop
' ########################################################
' Ausgabe erzeugen
' ########################################################
j = 1 ' Zeile 0 sind Überschriften
Do While j < i 'i enthält die Anzahl der Einträge (+1) in der CSV-Datei
Inhalt = Split(Zeile(j),";")
' gefundene Rezeptur ID in interne Variable rangieren, damit vergleichen werden kann (Nicht schön, noch ändern!!)
SmartTags("ARCHIVIERUNG\GEFUNDENE_REZEPTUR_ID") = Inhalt(1)
' Nur Addieren wenn sie im gesuchten Zeitraum liegen oder alle Einträge angezeigt werden sollen Und sie der gesuchten Rezeptur ID zugeordnet sind
If (SmartTags("ARCHIVIERUNG\GEFUNDENE_REZEPTUR_ID") = SmartTags("ARCHIVIERUNG\GESUCHTE_REZEPTUR_ID")) And (((Inhalt(0) >= VON_DATUM) And (Inhalt(0) <= BIS_DATUM)) Or (SmartTags("ARCHIVIERUNG\GESAMTZAEHLER"))) Then
SmartTags("ARCHIVIERUNG\AUSGABE")(0) = (SmartTags("ARCHIVIERUNG\AUSGABE")(0) + Inhalt(2))
SmartTags("ARCHIVIERUNG\AUSGABE")(1) = (SmartTags("ARCHIVIERUNG\AUSGABE")(1) + Inhalt(3))
SmartTags("ARCHIVIERUNG\AUSGABE")(2) = (SmartTags("ARCHIVIERUNG\AUSGABE")(2) + Inhalt(4))
SmartTags("ARCHIVIERUNG\AUSGABE")(3) = (SmartTags("ARCHIVIERUNG\AUSGABE")(3) + Inhalt(5))
SmartTags("ARCHIVIERUNG\AUSGABE")(4) = (SmartTags("ARCHIVIERUNG\AUSGABE")(4) + Inhalt(6))
SmartTags("ARCHIVIERUNG\AUSGABE")(5) = (SmartTags("ARCHIVIERUNG\AUSGABE")(5) + Inhalt(7))
SmartTags("ARCHIVIERUNG\AUSGABE")(6) = (SmartTags("ARCHIVIERUNG\AUSGABE")(6) + Inhalt(8))
SmartTags("ARCHIVIERUNG\AUSGABE")(7) = (SmartTags("ARCHIVIERUNG\AUSGABE")(7) + Inhalt(9))
SmartTags("ARCHIVIERUNG\AUSGABE")(8) = (SmartTags("ARCHIVIERUNG\AUSGABE")(8) + Inhalt(10))
SmartTags("ARCHIVIERUNG\AUSGABE")(9) = (SmartTags("ARCHIVIERUNG\AUSGABE")(9) + Inhalt(11))
SmartTags("ARCHIVIERUNG\AUSGABE")(10) = (SmartTags("ARCHIVIERUNG\AUSGABE")(10) + Inhalt(12))
SmartTags("ARCHIVIERUNG\AUSGABE")(11) = (SmartTags("ARCHIVIERUNG\AUSGABE")(11) + Inhalt(13))
SmartTags("ARCHIVIERUNG\AUSGABE")(12) = (SmartTags("ARCHIVIERUNG\AUSGABE")(12) + Inhalt(14))
SmartTags("ARCHIVIERUNG\AUSGABE")(13) = (SmartTags("ARCHIVIERUNG\AUSGABE")(13) + Inhalt(15))
SmartTags("ARCHIVIERUNG\AUSGABE")(14) = (SmartTags("ARCHIVIERUNG\AUSGABE")(14) + Inhalt(16))
SmartTags("ARCHIVIERUNG\AUSGABE")(15) = (SmartTags("ARCHIVIERUNG\AUSGABE")(15) + Inhalt(17))
End If
j = j + 1
Loop
' Variable zurücksetzen, nachdem das script durchlaufen wurde
SmartTags("ARCHIVIERUNG\GESAMTZAEHLER") = False
F.Close
Das ist eine höchst interessante Link !wie wärs mit einer datenbank statts csv? sqlite z.b.
hier gibts dazu etwas code: http://www.djhweb.co.uk/sqlite2.htm
Das ist eine höchst interessante Link !
Auf sqlite.org steht es "Cross-platform: Unix (Linux, Mac OS-X, Android, iOS) and Windows (Win32, WinCE, WinRT) are supported out of the box. Easy to port to other systems."
Also kein Windows 64-bit wäre ein dealbreaker für mich. Hat jemand erfahrung das es trotzdem geht unter Win 64-bit ?
Eine Datenbank war auch schon ein Ansatz, aber irgendwie habe ich angst das etwas wie MS-SQL die Kiste zu sehr runterbremst.
sqllite kann ich nicht beurteilen.
Wäre der OPC-Server nicht soetwas wie eine Datenbank? Oder habe ich da ein falsches Verständnis von?
Das schöne an Datenbanken ist ja, dass man durch die Abfragen schon alles erschlagen kann, was ich gerade zu Fuß mit der Zeitraumauswertung machen muss.
Grüße
Marcel
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?