Gambas France BETA


Pas de compte ? Incription

Imprimer un screenshot avec gb.report

À propos de ce code

Gambas et l'impression, ça reste toujours quelque chose qui semble assez confus. C'est pour cela que j'ai écrit le composant gb.report, mais comme a mon habitude, j'ai eu le temps de le coder mais pas de le documenter correctement.

Ici je vais essayer de vous montrer comment utiliser Report via le code uniquement (C'est a dire sans utiliser l'editeur de formulaire).
Bien sur ceci reste très très loin des possibilité qu'offre ce composant que j'ai voulu le plus souple possible.


Code source

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
PUBLIC SUB Button1_Click()
'Nouvelle instance de report
DIM hReport AS NEW Report
'On Ajoute un Label
DIM hReportLabel AS NEW ReportLabel(hreport)
'On ajoute une image
DIM hRepImg AS NEW ReportImage(hReport)
'Attention les éléments son affichédans l'ordre de leur création.

'On dispose la page en mode paysage
'Par défaut report utilise le A4
hreport.Orientation = Printer.Landscape

'Bon la c'est un truc et astuce pour ne pas avoir a
'fixer la taille des coté un par un
'ici ça fixe la marge du conteneur
hreport.Padding = ReportPadding["2 cm"]
'Je met un espace entre les éléments du conteneur (report)
hReport.Spacing = "1 cm"

'Mettre un Texte au label
hReportLabel.Text = "MyScreenSHot"
'Ainsi je fixe la hauteur en fonction de la taille du texte
'ATtention si la hauteur d'un texte est égale a zéro alors
'le texte n'apparaitra pas ... donc c'est soit on fixe la hauteur du texte
'avec la propriété Height soit on met autoresize a true
'Le problème est le même pour la largeur dans un container a arrangement
'horizontal.
hReportLabel.Autoresize = TRUE

'J'aligne le texte au milieu
hReportLabel.Alignment = Align.Center
'Je fixe la taille du texte
hReportLabel.Font.Size = 24

'Je dit as reportimage de prendre toute la place restante sur la page
hRepImg.Expand = TRUE
'Je récupère l'image du bureau et la fournit au reportimage
hRepImg.Image = Desktop.Screenshot().Image
'J 'indique a reportimage que je ne veux que l'image soit
'étirée mais pas déformée
hRepImg.Stretch = Report.Proportional

'on demande au report d'afficher le résultat dans la boite de prévisualisation/impression
hReport.Preview

END

Commentaires

Commentaire de lapenduledargent, Le 14/8/2012 à 20:01:27
Bonjour Gambix,

Un grand merci pour ton exemple, ce sera très utile en temps voulu.

Bonne soirée

Pierre