Imprimer un tableau

cs_cheikhtba Messages postés 26 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 27 février 2007 - 27 févr. 2007 à 11:26
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 27 févr. 2007 à 18:26
Bonjour tout le monde j'ai  créé un état vb qui m'imprime mes données mais je voulais que les données soient affichées dans un Tableau. C'est à dire je veux les fonction de l'objet Printer pour tracer des lignes et des colonnes.

7 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
27 févr. 2007 à 11:38
La méthode Line s'applique à l'objet Printer exactement de la même façon qu'elle s'applique à une picturebox

les propriétés CurrentX et CurrentY aussi

Il ne te reste plus qu'à t'insprirer de :

http://www.vbfrance.com/codes/DRESSAGE-AUTOMATIQUE-PARAMETRE-GRILLE-TEXTBOXES_40559.aspx

(la seule chose qui sera différente seront les positions des textboxes, auxquelles il te faudra substituer un currentx et un currenty pour chacune de tes données
1
cs_cheikhtba Messages postés 26 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 27 février 2007
27 févr. 2007 à 11:57
Salut jmfmarques,
je veux tracer un tableau à l'affichage de mon état  sous Microsoft Office Document Imaging,
Cordialement
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
27 févr. 2007 à 12:01
Mais...
Je ne comprends plus...
Microsofr Office ne dispose pas de l'objet Printer, je crois, ni de PictureBoxes, d'ailleurs.
0
cs_cheikhtba Messages postés 26 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 27 février 2007
27 févr. 2007 à 12:10
je le programme sous vb mais l'affichage c'est sous Microsoft Office Document Imaging, mon code est le suivant:

Private Sub btImprimer_Click()
     'connection a la base de donnees
   
    
    Set cnx = New ADODB.Connection
    cnx.Open "dsn=facturefondation"
    Set rs = New ADODB.Recordset
   
   
     'creation de letat
   
     Dim ligne As String
     Dim X, Y As Integer, NbLigne As Long, NbPage As Long, i As Long
     Dim temp As Boolean
     'On configure l'impression
     'Unité de mesure en millimètres
    
     Printer.ScaleMode = vbMillimeters
     'Format A4
     Printer.PaperSize = vbPRPSA4
    ' temp = False
    
     'Orientation Portrait
     Printer.Orientation = vbPRORLandscape 'vbPRORPortrait
    
    
   Call EntetePage
    sql = "Select id,num_fact,montant_fact,date_etablissement," & _
      "date_arrivee,date_echeance,type_fact,num_reference_fact,num_fournisseur,nom_fournisseur," & _
      "observation_fact,comptedebit_fact,comptecredit_fact,montant_ht,cr_fact,actif From facture" & _
      " where actif=" & 1
    rs.Open sql, cnx
   
   
   ' XFixe = 20 - (297 - Printer.ScaleWidth) / 2
   ' YMobile = 45 - (210 - Printer.ScaleHeight) / 2
    NbLigne = rs.RecordCount
   
    NbPage = IIf(NbLigne Mod 16 > 0, NbLigne \ 16 + 1, NbLigne \ 16)
      'place le curseur
    Y = 20
    i = 1
     While Not (rs.EOF)
   ' rs.MoveFirst
   ' For i = 0 To NbLigne - 1
    
   ' If (temp = False) Then
      i = i + 1
       Printer.CurrentX = 10 '20
       Printer.CurrentY = Y
       Printer.FontSize = 10
       Printer.FontName = "Arial "
       Printer.Print rs.Fields("id").Value ' & " " & rs.Fields("num_fact").Value 'concatene le nom et le prenom
   
     Printer.CurrentX = 25 '100
     Printer.CurrentY = Y
     Printer.FontSize = 10
     Printer.FontName = "code-39"
     Printer.Print rs.Fields("num_fact").Value ' "*" & rs.Fields("num_fact").Value & "*" 'en code 39 le signe de debut et de fin du code barre est *
    
     Printer.CurrentX = 50 '100
     Printer.CurrentY = Y
     Printer.FontSize = 10
     Printer.FontName = "code-39"
     Printer.Print rs.Fields("montant_fact").Value
    
     Printer.CurrentX = 70 '100
     Printer.CurrentY = Y
     Printer.FontSize = 10
     Printer.FontName = "code-39"
     Printer.Print rs.Fields("date_etablissement").Value
    
     Printer.CurrentX = 90 '100
     Printer.CurrentY = Y
     Printer.FontSize = 10
     Printer.FontName = "code-39"
     Printer.Print rs.Fields("date_arrivee").Value
    
     Printer.CurrentX = 110 '100
     Printer.CurrentY = Y
     Printer.FontSize = 10
     Printer.FontName = "code-39"
     Printer.Print rs.Fields("date_echeance").Value

rs.MoveNext 'permet d'aller sur le champs suivant dans la table employé
     Y = Y + 12 'on réinitialise la position du curseur
     If i = 15 Then
       Printer.NewPage
       Call EntetePage
       Y = 20
       i = 0
     End If
   
 
     DoEvents
   '  rs.MoveNext
'  Next i
     Wend
   
     Printer.EndDoc
     rs.Close

End Sub

cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
27 févr. 2007 à 12:59
Si tu développes sous VB, alors :
1) Microsoft Office n'a plus rien à voir à partir de l'instant où tu as extrait tes données à imprimer
2) ma 1ère réponse reste la bonne pour l'utilisation de l'objet Printer.
0
cs_cheikhtba Messages postés 26 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 27 février 2007
27 févr. 2007 à 13:17
ok mon probleme en est que je vois que vous utilisé des modules pour mon cas est ce qu'il est nécessaire de l'utilisé?
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
27 févr. 2007 à 18:26
J'ai utilisé un module, bien sur, par habitude de "propreté"...

Bien que je te conseille d'en faire autant, tu n'es pas obligé de suivre cet exemple et peux tout mettre dans le code de ta Form.
Où est donc le problème ?
0
Rejoignez-nous