209 lines
11 KiB
VB.net
209 lines
11 KiB
VB.net
Imports Microsoft.Office.Interop
|
|
|
|
Public Class usrCntlSeriendruck
|
|
|
|
Dim withPrint As Boolean = False
|
|
|
|
Dim FMZOLL_SQL As New FMZOLL_SQL
|
|
Private Sub btnWord_Click(sender As Object, e As EventArgs) Handles btnWord.Click
|
|
If Not txtErstattungAbfNr_neu.ForeColor = Color.DarkGreen Then
|
|
frmMain.setInfo("info", "Die Abfertigungsnummer ist nicht gültig!", 2)
|
|
Exit Sub
|
|
End If
|
|
If cbxErstSprache.Text = "" Then
|
|
frmMain.setInfo("info", "Bitte wählen Sie eine Sprache!", 2)
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim WordDoc As Object
|
|
Dim WordApp As Object
|
|
WordApp = CreateObject("word.Application")
|
|
WordDoc = CreateObject("word.Document")
|
|
|
|
Dim oItem As VERAG_PROG_ALLGEMEIN.MyListItem = CType(cbxErstSprache.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem)
|
|
If Not My.Computer.FileSystem.DirectoryExists(Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\tmp\") Then
|
|
My.Computer.FileSystem.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\tmp\")
|
|
End If
|
|
Dim strFileName As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\tmp\tmp.doc"
|
|
Try
|
|
WordApp.Visible = (True) 'Word sichtbar
|
|
WordDoc = WordApp.Documents.Open(AppDomain.CurrentDomain.BaseDirectory & "seriendruck\Vorlagen\Erstattungsschreiben\Erstattungsschreiben " & oItem.Value & ".dotx")
|
|
WordDoc.Activate()
|
|
|
|
Dim berichteSQL As New BerichteSQL
|
|
Dim bericht As cErstasttungsschreiben = berichteSQL.getErstatung(txtErstattungAbfNrFiliale_neu.Text, txtErstattungAbfNr_neu.Text, txtErstattungAbfUnterNr_neu.Text)
|
|
'Dim ADRESSE = New VERAG_PROG_ALLGEMEIN.cAdressen(bericht.)
|
|
If bericht.KorrAdresse <> "" Then
|
|
bericht.KorrAdresse = bericht.KorrAdresse.Replace(Chr(13) & Chr(10), Chr(13))
|
|
If InStr(bericht.KorrAdresse, Chr(13)) > 0 Then
|
|
Dim s = bericht.KorrAdresse.Split(Chr(13), Chr(10))
|
|
If s.Length > 0 Then WordDoc.FormFields("txtAdresseZeile1").Range.Text = s(0)
|
|
If s.Length > 1 Then WordDoc.FormFields("txtAdresseZeile2").Range.Text = s(1)
|
|
If s.Length > 2 Then WordDoc.FormFields("txtAdresseZeile3").Range.Text = s(2)
|
|
If s.Length > 3 Then WordDoc.FormFields("txtAdresseZeile4").Range.Text = s(3)
|
|
If s.Length > 4 Then WordDoc.FormFields("txtAdresseZeile5").Range.Text = s(4)
|
|
If s.Length > 5 Then WordDoc.FormFields("txtAdresseZeile6").Range.Text = s(5)
|
|
If s.Length > 6 Then WordDoc.FormFields("txtAdresseZeile7").Range.Text = s(6)
|
|
End If
|
|
Else
|
|
WordDoc.FormFields("txtAdresseZeile1").Range.Text = bericht.Name.Trim
|
|
WordDoc.FormFields("txtAdresseZeile2").Range.Text = bericht.Straße
|
|
WordDoc.FormFields("txtAdresseZeile3").Range.Text = bericht.LandKz & " " & bericht.Ort
|
|
End If
|
|
|
|
WordDoc.FormFields("Datum").Range.Text = bericht.MWST
|
|
WordDoc.FormFields("Betrag").Range.Text = String.Format("{0:C}", CDbl(bericht.Betrag))
|
|
|
|
WordApp.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone
|
|
Try : WordDoc.SaveAs(strFileName) : Catch : End Try
|
|
|
|
If withPrint Then
|
|
WordDoc.PrintOut()
|
|
WordDoc.Close(False)
|
|
WordDoc = Nothing
|
|
WordApp.Quit()
|
|
Me.BringToFront()
|
|
txtErstattungAbfNr_neu.Focus()
|
|
txtErstattungAbfNr_neu.SelectAll()
|
|
End If
|
|
'WordDoc.PrintOut()
|
|
'WordDoc.PrintOut()
|
|
'WordDoc.Close()
|
|
' WordDoc = Nothing
|
|
' WordDoc.Quit()
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message)
|
|
End Try
|
|
withPrint = False
|
|
End Sub
|
|
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnShowData.Click
|
|
If Not txtErstattungAbfNr_neu.ForeColor = Color.DarkGreen Then Exit Sub
|
|
If cbxErstSprache.Text = "" Then Exit Sub
|
|
|
|
frmShowData.Show()
|
|
frmShowData.DataGridView1.DataSource = FMZOLL_SQL.loadDgvBySqlFMZOLLREAL("exec spSELECTUStVErstattungsschreiben " & txtErstattungAbfNrFiliale_neu.Text & ", " & txtErstattungAbfNr_neu.Text & ", " & txtErstattungAbfUnterNr_neu.Text & " ")
|
|
frmShowData.Label2.Text = "Anzahl: " & frmShowData.DataGridView1.RowCount
|
|
End Sub
|
|
|
|
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
|
|
|
|
|
Dim von As DateTime = Now
|
|
Dim bis As DateTime = Now.AddMonths(2)
|
|
|
|
frmShowData.Show()
|
|
'LandKz='RO' AND
|
|
'MsgBox("SELECT * FROM vwUStSerienbriefStNrGueltigkeitsdatum WHERE StNrGültigkeitsdatum BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' GROUP BY [Name 1],[Name 2],PLZ,StraßePostfach,Postfach,Straße,LandKz,Ort,[StNrGültigkeitsdatum],AdressenNr ORDER BY PLZ, AdressenNr ")
|
|
frmShowData.DataGridView1.DataSource = FMZOLL_SQL.loadDgvBySql("SELECT * FROM vwUStSerienbriefStNrGueltigkeitsdatum WHERE StNrGültigkeitsdatum BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' GROUP BY [Name 1],[Name 2],PLZ,StraßePostfach,Postfach,Straße,LandKz,Ort,[StNrGültigkeitsdatum],AdressenNr ORDER BY PLZ, AdressenNr ")
|
|
frmShowData.Label2.Text = "Anzahl: " & frmShowData.DataGridView1.RowCount
|
|
|
|
|
|
Exit Sub
|
|
|
|
|
|
Dim sprache As String = "DE"
|
|
Select Case cbxErstSprache.SelectedIndex
|
|
Case 0 : sprache = "DE"
|
|
Case 1 : sprache = "RO"
|
|
Case 2 : sprache = "TR"
|
|
Case 3 : sprache = "YU"
|
|
End Select
|
|
|
|
Dim WordApp As Word.Application
|
|
Dim WordDoc As Word.Document
|
|
' Dim SQLSttmnt As String = "Select * From rechner WHERE ID=5360"
|
|
WordApp = New Word.Application()
|
|
|
|
WordDoc = WordApp.Documents.Open(AppDomain.CurrentDomain.BaseDirectory & "\seriendruck\Vorlagen\Erstattungsschreiben\Erstattungsschreiben " & sprache & ".doc")
|
|
WordDoc.MailMerge.MainDocumentType = Word.WdMailMergeMainDocType.wdFormLetters
|
|
|
|
Dim sqlstr As String = "SELECT * FROM vwUStSerienbriefStNrGueltigkeitsdatum WHERE LandKz='RO' AND StNrGültigkeitsdatum BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' GROUP BY [Name 1],StraßePostfach,PLZ ORDER BY PLZ, AdressenNr "
|
|
|
|
WordDoc.MailMerge.OpenDataSource(Name:="", _
|
|
Connection:="DSN=dbConn_FMZOLL;DATABASE=VERAG;uid=sa;pwd=BmWr501956;", _
|
|
SQLStatement:=sqlstr, SubType:=Microsoft.Office.Interop.Word.WdMergeSubType.wdMergeSubTypeWord2000)
|
|
|
|
'Provider=SQLOLEDB;Server=DEVELOPER\DEVSQL;Database=VERAG;uid=sa;Password=BmWr501956;
|
|
' With WordDoc.MailMerge
|
|
' '.Destination = Word.WdMailMergeDestination.wdSendToPrinter
|
|
' .SuppressBlankLines = True
|
|
' With .DataSource
|
|
' .FirstRecord = Word.WdMailMergeDefaultRecord.wdDefaultFirstRecord
|
|
'.LastRecord = Word.WdMailMergeDefaultRecord.wdDefaultLastRecord
|
|
' End With
|
|
' .Execute(Pause:=False)
|
|
' End With
|
|
' WordDoc.Close()
|
|
WordApp.Visible = True
|
|
End Sub
|
|
|
|
Private Sub txtErstattungAbfNr_KeyDown(sender As Object, e As KeyEventArgs) Handles txtErstattungAbfNr_neu.KeyDown, txtErstattungAbfNrFiliale.KeyDown, txtErstattungAbfUnterNr.KeyDown, cbxErstSprache.KeyDown, txtErstattungAbfNr_neu.KeyDown, txtErstattungAbfNrFiliale_neu.KeyDown, txtErstattungAbfUnterNr_neu.KeyDown
|
|
If e.KeyCode = Keys.Enter Then
|
|
withPrint = cbxSofortDruck.Checked
|
|
btnWord.PerformClick()
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub txtErstattungAbfNr_LostFocus(sender As Object, e As EventArgs) Handles txtErstattungAbfNr_neu.TextChanged
|
|
txtErstattungAbfNr_neu.BackColor = Color.White
|
|
txtErstattungAbfNr_neu.ForeColor = Color.Red
|
|
|
|
If NurZahlen(txtErstattungAbfNr_neu.Text) And NurZahlen(txtErstattungAbfNrFiliale_neu.Text) And NurZahlen(txtErstattungAbfUnterNr_neu.Text) Then
|
|
'Dim dt As DataTable = FMZOLL_SQL.loadDgvBySqlFMZOLLREAL("SELECT TOP 1 * FROM vwUStVErstattungsschreiben WHERE AbfertigungsNr=" & txtErstattungAbfNr.Text & " and FilialenNr =" & txtErstattungAbfNrFiliale.Text & " and UnterNr =" & txtErstattungAbfUnterNr.Text & " ")
|
|
|
|
Dim dt As DataTable = FMZOLL_SQL.loadDgvBySqlFMZOLLREAL("exec spSELECTUStVErstattungsschreiben " & txtErstattungAbfNrFiliale_neu.Text & ", " & txtErstattungAbfNr_neu.Text & ", " & txtErstattungAbfUnterNr_neu.Text & " ")
|
|
|
|
If Not dt Is Nothing AndAlso dt.Rows.Count > 0 Then
|
|
Try
|
|
Select Case dt.Rows(0).Item("LandKz").ToString
|
|
Case "AT", "DE", "CH" : cbxErstSprache.SelectedIndex = 0
|
|
Case "RO" : cbxErstSprache.SelectedIndex = 1
|
|
Case "TR" : cbxErstSprache.SelectedIndex = 2
|
|
Case Else : cbxErstSprache.SelectedIndex = 3
|
|
End Select
|
|
Catch : End Try
|
|
|
|
txtErstattungAbfNr_neu.BackColor = Color.White
|
|
txtErstattungAbfNr_neu.ForeColor = Color.DarkGreen
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub btnWordPrint_Click(sender As Object, e As EventArgs) Handles btnWordPrint.Click
|
|
withPrint = True
|
|
btnWord.PerformClick()
|
|
|
|
End Sub
|
|
|
|
Private Sub usrCntlSeriendruck_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
cbxErstSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DEUTSCH", "DE"))
|
|
cbxErstSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("RUMÄNISCH", "RO"))
|
|
cbxErstSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("TÜRKISCH", "TR"))
|
|
cbxErstSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("YU", "YU"))
|
|
cbxErstSprache.SelectedIndex = 0
|
|
txtErstattungAbfNr_neu.Focus()
|
|
End Sub
|
|
Public Function NurZahlen(ByVal Text As String) As Boolean
|
|
If Text.Length = 0 Then Return False
|
|
If Not IsNumeric(Text) Then Return False
|
|
|
|
For i As Integer = 0 To Text.Length - 1
|
|
If Not "0123456789".Contains(Text.Chars(i)) Then
|
|
Return False
|
|
End If
|
|
Next
|
|
Return True
|
|
End Function
|
|
|
|
Private Sub txtErstattungAbfUnterNr_LostFocus(sender As Object, e As EventArgs) Handles txtErstattungAbfUnterNr.LostFocus
|
|
If NurZahlen(txtErstattungAbfUnterNr_neu.Text) Then
|
|
If txtErstattungAbfUnterNr_neu.Text.Length = 1 Then txtErstattungAbfUnterNr_neu.Text = "0" & txtErstattungAbfUnterNr_neu.Text
|
|
End If
|
|
End Sub
|
|
|
|
|
|
End Class
|