This commit is contained in:
2020-10-02 10:37:26 +02:00
parent ce31c2c398
commit 75b12f314d
42 changed files with 1131 additions and 510 deletions

View File

@@ -153,20 +153,29 @@ Public Class frmMessenger
' End If
'End Sub
Sub intiDGVChats(Optional dgv_ChatID = -1, Optional reloadChat = True)
Sub intiDGVChats(Optional dgv_ChatID = -1, Optional reloadChat = True, Optional selFirst = False)
With dgvChats
Dim loadedTmp = loaded
If Not reloadChat Then
loaded = False
End If
.DataSource = SQL.loadDgvBySql("SELECT [chat_id],CASE WHEN chat_name<>'' THEN chat_name ELSE (SELECT TOP 1 mit_vname + ' ' + mit_nname FROM tblMessenger_ChatMembers INNER JOIN tblMitarbeiter ON mit_id=chatMb_maId where chatMb_chatId=chat_id AND chatMb_maId <>" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ") END as chat_name
,(SELECT REPLACE(COUNT(*),'0','') FROM tblMessenger_ChatMessages INNER JOIN tblMessenger_ChatMessageStatus ON chatMgSt_chatMsgId=chatMg_id WHERE [chat_id]=chatMg_chatId AND chatMgSt_MaId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & " AND chatMgSt_gelesen=0) as ungelesen
FROM [tblMessenger_Chat] WHERE (SELECT COUNT(*) FROM tblMessenger_ChatMembers WHERE chatMB_chatId=chat_id AND chatMB_maId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ")>0
AND chat_aktiv='" & (Not cbxInaktiveChats.Checked) & "' ORDER BY chat_lastMsg DESC", "ADMIN")
Dim whereName = ""
If MyTextBox1.Text.Trim <> String.Empty Then
whereName = " WHERE chat_name LIKE '%" & MyTextBox1.Text.Trim & "%' "
End If
.DataSource = SQL.loadDgvBySql("SELECT * FROM(
SELECT [chat_id],CASE WHEN chat_name<>'' THEN chat_name ELSE (SELECT TOP 1 mit_vname + ' ' + mit_nname FROM tblMessenger_ChatMembers INNER JOIN tblMitarbeiter ON mit_id=chatMb_maId where chatMb_chatId=chat_id AND chatMb_maId <>" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ") END as chat_name
,(SELECT REPLACE(COUNT(*),'0','') FROM tblMessenger_ChatMessages INNER JOIN tblMessenger_ChatMessageStatus ON chatMgSt_chatMsgId=chatMg_id WHERE [chat_id]=chatMg_chatId AND chatMgSt_MaId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & " AND chatMgSt_gelesen=0) as ungelesen ,chat_lastMsg
FROM [tblMessenger_Chat] WHERE (SELECT COUNT(*) FROM tblMessenger_ChatMembers WHERE chatMB_chatId=chat_id AND chatMB_maId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ")>0
AND chat_aktiv='" & (Not cbxInaktiveChats.Checked) & "'
) as T " & whereName & " ORDER BY chat_lastMsg DESC", "ADMIN")
If .Columns.Count = 0 Then Exit Sub
.Columns("chat_id").Visible = False
.Columns("chat_lastMsg").Visible = False
.Columns("chat_name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("ungelesen").Width = 30
.Columns("ungelesen").HeaderText = "neu"
@@ -176,32 +185,46 @@ Public Class frmMessenger
dgvChats.GetOrder()
If Not reloadChat Then
If selFirst Then
dgvChats.ClearSelection()
If dgv_ChatID > 0 Then
For Each r As DataGridViewRow In .Rows
If r.Cells("chat_id").Value = dgv_ChatID Then
dgvChats.ClearSelection()
r.Selected = True : Exit For
End If
Next
SplitContainer1.Enabled = False
If .Rows.Count > 0 Then
loaded = True
SplitContainer1.Enabled = True
.Rows(0).Selected = True
End If
loaded = loadedTmp
Else
dgvChats.ClearSelection()
SplitContainer1.Enabled = False
If dgv_ChatID > 0 Then
For Each r As DataGridViewRow In .Rows
If r.Cells("chat_id").Value = dgv_ChatID Then
dgvChats.ClearSelection()
SplitContainer1.Enabled = True
r.Selected = True : Exit For
End If
Next
If Not reloadChat Then
dgvChats.ClearSelection()
If dgv_ChatID > 0 Then
For Each r As DataGridViewRow In .Rows
If r.Cells("chat_id").Value = dgv_ChatID Then
dgvChats.ClearSelection()
r.Selected = True : Exit For
End If
Next
End If
loaded = loadedTmp
Else
dgvChats.ClearSelection()
SplitContainer1.Enabled = False
If dgv_ChatID > 0 Then
For Each r As DataGridViewRow In .Rows
If r.Cells("chat_id").Value = dgv_ChatID Then
dgvChats.ClearSelection()
SplitContainer1.Enabled = True
r.Selected = True : Exit For
End If
Next
End If
End If
End If
dgvChats.SetOrder()
If dgvChats.SelectedRows.Count > 0 Then dgvChats.FirstDisplayedCell = dgvChats.SelectedRows(0).Cells("chat_name")
@@ -218,8 +241,9 @@ Public Class frmMessenger
' Next
'End If
End With
rtbChatMessage.Focus()
If Not selFirst Then rtbChatMessage.Focus()
End Sub
@@ -527,7 +551,7 @@ Public Class frmMessenger
Try
Dim Dt_New As DataTable = SQL.loadDgvBySql("SELECT [chat_id],CASE WHEN chat_name<>'' THEN chat_name ELSE (SELECT TOP 1 mit_vname + ' ' + mit_nname FROM tblMessenger_ChatMembers INNER JOIN tblMitarbeiter ON mit_id=chatMb_maId where chatMb_chatId=chat_id AND chatMb_maId <>" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ") END as chat_name
,(SELECT REPLACE(COUNT(*),'0','') FROM tblMessenger_ChatMessages INNER JOIN tblMessenger_ChatMessageStatus ON chatMgSt_chatMsgId=chatMg_id WHERE [chat_id]=chatMg_chatId AND chatMgSt_MaId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & " AND chatMgSt_gelesen=0) as ungelesen
,(SELECT REPLACE(COUNT(*),'0','') FROM tblMessenger_ChatMessages INNER JOIN tblMessenger_ChatMessageStatus ON chatMgSt_chatMsgId=chatMg_id WHERE [chat_id]=chatMg_chatId AND chatMgSt_MaId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & " AND chatMgSt_gelesen=0) as ungelesen
FROM [tblMessenger_Chat] WHERE (SELECT COUNT(*) FROM tblMessenger_ChatMembers WHERE chatMB_chatId=chat_id AND chatMB_maId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ")>0
AND chat_aktiv='" & (Not cbxInaktiveChats.Checked) & "' ORDER BY chat_lastMsg DESC", "ADMIN")
Dim Dt_Current As DataTable = dgvChats.DataSource
@@ -809,6 +833,23 @@ Public Class frmMessenger
End Sub
Private Sub MyTextBox1_TextChanged(sender As Object, e As EventArgs) Handles MyTextBox1.Leave
intiDGVChats(, False, True)
End Sub
Private Sub MyTextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyTextBox1.KeyUp
If e.KeyCode = Keys.Return Or MyTextBox1.Text = "" Then
intiDGVChats(, False, True)
End If
End Sub
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
MyTextBox1.Text = ""
intiDGVChats(, False, True)
End Sub
'Private Sub rtbChatMessage_TextChanged(sender As Object, e As EventArgs) Handles rtbChatMessage.TextChanged
' FlowLayoutPanel.Enabled = (rtbChatMessage.Text = "")
'End Sub