Attribute VB_Name = "modListSubItemCheck"
Option Explicit
' *** Den Artikel zu diesem Modul finden Sie unter http://www.aboutvb.de/khw/artikel/khwlvwitemchecks.htm ***

Public Function LvwListSubItemCheck(ListView As ListView, ByVal X As Single, ByVal Y As Single, Optional ListSubItem As ListSubItem, Optional ListItem As ListItem) As Boolean
    Dim nPart As ListItemHitTestPartConstants
    Dim VarCheckBox As Boolean
    Select Case ListItemHitTest(ListView, X, Y, ListItem, ListSubItem, nPart)
        
    Case lhsListSubItem
         Select Case nPart
         Case lhpIcon
          If modRechte.MitarbeiterRecht(VarKellner, "StationAktivierenDeaktivieren") = True Then
             If modRechte.MitarbeiterRecht(VarKellner, "MitarbeiterVerwaltungUneingeschrenkt") = False And modRechte.MitarbeiterRecht(frmKellner.ListViewKellner.SelectedItem.Text, "MitarbeiterVerwaltungUneingeschrenkt") = True Then
                MsgBox "Sie haben nicht die nötigen Rechte, um diese Aktion auszuführen"
                Exit Function
             End If
          Else
              MsgBox "Sie haben nicht die nötigen Rechte, um diese Aktion auszuführen"
              Exit Function
          End If
            
            ListSubItemCheckToggle ListSubItem
            LvwListSubItemCheck = True
            If ListSubItem.Text = "deaktiviert" Then
               ListSubItem.Text = "aktiviert"
               VarCheckBox = True
               Call frmKellner.ListViewKellnerSpeichern("ListSubItem", ListItem.Index, ListSubItem.Index, VarCheckBox)
            Else
               ListSubItem.Text = "deaktiviert"
               VarCheckBox = False
               Call frmKellner.ListViewKellnerSpeichern("ListSubItem", ListItem.Index, ListSubItem.Index, VarCheckBox)
            End If
         End Select
    End Select
End Function

Public Function ListSubItemCheckToggle(Optional ListSubItem As ListSubItem, Optional ListItem As ListItem, Optional ListSubItemKey As Variant, Optional ListView As ListView, Optional ListItemKey As Variant) As Boolean
    Dim nListSubItem As ListSubItem
    Dim nValue As Boolean
    Dim nReportIcon As String
    
    Set nListSubItem = zGetListSubItem(ListSubItem, ListItem, ListSubItemKey, ListView, ListItemKey)
    If nListSubItem Is Nothing Then
        Err.Raise 380
    Else
        With nListSubItem
            nReportIcon = .ReportIcon
            nValue = Not CBool(Left$(nReportIcon, 1))
            .ReportIcon = Abs(nValue) & Mid$(nReportIcon, 2)
            ListSubItemCheckToggle = nValue
        End With
    End If
End Function

Public Property Get ListSubItemChecked(Optional ListSubItem As ListSubItem, Optional ListItem As ListItem, Optional ListSubItemKey As Variant, Optional ListView As ListView, Optional ListItemKey As Variant) As Boolean
    Dim nListSubItem As ListSubItem

    Set nListSubItem = zGetListSubItem(ListSubItem, ListItem, ListSubItemKey, ListView, ListItemKey)
    If nListSubItem Is Nothing Then
        Err.Raise 380
    Else
        ListSubItemChecked = CBool(Left$(ListSubItem.ReportIcon, 1))
     End If
End Property

Public Property Let ListSubItemChecked(Optional ListSubItem As ListSubItem, Optional ListItem As ListItem, Optional ListSubItemKey As Variant, Optional ListView As ListView, Optional ListItemKey As Variant, Checked As Boolean)
    Dim nListSubItem As ListSubItem

    Set nListSubItem = zGetListSubItem(ListSubItem, ListItem, ListSubItemKey, ListView, ListItemKey)
    If nListSubItem Is Nothing Then
        Err.Raise 380
    Else
        With nListSubItem
            .ReportIcon = Abs(Checked) & Mid$(.ReportIcon, 2)
        End With
    End If
End Property

Private Function zGetListSubItem(ListSubItem As ListSubItem, ListItem As ListItem, ListSubItemKey As Variant, ListView As ListView, ListItemKey As Variant) As ListSubItem
    If ListSubItem Is Nothing Then
        If ListItem Is Nothing Then
            If Not (ListView Is Nothing) Then
                Set zGetListSubItem = ListView.ListItems(ListItemKey).ListSubItems(ListSubItemKey)
            End If
        Else
            Set zGetListSubItem = ListItem.ListSubItems(ListSubItemKey)
        
        End If
    Else
        Set zGetListSubItem = ListSubItem
    
    End If
End Function
