(Nouvelle version avec correction Bug le 3/02/04)
Cette librairie permet de créer et d'imprimer des tableaux ou des documents en couleur en respectant les polices de caractères choisies etc...
Par exemple, les chiffres peuvent être en Arial Gras taille 12 et alignés à droite dans les colonnes.
De nouvelles méthodes permettent de tracer les lignes et colonnes ainsi que de définir des couleurs de fonds par colonnes, lignes ou même plages de cellules.
J'ai également fais en sorte que la méthode découpe les tableaux sur plusieurs pages si besoin. (A tester...)
Je donne plus bas un exemple d'utilisation plus complet comme demandé qui
correspond à la capture d'écran.
Il faut enregistrer la dll (regsvr32) et la référencer dans son projet VB.
email : joshrbz@yahoo.fr
Source / Exemple :
Public Sub Test()
Dim cPrintDoc As clsPrinterDocument
Dim cLine As clsPrintLine
Dim cPTab As clsPrintTab
Dim cFoot As clsPrintParagraph
Dim cFooter As clsPrintParagraph
Dim cHeader As clsPrintParagraph
Dim i As Integer
On Error GoTo DoPrintDocumentGotError
'Init
Set cPrintDoc = New clsPrinterDocument
Set cFooter = New clsPrintParagraph
Set cHeader = New clsPrintParagraph
' on laisse le pied de document vide mais on ajoute une ligne dans le
' header
Set cLine = New clsPrintLine
cLine.InitAsText "Exemple de tableaux en couleur", "Courier New", 6, True, True, , True
cLine.SetXY 1000, 0
cHeader.AddLine cLine
cPrintDoc.Init cHeader, cFooter
' Marge de gauche
cPrintDoc.sLeftMargin = 500
' Affiche le nombre de page en bas à droite
cPrintDoc.blnWithPageNumber = True
' Corps du document : Exemple de ligne
Set cLine = New clsPrintLine
cLine.InitAsText "Intitulé de Document", "Times New Roman", 14, True
cLine.SetXY 1000, 100
cPrintDoc.AddPrintableObject cLine
' Corps du document : Exemple de ligne adresse
Set cLine = New clsPrintLine
cLine.InitAsText "Adresse", "Arial"
cLine.SetXY 6000, 500
cPrintDoc.AddPrintableObject cLine
' Tableau
'*******************************************************
Set cPTab = New clsPrintTab
' Initialise le tableau avec 5 colonnes en coordonnées 0,1000
cPTab.Init 5, 0, 1000, , True
'largeur et alignement pour chaque colonne
cPTab.SetColProperties 0, 5000, , False
cPTab.SetColProperties 1, 1200, , True
cPTab.SetColProperties 2, 1200, , True
cPTab.SetColProperties 3, 1200, , True
cPTab.SetColProperties 4, 1200, , True
'Affiche la bordure ?
cPTab.blnWithBorder = True
' taille de la bordure
cPTab.sngBorderWidth = 3
'Affiche les traits de colonnes ?
cPTab.blnWithColumn = True
'Affiche les traits de lignes ?
cPTab.blnWithRow = True
' Couleur de fond générale
cPTab.lBackGroundColor = &HFFC0FF
' couleur de la Colone 1
Call cPTab.SetColBackGround(1, &HFF8080)
' couleur de la ligne 4
Call cPTab.SetRowBackGround(4, vbMagenta)
' Les couleurs des lignes prédomines sur les colonnes ?
cPTab.blnRowOverColBorder = False
' Couleur de la matrice ou plage de cellules de coordonnées (10,1) - (12,3) = vert
Call cPTab.SetCellBackGround(10, 1, 12, 3, vbGreen)
' on remplit le tableau avec des valeurs pipeau : 20 lignes
For i = 0 To 20
cPTab.SetValue i, 0, "Ligne n " & i
cPTab.SetValue i, 1, 100 * i
cPTab.SetValue i, 2, Format(i * 6.55957, "# ###.00")
cPTab.SetValue i, 3, i & "%"
cPTab.SetValue i, 4, CStr(i)
Next i
' on ajoute notre tableau au document à imprimer
cPrintDoc.AddPrintableObject cPTab
'on crée un second tableau : Exemple avec température
'*************************************************************************************
Set cPTab = New clsPrintTab
' Initialise le tableau avec 2 colonnes en coordonnées 2000,8000
cPTab.Init 2, 2000, 8000, , True
'largeur et alignement pour chaque colonne
cPTab.SetColProperties 0, 2000, , False
cPTab.SetColProperties 1, 1000, , True
'Affiche la bordure ?
cPTab.blnWithBorder = False
'Affiche les traits de colonnes ?
cPTab.blnWithColumn = False
'Affiche les traits de lignes ?
cPTab.blnWithRow = True
' couleur de la Colonne 1
Call cPTab.SetColBackGround(1, &HC0FFC0)
' couleur de la ligne 1
Call cPTab.SetColBackGround(1, &HE0E0E0)
' Les couleurs des lignes prédomines sur les colonnes ?
cPTab.blnRowOverColBorder = True
' on remplit le tableau avec des valeurs pipeau : 3 lignes
cPTab.SetValue 0, 0, "MOIS"
cPTab.SetValue 0, 1, "temp°"
cPTab.SetValue 1, 0, "Janvier"
cPTab.SetValue 1, 1, "3°C"
cPTab.SetValue 2, 0, "Février"
cPTab.SetValue 2, 1, "8°C"
cPTab.SetValue 3, 0, "Mars"
cPTab.SetValue 3, 1, "12°C"
' on ajoute notre tableau au document à imprimer
cPrintDoc.AddPrintableObject cPTab
'*******************************************************
' Partie Pied de document imprimé que sur la dernière page
Set cFoot = New clsPrintParagraph
Set cLine = New clsPrintLine
cLine.InitAsText "Veuillez blablabla", "Arial"
cLine.SetXY 500, 0
cFoot.AddLine cLine
Call cPrintDoc.SetDocumentFooter(cFoot)
'On lance l'impression !!!!!!!
cPrintDoc.DoPrint
Exit Sub
DoPrintDocumentGotError:
MsgBox "Print Error : " & Err.Description
End Sub
Conclusion :
Désolé pour l'API approximative...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.