Imports ITGRKSVCom Imports RKSVComComplete Public Class cRKSV_DE Private Function SurroundingSub() ' COM-Objekt anlegen Dim licenseKey As String = "MEUCIQDg2GSwFrgOMHLzKBO7Sac+D3xBh9Ct+QRBXarDFPtdNgIgQyvotBil11sRfqQgdY+spD3aUve/HZS9cF7MS0D720w=" Dim m_ksv As ItgKsV.KsVCom = New ItgKsV.KsVCom() Dim result As Integer = m_ksv.InitialiseLibrary("F:", "SwissbitDemo", "12345", licenseKey) If result <> &H0 Then MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error]) Return False End If ' Setup bei erstmaliger Verwendung der Swissbit-TSE !!! result = m_ksv.SetupTSEForFirstUse("123456", "12345", "98765", "SwissbitDemo") If result <> &H0 Then MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error]) Else MessageBox.Show("TSE setup succeeded.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If ' BeginTransaction: für jede neue Rechnung wird eine Transaktion gestartet Dim transactionNumber As Long = 0 result = m_ksv.StartTransaction(transactionNumber) If result <> &H0 Then MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error]) Return False End If ' UpdateTransaction: processData bleibt leer result = m_ksv.UpdateTransaction(transactionNumber, "", "KassenBeleg-V1") If result <> &H0 Then MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error]) End If ' FinishTransaction: Abschluss einer Rechnung, processData nach vorgegebenem Format result = m_ksv.FinishTransaction(transactionNumber, "Beleg^19.99_0.00_0.00_0.00_0.00^19.99:Bar", "KassenBeleg-V1") If result <> &H0 Then MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error]) End If ' QR-Code und weitere Werte, die auf der Rechnung angedruckt werden müssen ' QR-Code wird als base64 kodiertes bitmap geliefert Dim qrCode As String = String.Empty ' QR-Code Inhalt für die Ablage in der Datenbank, falls eine Rechnung nochmals gedruckt werden muss Dim qrCodeContent As String = String.Empty m_ksv.GetLastReceiptQrCode(qrCode) m_ksv.GetLastReceiptQrCodeContent(qrCodeContent) Dim sTransactionNumber As String = String.Empty Dim serialNumber As String = String.Empty Dim signature As String = String.Empty Dim sigCounter As String = String.Empty Dim dtStartTransaction As Date = Date.MinValue Dim dtFinishTransaction As Date = Date.MinValue m_ksv.GetLastReceiptValues(sTransactionNumber, serialNumber, signature, dtStartTransaction, dtFinishTransaction, sigCounter) ' Anzeige der gestarteten/noch möglichen Transaktionen Dim maxTransactions As Integer = 0 Dim openTransactions As Integer = 0 m_ksv.GetMaxStartedTransactions(maxTransactions) m_ksv.GetStartedTransactions(openTransactions) Dim startedTransactions As Integer() = Nothing result = m_ksv.GetStartedTransactionNumbers(startedTransactions) If result <> &H0 Then MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error]) End If ' Export der TSE-Daten im TAR-Format result = m_ksv.ExportAsTarFile("d:\export.tar") If result <> 0 Then MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error]) End If ' Bibliothek aufräumen, andernfalls wird ein power-cycle der TSE erforderlich um sie wieder einsetzen zu können 'result = CSharpImpl.__Assign(,, m_ksv.CleanupLibrary()) result = m_ksv.CleanupLibrary() If result <> 0 Then MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error]) End If Return True End Function End Class