da circa un decennio, con diverse mie applicazioni (sviluppate con altri tools) utilizzo un gestore di report esterno alla applicazione: (semplice da richiamare con jShell)
il link ReportizerNet (una software house ucraina)
Ho provato questo tool.
I report si compongono molto bene e prendono i dati in modo ottimale.
Come si richiama, all'interno di B4J, il viewer per stampare?
Credo di non aver compreso bene jShell e come farlo interagire con B4J.
Dim shl As Shell
Dim param As List=Array As String("/print","/copies=1","/CloseWhenDone","C:\B4JCassa\stampa_ricevuta.dtt")
shl.Initialize("shl", "C:\B4JCassa\rptview.exe", param)
shl.Run(-1)
Wait For shl_ProcessCompleted (Success As Boolean, ExitCode As Int, StdOut As String, StdErr As String)
Log(Success)
Log(ExitCode)
Log(StdOut)
Log(StdErr)
e funziona egregiamente.
Grazie in particolare a @giannimaione per l'ottima dritta.
Ho seguito i tuoi suggerimenti ed ho deciso di sfruttare ReportizerNet.
Come ho messo sopra sono riuscito ad implementare il Viewer nella mia app B4J riuscendo ad inserire in modo corretto tutti i parametri che volevo e la soluzione è ottimale come risultato e anche molto veloce...la stampa parte veramente in tempo 0 mentre con VB e CrystalReport aveva un tempo di latenza di diversi secondi.
Il tuo consiglio è stato utilissimo.
Grazie