Я разработал простое решение, позволяющее группе из пяти человек автоматически получать информацию о том, выполнены ли ежедневные критические задачи команды или нет. Я создаю отдельную задачу для каждого из них и устанавливаю напоминания о задачах так же, как и время задач (0 минут до этого). Структура такая; владелец задачи завершает задачу, делает снимок экрана (в качестве доказательства. Это обязательно) и сохраняет его с предопределенным именем файла в указанной c папке (file.jpg).
Всплывает напоминание о связанной задаче Outlook, запускайте коды искать этот файл, и если он находит файл, ничего не делает; если файл не существует, отправляет команде электронное письмо о том, что задача не завершена. Коды сохраняются в application_reminder Outlook, и у меня также есть несколько функций, сохраненных в модуле. Коды работают хорошо после срабатывания напоминаний о задачах для первых одного или двух экземпляров, но затем по какой-то причине перестают работать. Напоминание появляется, но коды не запускаются.
- Есть идеи, почему коды не работают? Есть ли какое-то исправление или что-то
относительно этой проблемы? - Любые другие решения, которые вы знаете, делают то, что я пытаюсь сделать.
- Могу ли я преобразовать это в проект vsto? Может ли это быть более эффективное решение? (До сих пор я ничего не делал в Visual Studio, но хочу начать его использовать)
Я вставил коды ниже только для вашей информации. Как я уже сказал, коды работают в самых первых случаях. Но предложения по улучшению всегда приветствуются.
Private Sub Application_Reminder(ByVal Item As Object)
Dim objPeriodicalMail As MailItem
If Item.Categories = "Screenshot" Then
Call Screenshot(Item.Subject)
End If
End Sub
*************************
Function reppdate() As Date 'returns previous working date
Dim yest As Date
Dim tatiller As Variant
tatiller = Array("19.05.2020", "06.05.2020", "05.05.2020", "04.05.2020", "01.05.2020", "01.01.2020") 'local holidays
j = -1
For i = 0 To UBound(tatiller)
yest = Format(DateAdd("w", j, Now()), "dd.mm.yyyy")
If yest = tatiller(i) Then
If Weekday(yest) = 2 Then
j = j - 3
Else: j = j - 1
End If
Else
If j < -1 Then
Exit For
Else: End If
End If
Next i
reppdate = yest
End Function
**************************************
Sub Screenshot(dosya As String)
yestt = reppdate()
Dim objMsg As MailItem
Set objMsg = Application.CreateItem(olMailItem)
vamsg = "Dikkat, " & dosya & ".jpg bulunamadi, rapor gönderilmemis mi!"
dosyaadi1 = "c:folder\" & Format(yestt, "yyyymm") & "\Daily\" & Format(yestt, "dd") & "\" & dosya & ".jpg"
baglanti = "<a href=" & dosyaadi1 & ">" & vamsg & "</a>"
If FileFolderExists(dosyaadi1) = False Then
msg = vamsg
Else
End If
objMsg.To = "vvvvv.com"
objMsg.Subject = msg
objMsg.Body = msg & " - " & dosyaadi1
objMsg.Send
Set objMsg = Nothing
End Sub