Problema controllo registratore fiscale olivetti (PosControl)

mercoledì 18 maggio 2011 - 23.12
Tag Elenco Tags  VB.NET  |  Visual Studio 2005

cam9500 Profilo | Newbie

Ciao, innanzi tutto premetto che nn sono molto pratico di .net..... la programmazione ad oggetti proprio mi logora :(
Nonostante ciò ho (quasi) fatto un programma per utilizzare il registratore di cassa (nettuna 250) solo come stampante fiscale: il lettore di codice a barre sul PC storna a magazzino, prepara lo scontrino e gli ordini sono caricati nel programma con un semplice drag e drop.
Il mio problema è il colloquio con il registratore.... utilizzando l'interfaccia ELA Execute di Olivetti tutto funziona ma devo inserire un file di testo in una cartella, ElaExecute lo processa e mi restituisce il risultato in un'altra cartella. Vorrei saltare questo ElaExecute per controllare direttamente il registratore di cassa. A tal scopo olivetti fornisce una OCX (PosContrl) che uso così:

Dim PosControl As New PosObjects.PosC
PosControl.CommPort = 10
PosControl.PortSettings = "0028"
PosControl.PortOpen = True
outtot = "$1322" ' + "$1325$45,00$MELE &3x15,00!0" + "$1329$4500$1323"
PosControl.SendCommand(outtot)

Mando il comando e il registratore comincia a scrivere ma per un errore nella stringa in uscita si ferma. Gli eventi che dovrebbero sollevarsi :

Private Sub PosControl_CmdError(ByVal sender As Object, ByVal e As System.EventArgs)
MessageBox.Show("PosControl_CmdError")
End Sub

Private Sub PosControl_CmdRejected(ByVal sender As Object, ByVal e As System.EventArgs)
MessageBox.Show("PosControl_CmdRejected")
End Sub

Private Sub PosControl_FrameMessage(ByVal sender As System.Object, ByVal e As AxPosObjects.DPosEvents_FrameMessageEvent)
MessageBox.Show("PosControl_FrameMessage")
End Sub

... non vanno quindi nn riesco a fare debug e non ho la conferma della stampa dello scontrino (che dovrebbe essere restituita in PosControl_FrameMessage

Qualcuno ha esperienza e può aiutarmi ?

Grazie, Stefano

whiteflash Profilo | Junior Member

dovrei conoscere quell'ocx per aiutarti ma guardando quei 3 eventi che hai scritto, non sono associati a nessun handle quindi non funzionano per forza..
è più probabile che devi scrivere una cosa tipo:

.....
PosControl.SendCommand(outtot)

e poi:

MessageBox.Show(PosControl.CmdError.ToString)

ma non conoscendo l'ocx in questione non saprei dirti..
---------------------------------------------
Newbie esperto VB.NET 2010 e WPF

cam9500 Profilo | Newbie

Ciao, in effetti dopo la tua risposta ho fatto un passo indietro e "pulito" il codice rimuovendo prove varie..... Ho importato l'oggetto trascinandolo nella form e nelle proprietà mi sono "ritrovato" gli eventi. Il codice:

AxPosC1.CommPort = 10
AxPosC1.PortSettings = "0028"
AxPosC1.PortOpen = True
outtot = "$1322" ' + "$1325$45,00$MELE &3x15,00!0" + "$1329$4500$1323"
' stringa di test.... sbagliata !!
AxPosC1.SendCommand(outtot)

e la sub dell'evento:
Private Sub AxPosC1_FrameMessage(ByVal sender As System.Object, ByVal e As AxPosObjects.DPosEvents_FrameMessageEvent) Handles AxPosC1.FrameMessage
MessageBox.Show("PosControl_FrameMessage")
End Sub

che però non funziona...

whiteflash Profilo | Junior Member

in questo modo no......
molto probabilmente dovrai leggere gli attributi dell'evento per esempio in questo modo o simile:


Private Sub AxPosC1_FrameMessage(ByVal sender As System.Object, ByVal e As AxPosObjects.DPosEvents_FrameMessageEvent) Handles AxPosC1.FrameMessage
MessageBox.Show(e.FrameMessage)
End Sub
---------------------------------------------
Newbie esperto VB.NET 2010 e WPF

cam9500 Profilo | Newbie

ciao, si in effetti mi sono spiegato male: non mi si apre neppure la finestra di dialogo.... non si scatena l'evento in sostanza !

francesco81 Profilo | Newbie

Scusate se mi intrometto nella discussione ma io sto ancora al principio. Qualcuno di voi sa dove posso trovare la lista degli id dei comandi per Ela Execute? Sembrano introvabili!

Grazie mille
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5