cs_grasiela
Messages postés4Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention 8 juin 2004
-
7 juin 2004 à 17:19
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 2011
-
11 juin 2004 à 21:29
Bonjour tout le monde
J'ai une feuille pré-imprimé c'est à dire qui contient des cases vides(sorte de carrés) et je doit les remplir par des données extraites des tables de ma base de données(en l'introduisant dans l'imprimante) aprés avoir suivi un traitement bien spécifique par VB, le probléme c'est comment je peux placer les données dans son emplacement exacte dans la feuille préimprimé, est ce que de préférence que j'utilise datareport de VB ou Crystal report ou qu'il y'a une autre méthode plus meilleure.
cs_grasiela
Messages postés4Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention 8 juin 2004 8 juin 2004 à 10:16
Bonjour,
Est ce que je scanne la feuille et je la met dans le background du datareport car je doit l'utiliser pour extraire les données de ma DataBase; mais lors de l'impression lorsque j'insere la feuille préimprimé le background va s'imprimer .
J'ai pas bien compris votre solution.
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 11 juin 2004 à 21:29
Voici le code
Ce code gere les lignes, les textes, les images
Les controles doivent suivre une normalisation speciale que tu définis
1--> scanne ta feuille préimpimé
2--> place la dans une form
3--> place des labels, line et images
4--> appel la fonction print_form d'une autre fenetre
5--> la fonction init_form fait que du formatage
et du binding (liaison de données)
6--> imprime dans un fichier pdf pour voir le resultat avec PDFCreator (imprimante logiciel gratuite) avec l'image de fond
7--> quand le resultat est satisfaisant tu peux imprimer sur ton papier vierge
8--> fait les quelques a ajustements necasires marge et compagnie
9--> voila c'est pret
Sinon tu mets le background pour placer les controles et apres tu l'enleves.
J'utilises pas les datareports ( crystal reports est mieux j'en suis sur)
Public Sub print_form()
Call Me.init_Form
For Each ctrl In Me.Controls
Call print_control(printer, ctrl)
Next
printer.EndDoc
End Sub
Private Sub print_control(printer As printer, ByVal control As Object)
If (Left(control.Name, 4) = "Line") Then
printer.Line (control.X1, control.Y1)-(control.X2, control.Y2)
ElseIf (Left(control.Name, 5) = "Image") Then
'printer.Line (control.X1, control.Y1)-(control.X2, control.Y2)
Dim stdPict As New StdPicture
Set stdPict = LoadPicture(App.Path & "\photo.jpg")
printer.PaintPicture stdPict, control.Left, control.Top, control.Width, control.Height
Else
Select Case control.Alignment
Case vbCenter
printer.CurrentX = control.Left + control.Width / 2 - printer.TextWidth(control.Caption) \ 2
Case vbLeftJustify
printer.CurrentX = control.Left
Case vbRightJustify
printer.CurrentX = control.Left + control.Width - printer.TextWidth(control.Caption)
End Select
printer.CurrentY = control.Top
printer.FontBold = control.Font.Bold
printer.Font.Name = control.Font.Name
printer.Font.Size = control.Font.Size
If (LCase(Left(control.Name, 2) "lb")) Or (Left(control.Name, 5) "Label") Then
printer.Print control.Caption
Else
MsgBox control.Name
End If
End If
End Sub