Report

cs_grasiela Messages postés 4 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 8 juin 2004 - 7 juin 2004 à 17:19
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 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.

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
7 juin 2004 à 19:47
Salut

Si tu as qu'une feuille

Le plus simple est de la scanée et de la mettre en background sur une form

Apres du place tes labels

tu utilises l'objet
printer sur chaque controles de ta forme

il y a une collections de conroles accessibles a partir de ta forme

et en fonction du type tu imprimes

--> label, autres controles...
printer. ... X,Y,L,H (un truc du genre)
--> picture (stdpicture je crois)
--> line

Esperant t'avoir eclaircit

Desole j'ai pas le code et VB sous la main;-)
0
cs_grasiela Messages postés 4 Date d'inscription mardi 1 juin 2004 Statut Membre Derniè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.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
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
0
Rejoignez-nous