BeforeSendMail

Navigation:  Skripts > Skripts für Drucksystem >

BeforeSendMail

Previous pageReturn to chapter overviewNext page

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