Impression list

Résolu
protozorus Messages postés 38 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 novembre 2007 - 16 févr. 2006 à 14:51
protozorus Messages postés 38 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 novembre 2007 - 20 févr. 2006 à 13:59
Bonjour,

je suis sous vb6,j'imprime des listbox avec l'objet printer. je voudrais savoir s'il est possible d'imprimer un champs d'une liste sur deux lignes si celui ci est trop long.

si mon champs contient plus de 80 caracteres je voudrais l'imprimer sur deux lignes: comment faire?

Printer.CurrentX = 15 'ingestion
Printer.CurrentY = 140
Printer.FontItalic = False
Printer.FontBold = True
For i = 0 To frmapercu.List9.ListCount - 1
nb = Len(frmapercu.List9.List(i))
If nb > 80 Then
Printer.FontSize = 6
Else: Printer.FontSize = 8
End If
End If
Printer.CurrentX = 15
Printer.Print (frmapercu.List9.List(i))
Next i

merci

2 réponses

ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
17 févr. 2006 à 00:55
Je pense qu'il faut utiliser la fonction Mid...

Dim varTxtTmp As String

Printer.CurrentX = 15 'Ingestion
Printer.CurrentY = 140
Printer.FontItalic = False
Printer.FontBold = True
'N'ayant jamais utilisé l'objet Printer,

Printer.FontSize = 8 'je sais pas si ces 2 lignes ne sont
Printer.CurrentX = 15 'pas à mettre DANS le For/Next et Do/Loop! A toi de voir!
For i = 0 To frmapercu.List9.ListCount - 1

varTxtTmp = frmapercu.List9.List(i) 'Récupère le texte de la liste
Do While Len(varTxtTmp) > 80
Printer.Print (Mid(varTxtTmp,1,80)) 'Imprime les 80 premiers caractères
'Ici on enlève de varTxtTmp les 80 premiers caractères

varTxtTmp = Mid(varTxtTmp, 81, Len(varTxtTmp) - 80)

Loop
Printer.Print (varTxtTmp)
Next i

Note que le code en rouge est celui que j'ai ajouté/modifié et non une "erreur"!!! Mais ça, je pense que tu l'avais compris!

Bon, j'ai pas testé donc c'est à toi de me dire si ça fonctionne ou pas (y'a peut-être un caractère qui saute à chaque fois ou une erreur... alors teste et dit moi!

Sinon, concernant l'instruction Mid, ce n'est pas compliqué :
Mid ( texte, caractére de début, nombre de caractères )
Autrement dit, Mid renvoie (retourne, si tu préfères) une portion de texte contenu dans un autre texte. Par exemple :
varText = Mid("ABCDEFGHIJKL", 4, 7)
varText sera égale à "DEFGHIJ"...
Mais regarde dans l'aide... elle est plus concise que moi et mes explications!

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
3
protozorus Messages postés 38 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 novembre 2007
20 févr. 2006 à 13:59
Salut

c'est nikel rien a redire !

merci de ton aide;)
0
Rejoignez-nous