Riddaje,
Altro errore, questa volta non so però da cosa possa dipendere, l'errore si verifica in PrintPdf.class, alla riga 47:
L'errore ottenuto è: Unknown symbol cbFormato in class container in PrintPdf:47.
Per onor del vero bisogna dire che nel mio programma richiamo il processo di stampa da questa linea:
PrintPdf.Run("DDTNormale", ["portrait", "mm", "A4"])
ove DDTNormale è la classe da dove dovrei stampare la bolla ottenuta importando e modificando (non ancora completamente) la classe PDFDDT.class del pacchetto PdfWriter, mentre la riga riportata è stata riprese dalla classe Principale.class relativa al bottone 12
Public Sub Button12_Click()
PrintPdf.Run("PDFDDT", ["portrait", "mm", "A4"])
End
sto pensendo che prima di dare un simile ordine ci sia da compiere qualche azione, ma in Principale, che tra l'altro è la classe di avvio del pacchetto non trovo niente tranne i 14 bottoni ed un Form_Open che serve ad aprire il form di esempio.
Ringrazio per la pazienza ed attendo chiarimenti.
Ciaoooooo :ciao:
Okay boys,
PdfWriter ha finalmente emesso i suoi primi vagiti, funziona!
L'unica cosa che ancora non mi soddisfa e che il codice che funziona è quello della stampa diretta e non quello dell'anteprima: se avete presente l'interfaccia del pacchetto dimostrativo il pulsante più grosso dovrebbe essere la stampa diretta (intendiamoci si apre Okular) e corrisponde a questo codice:
Dim pdf As PDFDDT
With pdf = New PDFDDT("portrait", "mm", "A4")
.Open()
.AliasNbPages()
.Data()
.Output("/tmp/report.pdf", False)
End With
Desktop.Open("/tmp/report.pdf")
Mentre il secondo pulsante, più piccolo e con tre puntini apre un preview del documento con un'interfaccia che a me piace molto, attraverso a quest'ultima si può operare in vari modi, questo pulsante corrisponde a questo secondo codice:
PrintPdf.Run("PDFDDT", ["portrait", "mm", "A4"])
che a prima vista anche a me pare un po poco, ma nel pacchetto originale funziona, il problema e che non fa altrettanto se importato nel mio programma :'(, pare mancare qualcosa, ma non capisco cosa, comunque finalmente la sperimentazione può andare avanti perché ora posso trasmigrare la mia bolla sulla nuova procedura, però prima o poi vorrei farlo con il secondo codice che come ho detto prima, mi piace di più, qualcuno può darmi una mano?
Grazie a tutti!
Ciaooooo :ciao:
Grazie Golia,
forse ho intuito.
Nella classe di stampa che hai creato non devi omettere anche se non usi, le tre opzioni
Public Function Data(Optional data1 As Variant[], Optional data2 As Variant, Optional data3 As Variant)
Dunque, fammi capire: il mio codice che porta alla stampa del documento è, anche se per ora molto scarno ed incompleto:
Public Sub ButtonStampaNorm_Click()
' SceltaStampante.Show
STAMPA_NORMALE()
End
Public Procedure STAMPA_NORMALE()
'#################################################################### Procedura di stampa di un D.D.T. (NON FACIT)#####
Dim sw_stampa As Boolean '##### Switch stampa #####
Dim lin As Integer '##### Contatore di linea #####
Dim filler$ As String '##### Comodo per contenere gli spazi prima di una stampa #####
Dim lung As Integer '##### Variabile per immagazzinare la lunghezza di una stringa #####
Dim var1$ As String '##### Variabile trasporto numero di capi #####
Dim var2$ As String '##### Variabile trasporto tipo capo #####
Dim var3$ As String '##### Variabile di trasporto -= campo vuoto =- #####
Dim var4$ As String '##### Variabile di trasporto tipo lavorazione #####
Dim var5$ As String '##### Variabile di trasporto prezzo totale lavorazione #####
Dim var6$ As String '##### Variabile di trasporto prezzo netto totale lavorazione #####
Dim var7$ As String '##### Variabile di trasporto iva totale lavorazione #####
'######################################################################################################################
'##### D.D.T. per negozi "NORMALI" #####
'##### #####
'##### visual$(0) ===> Numero di capi #####
'##### visual$(1) ===> Tipo capo #####
'##### visual$(2) ===> Empty #####
'##### visual$(3) ===> Tipo lavorazione #####
'##### visual$(4) ===> Prezzo #####
'##### #####
'######################################################################################################################
PrintPdf.Run("DDTNormale", ["portrait", "mm", "A4"])
End
dopo di cui le routine sono quelle originali di PdfWriter, anche la routine DDTNormale che vedi nel richiamo a PrintPdf.run non è altri che PDFDDT del pacchetto originale rinominata perchè il programma che sto traducendo deve poter fare stampare due tipi di bolle diverse, quindi
Public Function Data(Optional data1 As Variant[], Optional data2 As Variant, Optional data3 As Variant)
in DDTNormale e comunque contenuto; oltretutto l'errore che si verifica
Unknowm symbol 'cbformato' in class container in PrintPdf
più che dirmi che non trova l'oggetto cbformato che comunque è presente nel form PrintPdf.Form, mi da l'idea che sia causato dalla non formazione dell'oggetto "Me", infatti la riga è:
A meno che le variabili che hai citato non debbano essere inserite nelle dichiarazioni all'inizio della procedura stampa normale o nella chiamata della stessa procedura.
Che ne dici? (mi rendo conto di avervi piazzato una pizza un po' enorme :rolleyes: :rolleyes:)
Vi ringrazio, Ciaoooooo :ciao: :ciao:
Ciao Franco,
ho capito quale è il problema, le combobox nel progetto di Golia vengono erroneamente chiamate con Me.ComboQualsiasi.
Si tratta di un errore in questo modo possono solo essere chiamati gli oggetti pubblici mentre invece gli oggetti (controlli) di un form sono di default privati.
Puoi cambiare i controlli a public cosa deprecata e che ti sconsiglio oppure eliminare tutti i "Me." presenti nel codice, cosa auspicabile.
Ti invito a fare questa semplice prova in un nuovo progetto grafico con una combo (cbProva), prima provi ad avviare questo codice senza cambiare la proprietà public della combo, vedrai cosa ti dice Gambas, e dopo prova con public a true:
Public Sub Form_Open()
Me.cbProva.Add("Pippo")
End
:ciao: