340 lines
9.2 KiB
OpenEdge ABL
340 lines
9.2 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 = "CKunde"
|
|
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"
|
|
'==============================================================================
|
|
'
|
|
' File : Kunde.cls
|
|
' Date : 22.02.1999
|
|
' Version: 1.00
|
|
' Author : Andreas Schmidt, lindner&partner
|
|
'
|
|
'==============================================================================
|
|
'
|
|
' *shared*
|
|
'
|
|
' Kunde
|
|
'
|
|
'==============================================================================
|
|
'
|
|
' History:
|
|
'
|
|
' Date : 22.02.1999
|
|
' Version: 1.00
|
|
' Author : Andreas Schmidt, lindner&partner
|
|
'
|
|
' Erste dokumentierte Version.
|
|
'
|
|
'==============================================================================
|
|
|
|
Option Explicit
|
|
|
|
' Private Member
|
|
' --------------
|
|
Private m_lKundenNr As Long
|
|
Private m_sName As String
|
|
Private m_sOrt As String
|
|
Private m_sAnsprechpartner As String
|
|
Private m_sTelefon As String
|
|
Private m_nMitarbeiterNr As Integer
|
|
Private m_dAnlage As Date
|
|
Private m_nAnlageMitarbeiterNr As Integer
|
|
Private m_dAenderung As Date
|
|
Private m_nAenderungMitarbeiterNr As Integer
|
|
|
|
|
|
' Member neu initialisieren
|
|
'
|
|
Private Sub init()
|
|
m_lKundenNr = 0
|
|
m_sName = ""
|
|
m_sOrt = ""
|
|
m_sAnsprechpartner = ""
|
|
m_sTelefon = ""
|
|
m_nMitarbeiterNr = 0
|
|
m_dAnlage = Empty
|
|
m_nAnlageMitarbeiterNr = 0
|
|
m_dAenderung = Empty
|
|
m_nAenderungMitarbeiterNr = 0
|
|
End Sub
|
|
|
|
|
|
'------------------------------------------------------------------------------
|
|
' Öffentliche Funktionalität
|
|
'------------------------------------------------------------------------------
|
|
|
|
' @return Nr. des Kunden
|
|
'
|
|
Public Function getNr() As Long
|
|
getNr = m_lKundenNr
|
|
End Function
|
|
|
|
' @return Name des Kunden
|
|
'
|
|
Public Function getName() As String
|
|
getName = m_sName
|
|
End Function
|
|
|
|
' @return Ansprechpartner bei dem Kunden
|
|
'
|
|
Public Function getAnsprechpartner() As String
|
|
getAnsprechpartner = m_sAnsprechpartner
|
|
End Function
|
|
|
|
' @return Ort des Kunden
|
|
'
|
|
Public Function getOrt() As String
|
|
getOrt = m_sOrt
|
|
End Function
|
|
|
|
' @return Telefon des Kunden
|
|
'
|
|
Public Function getTelefon() As String
|
|
getTelefon = m_sTelefon
|
|
End Function
|
|
|
|
' @return Nr. des Mitarbeiters, der den Kunden primär betreut
|
|
'
|
|
Public Function getMitarbeiterNr() As Integer
|
|
getMitarbeiterNr = m_nMitarbeiterNr
|
|
End Function
|
|
|
|
' @param dAnlage Datum der Objekterzeugung
|
|
'
|
|
Private Sub setAnlageDatum(dAnlage As Date)
|
|
m_dAnlage = dAnlage
|
|
End Sub
|
|
|
|
' @return Datum der Objekterzeugung
|
|
'
|
|
Public Function getAnlageDatum() As Date
|
|
getAnlageDatum = m_dAnlage
|
|
End Function
|
|
|
|
' @param nMitarbeiterNr Nr. des Mitarbeiter, der das Objekt erzeugt hat
|
|
'
|
|
Private Sub setAnlageMitarbeiterNr(nMitarbeiterNr As Long)
|
|
m_nAnlageMitarbeiterNr = nMitarbeiterNr
|
|
End Sub
|
|
|
|
Public Function getAnlageMitarbeiterNr() As Integer
|
|
getAnlageMitarbeiterNr = m_nAnlageMitarbeiterNr
|
|
End Function
|
|
|
|
' @param dAenderung Datum der letzten Objektaenderung
|
|
'
|
|
Private Sub setAenderungDatum(dAenderung As Date)
|
|
m_dAenderung = dAenderung
|
|
End Sub
|
|
|
|
' @return Datum der letzten Objektänderung
|
|
'
|
|
Public Function getAenderungDatum() As Date
|
|
getAenderungDatum = m_dAenderung
|
|
End Function
|
|
|
|
' @param nMitarbeiterNr Nr. des Mitarbeiter, der das Objekt zuletzt geändert hat
|
|
'
|
|
Private Sub setAenderungMitarbeiterNr(nMitarbeiterNr As Long)
|
|
m_nAenderungMitarbeiterNr = nMitarbeiterNr
|
|
End Sub
|
|
|
|
' Attribute des Kundenobjekts setzen
|
|
'
|
|
' @param lKundenNr KundenNr
|
|
' @param sName Name
|
|
' @param sAnsprechpartner Ansprechpartner
|
|
' @param sOrt Ort
|
|
' @param sTelefon Telefon
|
|
' @param nMitarbeiterNr Nr. des Mitarbeiters, der den Kunden betreut
|
|
'
|
|
Public Function setKunde(lKundenNr As Long, sName As String, _
|
|
sAnsprechpartner As String, sOrt As String, _
|
|
sTelefon As String, nMitarbeiterNr As Integer _
|
|
)
|
|
Call init
|
|
|
|
m_lKundenNr = lKundenNr
|
|
m_sName = sName
|
|
m_sAnsprechpartner = sAnsprechpartner
|
|
m_sOrt = sOrt
|
|
m_sTelefon = sTelefon
|
|
m_nMitarbeiterNr = nMitarbeiterNr
|
|
End Function
|
|
|
|
' Kundensatz in Datenbank schreiben
|
|
'
|
|
' @param bAppend true = Speicherung als INSERT durchführen,
|
|
' false = Speicherung als UPDATE durchführen
|
|
'
|
|
' @return true = Datensatz wurde gespeichert,
|
|
' false = Fehler bei der Datenspeicherung
|
|
'
|
|
Public Function save(Optional bAppend As Boolean) As Boolean
|
|
On Error GoTo saveErr
|
|
|
|
If getNr() = 0 Then
|
|
Call showError("save", "Kunde hat keine Kunden-Nr.!")
|
|
Exit Function
|
|
End If
|
|
|
|
Dim sSQL As String
|
|
Dim SQL As New CSQL
|
|
|
|
If bAppend Then
|
|
sSQL = "INSERT INTO Kunde ("
|
|
sSQL = sSQL & "KundenNr, "
|
|
sSQL = sSQL & "Name, "
|
|
sSQL = sSQL & "Ort, "
|
|
sSQL = sSQL & "Ansprechpartner, "
|
|
sSQL = sSQL & "Telefon, "
|
|
sSQL = sSQL & "MitarbeiterNr, "
|
|
sSQL = sSQL & "AnlageDatum, "
|
|
sSQL = sSQL & "AnlageMitarbeiterNr "
|
|
sSQL = sSQL & ") VALUES ("
|
|
sSQL = sSQL & getNr() & ","
|
|
sSQL = sSQL & SQL.stringToSQLString(getName(), True) & ","
|
|
sSQL = sSQL & SQL.stringToSQLString(getOrt(), True) & ","
|
|
sSQL = sSQL & SQL.stringToSQLString(getAnsprechpartner(), True) & ","
|
|
sSQL = sSQL & SQL.stringToSQLString(getTelefon(), True) & ","
|
|
sSQL = sSQL & getMitarbeiterNr() & ","
|
|
sSQL = sSQL & SQL.dateToSQLString(Now) & ","
|
|
sSQL = sSQL & g_App.Mitarbeiter().getNr()
|
|
sSQL = sSQL & ");"
|
|
Else
|
|
sSQL = "Update Kunde SET "
|
|
sSQL = sSQL & "Name = " & SQL.stringToSQLString(getName()) & ","
|
|
sSQL = sSQL & "Ort = " & SQL.stringToSQLString(getOrt()) & ","
|
|
sSQL = sSQL & "Ansprechpartner = " & SQL.stringToSQLString(getAnsprechpartner()) & ","
|
|
sSQL = sSQL & "Telefon = " & SQL.stringToSQLString(getTelefon()) & ","
|
|
sSQL = sSQL & "MitarbeiterNr = " & getMitarbeiterNr() & ","
|
|
sSQL = sSQL & "AenderungDatum = " & SQL.dateToSQLString(Now) & ","
|
|
sSQL = sSQL & "AenderungMitarbeiterNr = " & g_App.Mitarbeiter.getNr() & ","
|
|
sSQL = sSQL & "WHERE"
|
|
sSQL = sSQL & "KundenNr = " & getNr() & ";"
|
|
End If
|
|
|
|
save = SQL.executeSQL(sSQL)
|
|
Exit Function
|
|
|
|
saveErr:
|
|
Call showError("save")
|
|
Exit Function
|
|
|
|
End Function
|
|
|
|
' Kunden mit dem angegebenen Namen aus der Datenbank laden
|
|
'
|
|
' @param sName Name des zu suchenden Kunden
|
|
'
|
|
Public Function loadForName(sName As String) As Boolean
|
|
Dim sSQL As String
|
|
Dim rs As New CRecordset
|
|
|
|
On Error GoTo loadForNameErr
|
|
|
|
sSQL = "SELECT "
|
|
sSQL = sSQL & "* "
|
|
sSQL = sSQL & "FROM "
|
|
sSQL = sSQL & "Kunde "
|
|
sSQL = sSQL & "WHERE "
|
|
sSQL = sSQL & "Kunde.Name = " + rs.stringToSQLString(sName, True)
|
|
sSQL = sSQL & ";"
|
|
|
|
If rs.openRS(sSQL, True) Then
|
|
If Not rs.EOF() Then If Not rs.EOF() Then loadForName = loadFromRecordset(rs)
|
|
End If
|
|
Exit Function
|
|
|
|
loadForNameErr:
|
|
Call showError("loadForName")
|
|
Exit Function
|
|
|
|
End Function
|
|
|
|
' Kunden mit dem angegebenen Nr. aus der Datenbank laden
|
|
'
|
|
' @param lKundenNr Nr. des Kunden
|
|
'
|
|
Public Function loadForNr(lKundenNr As Long) As Boolean
|
|
Dim sSQL As String
|
|
Dim rs As New CRecordset
|
|
|
|
On Error GoTo loadForNrErr
|
|
|
|
sSQL = "SELECT "
|
|
sSQL = sSQL & "* "
|
|
sSQL = sSQL & "FROM "
|
|
sSQL = sSQL & "Kunde "
|
|
sSQL = sSQL & "WHERE "
|
|
sSQL = sSQL & "Kunde.KundenNr = " & lKundenNr
|
|
sSQL = sSQL & ";"
|
|
|
|
If rs.openRS(sSQL, True) Then
|
|
If Not rs.EOF() Then loadForNr = loadFromRecordset(rs)
|
|
End If
|
|
Exit Function
|
|
|
|
loadForNrErr:
|
|
Call showError("loadForName")
|
|
Exit Function
|
|
|
|
End Function
|
|
|
|
' Kunden aus Datenbank laden
|
|
'
|
|
' @param rs Initialisiertes CRecordset-Objekt
|
|
'
|
|
Public Function loadFromRecordset(rs As CRecordset) As Boolean
|
|
On Error GoTo loadFromRecordsetErr
|
|
|
|
Call init
|
|
|
|
m_lKundenNr = rs.getLongValue("KundenNr")
|
|
m_sName = rs.getStringValue("Name")
|
|
m_sOrt = rs.getStringValue("Ort")
|
|
m_sAnsprechpartner = rs.getStringValue("Ansprechpartner")
|
|
m_sTelefon = rs.getStringValue("Telefon")
|
|
m_nMitarbeiterNr = rs.getIntValue("MitarbeiterNr")
|
|
|
|
Call setAnlageDatum(rs.getDateValue("AnlageDatum"))
|
|
Call setAnlageMitarbeiterNr(rs.getIntValue("AnlageMitarbeiterNr"))
|
|
Call setAenderungDatum(rs.getDateValue("AenderungDatum"))
|
|
Call setAenderungMitarbeiterNr(rs.getIntValue("AenderungMitarbeiterNr"))
|
|
|
|
loadFromRecordset = True
|
|
Exit Function
|
|
|
|
loadFromRecordsetErr:
|
|
Call showError("loadFromRecordset")
|
|
Exit Function
|
|
|
|
End Function
|
|
|
|
|
|
'------------------------------------------------------------------------------
|
|
' Private Funktionalität
|
|
'------------------------------------------------------------------------------
|
|
|
|
|
|
' Helper für Fehlerausgaben
|
|
'
|
|
' @param sMethod Name des Aufrufers
|
|
' @param sInfo optionaler Hinweistext
|
|
'
|
|
Private Sub showError(sMethod As String, Optional sInfo As String)
|
|
Call modError.showError("CKunde." + sMethod, sInfo)
|
|
End Sub
|
|
|