vb6 stampa foglio A4

  • Creatore Discussione Creatore Discussione basy82
  • Data di inizio Data di inizio

basy82

Utente Attivo
31 Dic 2005
210
0
0
siracusa
Devo fare la stampa fattura..(ho più volte rimandato..ma ora devo..)

Questo è il problema:
ho fatto l'intera grafica della stampa fattura in un semplice form...Ma quando faccio form1.printForm non mi stampa tutto il form..ma solo quello che visualizzo a video..

Praticamente in altezza il form è più lungo dello schermo e quando avvio la stampa, mi viene tagliato tutto quello che a video non riesco a vedere.

Cambiando la risoluzione (+ alta)..quindi se il form viene visualizzato tutto..allora funziona..

Come posso risolvere?senza cambiare metodo e senza usare crystal report o altro del genere?

Con l'oggetto printer (da premettere.. mai usato) posso stampare il contenuto di un frame? visto che tutti gli oggetti sono all'interno di un frame?

Qlc mi aiuta? Grazie :book:
 
Ciauuu Luca
il form è già ampio a sufficienza....e in visualizzazione riesco a vederlo tutto perchè uso una scroll bar...

Il problema è 'solo' quando stampa...

Msdn l'ho installato.. ma non trovo esempi pratici..utili.. cmq più tardi riproverò..:book:

Se intanto qlcn sa rispondermi...
 
scusa allora non ho capito...
in fase di stampa non ti esce fuori tutto il contenuto?
comunque puoi prendere i dati e metterli su word o su un pdf e stamparli da li... non è meglio?
 
ma non mi complico la vita così? come mi passo i dati su word?!!!..

Praticamente io sul form visualizzo la mia bella fattura...in formato A4.. e per poterla visualizzare tutta in altezza ho bisogno di una scroll bar... e fin qui ho risolto.

Quando avvio la stampa invece...mi taglia tutta la parte che non visualizzo a video..

Non so se mi sono spiegata..
 
Beh non mi resta altra scelta...
Gli do un'occhiata veloce e più tardi vediamo cosa ne esce fuori..
Cmq grazie
 
djnicola ha scritto:
Impara ad usare l'oggetto printer, in quanto non puoi stampare una form senza avere problemi.

ma che vuol dire? cioè ho capito cosa vuoi dire... ma rileggiti... è bellissimo quello che dici e come lo dici :)

djnicola ha scritto:
Ti conviene cmq utilizzare le scale di qualsiasi oggetto e impostarla in cm.
Per ulteriori chiarimenti scrivi su:
http://www.ceptive.it/public/forum/viewforum.php?f=13&sid=be90cc902cca4573d95e90b24f7c81fe

che fai dirotti la gente verso il tuo forum? questo per me è spam!

stavolta passa ma se ci riprovi banno tutti i link verso il tuo sito dal forum

ps. nulla di personale, sono le regole!
 
lukeonweb ha scritto:
che fai dirotti la gente verso il tuo forum? questo per me è spam!

TRanquilli tanto alla fine torno sempre a casa...

Ho passato tutto il pomeriggio (a parte le tremila interruzioni e le visite dei clienti...) a litigare con l'oggetto printer e coordinate x e y...

Cmq credo di avere risolto in un altro modo....se funge posto la soluzione...
 
Vale, sono certo e felice della tua "fedeltà" a questo forum, ma ciò non toglie che il suo tentativo c'è stato, ed è questo che mi da fastidio!

Attendiamo la soluzione!

Curiosità: hai preso in considerazione quella del Word?
 
lukeonweb ha scritto:
Vale, sono certo e felice della tua "fedeltà" a questo forum, ma ciò non toglie che il suo tentativo c'è stato, ed è questo che mi da fastidio!

Attendiamo la soluzione!

Curiosità: hai preso in considerazione quella del Word?

Hai pienamente ragione...il mio era un solo modo x mettere da parte il discorso.. con ironia.. :)

Parlando di cose serie...:book:

si ho visto il tuo tutorial...ma alla fine avevo scelto l'oggetto printer..x diversi motivi..
1. Non so quale versione di office usa il cliente e mi sono detta: quando lo installo nel suo pc..funzionerà?
2. Non avevo/ho idea di come si disegnino le tabelle e avrei perso altro tempo.. che purtoppo non ho.

Cmq con l'oggetto printer ero riuscita a combinare qlcs.

Adesso ecco la soluzione..tra l'altro banalissima..

Nel Command che avvia la stampa..basta scrivere

unload me
load mio_form
mio_form.printForm
unload me

Spiegazione...
scarico il form che sto visualizzando (quello ke voglio stampare)
con load lo eseguo ma non lo visualizzo e quindi gli dico di stampare..

Il trucchetto sta nel non far visualizzare il form..

Sarà tecnicamente sbagliata come soluzione...perchè carica il form 2 volte..ma quello che conta è che funziona..tanto una fattura non ha tantissimi record.
:beer:
 
Complimenti per la soluzione trovata :)

In ogni caso, per risponderti:

1. puoi anche non badare alla versione di office, ma poi, se il cliente è un'azienda con una intranet e 10 computer, ad esempio, si installa la stessa versione a tutti ed amen

2. credo che tu possa disegnare le tabelle in HTML... ma forse è una sciocchezza!

:byebye:
 
lukeonweb ha scritto:
Complimenti per la soluzione trovata :)

La soluzione veramente mi è stata suggerita..:rolleyes: Ce l'avevo sotto il naso ma non la vedevo...:incazz2:

Cmq l'importante è aver risolto...:D

:byebye:
 
lukeonweb ha scritto:
E' un classico :)
Non sempre le soluzioni suggerite le si riesce a mettere in pratica... mica è sempre facile!
Un "brava" lo meriti comunque ;)

GRAZIEEEEEE LUCA troppo buono...

Ciauuu :byebye: ci sent al mio prossimo problema....tanto non mi mancano mai..:D
 
mi sono trovato ad affrontare lo stesso problema di vale ed ho trovato molto utile le risposte su questo forum la mia esperienza mi porta alla stessa soluzione che djnicola ti consigliava io ho usato un codice di questo genere:
mi salvo le posizioni delle label(a) [io usavo 81 label sulla fattura] da stampare su un file poi apro il file salvato leggo la posizione e mando in stampa :)
Li salvo cosi' posso avere diversi layout se faccio fatture o DDT o Note Credito o altro.


'salvo impostazioni di stampa
f = FreeFile
Open "c:\..\defaultposizionifattura.inf" For Output As #f
For a = 0 To 81
PosizioneTop(a) = Label1(a).Top
PosizioneLeft(a) = Label1(a).Left
Write #f, PosizioneTop(a), PosizioneLeft(a)
Next a

'Leggo la posizione e stampo

f = FreeFile
For a = 0 To 81
Input #f, PosizioneTop(a), PosizioneLeft(a)
Printer.CurrentX = PosizioneLeft(a)
Printer.CurrentY = PosizioneTop(a)
Printer.Print Label1(a)
Next a
Printer.EndDoc
Close f
 

Discussioni simili