Dieser Skript läuft bevor eine E-Mail gesendet wird. Alle Dokumente und Berichte wurden bereits generiert und der E-Mail angehängt.
Anwendungsgebiet
• | Anhängen von zusätzlichen Dokumenten an die E-Mail |
• | Änderung des E-Mail inhalts |
• | Entfernen von Dokumenten aus der generierten E-Mail vor dem senden. |
Beispiel
Das folgende Beispiel hängt eine Excel-Datei an die E-Mail an in welcher alle Auftragsartikel in Tabellenform aufgeführt sind.
Public Shared Sub BeforeSendMail(e As BeforeSendMailParameters)
Dim dat As tbl_Auftrag = TryCast(e.ReportGenerationParameter.ObjectData, tbl_Auftrag)
If dat Is Nothing Then Return
Using spreadsheet As New DevExpress.Spreadsheet.Workbook
Dim sheet = spreadsheet.Worksheets(0)
Dim CurrentRow = 0
Dim CurrentCol = 0
sheet.Cells(CurrentRow, CurrentCol).SetValue("Auftrag")
CurrentCol += 1
sheet.Cells(CurrentRow, CurrentCol).SetValue("Typ")
CurrentCol += 1
sheet.Cells(CurrentRow, CurrentCol).SetValue("Artikelnummer")
CurrentCol += 1
sheet.Cells(CurrentRow, CurrentCol).SetValue("Gesamtsumme")
CurrentCol += 1
sheet.Cells(CurrentRow, CurrentCol).SetValue("Einzelpreis")
CurrentCol += 1
sheet.Cells(CurrentRow, CurrentCol).SetValue("Preiseinheit")
CurrentCol += 1
sheet.Cells(CurrentRow, CurrentCol).SetValue("Menge")
CurrentCol += 1
sheet.Cells(CurrentRow, CurrentCol).SetValue("Lagereinheit")
CurrentCol += 1
sheet.Cells(CurrentRow, CurrentCol).SetValue("Solldatum")
CurrentCol += 1
For Each item In (From a In dat.tbl_Auftrag_Artikel Where a.ParentID Is Nothing)
If If(item.ArtikelTyp, EntityHelper.CustomDataTypes.ArtikelTyp.Normal) = EntityHelper.CustomDataTypes.ArtikelTyp.TextOnly Then Continue For
CurrentRow += 1
CurrentCol = 0
sheet.Cells(CurrentRow, CurrentCol).SetValue(item.tbl_Auftrag.Auftragsbezeichnung)
CurrentCol += 1
sheet.Cells(CurrentRow, CurrentCol).SetValue(item.tbl_Auftrag.tbl_auftragskategorien.text)
CurrentCol += 1
sheet.Cells(CurrentRow, CurrentCol).SetValue(item.Artikelnummer)
CurrentCol += 1
sheet.Cells(CurrentRow, CurrentCol).SetValue(item.GesamtSummeVK_BruttoNetto)
sheet.Cells(CurrentRow, CurrentCol)(0).NumberFormat = "#,##0.00 €"
CurrentCol += 1
sheet.Cells(CurrentRow, CurrentCol).SetValue(item.GesamtEinzelpreis_BruttoNetto)
sheet.Cells(CurrentRow, CurrentCol)(0).NumberFormat = "#,##0.00 €"
CurrentCol += 1
If Not item.tbl_Einheiten_Preis Is Nothing Then
sheet.Cells(CurrentRow, CurrentCol).SetValue(item.tbl_Einheiten_Preis.Kürzel)
End If
CurrentCol += 1
If If(item.bestellmenge, 0) <> 0 Then
sheet.Cells(CurrentRow, CurrentCol).SetValue(If(item.bestellmenge, 0))
End If
CurrentCol += 1
If Not item.tbl_Einheiten Is Nothing Then
sheet.Cells(CurrentRow, CurrentCol).SetValue(item.tbl_Einheiten.Kürzel)
End If
CurrentCol += 1
If Not item.Solldatum Is Nothing Then
sheet.Cells(CurrentRow, CurrentCol).SetValue(item.Solldatum.Value)
End If
CurrentCol += 1
Next
'Gesamter Tabellenbereich
For x = 0 To CurrentCol - 1
sheet.Columns(x).AutoFit()
Next
'Speichern
Dim TempPath As String = Styletronix.AuftragsverwaltungV2.Common.Gemeinsam.GetTempFolder
Dim FileName = Styletronix.AuftragsverwaltungV2.Common.Gemeinsam.Files.CleanFileName(TempPath & String.Format("\{0}.xlsx", e.ReportGenerationParameter.BerichtBezeichnung))
FileName = Styletronix.Utils.Files.GetNotUsedFileName(FileName)
spreadsheet.SaveDocument(FileName)
'Datei an E-Mail anhängen
e.TemporaryFilesToAttach.Add(FileName)
End Using
End Sub