Files
ADMIN/initATLASAufschubkonten/frmRMCNachrichtenVerarbeitung.vb
2024-05-15 17:04:44 +02:00

578 lines
27 KiB
VB.net

Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Xml
Imports VERAG_PROG_ALLGEMEIN
Public Class frmRMCNachrichtenVerarbeitung
Dim cntDatenEingelesen As Integer = 0
Dim dsNichtErkannt As Integer = 0
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim allowClose = False
Dim rmc As New cRMC
Dim Dateiname = ""
Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Sub New(allowClose) 'autostart
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
Me.allowClose = allowClose
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Private Sub frmDYNachrichtenVerarbeitung_Load(sender As Object, e As EventArgs) Handles Me.Load
rmc.initImportPfade()
For Each d In System.IO.Directory.GetFiles(rmc.VERARBEITUNG_PFAD)
ListBox3.Items.Add(frmStartOptions.cut_file(d))
Me.Refresh()
Next
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Me.Enabled = False
Try
Label9.Visible = True
Dim cnt = getNachrichtenDatenFromRMCServices()
Label9.Text = cnt & " Datensätze empfangen."
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Me.Enabled = True
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Me.Enabled = False
Try
Label5.Visible = True
DatenEinlesen()
If dsNichtErkannt > 0 Then
Label6.Text = dsNichtErkannt & " Datensätze nicht " & vbNewLine & "erkannt."
Label6.Visible = True
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Me.Enabled = True
Label5.Text = cntDatenEingelesen & " Datensätze verarbeitet."
End Sub
Function getNachrichtenDatenFromRMCServices() As Integer
Dim cnt = 0
Try
DownloadFtpDirectory(rmc.API_STRING & "/"c & "out/", New NetworkCredential(rmc.API.Rows(0).Item("api_user").ToString, rmc.API.Rows(0).Item("api_pw").ToString), "", cnt, False)
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return cnt
End Function
Sub DownloadFtpDirectory(url As String, credentials As NetworkCredential, localPath As String, ByRef cnt As Integer, deleteAfterDownload As Boolean)
Dim listRequest As FtpWebRequest = WebRequest.Create(url)
listRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails
listRequest.Credentials = credentials
Dim lines As List(Of String) = New List(Of String)
Using listResponse As FtpWebResponse = listRequest.GetResponse(),
listStream As Stream = listResponse.GetResponseStream(),
listReader As StreamReader = New StreamReader(listStream)
While Not listReader.EndOfStream
lines.Add(listReader.ReadLine())
End While
End Using
For Each line As String In lines
Dim tokens As String() =
line.Split(New Char() {" "}, 9, StringSplitOptions.RemoveEmptyEntries)
Dim name As String = tokens(8)
Dim permissions As String = tokens(0)
Dim localFilePath As String = Path.Combine(localPath, name)
Dim fileUrl As String = url + name
If permissions(0) = "d" Then 'Ordner
If Not Directory.Exists(localFilePath) Then
Directory.CreateDirectory(localFilePath)
End If
DownloadFtpDirectory(fileUrl + "/", credentials, localFilePath, cnt, deleteAfterDownload)
Else
If True Then
Dim downloadRequest As FtpWebRequest = WebRequest.Create(fileUrl)
downloadRequest.Method = WebRequestMethods.Ftp.DownloadFile
downloadRequest.Credentials = credentials
Dim fileDateTmp As Date = ServerDateFile(credentials, fileUrl)
name = name.Replace(".csv", "_RGDAT_" & fileDateTmp.ToShortDateString & ".csv")
Dim destFilenameTMP = rmc.VERARBEITUNG_PFAD & "." & If(io.File.Exists(rmc.VERARBEITUNG_PFAD & "." & name), name.Replace(".csv", "_") & Now.ToString("yyMMdd_HHmmss.fff") & ".csv", name)
Using downloadResponse As FtpWebResponse = downloadRequest.GetResponse(),
sourceStream As Stream = downloadResponse.GetResponseStream(),
targetStream As Stream = File.OpenWrite(destFilenameTMP)
Dim buffer As Byte() = New Byte(10240 - 1) {}
Dim read As Integer
Do
read = sourceStream.Read(buffer, 0, buffer.Length)
If read > 0 Then
targetStream.Write(buffer, 0, read)
End If
Loop While read > 0
sourceStream.Dispose()
targetStream.Dispose()
downloadResponse.Dispose()
Dim destFilename = rmc.VERARBEITUNG_PFAD & If(io.File.Exists(rmc.VERARBEITUNG_PFAD & name), name.Replace(".csv", "_") & Now.ToString("yyMMdd_HHmmss.fff") & ".csv", name)
io.File.Move(destFilenameTMP, destFilename) 'Datei umbenennen
Dim fi As FileInfo = New FileInfo(destFilename)
ListBox3.Items.Add(frmStartOptions.cut_file(fi.Name)) 'zur Liste hinzufügen
cnt += 1
'Datei nach download löschen
If deleteAfterDownload Then
Dim ftpReq As FtpWebRequest = WebRequest.Create(fileUrl)
ftpReq.Method = WebRequestMethods.Ftp.DeleteFile
ftpReq.Credentials = credentials
Dim ftpResp As FtpWebResponse = ftpReq.GetResponse
ftpResp.Close()
End If
End Using
End If
End If
Next
End Sub
Private Function ServerDateFile(credentials As NetworkCredential, fileUrl As String) As Date
Dim ServerDate As DateTime
Try
Dim request As FtpWebRequest = WebRequest.Create(fileUrl)
request.Method = WebRequestMethods.Ftp.GetDateTimestamp
request.Credentials = credentials
Using response = CType(request.GetResponse(), Net.FtpWebResponse)
ServerDate = response.LastModified.ToShortDateString
End Using
Return ServerDate
Catch ex As WebException
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "PLOSE GET DATE FILE: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return ServerDate
End Function
Sub DatenEinlesen()
Exit Sub 'under development
VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL
If ListBox3.Items.Count = 0 Then
Label6.Text = "Keine Daten zum Einlesen vorhanden."
Label6.Visible = True
Exit Sub
End If
For i = 1 To 2
For Each d In System.IO.Directory.GetFiles(rmc.VERARBEITUNG_PFAD)
Try
Dateiname = d
'cWorker_NCTS.Dateiname = d
If IO.File.Exists(d) Then
Dim found = False
Dim fi As FileInfo = New FileInfo(d)
Dim alreadyMoved = False
Select Case i
Case 1
'------------------------------------------
'------------------ CSV ------------------
'------------------------------------------
If fi.Extension.ToLower = ".csv" Then
If Not found Then
If readRMC(d) <> "" Then found = True
End If
If found Then cntDatenEingelesen += 1
End If
Case 2
'------------------------------------------
'------------------ PDF ------------------
'------------------------------------------
If fi.Extension.ToLower = ".pdf" Then
found = False
If Not IO.Directory.Exists(rmc.ZIEL_PFAD & "Invoice_PDF\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") Then IO.Directory.CreateDirectory(rmc.ZIEL_PFAD & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\")
'File in Datenarchiv sichern:
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "RMC", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(d))
DS.uploadDataToDATENSERVER(d)
'DatenArchiv-Id in tblPLOSE_Inv_Data Tabelle eintragen (über PDF-Name) :
SQL.doSQL("Update [tblPLOSE_Inv_Data] SET [plInv_daId]='" & DS.da_id & "' where [plInv_PdfFileName] = '" & DS.da_name & "' and [plInv_Einlesedatum] > DATEADD(DAY,-4,getdate()) ", "FMZOLL")
frmStartOptions.moveFile_DateBack(d, rmc.ZIEL_PFAD & "Invoice_PDF\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\")
addDGVEinarbeitung("PDF", DS.da_name)
dgvEinarbeitung.Refresh()
'Eintrag
End If
Case 5
frmStartOptions.moveFile_DateBack(d, rmc.ERROR_PFAD)
dsNichtErkannt += 1
End Select
If True Then
If Not alreadyMoved Then
If found Then
If Not IO.Directory.Exists(rmc.ZIEL_PFAD & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") Then IO.Directory.CreateDirectory(rmc.ZIEL_PFAD & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\")
frmStartOptions.moveFile_DateBack(d, rmc.ZIEL_PFAD & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\")
End If
End If
End If
Me.Refresh()
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Next
Next
End Sub
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
Me.Close()
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
Me.Close()
End Sub
Sub addDGVEinarbeitung(art, BezugsNr)
dgvEinarbeitung.Rows.Add(art, BezugsNr)
Try
dgvEinarbeitung.FirstDisplayedScrollingRowIndex = dgvEinarbeitung.RowCount - 1
Catch ex As Exception
End Try
End Sub
Function readRMC(d As String) As String
Try
Dim KdnR = ""
Dim plose_RechnungsJahr = ""
Dim plose_RechnungsLieferantCode = ""
Dim plose_RechnungsNr = ""
Dim plose_RechnungsDat = Nothing
Dim plose_Lieferant = Nothing
Dim fi As FileInfo = New FileInfo(d)
If fi.Name.Length > 8 Then
''Dim plose_RechnungsNr = fi.Name.Substring(0, 8)
'plose_RechnungsJahr = fi.Name.Substring(0, 2)
'plose_RechnungsLieferantCode = fi.Name.Substring(2, 1)
'' plose_RechnungsNr = fi.Name.Substring(3, 5)
End If
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(d, Encoding.UTF8)
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(";")
Dim currentRow As String()
Dim cnt = 0
If True Then
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
If True Then 'fi.Name.Length > 8 Then
Select Case currentRow(0)
Case "TR1"
'RECHNUGNSDATUM
If currentRow.Length > 1 AndAlso currentRow(1).ToString.Length = 8 Then
Dim datumParse = DateTime.ParseExact(currentRow(1), "yyyyMMdd", Nothing)
plose_RechnungsDat = datumParse 'Rechnungsdatum aus TR1 Datensatz, überschreibt den Wert aus der Dateierstellung
End If
'RECHNUGNSNR
If currentRow.Length > 2 Then 'AndAlso currentRow(1).ToString.Length = 8 Then
plose_RechnungsNr = SQL.isleernothing(currentRow(2)) 'Rechnungsdatum aus TR1 Datensatz, überschreibt den Wert aus der Dateierstellung
End If
Case "TR5"
If currentRow.Length > 24 AndAlso currentRow(12) <> "839160" Then 'KDNR <> VERAG --> Die Kosten bleiben uns
Dim RMC As New VERAG_PROG_ALLGEMEIN.cRMC
'PLOSE.plose_Dateiname = fi.Name
'PLOSE.plose_RechnungsNr = plose_RechnungsNr
'PLOSE.plose_Lieferant = plose_Lieferant
'PLOSE.plose_LieferantCode = plose_RechnungsLieferantCode
'PLOSE.plose_RechnungsJahr = plose_RechnungsJahr
'If plose_RechnungsDat IsNot Nothing Then PLOSE.plose_RechnungsDatum = plose_RechnungsDat
'PLOSE.plose_Datensatztyp = SQL.isleernothing(currentRow(0))
'PLOSE.plose_KodexMautTankstelle = SQL.isleernothing(currentRow(1))
'PLOSE.plose_BeschreibungMautTankstelle = SQL.isleernothing(currentRow(2))
'PLOSE.plose_KodexEinfahrt = SQL.isleernothing(currentRow(3))
'PLOSE.plose_BeschreibungEinfahrt = SQL.isleernothing(currentRow(4))
'PLOSE.plose_KodexAusfahrt = SQL.isleernothing(currentRow(5))
'PLOSE.plose_BeschreibungAusfahrt = SQL.isleernothing(currentRow(6))
'PLOSE.plose_Kartenkodex = SQL.isleernothing(currentRow(7))
'PLOSE.plose_Kontonummer = SQL.isleernothing(currentRow(8))
'PLOSE.plose_NummerKarteGeraet = SQL.isleernothing(currentRow(9))
'PLOSE.plose_Kennzeichen = SQL.isleernothing(currentRow(10))
'PLOSE.plose_InterneNrFahrzeug = SQL.isleernothing(currentRow(11))
'PLOSE.plose_POLSEKundennummer = SQL.isleernothing(currentRow(12))
'PLOSE.plose_Firmenname = SQL.isleernothing(currentRow(13))
'PLOSE.plose_DatumTransaktion = SQL.isleernothingDateFormatstring(currentRow(14))
'PLOSE.plose_Produktbeschreibung = SQL.isleernothing(currentRow(15))
'PLOSE.plose_Menge = SQL.isNullNothingDbl(currentRow(16))
'PLOSE.plose_Preis = SQL.isNullNothingDbl(currentRow(17))
'PLOSE.Einheitsrabatt = SQL.isleernothing(currentRow(18))
'PLOSE.plose_NettobetragTransaktion = SQL.isNullNothingDbl(currentRow(19))
'PLOSE.plose_MWSTBetrag = SQL.isNullNothingDbl(currentRow(20))
'PLOSE.plose_BruttobetragTransaktion = SQL.isNullNothingDbl(currentRow(21))
'PLOSE.plose_NettobetragWaehrungAbbuchung = SQL.isNullNothingDbl(currentRow(22))
'PLOSE.plose_MWSTBetragWaehrungAbbuchung = SQL.isNullNothingDbl(currentRow(23))
'PLOSE.plose_BruttobetragWaehrungAbbuchung = SQL.isNullNothingDbl(currentRow(24))
'PLOSE.plose_WaehrungLandDiesntleistung = SQL.isleernothing(currentRow(25))
'PLOSE.plose_WaehrungAbbuchung = SQL.isleernothing(currentRow(26))
'PLOSE.plose_DokumentNrQuittungUhrzeit = SQL.isleernothing(currentRow(27))
'PLOSE.plose_ArtTransaktion = SQL.isleernothing(currentRow(28))
'PLOSE.plose_Fahrzeugklasse = SQL.isleernothing(currentRow(29))
'PLOSE.plose_KlassenidentifikationEURO = SQL.isleernothing(currentRow(30))
'PLOSE.plose_ProduktbeschreibungShort = SQL.isleernothing(currentRow(31))
'PLOSE.plose_DokumentNrQuittungUhrzeit = SQL.isleernothing(currentRow(32))
'PLOSE.plose_Geraetetyp = SQL.isleernothing(currentRow(33))
'PLOSE.plose_ProduktCode = SQL.isleernothing(currentRow(34))
'PLOSE.plose_ReferenzenBuchungMaut = SQL.isleernothing(currentRow(35))
If RMC.SAVE() Then
End If
End If
End Select
cnt += 1
End If
'For Each currentField In currentRow
'Next
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End While
'Label30.Text = (cnt + 1) & " / " & LineCount
'Label31.Visible = True
readRMC = "Zeilen: " & cnt
Else
MsgBox("FEHLER beim Löschen der vorhandenen OP-Liste.")
End If
End Using
Try
' System.IO.File.Delete(p)
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
addDGVEinarbeitung("PLOSE: Detail" & KdnR, readRMC)
' End Using
'End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
MsgBox(ex.StackTrace & ex.Message)
readRMC = ""
End Try
End Function
'Function readPLOSE_INVData(d As String) As String
' Try
' Dim cnt = 0
' readPLOSE_INVData = ""
' Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(d, Encoding.UTF8)
' MyReader.TextFieldType = FileIO.FieldType.Delimited
' MyReader.SetDelimiters(";")
' Dim currentRow As String()
' Dim fi As FileInfo = New FileInfo(d)
' While Not MyReader.EndOfData
' Try
' currentRow = MyReader.ReadFields()
' If currentRow(0) <> "PloseCode" Then ' Header
' If currentRow.Length >= 15 Then
' Dim PLOSE_INV As New MDM_Worker.cPLOSE_Inv_Data
' ' MsgBox(SQL.isleernothingDateFormatstring(currentRow(7)))
' ' MsgBox(currentRow(7))
' PLOSE_INV.plInv_SupplierRechnungsDatum = SQL.isleernothingDateFormatstring(currentRow(7))
' ' MsgBox(PLOSE_INV.plInv_SupplierRechnungsDatum)
' PLOSE_INV.plInv_SupplierRechnungsNr = SQL.isleernothing(currentRow(8))
' PLOSE_INV.plInv_SupplierCountry = SQL.isleernothing(currentRow(6))
' PLOSE_INV.plInv_Lieferant = SQL.isleernothing(currentRow(4))
' PLOSE_INV.plInv_LieferantCode = SQL.isleernothing(currentRow(3))
' PLOSE_INV.plInv_LieferantUID = SQL.isleernothing(currentRow(5))
' 'PLOSE_INV.plInv_RechnungsJahr = SQL.isleernothing(currentRow(7)) --> JAHR
' PLOSE_INV.plInv_PdfFileName = SQL.isleernothing(currentRow(14))
' If If(PLOSE_INV.plInv_PdfFileName, "") <> "" Then
' If Not PLOSE_INV.plInv_PdfFileName.ToString.ToLower.EndsWith(".pdf") Then PLOSE_INV.plInv_PdfFileName += ".pdf" ' Falls Endung nciht .pdf --> anfügen
' End If
' PLOSE_INV.plInv_Einlesedatum = Now.ToShortDateString
' PLOSE_INV.plInv_Datensatztyp = "PDF"
' PLOSE_INV.plInv_PLOSEKundennummer = SQL.isleernothing(currentRow(0))
' PLOSE_INV.plInv_Firmenname = SQL.isleernothing(currentRow(1))
' ' PLOSE_INV.plInv_DatumTransaktion = SQL.isleernothing(currentRow(0))
' ' PLOSE_INV.plInv_Produktbeschreibung = SQL.isleernothing(currentRow(0))
' PLOSE_INV.plInv_Services = SQL.isleernothing(currentRow(13))
' PLOSE_INV.plInv_Nettobetrag = CDbl(CDbl(SQL.isNullReturnValue(currentRow(9), 0).replace(".", ",")) + CDbl(SQL.isNullReturnValue(currentRow(11), 0).replace(".", ",")))
' PLOSE_INV.plInv_MWSTBetrag = CDbl(SQL.isNullReturnValue(currentRow(10), 0).replace(".", ","))
' PLOSE_INV.plInv_Bruttobetrag = CDbl(SQL.isNullReturnValue(currentRow(12), 0).replace(".", ","))
' ' [plInv_daId]
' 'If If(PLOSE_INV.plInv_PdfFileName, "") <> "" Then 'And PLOSE_INV.plInv_daId Is Nothing Then
' ' PLOSE_INV.plInv_daId = SQL.getValueTxtBySql("SELECT TOP (1) [da_id] FROM [tblDatenarchiv] where da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' and da_name='" & PLOSE_INV.plInv_PdfFileName & "' order by da_id desc", "FMZOLL",,, Nothing)
' 'End If
' PLOSE_INV.plInv_Dateiname = fi.Name
' ''''''''''''
' If PLOSE_INV.SAVE() Then
' ' UPDATE tblPLOSE_Details:
' SQL.doSQL("UPDATE [tblPLOSE_Details] SET [plose_plInvId] ='" & PLOSE_INV.plInv_Id & "' where plose_SupplierRechnungsNr='" & PLOSE_INV.plInv_SupplierRechnungsNr & "' AND plose_SupplierRechnungsDatum='" & PLOSE_INV.plInv_SupplierRechnungsDatum & "'", "FMZOLL")
' End If
' End If
' End If
' cnt += 1
' Catch ex As Exception
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
' End Try
' End While
' readPLOSE_INVData = "Zeilen: " & cnt
' End Using
' Try
' ' System.IO.File.Delete(p)
' Catch ex As Exception
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
' End Try
' addDGVEinarbeitung("PLOSE: INV_DATA (" & cnt & ")", readPLOSE_INVData)
' ' End Using
' 'End If
' Catch ex As Exception
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
' MsgBox(ex.StackTrace & ex.Message)
' readPLOSE_INVData = ""
' End Try
'End Function
Private Sub dgvEinarbeitung_SelectionChanged(sender As Object, e As EventArgs) Handles dgvEinarbeitung.SelectionChanged
dgvEinarbeitung.ClearSelection()
End Sub
Private Sub frmTCNachrichtenVerarbeitung_Shown(sender As Object, e As EventArgs) Handles Me.Shown
If allowClose Then
Me.Refresh()
Button2.PerformClick()
Button1.PerformClick()
System.Threading.Thread.Sleep(2000)
Me.Close()
End If
End Sub
End Class