Gambas France BETA


Pas de compte ? Incription

Comment imprimer une image avec Report en GB3

1
AuteurMessages
Jappy49#1 Posté le 27/10/2012 à 16:17:40
Bonjour à tous!
Après beaucoup de recherches et d'essais avec des exemples de Gambas 3.3.90 version svn à jour, je viens demander de l'aide sur ce forum.
Avec Gambas 2.24, je n'ai pas de problèmes d'impression.

"Imprimer etiquettes casier sur 3 colonnes et 9 étiquettes format 30X70 mm sur A4"

Voici la version GB3 qui ne fonctionne pas. Elle m'imprime une page vide. :

Public Sub Button2_Click()
Dim $hImage As Image
Dim hReport As New Report 'Nouvelle instance de report
Dim hRepImg As New ReportImage(hReport) 'On ajoute une image
hreport.Padding = ReportPadding["2 cm"] 'Je met un espace entre les éléments du conteneur (report)
hReport.Spacing = "1 cm"

$hImage = hImage 'ici l'image créée avec les données d'une base SQL misent en forme

hRepImg.Expand = True 'Je dit as reportimage de prendre toute la place restante sur la page
hRepImg.Image = $hImage
'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

Avec Gambas 2.24 voici une partie du programme :

Public Sub Imprimer()

'Imprimer etiquettes casier sur 3 colonnes et 9 étiquettes format 30X70 mm sur A4
hImage = New Image(800, 600, Color.White)
xp1 = 145 + valpos2
y1 = 59 + valpos1
total = 0
' Creation de l'image
Mdat = "select article,titre,auteur,editions,best_seller FROM selautres where best_seller = 1 order by article"
If Printer1.Configure() Then Return
'MonImprimante = New Printer As "MonImprimante"
Paint.Begin(Printer1)
With mglobalrequetes
.rs = .db.exec(Mdat)
If .rs.count <> 0 Then
i = 0
iLen = -1
While i < .rs.count
'print all data here
iLen = iLen + 1
content2(CStr(.rs!article), CStr(.rs!titre), CStr(.rs!auteur), CStr(.rs!editions))
NewFont.Bold = False
NewFont.Size = 10
NewFont.Name = "Sans"
Paint.Font = NewFont
Paint.Text(Trim(vard[lignEdit, 1]), xp1, y1 + 1, 50, 500, Align.Left)
NewFont.Bold = False
NewFont.Size = 10
NewFont.Name = "Sans"
Paint.Font = NewFont
Paint.Text(Trim(vard[lignEdit, 2]), xp1, y1 + 120, 40, 600, Align.Left)
NewFont.Size = 5
Paint.Font = NewFont
Paint.Text(Trim(vard[lignEdit, 4]), xp1, y1 + 250, 10, 820, Align.Left)
If lignEdit = 2 Then
y1 = y1 + 709 '=30 mm
total = total + 1
Endif
If total = 9 Then
MonImprimante.NewPage
NewFont.Size = 10
NewFont.Name = "Sans"
Paint.Font = NewFont
hImage = New Image(800, 600, Color.White)
xp1 = 145 + valpos2
y1 = 65 + valpos1
total = 0
Endif
i = i + 1
.rs.MoveNext
Wend
'show the report !
Endif
End With
Paint.End

End

Merci par avance de vos suggestions de Gambasiens avertis!
Bonne fin de semaine.

OpenSuse 11.4 (Celadon) Gnome 2.32.1
Jappy49
gambix#2 Posté le 29/10/2012 à 22:43:05
Faire simple !Je te répond demain... En faite tu devrais même utiliser le chargement dynamique.

Moins de texte dans une signature c'est agrandir son espace.
gambix#3 Posté le 30/10/2012 à 17:09:24
Faire simple !Dit moi tu peux me mailer un pdf avec ce que tu optenais en gb2 ? (gambasDOTfrATgmailDOTcom)
Moins de texte dans une signature c'est agrandir son espace.
gambix#4 Posté le 30/10/2012 à 17:30:23
Faire simple !ça sert a quoi content 2 ??? a quoi sert hImage ?
Moins de texte dans une signature c'est agrandir son espace.
gambix#5 Posté le 30/10/2012 à 17:32:30
Faire simple !il me faudrait les marge et l'espace entre etiquette aussi.

de plus c'est quoi le contenu ??

Moins de texte dans une signature c'est agrandir son espace.
Jappy49#6 Posté le 30/10/2012 à 19:41:45
Bonsoir,

Question: ça sert a quoi content 2 ??? a quoi sert hImage ?

content2 est la fonction qui extrait les données d'une base MysQL.
hImage c'est : hImage = New Image(800, 600, Color.White) '(DrawingArea1)
Le format est A4 3 colonnes de 7 cm et 9 étiquettes par colonne.
Le contenu est 3 ou 4 lignes de texte.
Je vous envoie une copie d'écran, car je n'ai pas de bon résultat en scannant et enregistré en pdf.
Merci pour tout.
Jappy49
Jappy49#7 Posté le 31/10/2012 à 18:09:50
Bonjour à tous,
La question reste ouverte pour le moment.
Je vais attendre qu'il y ai plus d'exemples pour continuer avec Gambas 3.
Merci pour ceux qui travaillent au développement de cet outil.
Jappy49
gambix#8 Posté le 31/10/2012 à 18:16:40
Faire simple !IL n'y aura pas de meilleur réponse que la mienne ... j'en ai bien peur. Néanmoins il reste aussi la possibilité d'utiliser directement l'imprimante via la classe paint.
Mais la encore attention il s'agit de dessin vectoriel.
Moins de texte dans une signature c'est agrandir son espace.
1