Imprimer une facture avec vb 6
aloulo2
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
aloulo2 Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
aloulo2 Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je veux imprimer une facture j'ai pu imprimer l'en-tête,
le problème c'est que lorsque on clic sur un bouton et après avoir faire les saisie nécessaire je veux d'une une nouvelle ligne s'ajoute a la même facture
je veux imprimer une facture j'ai pu imprimer l'en-tête,
le problème c'est que lorsque on clic sur un bouton et après avoir faire les saisie nécessaire je veux d'une une nouvelle ligne s'ajoute a la même facture
A voir également:
- Imprimer une facture avec vb 6
- Journal de naissance gratuit a imprimer - Télécharger - Histoire & Religion
- Comment imprimer en a5 - Guide
- Imprimer tableau excel sur une page - Guide
- Facture réglo mobile - Forum Laposte
- Vb - Télécharger - Langages
5 réponses
Bonjour,
Deux solutions,
Tu ne met pas EndDoc après avoir imprimer l'entête, commande qui termine la page.
Ou tu saisi tout le document (facture) et ensuite tu l'imprime.
A+
Deux solutions,
Tu ne met pas EndDoc après avoir imprimer l'entête, commande qui termine la page.
Ou tu saisi tout le document (facture) et ensuite tu l'imprime.
A+
Si je comprend bien !!
Tu envoi l'entête à l'imprimante.. ensuite ont clic sur des boutons et il faut ajouter des lignes ? et cela plusieur fois ?
Si c'est comme cela tu a aussi 2 solutions,
Sur la forme mettre un textbox qui recevra les dommnées à la place de l'imprimante, quand le mise en page est terminée tu imprime le texte.
Ou bien tu envoi à l'imprimante au fur et à mesure de la sélection, sans EndDoc, t'inqiète pas, l'imprimante ne démarre pas mais c'est dans son tampon, ça ne sortira qu'avec le EndDoc ou suivant la configuration, lorsqu'une page est remplie.
A+
Tu envoi l'entête à l'imprimante.. ensuite ont clic sur des boutons et il faut ajouter des lignes ? et cela plusieur fois ?
Si c'est comme cela tu a aussi 2 solutions,
Sur la forme mettre un textbox qui recevra les dommnées à la place de l'imprimante, quand le mise en page est terminée tu imprime le texte.
Ou bien tu envoi à l'imprimante au fur et à mesure de la sélection, sans EndDoc, t'inqiète pas, l'imprimante ne démarre pas mais c'est dans son tampon, ça ne sortira qu'avec le EndDoc ou suivant la configuration, lorsqu'une page est remplie.
A+
Avant tous je vous remercie énormément pour vos réponses à mes problèmes
J’ai pu faire un bouton(Command2_Click()) qui ajoute du texte dans le tampon et j’ai mis le EndDoc dans un autre bouton(Command1_Click()), le problème c’est que je veux que a chaque clic sur bouton(Command2_Click()) il y’aura du texte qui s’ajoute dans le tampon mai je donne a Printer.CurrentY une valeur qui change(je l’incrémente par une constante) a chaque exécution de (Command2_Click()) pour que la ligne suivent se place ou dessous de la précédant
Commet faire ?
Voici mon code :
Private Sub Command2_Click()
yh = yh + cyh
Printer.CurrentX = 1
Printer.CurrentY = yh
Printer.ScaleMode = 7
Printer.FontName = "Forte"
Printer.FontSize = 10
Printer.Print "_________________________________________________________________________________________________________"
End Sub
Private Sub Command1_Click()
Printer.EndDoc
End Sub
J’ai pu faire un bouton(Command2_Click()) qui ajoute du texte dans le tampon et j’ai mis le EndDoc dans un autre bouton(Command1_Click()), le problème c’est que je veux que a chaque clic sur bouton(Command2_Click()) il y’aura du texte qui s’ajoute dans le tampon mai je donne a Printer.CurrentY une valeur qui change(je l’incrémente par une constante) a chaque exécution de (Command2_Click()) pour que la ligne suivent se place ou dessous de la précédant
Commet faire ?
Voici mon code :
Private Sub Command2_Click()
yh = yh + cyh
Printer.CurrentX = 1
Printer.CurrentY = yh
Printer.ScaleMode = 7
Printer.FontName = "Forte"
Printer.FontSize = 10
Printer.Print "_________________________________________________________________________________________________________"
End Sub
Private Sub Command1_Click()
Printer.EndDoc
End Sub
Je ne sais pas si j'ai bien tout compris. Ce que tu dis doit fonctionner.
Ton code me semble correct, à part qu'il ne gère pas le passage d'une page à l'autre (prévoir également, si nécessaire, une gestion de la longueur de la chaine de caractère à ajouter)
D'abord, il faut stocker le currentY dans une variable; dans les déclarations générales:
Dim prCurrentY As Single
Private Sub Command2_Click()
dim strPrint as String
strPrint=InputBox("String à imprimer")
Printer.ScaleMode = 7 'centimetres
Printer.CurrentX = 1
prCurrentY=prCurrentY + cyh 'où cyh représente ta constante d'intervalle de ligne
If Printer.CurrentY<=20 then
Printer.CurrentY = prCurrentY
Else
Printer.NewPage
Printer.CurrentY=1
End If
Printer.FontName = "Forte"
Printer.FontSize = 10
Printer.Print strPrint
End Sub
Private Sub Command1_Click()
Printer.EndDoc
End Sub
Ton code me semble correct, à part qu'il ne gère pas le passage d'une page à l'autre (prévoir également, si nécessaire, une gestion de la longueur de la chaine de caractère à ajouter)
D'abord, il faut stocker le currentY dans une variable; dans les déclarations générales:
Dim prCurrentY As Single
Private Sub Command2_Click()
dim strPrint as String
strPrint=InputBox("String à imprimer")
Printer.ScaleMode = 7 'centimetres
Printer.CurrentX = 1
prCurrentY=prCurrentY + cyh 'où cyh représente ta constante d'intervalle de ligne
If Printer.CurrentY<=20 then
Printer.CurrentY = prCurrentY
Else
Printer.NewPage
Printer.CurrentY=1
End If
Printer.FontName = "Forte"
Printer.FontSize = 10
Printer.Print strPrint
End Sub
Private Sub Command1_Click()
Printer.EndDoc
End Sub
il suffit d'initialiser la variable dans le form_load
Private Sub Form_Load()
prCurrentY=4.6
End Sub
Private Sub Form_Load()
prCurrentY=4.6
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si tu veux écrire la ligne suivante en dessous, il n'y a pas besoin de déterminer le curent.x suffit de metrre
Printer.print "Le texte à imprimer" & Chr(13) >> ou chr(10) me rapel plus.
La ligne suivante sera automatiquement imprimée en dessous.
Si tu veux indenter la ligne tu peu aussi ajouter Tab(x) >> (x étant le nombre de tabulation(s))
De cette façon toutes tes lignes seront alignées.
PS: la commande Printer.Print "" >> ajoute une ligne d'espace
:Et tu devrait commencer par mettre l'entête, ça éviterait de devoir y laisser de la place.
Je trouve que tu te complique la vie inutilement, il est plus simple d'employer les commandes simple sauf si la mise en page est compliquée,.
Printer.print "Le texte à imprimer" & Chr(13) >> ou chr(10) me rapel plus.
La ligne suivante sera automatiquement imprimée en dessous.
Si tu veux indenter la ligne tu peu aussi ajouter Tab(x) >> (x étant le nombre de tabulation(s))
De cette façon toutes tes lignes seront alignées.
PS: la commande Printer.Print "" >> ajoute une ligne d'espace
:Et tu devrait commencer par mettre l'entête, ça éviterait de devoir y laisser de la place.
Je trouve que tu te complique la vie inutilement, il est plus simple d'employer les commandes simple sauf si la mise en page est compliquée,.
Comment faire pour arrondir un nombre a 3 chiffre après la virgule, si le quatrième chiffre et supérieur à 4 donc ajouter 1 au troisième chiffre et enlevé le quatrième et ceux qui sont a sa droite par exemple j’ai une variable de type long et qui contient la valeur (123456. 7887457) donc elle sera (123456.789) ?
Comment faire pour obtenir les chiffres qui sont placé après la virgule (après avoir faire l’arrondissement) c-a -d (789) ?