Files
SDL/SDL/kassenbuch/frmPOSTerminal.vb
2023-03-10 16:35:13 +01:00

731 lines
22 KiB
VB.net

Imports System.Drawing.Printing
Imports System.Security.Authentication.ExtendedProtection
Imports com.sun.tools.corba.se.idl.constExpr
Imports DocumentFormat.OpenXml.Drawing.Diagrams
Imports java.awt.print
Imports Microsoft.Win32
Imports TAlex.WPF.Helpers
Public Class frmPOSTerminal
Dim currentPOS As cRKSV_POS
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
'Public Sub New(ByVal _rptKundenBeleg, betrag)
' rptKundenBeleg = _rptKundenBeleg
' betrag = CInt(betrag)
'End Sub
Public Sub New(_kasse, _kassenId)
InitializeComponent()
kasse = _kasse
kassenID = _kassenId
End Sub
' Erstellt durch Jan Groetzner, Groetzner Unternehmensberatung, Seevetal
' Version: 02.03.2020
' Kontakt: easyzvt@groetzner.de
' Dieser Quellcode dient als Beispielimplementierung zur Einbindung von EasyZVT in die eigene Kassenanwendung.
' Der Code und auch Teile davon dürfen frei kopiert und in der Kassenanwendung verwendet werden
Private EasyZVT_Worker As System.ComponentModel.BackgroundWorker = New System.ComponentModel.BackgroundWorker()
Private Funktion As Integer
Private rptKundenBeleg As rptKundenBeleg
Private Betrag As Integer
Private kasse As String
Private kassenID As Integer
Private WithEvents PDoc As Printing.PrintDocument
Private Sub SetRegistryParameter()
'Funktion holt Werte direkt aus der Oberfläche (TextBox_...) und schreibt diese in die Registry als Eingabeparameter für EasyZVT.
'Im wahren Leben stehen diese Werte in Datenbankeinträgen der Stammdatenverwaltung in der Hauptanwendung
Dim ZVTKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\GUB\ZVT", True)
Dim TypSelected As String
Dim Typ As Long
If ZVTKey Is Nothing Then
MsgBox("EasyZVT ist nicht installiert." & vbNewLine & "In der Master-Kasse unter POS-Terminal als Systemadministrator installieren!")
Exit Sub
End If
Try
ZVTKey.SetValue("Funktion", Funktion, RegistryValueKind.DWord)
TypSelected = Strings.Left(cbx_Typ.Text, 2).Replace(":", "")
Typ = TypSelected
ZVTKey.SetValue("Typ", Typ, RegistryValueKind.DWord)
ZVTKey.SetValue("KasseNr", txt_KasseNr.Text, RegistryValueKind.String)
ZVTKey.SetValue("COM", cbx_COM.Text, RegistryValueKind.String)
ZVTKey.SetValue("IP", txt_IP.Text, RegistryValueKind.String)
ZVTKey.SetValue("Port", CInt(txt_Port.Text), RegistryValueKind.DWord)
ZVTKey.SetValue("ComSpeed", CInt(cbx_ComSpeed.Text), RegistryValueKind.DWord)
ZVTKey.SetValue("ComStop", CInt(cbx_ComStop.Text), RegistryValueKind.DWord)
ZVTKey.SetValue("Lizenz", txt_Lizenz.Text, RegistryValueKind.String)
If txtPfad.Text <> "" Then
ZVTKey.SetValue("Protokollpfad", txtPfad.Text, RegistryValueKind.String)
End If
If CheckBox1.Checked And txtPfad.Text <> "" Then
ZVTKey.SetValue("Ausgabepfad", txtPfad.Text, RegistryValueKind.String)
End If
Select Case Funktion
Case 0, 4
Betrag = CInt("0" & txt_Betrag.Text)
ZVTKey.SetValue("Betrag", Betrag, RegistryValueKind.DWord)
Case 3
ZVTKey.SetValue("StornoBetrag", CInt("0" & txt_Betrag.Text), RegistryValueKind.DWord)
ZVTKey.SetValue("StornoBelegNr", CInt("0" & StornoBelegNr.Text), RegistryValueKind.DWord)
Case 12 'Sprache
ZVTKey.SetValue("Sprache", cbx_Sprache.Text, RegistryValueKind.DWord)
End Select
If cbx_Kassedruck.Checked Then
ZVTKey.SetValue("Kassedruck", 1, RegistryValueKind.DWord)
Else
ZVTKey.SetValue("Kassedruck", 0, RegistryValueKind.DWord)
End If
ZVTKey.SetValue("Ergebnis", 1000, RegistryValueKind.DWord) ' Zur Sicherheit, falls EasyZVT gar nicht installiert ist oder nicht gestartet werden kann
ZVTKey.SetValue("ErgebnisText", "EasyZVT konnte nicht gestartet werden", RegistryValueKind.String)
ZVTKey.SetValue("DemoDruckername", comboInstalledPrinters.Text, RegistryValueKind.String)
If cbx_Autodruck.Checked Then
ZVTKey.SetValue("DemoAutodruck", 1, RegistryValueKind.DWord)
Else
ZVTKey.SetValue("DemoAutodruck", 0, RegistryValueKind.DWord)
End If
If cbx_Dummy.Checked Then
ZVTKey.SetValue("DemoDummydruck", 1, RegistryValueKind.DWord)
Else
ZVTKey.SetValue("DemoDummydruck", 0, RegistryValueKind.DWord)
End If
btn_Autorisierung.Enabled = False
btn_Diagnose.Enabled = False
btn_Tagesabschluss.Enabled = False
btn_Storno.Enabled = False
btn_Gutschrift.Enabled = False
btn_Sprache.Enabled = False
btn_Druckwiederh.Enabled = False
btn_Kontostand.Enabled = False
txt_ErgebnisText.Text = "EasyZVT-Zahlung aktiv"
TextBox_Aktiv.Text = "warte auf Aktiv=0"
Catch ex As Exception
MessageBox.Show("Das Schreiben der Parameter ist fehlgeschlagen: " & ex.Message)
Exit Sub
End Try
ZVTKey.Close()
EasyZVT_Worker.RunWorkerAsync()
End Sub
Private Sub Autorisierung()
If txt_Betrag.Text = "" Then
txt_Betrag.Focus()
Exit Sub
End If
Funktion = 0
SetRegistryParameter()
End Sub
Private Sub Button_Autorisierung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Autorisierung.Click
'Zahlung per Klick auslösen
Autorisierung()
End Sub
Private Sub TextBox_Betrag_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
End Sub
Private Sub EasyZVT_Async(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs)
' Programmstart von ZVTStart.exe und warten auf Programmende
Dim ZVTKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\GUB\ZVT", True)
Try
Dim ZVTStart As String = ZVTKey.GetValue("Start")
Dim Proc As System.Diagnostics.Process
If (Len(ZVTStart) > 1) Then
ZVTKey.SetValue("Ergebnis", 1000, RegistryValueKind.DWord) ' Wenn das Ergebnis 1000 bleibt konnte EasyZVT nicht gestartet werden
Proc = System.Diagnostics.Process.Start(ZVTStart)
System.Threading.Thread.Sleep(currentPOS.pos_wartezeit) ' Warte xx Sekunden bis Prozess ZVTStart geladen ist, dann erst anfangen Flag Aktiv abzufragen
While ZVTKey.GetValue("Aktiv") = 1
System.Threading.Thread.Sleep(500) ' Warten...
If TextBox_Aktiv.BackColor = Color.Gray Then ' kleine Spielerei :-)
TextBox_Aktiv.BackColor = Color.Red
Else
TextBox_Aktiv.BackColor = Color.Gray
End If
End While
TextBox_Aktiv.BackColor = Color.Gray
Else
MsgBox("EasyZVT ist nicht installiert. Bitte im Internet Explorer über www.easyzvt.de/publish installieren")
End If
Catch ex As Exception
MessageBox.Show("Der Programmstart ist fehlgeschlagen: " & ex.Message)
Exit Sub
End Try
ZVTKey.Close()
End Sub
Private Sub EasyZVT_OnCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs)
' Diese Funktion wird automatisch aufgerufen wenn der Worker-Thread seine Arbeit beendet
' und EasyZVT seine Ausgabewerte in die Registry zurückgeschrieben hat
Dim ZVTKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\GUB\ZVT", True)
TextBox_Aktiv.Text = ""
txt_Ergebnis.Text = ZVTKey.GetValue("Ergebnis")
txt_ErgebnisText.Text = ZVTKey.GetValue("ErgebnisText")
txt_Drucktext.Text = Replace(ZVTKey.GetValue("Drucktext"), vbLf, vbCrLf)
txt_Drucktext2.Text = Replace(ZVTKey.GetValue("Drucktext2"), vbLf, vbCrLf)
txt_BelegNr.Text = ZVTKey.GetValue("BelegNr").ToString
txt_Kartentyp.Text = ZVTKey.GetValue("Kartentyp").ToString
txt_Betrag.Text = ""
If cbx_Autodruck.Checked Then
If Len(txt_Drucktext.Text) > 1 Then
btn_Kundenbeleg_drucken.PerformClick()
End If
If Len(txt_Drucktext2.Text) > 1 Then
btn_Haendlerbeleg_drucken.PerformClick()
End If
End If
txt_Betrag.Focus()
btn_Autorisierung.Enabled = True
btn_Diagnose.Enabled = True
btn_Tagesabschluss.Enabled = True
btn_Storno.Enabled = True
btn_Gutschrift.Enabled = True
btn_Sprache.Enabled = True
btn_Druckwiederh.Enabled = True
btn_Kontostand.Enabled = True
ZVTKey.Close()
End Sub
Private Sub Button_Diagnose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Diagnose.Click
Funktion = 1
SetRegistryParameter()
End Sub
Private Sub Button_Tagesabschluss_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Tagesabschluss.Click
Funktion = 2
SetRegistryParameter()
End Sub
Private Sub Button_Storno_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Storno.Click
If txt_Betrag.Text = "" Then
txt_Betrag.Focus()
Exit Sub
End If
If StornoBelegNr.Text = "" Then
StornoBelegNr.Focus()
Exit Sub
End If
Funktion = 3
SetRegistryParameter()
End Sub
Private Sub Button_Gutschrift_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Gutschrift.Click
If txt_Betrag.Text = "" Then
txt_Betrag.Focus()
Exit Sub
End If
Funktion = 4
SetRegistryParameter()
End Sub
Private Sub btn_Druckwiederh_Click(sender As Object, e As EventArgs) Handles btn_Druckwiederh.Click
Funktion = 5
SetRegistryParameter()
End Sub
Private Sub btn_Kontostand_Click(sender As Object, e As EventArgs) Handles btn_Kontostand.Click
Funktion = 7
SetRegistryParameter()
End Sub
Private Sub btn_Sprache_Click(sender As Object, e As EventArgs) Handles btn_Sprache.Click
Funktion = 13
SetRegistryParameter()
End Sub
Private Sub PDoc_SeiteDrucken(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PDoc.PrintPage
'Dim Textfont As Font = TextBox_Kassenbon.Font
Dim Hoehe, Breite As Integer
Dim Links, Oben As Integer
With PDoc.DefaultPageSettings
'Hoehe = .PaperSize.Height - .Margins.Top - .Margins.Bottom
'Breite = .PaperSize.Width - .Margins.Left - .Margins.Right
Hoehe = 500 ' 5,00 Zoll
Breite = 270 ' = 2,70 zoll
'Links = PDoc.DefaultPageSettings.Margins.Left
'Oben = PDoc.DefaultPageSettings.Margins.Top
Links = 10
Oben = 10
End With
' Einen Rahmen zeichnen
Dim Rahmen As New Rectangle(Links, Oben, Breite, Hoehe)
e.Graphics.DrawRectangle(Pens.Blue, Rahmen)
' In den Rahmen den Kassenbontext zeichnen
Dim StrFormat As StringFormat
StrFormat = New StringFormat(StringFormatFlags.LineLimit)
'e.Graphics.DrawString(TextBox_Kassenbon.Text, Textfont, Brushes.Black, Rahmen, StrFormat)
e.HasMorePages = False
End Sub
Private Sub PopulateInstalledPrintersCombo()
' Add list of installed printers found to the combo box.
' The pkInstalledPrinters string will be used to provide the display string.
Dim i As Integer
Dim pkInstalledPrinters As String
For i = 0 To PrinterSettings.InstalledPrinters.Count - 1
pkInstalledPrinters = PrinterSettings.InstalledPrinters.Item(i)
comboInstalledPrinters.Items.Add(pkInstalledPrinters)
Next
End Sub
Private Sub comboInstalledPrinters_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Sub initDgv()
With dgvTerminals
.Columns.Clear()
.SET_SQL("SELECT [pos_id],[pos_aktiv],[pos_kassennr],[pos_bezeichnung] ,[pos_kasse]
,[pos_ip] FROM [VERAG].[dbo].[tblRKSV_POS] WHERE [pos_kasse] =" & kassenID, "FMZOLL")
.LOAD()
If .Columns.Count < 1 Then Exit Sub
.Columns("pos_id").Visible = False
.Columns("pos_bezeichnung").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft
.Columns("pos_bezeichnung").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("pos_bezeichnung").HeaderText = "Terminal"
.Columns("pos_kassennr").Width = 40
.Columns("pos_kassennr").HeaderText = "K-Nr"
.Columns("pos_aktiv").Width = 25
.Columns("pos_aktiv").HeaderText = ""
.Columns("pos_kasse").Visible = False
.Columns("pos_ip").HeaderText = "IP-Adresse"
.Columns("pos_ip").Width = 100
End With
End Sub
Private Sub frmPOSTerminal_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
btnPfad.Visible = True
Text = kasse & " - POS Terminal einstellen "
lblWarning.Text = ""
btnNew.Enabled = False
initDgv()
AddHandler EasyZVT_Worker.DoWork, New System.ComponentModel.DoWorkEventHandler(AddressOf EasyZVT_Async)
AddHandler EasyZVT_Worker.RunWorkerCompleted, New System.ComponentModel.RunWorkerCompletedEventHandler(AddressOf EasyZVT_OnCompleted)
If dgvTerminals.Columns.Count < 1 Then
loadCurrentPOS()
End If
Catch ex As Exception
MessageBox.Show("Fehler beim Einlesen der Standardwerte: " & ex.Message)
End Try
End Sub
Private Sub loadCurrentPOS()
btnNew.Enabled = False
If dgvTerminals.SelectedRows.Count > 0 Then
currentPOS = New cRKSV_POS(dgvTerminals.SelectedRows(0).Cells("pos_Id").Value, dgvTerminals.SelectedRows(0).Cells("pos_kasse").Value)
txt_KassenBez.Text = currentPOS.pos_bezeichnung
cbx_aktiv.Checked = currentPOS.pos_aktiv
txt_Wartezeit.Text = currentPOS.pos_wartezeit / 1000
txt_KasseNr.Text = currentPOS.pos_kassennr
cbx_COM.Text = currentPOS.pos_com
txt_IP.Text = currentPOS.pos_ip
txt_Port.Text = currentPOS.pos_port
cbx_ComSpeed.Text = currentPOS.pos_comspeed
cbx_ComStop.Text = currentPOS.pos_comstop
txt_Lizenz.Text = currentPOS.pos_lizenz
txtFIBU.Text = currentPOS.pos_FIBU
txtPfad.Text = currentPOS.pos_Protokollpfad
CheckBox1.Checked = currentPOS.pos_XML
If currentPOS.pos_kassendruck Then
cbx_Kassedruck.Checked = True
Else
cbx_Kassedruck.Checked = False
End If
cbx_Typ.SelectedIndex = cbx_Typ.FindString(currentPOS.pos_typ)
PopulateInstalledPrintersCombo()
'comboInstalledPrinters.SelectedIndex = comboInstalledPrinters.FindString(ZVTKey.GetValue("DemoDruckername", ""))
If Not currentPOS.pos_demoausdruck Then
cbx_Autodruck.Checked = False
Else
cbx_Autodruck.Checked = True
End If
If Not currentPOS.pos_demodummyausdruck Then
cbx_Dummy.Checked = False
Else
cbx_Dummy.Checked = True
End If
For Each tempTabPages As TabPage In TabControl1.TabPages
If Not tempTabPages.Name = "TabPage3" Then
For Each c As Control In tempTabPages.Controls
If TypeOf (c) Is CheckBox Then
AddHandler CType(c, CheckBox).CheckedChanged, AddressOf SomethingChanged
ElseIf TypeOf (c) Is TextBox Then
AddHandler CType(c, TextBox).TextChanged, AddressOf SomethingChanged
ElseIf TypeOf (c) Is ComboBox Then
AddHandler CType(c, ComboBox).SelectedValueChanged, AddressOf SomethingChanged
End If
Next
End If
Next
End If
End Sub
Private Sub savePOS()
If dgvTerminals.SelectedRows.Count > 0 Then
If Not checkConstraints() Then
Exit Sub
End If
currentPOS.pos_kassennr = txt_KasseNr.Text
currentPOS.pos_aktiv = cbx_aktiv.Checked
currentPOS.pos_wartezeit = CInt(txt_Wartezeit.Text) * 1000
currentPOS.pos_com = cbx_COM.Text
currentPOS.pos_ip = txt_IP.Text
currentPOS.pos_port = txt_Port.Text
currentPOS.pos_comspeed = cbx_ComSpeed.Text
currentPOS.pos_comstop = cbx_ComStop.Text
currentPOS.pos_lizenz = txt_Lizenz.Text
currentPOS.pos_FIBU = txtFIBU.Text
currentPOS.pos_Protokollpfad = txtPfad.Text
currentPOS.pos_XML = CheckBox1.Checked
If cbx_Kassedruck.Checked Then
currentPOS.pos_kassendruck = True
Else
currentPOS.pos_kassendruck = False
End If
currentPOS.pos_typ = cbx_Typ.FindString(cbx_Typ.SelectedIndex)
PopulateInstalledPrintersCombo()
'comboInstalledPrinters.SelectedIndex = comboInstalledPrinters.FindString(ZVTKey.GetValue("DemoDruckername", ""))
If Not cbx_Autodruck.Checked Then
currentPOS.pos_demoausdruck = False
Else
currentPOS.pos_demoausdruck = True
End If
If Not cbx_Dummy.Checked Then
currentPOS.pos_demodummyausdruck = False
Else
currentPOS.pos_demodummyausdruck = True
End If
currentPOS.SAVE()
btnNew.Enabled = False
End If
End Sub
Private Sub dgvTerminals_SelectionChanged(sender As Object, e As EventArgs) Handles dgvTerminals.SelectionChanged
loadCurrentPOS()
End Sub
Private Sub SomethingChanged(sender As Object, e As EventArgs)
btnNew.Enabled = True
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
Dim input = InputBox("Bitte geben Sie die Bezeichnung des neuen Terminals ein ein:", "POS-Terminal anlegen")
If input <> "" Then
If checkNameIsValid(input) Then
currentPOS = New cRKSV_POS(input, kassenID, True)
initDgv()
Else
MsgBox("Für die Kassa" & kasse.ToString & " existiert bereits ein POS-Terminal " & input)
End If
Else
MsgBox("Keine Bezeichnung angegeben!")
End If
End Sub
Private Function checkNameIsValid(name As String) As Boolean
If dgvTerminals.Rows.Count = 0 Then Return True
For Each row As DataGridViewRow In dgvTerminals.Rows
If Not IsDBNull(row.Cells("pos_bezeichnung").Value) Then
If row.Cells("pos_bezeichnung").Value.ToLower = name.ToLower Then
Return False
End If
End If
Next
Return True
End Function
Private Sub btnNew_Click(sender As Object, e As EventArgs) Handles btnNew.Click
savePOS()
dgvTerminals.GetOrder()
initDgv()
dgvTerminals.SetOrder()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If dgvTerminals.SelectedRows.Count > 0 Then
If vbYes = MsgBox("Möchten Sie das Terminal " & dgvTerminals.SelectedRows(0).Cells("pos_bezeichnung").Value & " wirklich löschen?", vbYesNo) Then
currentPOS.delete()
initDgv()
End If
End If
End Sub
Private Sub LinkLabel2_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel2.LinkClicked
Dim webAddress As String = "http://www.easyzvt.de/publish31/index.htm"
Process.Start(webAddress)
End Sub
Private Sub Button_Kundenbeleg_drucken_Click(sender As System.Object, e As System.EventArgs) Handles btn_Kundenbeleg_drucken.Click
Dim PDlg As PrintDialog = New PrintDialog()
PDlg.UseEXDialog = True ' Notwendig für x64
PDoc = New Printing.PrintDocument()
AddHandler PDoc.PrintPage, AddressOf PDoc_SeiteDrucken
If cbx_Dummy.Checked Then
txt_Kassenbon.Text = "Kassenbon EasyZVT DemoApp" & vbCrLf
txt_Kassenbon.Text &= "KasseNr: " & txt_KasseNr.Text & vbCrLf & vbCrLf
If Betrag > 0 And Funktion = 0 Then
txt_Kassenbon.Text &= "Testartikel Menge 1 Betrag " & (CDbl(Betrag) / 100.0).ToString("###,##0.00") & vbCrLf
txt_Kassenbon.Text &= "Gesamtbetrag " & (CDbl(Betrag) / 100.0).ToString("###,##0.00") & vbCrLf
txt_Kassenbon.Text &= "Kartenzahlung " & (CDbl(Betrag) / 100.0).ToString("###,##0.00") & vbCrLf
End If
txt_Kassenbon.Text &= txt_Drucktext.Text ' Hier den Kundenbeleg hinzufügen
Else
txt_Kassenbon.Text = txt_Drucktext.Text
End If
If comboInstalledPrinters.SelectedIndex <> -1 Then
PDoc.PrinterSettings.PrinterName = comboInstalledPrinters.Text
PDoc.Print()
Else
PDlg.Document = PDoc
If PDlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
PDoc.Print()
End If
End If
End Sub
Private Sub Button_Haendlerbeleg_drucken_Click(sender As System.Object, e As System.EventArgs) Handles btn_Haendlerbeleg_drucken.Click
Dim PDlg As PrintDialog = New PrintDialog()
PDlg.UseEXDialog = True ' Notwendig für x64
PDoc = New Printing.PrintDocument()
AddHandler PDoc.PrintPage, AddressOf PDoc_SeiteDrucken
If cbx_Dummy.Checked Then
txt_Kassenbon.Text = "Kassenbon EasyZVT DemoApp" & vbCrLf
txt_Kassenbon.Text &= "KasseNr: " & txt_KasseNr.Text & vbCrLf & vbCrLf
If Betrag > 0 And Funktion = 0 Then
txt_Kassenbon.Text &= "Testartikel Menge 1 Betrag " & (CDbl(Betrag) / 100.0).ToString("###,##0.00") & vbCrLf
txt_Kassenbon.Text &= "Gesamtbetrag " & (CDbl(Betrag) / 100.0).ToString("###,##0.00") & vbCrLf
txt_Kassenbon.Text &= "Kartenzahlung " & (CDbl(Betrag) / 100.0).ToString("###,##0.00") & vbCrLf
End If
txt_Kassenbon.Text &= txt_Drucktext2.Text ' Hier den Händlerbeleg hinzufügen
Else
txt_Kassenbon.Text &= txt_Drucktext.Text
End If
If comboInstalledPrinters.SelectedIndex <> -1 Then
PDoc.PrinterSettings.PrinterName = comboInstalledPrinters.Text
PDoc.Print()
Else
PDlg.Document = PDoc
If PDlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
PDoc.Print()
End If
End If
End Sub
Private Sub ComboBox_COM_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbx_COM.SelectedValueChanged
If cbx_COM.SelectedItem Is Nothing Then
Exit Sub
End If
'If cbx_COM.SelectedItem.ToString = "LAN" Then
' txt_IP.Enabled = True
' txt_Port.Enabled = True
' cbx_ComSpeed.Enabled = False
' cbx_ComSpeed.SelectedIndex = -1
' cbx_ComStop.Enabled = False
' cbx_ComStop.SelectedIndex = -1
'Else
' txt_IP.Enabled = False
' 'txt_IP.Clear()
' txt_Port.Enabled = False
' 'txt_Port.Clear()
' cbx_ComSpeed.Enabled = True
' cbx_ComStop.Enabled = True
'End If
End Sub
Private Function checkConstraints()
Dim valuesOK As Boolean = False
If CInt(txt_Wartezeit.Text) < 1 Then
lblWarning.Text = " Wartezeit muss größer als 0 sein! "
Return valuesOK
End If
If cbx_COM.SelectedItem Is Nothing Then
lblWarning.Text = " Anschluss auswählen "
Return valuesOK
End If
If cbx_Typ.SelectedItem Is Nothing Then
lblWarning.Text = " Typ auswählen "
Return valuesOK
End If
If Not IsNumeric(txtFIBU.Text) Or txtFIBU.Text.Length <> 4 Then
lblWarning.Text = " FIBU Konto (4-stellig) hinterlegen!"
Return valuesOK
End If
If cbx_COM.SelectedItem.ToString = "LAN" Then
If txt_IP.Text = "" Then
lblWarning.Text = " IP-Adresse hinterlegen! "
Return valuesOK
Else
If CInt(SQL.getValueTxtBySql("SELECT count(*) FROM tblRKSV_POS WHERE pos_ip='" & txt_IP.Text & "' AND [pos_aktiv] = 1", "FMZOLL")) > 1 Then
lblWarning.Text = " IP Adresse ist bereits vergeben! "
Return valuesOK
End If
If txt_Port.Text = "" Then
lblWarning.Text = " Port hinterlegen! "
Return valuesOK
End If
End If
End If
If cbx_ComSpeed.SelectedItem = "" Then
lblWarning.Text = " Baudrate hinterlegen! "
Return valuesOK
Else
If cbx_ComStop.SelectedItem = "" Then
lblWarning.Text = " Com Stop hinterlegen! "
Return valuesOK
End If
End If
lblWarning.Text = ""
valuesOK = True
Return valuesOK
End Function
Private Sub btnPfad_Click(sender As Object, e As EventArgs) Handles btnPfad.Click
Dim dialog As New FolderBrowserDialog()
If txtPfad.Text = "" Then
dialog.RootFolder = Environment.SpecialFolder.Desktop
dialog.SelectedPath = "C:\"
dialog.Description = "Pfad für Protokolldatei auswählen"
Else
dialog.SelectedPath = txtPfad.Text
dialog.Description = "Pfad für Protokolldatei auswählen"
End If
If dialog.ShowDialog() = Windows.Forms.DialogResult.OK Then
txtPfad.Text = dialog.SelectedPath
End If
End Sub
End Class