📄 modmailmenu.bas
字号:
blnIsBusy = True
'如果是发件箱,修改打开邮件为 新增邮件
If frmMain.ctlMailList.mlngViewID = 3 Then
Dim mlngCurrentSelectID As Long
mclsMailTemplate1.GetMailTemplate 0, m_MailTemplate
blnIsBusy = True
#If SubClass = 1 Then
mlngCurrentSelectID = ModMailDll.AddMail(m_MailTemplate, m_E_ViewMode, IIf(m_E_ViewMode = m_ServerMode, 0, gLngEmployeeID1), gLngOwnDefineTreeID, mclsMailCreator1)
#End If
If mlngCurrentSelectID > 0 Then
If ModMailDll.BlnExcuteSendMail(mclsMailCreator1) Then
frmMain.m_CSmtpInterface.SendAMail mlngCurrentSelectID, True
End If
frmMain.RefreshMailList
frmMain.RefreshTreeView
End If
blnIsBusy = False
Else
Set mclsMailCreator1 = GetMailCls
ModMailDll.EditMail frmMain.ctlMailList.mlngCurrentSelectID, gLngEmployeeID1, mclsMailCreator1
If ModMailDll.BlnExcuteSendMail(mclsMailCreator1) Then
frmMain.m_CSmtpInterface.SendAMail frmMain.ctlMailList.mlngCurrentSelectID, True
End If
frmMain.RefreshMailList
frmMain.RefreshTreeView
End If
blnIsBusy = False
Case UCase("PRINTMAIL")
If frmMain.ctlMailList.mlngCurrentSelectID > 0 Then frmMain.ctlMailBrowser.PrintDoc
Case UCase("RESENDER") '回复发件人
blnIsBusy = True
Set mclsMailCreator1 = GetMailCls
lngCurrentID = ModMailDll.Writeback(frmMain.ctlMailList.mlngCurrentSelectID, gLngEmployeeID1, mclsMailCreator1)
If ModMailDll.BlnExcuteSendMail(mclsMailCreator1) Then
frmMain.m_CSmtpInterface.SendAMail lngCurrentID, True
End If
frmMain.RefreshMailList
frmMain.RefreshTreeView
blnIsBusy = False
Case UCase("OwnDefine")
Dim p As New PView1.clsView1
p.Init gdbCurrentDB, frmMain.ctlMailList.mlngViewID
p.EditView1ShowDialog frmMain.ctlMailList.mlngViewID
Case UCase("REALLMAIL") '全部回复发件人
blnIsBusy = True
Set mclsMailCreator1 = GetMailCls
lngCurrentID = ModMailDll.WriteBackAll(frmMain.ctlMailList.mlngCurrentSelectID, gLngEmployeeID1, mclsMailCreator1)
If ModMailDll.BlnExcuteSendMail(mclsMailCreator1) Then
frmMain.m_CSmtpInterface.SendAMail lngCurrentID, True
End If
frmMain.RefreshMailList
frmMain.RefreshTreeView
blnIsBusy = False
Case UCase("RESENDMAIL") '转发信件
blnIsBusy = True
Set mclsMailCreator1 = GetMailCls
lngCurrentID = ModMailDll.Transmit(frmMain.ctlMailList.mlngCurrentSelectID, gLngEmployeeID1, mclsMailCreator1)
If ModMailDll.BlnExcuteSendMail(mclsMailCreator1) Then
frmMain.m_CSmtpInterface.SendAMail lngCurrentID, True
End If
frmMain.RefreshMailList
frmMain.RefreshTreeView
blnIsBusy = False
Case UCase("RESENDASFJ") '作为附件转发
blnIsBusy = True
Set mclsMailCreator1 = GetMailCls
lngCurrentID = ModMailDll.WriteAsAttach(frmMain.ctlMailList.mlngCurrentSelectID, gLngEmployeeID1, mclsMailCreator1)
If ModMailDll.BlnExcuteSendMail(mclsMailCreator1) Then
frmMain.m_CSmtpInterface.SendAMail lngCurrentID, True
End If
blnIsBusy = False
frmMain.RefreshMailList
frmMain.RefreshTreeView
Case UCase("ReSend") '再次发送
Set mclsMailCreator1 = GetMailCls
lngCurrentID = ModMailDll.ReSend(frmMain.ctlMailList.mlngCurrentSelectID, gLngEmployeeID1, mclsMailCreator1)
If ModMailDll.BlnExcuteSendMail(mclsMailCreator1) Then
frmMain.m_CSmtpInterface.SendAMail lngCurrentID, True
End If
frmMain.RefreshMailList
frmMain.RefreshTreeView
Case UCase("MARKREADED") '标记为已读
GetSelectionID m_lngSelectionID
If UBound(m_lngSelectionID) > 0 Then
For lngMailCounter = 0 To UBound(m_lngSelectionID)
Set mclsMailCreator1 = GetMailCls
ModMailDll.GetMailSimple m_lngSelectionID(lngMailCounter).lngSelectionID, m_MailType, mclsMailCreator1
m_MailType.StrReadTag = MailDll.msReceiveReaded
If m_MailType.lngMailID > 0 Then
If ModMailDll.SaveMail(m_MailType, mclsMailCreator1, False, False, False, False) Then
frmMain.ctlMailList.MarkIconTag DataListGrid.E_ColumnIconTag.Column_ReadTag, True, m_lngSelectionID(lngMailCounter).lngRow
frmMain.RefreshTreeView
End If
End If
Next
End If
Case UCase("MARKUNREAD") '标记为未读
Set mclsMailCreator1 = GetMailCls
GetSelectionID m_lngSelectionID
If UBound(m_lngSelectionID) > 0 Then
For lngMailCounter = 0 To UBound(m_lngSelectionID)
ModMailDll.GetMailSimple m_lngSelectionID(lngMailCounter).lngSelectionID, m_MailType, mclsMailCreator1
m_MailType.StrReadTag = MailDll.msReceiveNoRead
If m_MailType.lngMailID > 0 Then
If ModMailDll.SaveMail(m_MailType, mclsMailCreator1, False, False, False, False) Then
frmMain.ctlMailList.MarkIconTag DataListGrid.E_ColumnIconTag.Column_ReadTag, False, m_lngSelectionID(lngMailCounter).lngRow
frmMain.RefreshTreeView
End If
End If
Next
End If
Case UCase("MOVETOFOLDER")
GetSelectionID2 mTemplngSelectionID
If UBound(mTemplngSelectionID) > 0 Then
If frmSelectFolder.ShowCard(mTemplngSelectionID, True) Then
frmMain.RefreshMailList
frmMain.RefreshTreeView
End If
End If
Case UCase("COPYTOFOLDER")
GetSelectionID2 mTemplngSelectionID
If UBound(mTemplngSelectionID) > 0 Then
If frmSelectFolder.ShowCard(mTemplngSelectionID, False) Then
frmMain.RefreshMailList
frmMain.RefreshTreeView
End If
End If
Case UCase("DELETEMAIL")
'删除当前选择的
frmMain.SendRecycle False
Case UCase("ADDSENDERTOACCOUNTS")
Case UCase("MailTrack") '新建/查看 邮件跟踪
Set mclsMailCreator1 = GetMailCls
If frmMain.ctlMailList.mlngCurrentSelectID > 0 Then
ModMailDll.GetMailSimple frmMain.ctlMailList.mlngCurrentSelectID, m_MailType, mclsMailCreator1
If ModMailDll.EditTrack(m_MailType, mclsMailCreator1) Then
frmMain.ctlMailList.MarkIconTag DataListGrid.Column_TrackTag, True, frmMain.ctlMailList.SelectedRow
End If
End If
Case UCase("MailUNTrack") '取消邮件跟踪
Set mclsMailCreator1 = GetMailCls
ModMailDll.GetMailSimple frmMain.ctlMailList.mlngCurrentSelectID, m_MailType, mclsMailCreator1
If m_MailType.btnTrack <> 0 Then
m_MailType.btnTrack = 0
m_MailType.intTrackDays = 0
m_MailType.strTrackContent = ""
If ModMailDll.SaveMail(m_MailType, mclsMailCreator1, False, False, False, False) Then
frmMain.ctlMailList.MarkIconTag DataListGrid.Column_TrackTag, False, frmMain.ctlMailList.SelectedRow
frmMain.RefreshMailList
End If
End If
End Select
Set mclsMailTemplate1 = Nothing
Set m_AccountClass1 = Nothing
Set mclsMailCreator1 = Nothing
End Sub
'********************************************************************************
'行多选接口
Public Sub GetSelectionID(ByRef lngSelectionID() As Selection)
ReDim lngSelectionID(0)
If frmMain.ctlMailList.SelectedRow = 0 Then Exit Sub
If Not frmMain.ctlMailList.MultiSelect Then Exit Sub
Dim lngRow As Long
'前三列为分组用
Dim i As Long
For i = 1 To frmMain.ctlMailList.SelectionCount
lngRow = frmMain.ctlMailList.SelectedRowByIndex(i)
If frmMain.ctlMailList.CellSelected(lngRow, frmMain.ctlMailList.SelectedCol) Then
If CLng(frmMain.ctlMailList.CellText(lngRow, 1)) > 0 Then
ReDim Preserve lngSelectionID(UBound(lngSelectionID) + 1)
lngSelectionID(UBound(lngSelectionID)).lngSelectionID = CLng(frmMain.ctlMailList.CellText(lngRow, 1))
lngSelectionID(UBound(lngSelectionID)).lngRow = lngRow
End If
End If
Next i
End Sub
'********************************************************************************
'********************************************************************************
'行多选接口
Public Sub GetSelectionID2(ByRef lngSelectionID() As Long)
ReDim lngSelectionID(0)
If frmMain.ctlMailList.SelectedRow = 0 Then Exit Sub
If Not frmMain.ctlMailList.MultiSelect Then Exit Sub
Dim lngRow As Long
'前三列为分组用
Dim i As Long
For i = 1 To frmMain.ctlMailList.SelectionCount
lngRow = frmMain.ctlMailList.SelectedRowByIndex(i)
If frmMain.ctlMailList.CellSelected(lngRow, frmMain.ctlMailList.SelectedCol) Then
If CLng(frmMain.ctlMailList.CellText(lngRow, 1)) > 0 Then
ReDim Preserve lngSelectionID(UBound(lngSelectionID) + 1)
lngSelectionID(UBound(lngSelectionID)) = CLng(frmMain.ctlMailList.CellText(lngRow, 1))
End If
End If
Next i
End Sub
'********************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -