Attribute VB_Name = "Adressverarbeitung"
Option Explicit
Public Adressen() As String
Public Enum Adress
   Konto_Art = 0 ' Kunde, Lieferant, Kontakt, Lager, Baustelle
   Konto_Anrede = 1
   Konto_Name1 = 2
   Konto_Name2 = 3
   Konto_Straße = 4
   Konto_LAND = 5
   Konto_PLZ = 6
   Konto_Ort = 7
   Konto_Firma = 8
   Konto_Abteilung = 9
   Konto_Tel = 10
   Konto_TelDW = 11
   Konto_Fax = 12
   Konto_FaxDW = 13
   Konto_Handy = 14
   Konto_Mail = 15
   Konto_www = 16
   Konto_GebDat = 17
   Konto_Index = 18 ' Kontaktnummer Baustellennummer Lagernummer
   Konto_Aktiv = 19
   Konto_LastIndex = 19
End Enum

Public Enum QueryAdress
   Kontakte_Id = 1
   Kontakte_AnzeigeStelle = 2
   Kontakte_Kontakt = 3
   Kontakte_Name = 4
   Kontakte_DW = 5
   Kontakte_EMail = 6
   Kontakte_Fax = 7
   Kontakte_Handy = 8
   
   Baustelle_ID = 1
   Baustelle_Nummer = 2
   Baustelle_KBez = 3
   Baustelle_Titel = 4
   Baustelle_Name = 5
   Baustelle_Straße = 6
   Baustelle_PLZ = 7
   Baustelle_Ort = 8
   Baustelle_Tel = 9
   Baustelle_Name2 = 10
   Baustelle_Land = 11
   
   Lager_ID = 1
   Lager_Nummer = 2
   Lager_Titel = 3
   Lager_Name = 4
   Lager_Straße = 5
   Lager_PLZ = 6
   Lager_Ort = 7
   Lager_EMail = 8
   Lager_Fax = 9
   Lager_Name2 = 10
   Lager_KBez = 11
   Lager_Tel = 12
   Lager_Land = 13
   
End Enum

Public Sub Adressdaten(ByVal Firma As String, ByVal KKR As String, ByVal konto As String, ByVal KontaktJN As Boolean, BaustLagerJN As Boolean, Optional keinCacheAnmeldefehler As Boolean)
Dim obj As CacheObject.ObjInstance
Dim obj1 As CacheObject.ObjInstance
Dim rs As CacheObject.ResultSet
Dim AKTIV As String

Dim Anzahl As Integer
Dim datum As String
Dim i As Integer, j As Byte
StatusText "Adressdaten", "Hole Daten für", Firma + "||" + KKR + "||" + konto
LockEIN , keinCacheAnmeldefehler
 ReDim Preserve Adressen(Adress.Konto_LastIndex, 0)
 On Error GoTo KontoNichtVorhanden
  Set obj = WWS_Server.OpenId("BM.KontoStamm", Firma + "||" + KKR + "||" + konto)
 On Error GoTo 0
 
  ReDim Preserve Adressen(Adress.Konto_LastIndex, 1)
  Adressen(0, 0) = 1
  Adressen(Adress.Konto_Anrede, 1) = obj.TitelLogicalToODBC(obj.Titel)
  Adressen(Adress.Konto_Name1, 1) = obj.NameLogicalToODBC(obj.Name)
  Adressen(Adress.Konto_Name2, 1) = obj.BranchLogicalToODBC(obj.Branch)
  Adressen(Adress.Konto_Tel, 1) = obj.TEL
  Adressen(Adress.Konto_Fax, 1) = obj.Fax
  Adressen(Adress.Konto_Straße, 1) = obj.STRASSELogicalToODBC(obj.STRASSE)
  Adressen(Adress.Konto_LAND, 1) = obj.LAND
  Adressen(Adress.Konto_PLZ, 1) = obj.PLZ
  Adressen(Adress.Konto_Ort, 1) = obj.ORTLogicalToODBC(obj.Ort)
  Adressen(Adress.Konto_Index, 1) = Firma + "||" + KKR + "||" + konto + "||"
  Select Case KKR
    Case "K"
      Adressen(Adress.Konto_Mail, 1) = obj.EMailLogicalToODBC(obj.EMail)
      Set obj1 = WWS_Server.OpenId("BM.KundWWS1", Firma + "||" + konto)
        datum = obj1.GebDATLogicaltoODBC(obj1.GebDat)
        AKTIV = obj1.KAKTIV
      ObjektSchließen obj1
      Adressen(Adress.Konto_GebDat, 1) = datum
      Adressen(Adress.Konto_Art, 1) = "Kunde"
      Adressen(Adress.Konto_Aktiv, 1) = AKTIV
    Case "L"
      Adressen(Adress.Konto_www, 1) = obj.EMailLogicalToODBC(obj.EMail)
      Adressen(Adress.Konto_Art, 1) = "LIEFERANT"
      On Error Resume Next
      Set obj1 = WWS_Server.OpenId("BM.LiefWWS1", Firma + "||" + konto)
        AKTIV = obj1.LAKTIV
      On Error GoTo 0
      ObjektSchließen obj1
      Adressen(Adress.Konto_Aktiv, 1) = AKTIV
  End Select
  ObjektSchließen obj
  i = 2
  If KontaktJN Then
       Set rs = WWS_Server.ResultSet("BM.KontoKontakte", "Kontakte")
       Call rs.Execute(Firma, KKR, konto)
       While rs.Next()
        ReDim Preserve Adressen(Adress.Konto_LastIndex, i)
        Adressen(0, 0) = i
          'Allgemeindaten Umkopieren
          For j = 0 To Adress.Konto_LastIndex
            Adressen(j, i) = Adressen(j, 1)
          Next j
          Adressen(Adress.Konto_Art, i) = "Kontakt"
          Adressen(Adress.Konto_Index, i) = rs.GetData(QueryAdress.Kontakte_Id)
          Adressen(Adress.Konto_Name1, i) = Umlaut(rs.GetData(QueryAdress.Kontakte_Name), "BAUMAT")
          Adressen(Adress.Konto_Anrede, i) = Umlaut(rs.GetData(QueryAdress.Kontakte_Kontakt), "BAUMAT")
          Adressen(Adress.Konto_Name2, i) = ""
          Adressen(Adress.Konto_GebDat, i) = ""
          Adressen(Adress.Konto_TelDW, i) = rs.GetData(QueryAdress.Kontakte_DW)
          Adressen(Adress.Konto_Fax, i) = rs.GetData(QueryAdress.Kontakte_Fax)
          Adressen(Adress.Konto_Handy, i) = rs.GetData(QueryAdress.Kontakte_Handy)
          Adressen(Adress.Konto_Mail, i) = Umlaut(rs.GetData(QueryAdress.Kontakte_EMail), "BAUMAT")
          Adressen(Adress.Konto_Aktiv, i) = AKTIV
          Select Case KKR
            Case "K"
              Adressen(Adress.Konto_Anrede, i) = Umlaut(rs.GetData(QueryAdress.Kontakte_Kontakt), "BAUMAT")
              Adressen(Adress.Konto_Abteilung, i) = ""
            Case "L"
              Adressen(Adress.Konto_Anrede, i) = ""
              Adressen(Adress.Konto_Abteilung, i) = Umlaut(rs.GetData(QueryAdress.Kontakte_Kontakt), "BAUMAT")
          End Select
         i = i + 1
       Wend
       ObjektSchließen rs
  End If
  If BaustLagerJN Then
    Select Case KKR
      Case "K"
       Set rs = WWS_Server.ResultSet("BM.KundBau", "BaustellenAuswahl")
       Call rs.Execute(Firma, konto)
       While rs.Next()
        ReDim Preserve Adressen(Adress.Konto_LastIndex, i)
        Adressen(0, 0) = i
          Adressen(Adress.Konto_Art, i) = "Baustelle " + Umlaut(rs.GetData(QueryAdress.Baustelle_KBez), "BAUMAT")
          Adressen(Adress.Konto_Index, i) = Firma + "||Baustelle||" + konto + "||" + Piece(rs.GetData(QueryAdress.Baustelle_ID), "||", 3)
          Adressen(Adress.Konto_Anrede, i) = Umlaut(rs.GetData(QueryAdress.Baustelle_Titel), "BAUMAT")
          Adressen(Adress.Konto_Name1, i) = Umlaut(rs.GetData(QueryAdress.Baustelle_Name), "BAUMAT")
          Adressen(Adress.Konto_Name2, i) = Umlaut(rs.GetData(QueryAdress.Baustelle_Name2), "BAUMAT")
          Adressen(Adress.Konto_Straße, i) = Umlaut(rs.GetData(QueryAdress.Baustelle_Straße), "BAUMAT")
          Adressen(Adress.Konto_LAND, i) = rs.GetData(QueryAdress.Baustelle_Land)
          Adressen(Adress.Konto_PLZ, i) = rs.GetData(QueryAdress.Baustelle_PLZ)
          Adressen(Adress.Konto_Ort, i) = Umlaut(rs.GetData(QueryAdress.Baustelle_Ort), "BAUMAT")
          Adressen(Adress.Konto_Tel, i) = rs.GetData(QueryAdress.Baustelle_Tel)
          Adressen(Adress.Konto_Aktiv, i) = AKTIV
        i = i + 1
       Wend
      Case "L"
       Set rs = WWS_Server.ResultSet("BM.LiefLager1", "LagerAdresse")
       Call rs.Execute(Firma, konto)
       While rs.Next()
        ReDim Preserve Adressen(Adress.Konto_LastIndex, i)
        Adressen(0, 0) = i
          Adressen(Adress.Konto_Art, i) = "Lager " + Umlaut(rs.GetData(QueryAdress.Lager_KBez), "BAUMAT")
          Adressen(Adress.Konto_Index, i) = Firma + "||Lager||" + konto + "||" + Piece(rs.GetData(QueryAdress.Lager_ID), "||", 3)
          Adressen(Adress.Konto_Anrede, i) = Umlaut(rs.GetData(QueryAdress.Lager_Titel), "BAUMAT")
          Adressen(Adress.Konto_Name1, i) = Umlaut(rs.GetData(QueryAdress.Lager_Name), "BAUMAT")
          Adressen(Adress.Konto_Name2, i) = Umlaut(rs.GetData(QueryAdress.Lager_Name2), "BAUMAT")
          Adressen(Adress.Konto_Straße, i) = Umlaut(rs.GetData(QueryAdress.Lager_Straße), "BAUMAT")
          Adressen(Adress.Konto_LAND, i) = rs.GetData(QueryAdress.Lager_Land)
          Adressen(Adress.Konto_PLZ, i) = rs.GetData(QueryAdress.Lager_PLZ)
          Adressen(Adress.Konto_Ort, i) = Umlaut(rs.GetData(QueryAdress.Lager_Ort), "BAUMAT")
          Adressen(Adress.Konto_Tel, i) = rs.GetData(QueryAdress.Lager_Tel)
          Adressen(Adress.Konto_Fax, i) = rs.GetData(QueryAdress.Lager_Fax)
          Adressen(Adress.Konto_Mail, i) = Umlaut(rs.GetData(QueryAdress.Lager_EMail), "BAUMAT")
        i = i + 1
       Wend
    End Select
  End If
LockAUS
Exit Sub
KontoNichtVorhanden:
  CacheFehlermeldung err, "Adressdaten auswerten: Adressverarbeitung.bas Adressdaten"
  LockAUS
End Sub
