laatzen/Pruef2000/source/CPruefgang.cls
2021-10-01 11:11:04 +02:00

671 lines
21 KiB
OpenEdge ABL

VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "CPruefgang"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
Option Explicit
'==============================================================================
'
' File : CPruefgang
' Author : Reinhard Henning
' Date : 04.02.1999
' Version: 0.01
'
'==============================================================================
'
' History:
'
'
'==============================================================================
'
'
'lokale Variable(n) zum Zuweisen der Eigenschaft(en)
Private mvarPruefgangNr As Long 'lokale Kopie
Private mvarPruefstationNr As Integer 'lokale Kopie
Private mvarPrueferNr As Integer 'lokale Kopie
Private mvarPruefzeit As Long 'lokale Kopie
Private mvarAnzahl As Integer 'lokale Kopie
Private mvarDatum As Date 'lokale Kopie
Private mvarTyp As String 'lokale Kopie
' neu RH 2016-11-17
Private mstrTypzusatz As String 'lokale Kopie
Public mstrSerienNrListe As String
Private mvarNennweite As Integer 'lokale Kopie
Private mvarNenntemperatur As Byte 'lokale Kopie
Private mvarLufttemperatur As Single 'lokale Kopie
Private mvarRelativeFeuchte As Single 'lokale Kopie
Private mvarLuftDruck As Single 'lokale Kopie
Private mvarVorlauftemperatur As Single 'lokale Kopie
Private mvarStartzeit As Double 'lokale Kopie
Private mvarPruefgangLang As Boolean 'lokale Kopie
Private mvarBemerkung As String 'lokale Kopie
Private mvarKalibrierID As Integer
' Prüfpunktspezifische Daten im Array
Private mvarPP_Zeit(10) As Single 'lokale Kopie
Private mvarPP_Soll(10) As Single 'lokale Kopie
Private mvarPP_Ist(10) As Single 'lokale Kopie
Private mvarPP_RefZSerienNr(10) As Long 'lokale Kopie
Private mvarPP_Ist_V(10) As Double 'lokale Kopie
Private mvarPP_T_Start(10) As Double
Private mvarPP_T_Ende(10) As Double
' Waage/Behälter Nr
Private mvarPP_Waage(10) As Byte 'lokale Kopie
Private mvarPP_Info(10) As Byte 'lokale Kopie für Bit 0 = true: LWL, Bit 0 = false: Opto
Public Enum KALIBRIERUNG
KALIBRIER_ID_Waage = 2
KALIBRIER_ID_Referenzzaehler = 1
KALIBRIER_ID_Behaelter = 3
End Enum
Public Enum PP_INFO_BIT
PP_INFO_LWL = 0
End Enum
Public Property Let PP_Info(PPNr As Integer, BitNo As Byte, blnBit As Boolean)
' Bit 0: LWL
If blnBit = True Then
mvarPP_Info(PPNr) = mvarPP_Info(PPNr) Or (2 ^ BitNo)
Else
mvarPP_Info(PPNr) = mvarPP_Info(PPNr) And Not (2 ^ BitNo)
End If
End Property
Public Property Let PruefgangLang(ByVal vData As Boolean)
'wird beim Zuweisen eines Werts zu der Eigenschaft auf der linken Seite einer Zuweisung verwendet.
'Syntax: X.PruefgangLang = 5
mvarPruefgangLang = vData
End Property
Public Property Get PruefgangLang() As Boolean
'wird beim Ermitteln eines Eigenschaftswertes auf der rechten Seite einer Zuweisung verwendet.
'Syntax: Debug.Print X.PruefgangLang
PruefgangLang = mvarPruefgangLang
End Property
Public Property Let Bemerkung(vData As String)
mvarBemerkung = vData
End Property
Public Property Get Bemerkung() As String
Bemerkung = mvarBemerkung
End Property
Public Property Let PP_RefZSerienNr(Index As Integer, ByVal vData As Long)
mvarPP_RefZSerienNr(Index) = vData
End Property
Public Property Get PP_RefZSerienNr(Index As Integer) As Long
PP_RefZSerienNr = mvarPP_RefZSerienNr(Index)
End Property
Public Property Let PP_T_Start(Index As Integer, ByVal vData As Double)
mvarPP_T_Start(Index) = vData
End Property
Public Property Let PP_T_Ende(Index As Integer, ByVal vData As Double)
mvarPP_T_Ende(Index) = vData
End Property
Public Property Let PP_Ist_V(Index As Integer, ByVal vData As Double)
mvarPP_Ist_V(Index) = vData
End Property
Public Property Get PP_Ist_V(Index As Integer) As Double
PP_Ist_V = mvarPP_Ist_V(Index)
End Property
Public Property Let PP_Waage(Index As Integer, ByVal vData As Single)
mvarPP_Waage(Index) = vData
End Property
Public Property Get PP_Waage(Index As Integer) As Single
PP_Waage = mvarPP_Waage(Index)
End Property
Public Property Let PP_Ist(Index As Integer, ByVal vData As Single)
mvarPP_Ist(Index) = vData
End Property
Public Property Get PP_Ist(Index As Integer) As Single
PP_Ist = mvarPP_Ist(Index)
End Property
Public Property Let PP_Soll(Index As Integer, ByVal vData As Single)
mvarPP_Soll(Index) = vData
End Property
Public Property Get PP_Soll(Index As Integer) As Single
PP_Soll = mvarPP_Soll(Index)
End Property
Public Property Let PP_Zeit(Index As Integer, ByVal vData As Single)
mvarPP_Zeit(Index) = vData
End Property
Public Property Get PP_Zeit(Index As Integer) As Single
PP_Zeit = mvarPP_Zeit(Index)
End Property
Public Property Let Vorlauftemperatur(ByVal vData As Single)
mvarVorlauftemperatur = vData
End Property
Public Property Get Vorlauftemperatur() As Single
Vorlauftemperatur = mvarVorlauftemperatur
End Property
Public Property Let Lufttemperatur(ByVal vData As Single)
mvarLufttemperatur = vData
End Property
Public Property Get Lufttemperatur() As Single
Lufttemperatur = mvarLufttemperatur
End Property
Public Property Let RelativeFeuchte(ByVal vData As Single)
mvarRelativeFeuchte = vData
End Property
Public Property Get RelativeFeuchte() As Single
RelativeFeuchte = mvarRelativeFeuchte
End Property
Public Property Let LuftDruck(ByVal vData As Single)
mvarLuftDruck = vData
End Property
Public Property Get LuftDruck() As Single
LuftDruck = mvarLuftDruck
End Property
Public Property Let Nenntemperatur(ByVal vData As Byte)
mvarNenntemperatur = vData
End Property
Public Property Get Nenntemperatur() As Byte
'wird beim Ermitteln eines Eigenschaftswertes auf der rechten Seite einer Zuweisung verwendet.
'Syntax: Debug.Print X.Nenntemperatur
Nenntemperatur = mvarNenntemperatur
End Property
Public Property Let Nennweite(ByVal vData As Integer)
'wird beim Zuweisen eines Werts zu der Eigenschaft auf der linken Seite einer Zuweisung verwendet.
'Syntax: X.Nennweite = 5
mvarNennweite = vData
End Property
Public Property Get Nennweite() As Integer
'wird beim Ermitteln eines Eigenschaftswertes auf der rechten Seite einer Zuweisung verwendet.
'Syntax: Debug.Print X.Nennweite
Nennweite = mvarNennweite
End Property
Public Property Let Typ(ByVal vData As String)
'wird beim Zuweisen eines Werts zu der Eigenschaft auf der linken Seite einer Zuweisung verwendet.
'Syntax: X.Typ = 5
mvarTyp = vData
End Property
Public Property Get Typ() As String
'wird beim Ermitteln eines Eigenschaftswertes auf der rechten Seite einer Zuweisung verwendet.
'Syntax: Debug.Print X.Typ
Typ = mvarTyp
End Property
Public Property Let Datum(ByVal vData As Date)
'wird beim Zuweisen eines Werts zu der Eigenschaft auf der linken Seite einer Zuweisung verwendet.
'Syntax: X.Datum = 5
mvarDatum = vData
End Property
Public Property Let Typzusatz(ByVal strData As String)
mstrTypzusatz = strData
End Property
Public Property Get Datum() As Date
'wird beim Ermitteln eines Eigenschaftswertes auf der rechten Seite einer Zuweisung verwendet.
'Syntax: Debug.Print X.Datum
Datum = mvarDatum
End Property
Public Property Let Anzahl(ByVal vData As Integer)
'wird beim Zuweisen eines Werts zu der Eigenschaft auf der linken Seite einer Zuweisung verwendet.
'Syntax: X.Anzahl = 5
mvarAnzahl = vData
End Property
Public Property Get Anzahl() As Integer
'wird beim Ermitteln eines Eigenschaftswertes auf der rechten Seite einer Zuweisung verwendet.
'Syntax: Debug.Print X.Anzahl
Anzahl = mvarAnzahl
End Property
Public Property Let Pruefzeit(ByVal vData As Integer)
'wird beim Zuweisen eines Werts zu der Eigenschaft auf der linken Seite einer Zuweisung verwendet.
'Syntax: X.Pruefzeit = 5
mvarPruefzeit = vData
End Property
Public Property Get Pruefzeit() As Integer
'wird beim Ermitteln eines Eigenschaftswertes auf der rechten Seite einer Zuweisung verwendet.
'Syntax: Debug.Print X.Pruefzeit
Pruefzeit = mvarPruefzeit
End Property
Public Property Let PrueferNr(ByVal vData As Integer)
'wird beim Zuweisen eines Werts zu der Eigenschaft auf der linken Seite einer Zuweisung verwendet.
'Syntax: X.PrueferNr = 5
mvarPrueferNr = vData
End Property
Public Property Get PrueferNr() As Integer
'wird beim Ermitteln eines Eigenschaftswertes auf der rechten Seite einer Zuweisung verwendet.
'Syntax: Debug.Print X.PrueferNr
PrueferNr = mvarPrueferNr
End Property
Public Property Let PruefstationNr(ByVal vData As Integer)
'wird beim Zuweisen eines Werts zu der Eigenschaft auf der linken Seite einer Zuweisung verwendet.
'Syntax: X.PruefstationNr = 5
mvarPruefstationNr = vData
End Property
Public Property Get PruefstationNr() As Integer
'wird beim Ermitteln eines Eigenschaftswertes auf der rechten Seite einer Zuweisung verwendet.
'Syntax: Debug.Print X.PruefstationNr
PruefstationNr = mvarPruefstationNr
End Property
Public Property Let KalibrierID(ByVal vData As Integer)
'wird beim Zuweisen eines Werts zu der Eigenschaft auf der linken Seite einer Zuweisung verwendet.
'Syntax: X.KalibrierId = ...
mvarKalibrierID = vData
End Property
Public Property Get KalibrierID() As Integer
'wird beim Ermitteln eines Eigenschaftswertes auf der rechten Seite einer Zuweisung verwendet.
'Syntax: Debug.Print X.KalibrierId
KalibrierID = mvarKalibrierID
End Property
Public Property Let PruefgangNr(ByVal vData As Long)
'wird beim Zuweisen eines Werts zu der Eigenschaft auf der linken Seite einer Zuweisung verwendet.
'Syntax: X.PruefgangNr = 5
mvarPruefgangNr = vData
End Property
Public Property Get PruefgangNr() As Long
'wird beim Ermitteln eines Eigenschaftswertes auf der rechten Seite einer Zuweisung verwendet.
'Syntax: Debug.Print X.PruefgangNr
PruefgangNr = mvarPruefgangNr
End Property
Public Function load(lngPruefgangNr As Long) As Boolean
Dim rs As CRecordset
Dim sSQL As String
Dim i As Integer
On Error GoTo Errorhandler
sSQL = "SELECT * FROM Pruefgang WHERE PruefgangNr = " & lngPruefgangNr
Set rs = New CRecordset
rs.openRS sSQL, True
If Not rs.EOF Then
'DBFelder:
'PruefgangNr PruefstationNr PrueferNr Pruefzeit PruefgangLang Datum Typ
' Nennweite Nenntemperatur Lufttemperatur Vorlauftemperatur Anzahl
'Bemerkung DBasePruefgangNr
mvarPruefstationNr = rs.getLongValue("PruefstationNr")
mvarPruefgangNr = rs.getLongValue("PruefgangNr")
mvarPruefgangNr = rs.getLongValue("PruefgangNr")
mvarPruefstationNr = rs.getIntValue("PruefstationNr")
mvarPrueferNr = rs.getIntValue("PrueferNr")
mvarPruefzeit = rs.getLongValue("Pruefzeit")
mvarDatum = rs.getDateValue("Datum")
mvarTyp = rs.getStringValue("Typ")
mvarNennweite = rs.getIntValue("Nennweite")
mvarNenntemperatur = rs.getSingleValue("Nenntemperatur")
mvarLufttemperatur = rs.getSingleValue("Lufttemperatur")
mvarRelativeFeuchte = rs.getSingleValue("RelativeFeuchte")
mvarLuftDruck = rs.getSingleValue("LuftDruck")
mvarVorlauftemperatur = rs.getSingleValue("Vorlauftemperatur")
mvarPruefgangLang = rs.getBooleanValue("PruefgangLang")
mvarBemerkung = rs.getStringValue("Bemerkung")
mvarAnzahl = rs.getIntValue("Anzahl")
mvarKalibrierID = rs.getIntValue("KalibrierId")
For i = 1 To 10
If rs.isFieldNull("PP" & i & "_Soll") Then Exit For
mvarPP_Zeit(i) = rs.getSingleValue("PP" & i & "_Zeit")
mvarPP_Soll(i) = rs.getSingleValue("PP" & i & "_Soll")
mvarPP_Ist(i) = rs.getSingleValue("PP" & i & "_Ist")
mvarPP_RefZSerienNr(i) = rs.getLongValue("PP" & i & "_RefZSerienNr")
mvarPP_Ist_V(i) = rs.getDoubleValue("PP" & i & "_Ist_V")
PP_Waage(i) = rs.getByteValue("PP" & i & "_Waage")
mvarPP_Info(i) = rs.getByteValue("PP" & i & "_Info")
Next
load = True
End If
Set rs = Nothing
Exit Function
Errorhandler:
ErrorMsg "Pruefgang " & lngPruefgangNr & " Daten konnten nicht geladen werden! Fehler " & Err.Description & ": " & Err.Description
End Function
Public Sub delete()
Dim sSQL As String
Dim rs As CRecordset
Dim lngRecordsaffected As Long
On Error GoTo Errorhandler
Dim lngTimeout As Long
Dim lngTime As Long
lngTime = GetTickCount()
If mvarPruefgangNr > 0 Then
Screen.MousePointer = vbHourglass
lngTimeout = g_App.getDB.getConnection.CommandTimeout
g_App.getDB.getConnection.CommandTimeout = 120
sSQL = "DELETE from Prueffehler where PruefgangNr=" & mvarPruefgangNr
g_App.getDB.getConnection.Execute sSQL, lngRecordsaffected
Debug.Print sSQL & "; " & lngRecordsaffected & " gelöschte Datensätze aus Prueffehler "
sSQL = "DELETE from AuftragPositionSerienNr where PruefgangNr=" & mvarPruefgangNr
g_App.getDB.getConnection.Execute sSQL, lngRecordsaffected
Debug.Print sSQL & "; " & lngRecordsaffected & " gelöschte Datensätze aus AuftragPositionSerienNr "
sSQL = "DELETE from KontPrueffehler where PruefgangNr=" & mvarPruefgangNr
g_App.getDB.getConnection.Execute sSQL, lngRecordsaffected
Debug.Print sSQL & "; " & lngRecordsaffected & " gelöschte Datensätze aus KontPrueffehler "
sSQL = "DELETE from Pruefgang where PruefgangNr=" & mvarPruefgangNr
g_App.getDB.getConnection.Execute sSQL, lngRecordsaffected
Debug.Print sSQL & "; " & lngRecordsaffected&; " gelöschte Datensätze aus Pruefgang "
Screen.MousePointer = vbNormal
g_App.getDB.getConnection.CommandTimeout = lngTimeout
If GetTickCount - lngTime > 60000 Then
LogIntoDB "Ausführungszeit für pruefgang.delete: " & GetTickCount - lngTime & " ms", "pruefgang.delete"
End If
End If
Exit Sub
Errorhandler:
Call showError("Pruefgang delete")
End Sub
Public Function save() As Boolean
On Error GoTo saveErr
Dim Index As Integer
Dim rs As CRecordset
Dim sSQL As String
wdh:
' Pruefzeit setzen: Zeit vom initialiseren der Klasse bis zum letzten speichern
mvarPruefzeit = Int((Now * 1 - mvarStartzeit * 1) * 60 * 60 * 24)
Set rs = New CRecordset
If mvarPruefgangNr = 0 Then
' Prüfgang-Objekt wurde nicht aus der DB geladen, also Neuanlage
'---------------------------------
' Bestimmung der neuen PruefgangNr:
' jeweils einen höher als die höchste PruefgangNr des Prüfgangs mit der
' zugehörigen PruefstationNr
' Wenn keine Datensätze zur PruefstationNr vorhanden sind,
' nehme PruefstationNr * 1000000 als PruegangNr
'sSQL = "SELECT max(PruefgangNr)+1 as NewPruefgangNr from Pruefgang where PruefstationNr=" & g_App.PruefstationNr
sSQL = "SELECT max(PruefgangNr)+1 as NewPruefgangNr from Pruefgang where PruefgangNr < " & (g_App.PruefstationNr + 1) * 1000000 & " And PruefgangNr >= " & g_App.PruefstationNr * 1000000
rs.openRS (sSQL)
If Not rs.EOF And Not rs.BOF Then
mvarPruefgangNr = rs.getLongValue("NewPruefgangNr")
If mvarPruefgangNr = 0 Then
mvarPruefgangNr = g_App.PruefstationNr * 1000000
End If
Else
mvarPruefgangNr = g_App.PruefstationNr * 1000000
End If
If mvarPruefgangNr >= (g_App.PruefstationNr + 1) * 1000000 - 1 Then
ErrorMsg "Das Nummernband für die Prüfgang-Nummern ist ausgeschöpft (" & mvarPruefgangNr & ")." & vbCrLf & "Bitte benachrichtigen Sie den Programmierer!" & vbCrLf & "Das Programm wird nun beendet!"
End
End If
Set rs = Nothing
'---------------------------------
Set rs = New CRecordset
sSQL = "Select * from Pruefgang where 1=0"
rs.openRS (sSQL)
rs.addNew
Call rs.setValue("PruefgangNr", mvarPruefgangNr)
Else
sSQL = "SELECT * from Pruefgang where PruefgangNr=" & mvarPruefgangNr & ";"
rs.openRS (sSQL)
If rs.EOF Then
MsgBox ("konnte Pruefgang mit Nr=" & mvarPruefgangNr & " nicht finden")
Exit Function
End If
End If
Call rs.setValue("PruefstationNr", mvarPruefstationNr)
Call rs.setValue("PrueferNr", mvarPrueferNr)
Call rs.setValue("Datum", mvarDatum)
Call rs.setValue("Pruefzeit", mvarPruefzeit)
' RH 7.11.2006
Call rs.setValue("Typ", Left(mvarTyp, 20))
' RH 17.11.2016
Call rs.setValue("Typzusatz", Left(mstrTypzusatz, 20))
Call rs.setValue("Nennweite", mvarNennweite)
Call rs.setValue("Nenntemperatur", mvarNenntemperatur)
If mvarLufttemperatur > 0 Then
Call rs.setValue("Lufttemperatur", Round(mvarLufttemperatur, 1))
End If
If mvarRelativeFeuchte > 0 Then
Call rs.setValue("RelativeFeuchte", Round(mvarRelativeFeuchte, 1))
End If
If mvarLuftDruck > 0 Then
Call rs.setValue("LuftDruck", Round(mvarLuftDruck, 1))
End If
Call rs.setValue("Vorlauftemperatur", mvarVorlauftemperatur)
Call rs.setValue("PruefgangLang", mvarPruefgangLang)
Call rs.setValue("Bemerkung", mvarBemerkung)
Call rs.setValue("KalibrierID", mvarKalibrierID)
Call rs.setValue("Anzahl", mvarAnzahl)
' Prüfpunktspezifische Daten im Array
For Index = 1 To 10
If PP_Soll(Index) = 0 Then
' Abbruch der Schleife wenn Durchfluß = 0
Exit For
End If
Call rs.setValue("PP" & CStr(Index) & "_Zeit", PP_Zeit(Index))
Call rs.setValue("PP" & CStr(Index) & "_Soll", PP_Soll(Index))
Call rs.setValue("PP" & CStr(Index) & "_Ist", PP_Ist(Index))
Call rs.setValue("PP" & CStr(Index) & "_RefZSerienNr", PP_RefZSerienNr(Index))
Call rs.setValue("PP" & CStr(Index) & "_Waage", PP_Waage(Index))
Call rs.setValue("PP" & CStr(Index) & "_Ist_V", PP_Ist_V(Index))
Call rs.setValue("PP" & CStr(Index) & "_Info", mvarPP_Info(Index))
' PP1_T_Start - PP10_T_Start
If mvarPP_T_Start(Index) > 0 Then
Call rs.setValue("PP" & CStr(Index) & "_T_Start", mvarPP_T_Start(Index))
End If
' PP1_T_Ende - PP10_T_Ende
If mvarPP_T_Ende(Index) > 0 Then
Call rs.setValue("PP" & CStr(Index) & "_T_Ende", mvarPP_T_Ende(Index))
End If
Next
If rs.update = False Then
' fehler
If MsgBox("Möchten Sie die Datenbank-Operation wiederholen?", vbYesNo Or vbDefaultButton1) = vbYes Then
GoTo wdh
End If
Else
save = True
End If
Exit Function
saveErr:
Call showError("save")
Exit Function
End Function
Private Sub Class_Initialize()
mvarPruefstationNr = g_App.PruefstationNr
mvarPrueferNr = g_App.Mitarbeiter.getNr
mvarDatum = Now
mvarTyp = Empty
mvarStartzeit = Now 'Double
mvarBemerkung = ""
End Sub
Public Function saveAbgebrochenen() As Boolean
On Error GoTo saveErr
Dim Index As Integer
Dim rs As CRecordset
Dim sSQL As String
' Pruefzeit setzen: Zeit vom initialiseren der Klasse bis zum letzten speichern
mvarPruefzeit = Int((Now * 1 - mvarStartzeit * 1) * 60 * 60 * 24)
Set rs = New CRecordset
rs.openRS ("SELECT * FROM PruefgangAbgebrochen where PruefgangNr = 0")
rs.addNew
Call rs.setValue("PruefgangNr", mvarPruefgangNr)
Call rs.setValue("PruefstationNr", mvarPruefstationNr)
Call rs.setValue("PrueferNr", mvarPrueferNr)
Call rs.setValue("Datum", mvarDatum)
Call rs.setValue("Pruefzeit", mvarPruefzeit)
Call rs.setValue("Typ", mvarTyp)
' RH 17.11.2016
Call rs.setValue("Typzusatz", Left(mstrTypzusatz, 20))
' RH 21.11.2016
Call rs.setValue("Seriennummern", mstrSerienNrListe)
Call rs.setValue("Nennweite", mvarNennweite)
Call rs.setValue("Nenntemperatur", mvarNenntemperatur)
Call rs.setValue("Lufttemperatur", mvarLufttemperatur)
Call rs.setValue("RelativeFeuchte", mvarRelativeFeuchte)
Call rs.setValue("Vorlauftemperatur", mvarVorlauftemperatur)
Call rs.setValue("PruefgangLang", mvarPruefgangLang)
Call rs.setValue("Bemerkung", mvarBemerkung)
Call rs.setValue("KalibrierID", mvarKalibrierID)
Call rs.setValue("Anzahl", mvarAnzahl)
' Prüfpunktspezifische Daten im Array
For Index = 1 To 10
If PP_Soll(Index) = 0 Then
' Abbruch der Schleife wenn Durchfluß = 0
Exit For
End If
Call rs.setValue("PP" & CStr(Index) & "_Zeit", PP_Zeit(Index))
Call rs.setValue("PP" & CStr(Index) & "_Soll", PP_Soll(Index))
Call rs.setValue("PP" & CStr(Index) & "_Ist", PP_Ist(Index))
Call rs.setValue("PP" & CStr(Index) & "_RefZSerienNr", PP_RefZSerienNr(Index))
Call rs.setValue("PP" & CStr(Index) & "_Waage", PP_Waage(Index))
Call rs.setValue("PP" & CStr(Index) & "_Ist_V", PP_Ist_V(Index))
Call rs.setValue("PP" & CStr(Index) & "_Info", mvarPP_Info(Index))
Next
rs.update
saveAbgebrochenen = True
Exit Function
saveErr:
ErrorMsg "Fehler " & Err.Number & " beim Speichern eines abgebrochenen Prüfganges in Funktion 'CPruefgang.saveAbgebrochenen()':" & vbCrLf & Err.Description, False
Exit Function
End Function