From 792c57f3ecc62207777f9c9dc7f25d31ef30043d Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 7 Apr 2025 17:55:20 +0200 Subject: [PATCH] BU, Faktsammelrechnungdruck, etc. --- SDL/Fakturierung/frmFaktSammelRgDrucken.vb | 2 +- ...ptSammelRechnungAnlagenDruck_Leistungen.vb | 6 +- SDL/SDL.vbproj | 4 +- SDL/buchhaltung/frmBU_Mahnlauf.Designer.vb | 81 +++++++++- SDL/buchhaltung/frmBU_Mahnlauf.vb | 152 +++++++++++++++--- SDL/cProgramFunctions.vb | 4 +- 6 files changed, 218 insertions(+), 31 deletions(-) diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb index 95f48c9b..21bab2da 100644 --- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb +++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb @@ -311,7 +311,7 @@ Public Class frmFaktSammelRgDrucken If Sammelrechung = 6 Then 'MDMSammelrechnung 'AKTUELL IMMER MIT KOPIE MDMKopiedrucken = True - Dim reLandKZ As String = MyDatagridview1.Rows(0).Cells("RechnungsLandKz").Value + Dim reLandKZ As String = MyDatagridview1.SelectedRows(0).Cells("RechnungsLandKz").Value Dim isEU As Boolean = dTLANDEU.AsEnumerable().Where(Function(res) res.Field(Of String)("LandKz") = reLandKZ).Select(Function(res) res.Field(Of Boolean)("MitgliedslandEU")).FirstOrDefault() If isEU Then diff --git a/SDL/Fakturierung/rptSammelRechnungAnlagenDruck_Leistungen.vb b/SDL/Fakturierung/rptSammelRechnungAnlagenDruck_Leistungen.vb index 606a7f9d..aeb6c57f 100644 --- a/SDL/Fakturierung/rptSammelRechnungAnlagenDruck_Leistungen.vb +++ b/SDL/Fakturierung/rptSammelRechnungAnlagenDruck_Leistungen.vb @@ -24,14 +24,16 @@ Public Class rptSammelRechnungAnlagenDruck_Leistungen txtAbfertigungsart.Text = "" lblSteuerfrei.Text = "" lblSteuerpflichtig.Text = "" + Dim vorzeichen = If(If(RECHNUNG.Vorzeichen, "") = "-", -1, 1) + If Me.Fields.Item("clmnAnzahl") IsNot Nothing AndAlso Me.Fields.Item("clmnAnzahl").Value IsNot Nothing Then txtAbfertigungsart.Text &= Me.Fields.Item("clmnAnzahl").Value.ToString & "x " If Me.Fields.Item("clmnLeistung") IsNot Nothing AndAlso Me.Fields.Item("clmnLeistung").Value IsNot Nothing Then txtAbfertigungsart.Text &= Me.Fields.Item("clmnLeistung").Value.ToString If Me.Fields.Item("clmnLeistungsNr") IsNot Nothing AndAlso Me.Fields.Item("clmnLeistungsNr").Value IsNot Nothing Then txtAbfertigungsart.Text &= " (" & Me.Fields.Item("clmnLeistungsNr").Value.ToString & ") " If Me.Fields.Item("clmnSteuerfreierBetrag") IsNot Nothing AndAlso Me.Fields.Item("clmnSteuerfreierBetrag").Value IsNot Nothing AndAlso CDbl(Me.Fields.Item("clmnSteuerfreierBetrag").Value) <> 0 Then - lblSteuerfrei.Text = CDbl(Me.Fields.Item("clmnSteuerfreierBetrag").Value.ToString).ToString("N2") + lblSteuerfrei.Text = CDbl(Me.Fields.Item("clmnSteuerfreierBetrag").Value.ToString * vorzeichen).ToString("N2") End If If Me.Fields.Item("clmnSteuerpflichtigerBetrag") IsNot Nothing AndAlso Me.Fields.Item("clmnSteuerpflichtigerBetrag").Value IsNot Nothing AndAlso CDbl(Me.Fields.Item("clmnSteuerpflichtigerBetrag").Value) <> 0 Then - lblSteuerpflichtig.Text = CDbl(Me.Fields.Item("clmnSteuerpflichtigerBetrag").Value.ToString).ToString("N2") + lblSteuerpflichtig.Text = CDbl(Me.Fields.Item("clmnSteuerpflichtigerBetrag").Value.ToString * vorzeichen).ToString("N2") End If End If End Sub diff --git a/SDL/SDL.vbproj b/SDL/SDL.vbproj index 4ad06591..7ea41133 100644 --- a/SDL/SDL.vbproj +++ b/SDL/SDL.vbproj @@ -4991,7 +4991,9 @@ - + + Always + Always diff --git a/SDL/buchhaltung/frmBU_Mahnlauf.Designer.vb b/SDL/buchhaltung/frmBU_Mahnlauf.Designer.vb index 80eafb25..b05bca20 100644 --- a/SDL/buchhaltung/frmBU_Mahnlauf.Designer.vb +++ b/SDL/buchhaltung/frmBU_Mahnlauf.Designer.vb @@ -56,6 +56,10 @@ Partial Class frmBU_Mahnlauf Me.Button2 = New System.Windows.Forms.Button() Me.Button1 = New System.Windows.Forms.Button() Me.MyTextBox2 = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtZahlEingaenge = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.Button7 = New System.Windows.Forms.Button() + Me.btnMail_Intern = New System.Windows.Forms.Button() + Me.cbxKontotyp = New VERAG_PROG_ALLGEMEIN.MyComboBox() Me.Panel1.SuspendLayout() Me.pnlTop.SuspendLayout() Me.Panel2.SuspendLayout() @@ -65,6 +69,8 @@ Partial Class frmBU_Mahnlauf ' 'Panel1 ' + Me.Panel1.Controls.Add(Me.cbxKontotyp) + Me.Panel1.Controls.Add(Me.txtZahlEingaenge) Me.Panel1.Controls.Add(Me.cbxZahlungseingaenge) Me.Panel1.Controls.Add(Me.cbxNurFaellig) Me.Panel1.Controls.Add(Me.MyComboBox1) @@ -89,9 +95,9 @@ Partial Class frmBU_Mahnlauf Me.cbxZahlungseingaenge.AutoSize = True Me.cbxZahlungseingaenge.Location = New System.Drawing.Point(568, 87) Me.cbxZahlungseingaenge.Name = "cbxZahlungseingaenge" - Me.cbxZahlungseingaenge.Size = New System.Drawing.Size(114, 17) + Me.cbxZahlungseingaenge.Size = New System.Drawing.Size(140, 17) Me.cbxZahlungseingaenge.TabIndex = 39 - Me.cbxZahlungseingaenge.Text = "Zahlungseingänge" + Me.cbxZahlungseingaenge.Text = "Zahlungseingänge vom:" Me.cbxZahlungseingaenge.UseVisualStyleBackColor = True ' 'cbxNurFaellig @@ -280,6 +286,8 @@ Partial Class frmBU_Mahnlauf ' 'Panel3 ' + Me.Panel3.Controls.Add(Me.btnMail_Intern) + Me.Panel3.Controls.Add(Me.Button7) Me.Panel3.Controls.Add(Me.btnKunde) Me.Panel3.Controls.Add(Me.cbxMahnstufeErh) Me.Panel3.Controls.Add(Me.Label8) @@ -307,7 +315,7 @@ Partial Class frmBU_Mahnlauf Me.btnKunde.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnKunde.Image = Global.SDL.My.Resources.Resources.person1 Me.btnKunde.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnKunde.Location = New System.Drawing.Point(38, 87) + Me.btnKunde.Location = New System.Drawing.Point(38, 78) Me.btnKunde.Name = "btnKunde" Me.btnKunde.Padding = New System.Windows.Forms.Padding(0, 0, 2, 0) Me.btnKunde.Size = New System.Drawing.Size(123, 32) @@ -501,6 +509,69 @@ Partial Class frmBU_Mahnlauf Me.MyTextBox2.TabIndex = 39 Me.MyTextBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Right ' + 'txtZahlEingaenge + ' + Me.txtZahlEingaenge._DateTimeOnly = False + Me.txtZahlEingaenge._numbersOnly = False + Me.txtZahlEingaenge._numbersOnlyKommastellen = "" + Me.txtZahlEingaenge._numbersOnlyTrennzeichen = True + Me.txtZahlEingaenge._Prozent = False + Me.txtZahlEingaenge._ShortDateNew = True + Me.txtZahlEingaenge._ShortDateOnly = False + Me.txtZahlEingaenge._TimeOnly = False + Me.txtZahlEingaenge._TimeOnly_Seconds = False + Me.txtZahlEingaenge._value = "" + Me.txtZahlEingaenge._Waehrung = False + Me.txtZahlEingaenge._WaehrungZeichen = False + Me.txtZahlEingaenge.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.txtZahlEingaenge.ForeColor = System.Drawing.Color.Black + Me.txtZahlEingaenge.Location = New System.Drawing.Point(714, 85) + Me.txtZahlEingaenge.MaxLength = 10 + Me.txtZahlEingaenge.MaxLineLength = -1 + Me.txtZahlEingaenge.MaxLines_Warning = "" + Me.txtZahlEingaenge.MaxLines_Warning_Label = Nothing + Me.txtZahlEingaenge.Name = "txtZahlEingaenge" + Me.txtZahlEingaenge.Size = New System.Drawing.Size(88, 20) + Me.txtZahlEingaenge.TabIndex = 47 + Me.txtZahlEingaenge.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + Me.txtZahlEingaenge.Visible = False + ' + 'Button7 + ' + Me.Button7.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button7.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.0!) + Me.Button7.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.Button7.Location = New System.Drawing.Point(38, 113) + Me.Button7.Name = "Button7" + Me.Button7.Size = New System.Drawing.Size(123, 23) + Me.Button7.TabIndex = 47 + Me.Button7.Text = "OP-Liste aktualisieren" + Me.Button7.UseVisualStyleBackColor = True + ' + 'btnMail_Intern + ' + Me.btnMail_Intern.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnMail_Intern.BackgroundImage = Global.SDL.My.Resources.Resources.email_big1 + Me.btnMail_Intern.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.btnMail_Intern.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnMail_Intern.Location = New System.Drawing.Point(1213, 83) + Me.btnMail_Intern.Name = "btnMail_Intern" + Me.btnMail_Intern.Size = New System.Drawing.Size(41, 34) + Me.btnMail_Intern.TabIndex = 48 + Me.btnMail_Intern.UseVisualStyleBackColor = True + ' + 'cbxKontotyp + ' + Me.cbxKontotyp._allowedValuesFreiText = Nothing + Me.cbxKontotyp._allowFreiText = False + Me.cbxKontotyp._value = "" + Me.cbxKontotyp.FormattingEnabled = True + Me.cbxKontotyp.Location = New System.Drawing.Point(568, 103) + Me.cbxKontotyp.Name = "cbxKontotyp" + Me.cbxKontotyp.Size = New System.Drawing.Size(97, 21) + Me.cbxKontotyp.TabIndex = 48 + Me.cbxKontotyp.Visible = False + ' 'frmBU_Mahnlauf ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -558,4 +629,8 @@ Partial Class frmBU_Mahnlauf Friend WithEvents cbxMahnstufeErh As CheckBox Friend WithEvents btnKunde As Button Friend WithEvents cbxZahlungseingaenge As CheckBox + Friend WithEvents txtZahlEingaenge As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents Button7 As Button + Friend WithEvents btnMail_Intern As Button + Friend WithEvents cbxKontotyp As VERAG_PROG_ALLGEMEIN.MyComboBox End Class diff --git a/SDL/buchhaltung/frmBU_Mahnlauf.vb b/SDL/buchhaltung/frmBU_Mahnlauf.vb index d9cc606c..703e2254 100644 --- a/SDL/buchhaltung/frmBU_Mahnlauf.vb +++ b/SDL/buchhaltung/frmBU_Mahnlauf.vb @@ -1,8 +1,6 @@ Imports System.Globalization -Imports System.Windows Imports Microsoft.Office.Interop Imports VERAG_PROG_ALLGEMEIN -Imports VERAG_PROG_ALLGEMEIN.TESTJSON Public Class frmBU_Mahnlauf @@ -70,14 +68,20 @@ Public Class frmBU_Mahnlauf ORDER BY KTO.c_name" + Dim SQLWhere = " and (c_kennung = 'KE' or BU.i_konto in (5827, 5829) or LEFT(BU.i_konto,1) = 0 or c_kennung = 'DE')" + + Select Case cbxKontotyp._value + Case "DE", "KE", "KO" : SQLWhere &= " and c_kennung = '" & cbxKontotyp._value & "'" + End Select Dim sqlStringVerag360Zahlungseingaenge = " SELECT cast(d_beleg as Date) as d_beleg ,c_urbelegid, c_buchtext, case when c_sollhabenkz = 'H' then eur_betrag else eur_betrag * -1 end as eur_betrag , BU.i_konto,KTO.c_landid FROM [FIBU2].[dbo].[fibu_belegzeile] as BU RIGHT join fibu_konto KTO on KTO.i_konto=BU.i_konto AND BU.i_firm_refid=KTO.i_firm_refid - where cast(d_beleg as date) = '03.04.2025' and BU.i_firm_refid=" & Firma_ID & " and (c_kennung = 'KE' or BU.i_konto in (5827, 5829) or LEFT(BU.i_konto,1) = 0 or c_kennung = 'DE') + where cast(d_beleg as date) = '" & txtZahlEingaenge._value & "' and BU.i_firm_refid=" & Firma_ID & SQLWhere & " and (BU.i_konto in (2800, 2801, 2802, 2803, 2811, 2812, 2813, 2814, 2817, 2818, 2822 ,2826, 2827, 2828, 2831, 2832, 2833, 2837, 2845) or i_gegenkonto in (2800, 2801, 2802, 2803, 2811, 2812, 2813, 2814, 2817, 2818, 2822 ,2826, 2827, 2828, 2831, 2832, 2833, 2837, 2845)) - order by i_beleg_refid, i_zeilen_refid" + order by i_konto, i_beleg_refid, i_zeilen_refid" + 'MsgBox(sqlStr) @@ -188,6 +192,13 @@ Public Class frmBU_Mahnlauf MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("12. Mahnung", "12")) MyComboBox2.changeItem("") + cbxKontotyp.Items.Clear() + cbxKontotyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Alle", "A")) + cbxKontotyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Debitoren", "DE")) + cbxKontotyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Kreditoren", "KE")) + cbxKontotyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Sachkonten", "KO")) + cbxKontotyp.changeItem("Alle") + MyTextBox2._value = Now.ToShortDateString End Sub @@ -478,10 +489,10 @@ Public Class frmBU_Mahnlauf Else 'über Übersetzung geregelt, alle anderen über getMahnstufe (sollte in Zukunft noch abgeändert werden!) getMahnstufetext("DE", MAHNSTUFE, MahnTEXT_VOR, MahnTEXT_NACH, MAHNTEXT) - rpt.lblUeberschriftRG_GS.Text = MAHNTEXT - rpt.txtMahnungstextVOR.Text = MahnTEXT_VOR - rpt.txtVermerk.Text = MahnTEXT_NACH - End If + rpt.lblUeberschriftRG_GS.Text = MAHNTEXT + rpt.txtMahnungstextVOR.Text = MahnTEXT_VOR + rpt.txtVermerk.Text = MahnTEXT_NACH + End If @@ -725,22 +736,22 @@ Public Class frmBU_Mahnlauf Dim outl As New Outlook.Application - Dim Mail As Microsoft.Office.Interop.Outlook.MailItem - Mail = outl.CreateItem(0) - Mail.Subject = Mail_Subject - Mail.HTMLBody = Mail_HTMLBody + Dim Mail As Microsoft.Office.Interop.Outlook.MailItem + Mail = outl.CreateItem(0) + Mail.Subject = Mail_Subject + Mail.HTMLBody = Mail_HTMLBody - Mail.To = Mail_To - Mail.CC = Mail_CC - Mail.BCC = Mail_BCC + Mail.To = Mail_To + Mail.CC = Mail_CC + Mail.BCC = Mail_BCC Mail.Attachments.Add(tmpPath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , pdfBezeichnung) Try 'Mail.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR") ',"buchhaltung@verag.ag" Catch ex2 As Exception MsgBox(ex2.Message) - End Try - Mail.Display() + End Try + Mail.Display() End Select @@ -1234,7 +1245,7 @@ Public Class frmBU_Mahnlauf Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, , "WiedergestellungsDatum Fehler") Finally - fProgBar.Close + fProgBar.Close() End Try Me.Cursor = Cursors.Default End Sub @@ -1247,10 +1258,14 @@ Public Class frmBU_Mahnlauf Private Sub btnExcel_Click(sender As Object, e As EventArgs) Handles btnExcel.Click Me.Cursor = Cursors.WaitCursor btnSuche.PerformClick() - ' cProgramFunctions.genExcelFromDGV_NEW(MyDatagridview1, False) - 'cProgramFunctions.genExcelFromDGV_NEW(MyDatagridview1, False) + Dim dt = MyDatagridview1.DataSource - cProgramFunctions.genExcelFromDT_NEW(dt, {"G1:G" & (dt.Rows.Count + 1), "J1:J" & (dt.Rows.Count + 1)}) + If cbxZahlungseingaenge.Checked Then + cProgramFunctions.genExcelFromDT_NEW(dt, {"E1:E" & (dt.Rows.Count + 1)},,, "Zahlungseingänge vom " & txtZahlEingaenge._value,, True) + Else + cProgramFunctions.genExcelFromDT_NEW(dt, {"G1:G" & (dt.Rows.Count + 1), "J1:J" & (dt.Rows.Count + 1)}) + End If + Me.Cursor = Cursors.Default End Sub @@ -1287,15 +1302,108 @@ Public Class frmBU_Mahnlauf End Sub Private Sub cbxZahlungseingaenge_CheckedChanged(sender As Object, e As EventArgs) Handles cbxZahlungseingaenge.CheckedChanged - 'initDGV(cbxZahlungseingaenge.Checked) + + If cbxZahlungseingaenge.Checked Then + txtZahlEingaenge.Visible = True + cbxKontotyp.Visible = True + btnMail_Intern.Visible = True + Select Case Now.DayOfWeek + Case 1 : txtZahlEingaenge._value = Today().AddDays(-3) 'Am Montag Daten von Freitag + Case Else : txtZahlEingaenge._value = Today().AddDays(-1) ' Sonst daten von gestern. + End Select + Else + txtZahlEingaenge.Visible = False + cbxKontotyp.Visible = False + btnMail_Intern.Visible = False + End If + End Sub Private Sub cboFirma_SelectedValueChanged(sender As Object, e As EventArgs) Handles cboFirma.SelectedValueChanged If cboFirma._value <> "" AndAlso cboFirma._value = 19 Then cbxZahlungseingaenge.Visible = True + Else cbxZahlungseingaenge.Visible = False cbxZahlungseingaenge.Checked = False + End If End Sub + + Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click + If cboFirma._value <> "" Then + If vbYes = MsgBox("Sollen die OPs aus Syska für die Firma " & cboFirma.Text.Replace(cboFirma._value, "") & " aktualisiert werden?" & vbNewLine & "Dieser Vorgang dauert unter Umständen etwas!", vbYesNoCancel) Then + + If Not VERAG_PROG_ALLGEMEIN.cSyska_Interface.OP_Einlesen(cboFirma._value) Then + MsgBox("Fehler beim aktualisieren der OPs aus Syska!") + Else + initDGV(cbxZahlungseingaenge.Checked) + End If + + + + End If + End If + + + End Sub + + Private Sub btnMail_Intern_Click(sender As Object, e As EventArgs) Handles btnMail_Intern.Click + Try + + Me.Cursor = Cursors.WaitCursor + btnSuche.PerformClick() + + + Dim dt = MyDatagridview1.DataSource + Dim desc = "Zahlungseingänge vom " & txtZahlEingaenge._value + Dim attachment = cProgramFunctions.genExcelFromDT_NEW(dt, {"E1:E" & (dt.Rows.Count + 1)},,, desc,, True,,,, False) + + Dim outl As New Outlook.Application + + Dim Mail As Microsoft.Office.Interop.Outlook.MailItem + Mail = outl.CreateItem(0) + Mail.Subject = desc & " (" & cbxKontotyp.Text & ")" + + If cboFirma._value = 19 Then + Dim accountToSent = "fibu360@verag.ag " + + + If accountToSent <> "" Then + If outl.Session.Accounts.Count > 0 Then + For Each oAccount In outl.Session.Accounts + If oAccount.SmtpAddress = accountToSent Then + Mail.SendUsingAccount = oAccount + Exit For + End If + Next + End If + End If + End If + + 'noch keine unterscheidung der Abteilungen bei MDM, daher hardcodiert. + Dim MautVertrMail = "z.batinic@verag.ag;alex@verag.ag;maut.ro@verag.ag;ma@verag.ag;n.ljubas@verag.ag;s.vidovic@verag.ag;" + Dim MautFaktMail = "s.kriegner@verag.ag;" + + Select Case cbxKontotyp._value + Case "A" : Mail.To = MautVertrMail & MautFaktMail + Case "DE" : Mail.To = MautVertrMail + Case "KE" : Mail.To = MautFaktMail + Case "KO" : Mail.To = "" + End Select + + Mail.Attachments.Add(attachment) + + Mail.Display() + + + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler beim Ermitteln des Mail-Accounts." & ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + + + + Me.Cursor = Cursors.Default + + End Sub End Class \ No newline at end of file diff --git a/SDL/cProgramFunctions.vb b/SDL/cProgramFunctions.vb index 0f64113d..98cc23a5 100644 --- a/SDL/cProgramFunctions.vb +++ b/SDL/cProgramFunctions.vb @@ -1124,7 +1124,7 @@ Public Class cProgramFunctions Return "" End Function - Public Shared Function genExcelFromDT_NEW(dt As DataTable, Optional rangeAsWaehrung() As String = Nothing, Optional ShowAutoFilter As Boolean = True, Optional HeaderTxt As String = "", Optional HeaderTxt2 As String = "", Optional waehrungsZeichen As String = "€", Optional fitCellsToContent As Boolean = False, Optional mergeHeadersToCell As Char = "", Optional Landscape As Boolean = False, Optional fitToOnePage As Boolean = False) As String + Public Shared Function genExcelFromDT_NEW(dt As DataTable, Optional rangeAsWaehrung() As String = Nothing, Optional ShowAutoFilter As Boolean = True, Optional HeaderTxt As String = "", Optional HeaderTxt2 As String = "", Optional waehrungsZeichen As String = "€", Optional fitCellsToContent As Boolean = False, Optional mergeHeadersToCell As Char = "", Optional Landscape As Boolean = False, Optional fitToOnePage As Boolean = False, Optional openFile As Boolean = True) As String Try Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SDL\tmp\" ' My.Computer.FileSystem.GetTempFileName @@ -1200,7 +1200,7 @@ Public Class cProgramFunctions wb.SaveAs(filename) - Process.Start(filename) + If openFile Then Process.Start(filename) Return filename Catch ex As Exception