ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Forum AtoutFox : Re: Blob Image Report   

Sujet

rss Flux RSS des derniers messages

Vous devez vous identifier pour pouvoir poser une question ou répondre.

mer. 03 juillet 2013, 09h48

GLS
France France

atoutfox.public.association

Re: Blob Image Report

Bonjour,

pour imprimer le contenu d'un champ contenant une image dans un report il faut:

soit
- utiliser un champ GENERAL et non BLOB dans lequel est stocké le fichier image au format BMP de préférence car le JPG pose souvent des soucis en impression de cette manière et mettre dans le report l'objet IMAGE/OLE Bound avec la propriété Nom de champ Général activée et le nom du champ fourni en source de control

soit
- utiliser le REPORTLISTENER et sous forme de classe dérivée dans laquelle est gérée un ou plusieurs objets 'image'. Mettre dans le report l'objet IMAGE/OLE Bound avec la propriété Expression nom de variable avec la variable initialisée dans la classe dérivée du report listener

    SET CLASSLIB TO MyReportlistener ADDITIVE
    SELECT maTableDBF
    m.loRl = NEWOBJECT("MonReportlistener","MyReportlistener.vcx")
    * Initialisation des variables eGraph et eImage utilisées dans les REPORTS VFP
    m.loRl.InitObjetImage('maTableDBF.blob2')
    m.eTablo=m.loRl.objetImage
    m.loRl.InitObjetGraph('rmaTableDBF.blob')
    m.eGraph=m.loRl.objetgraph
    loPreview = NEWOBJECT("MaPrevisualisation")
    * Preview container
    m.oPc = .NULL.
    DO (_REPORTPREVIEWWITH m.oPc
    m.oPc.CAPTION = "Titre de l'apercu"
    m.oPc.ZoomLevel = 3 && 50%
    m.oPc.ToolbarIsVisible=.T.
    m.oPc.CanvasCount = 2 && nombre de page dans l'aperçu
    m.oPc.SetExtensionHandler(loPreview) && liaison avec l'ExtensionHandler 'MaPrevisualisation'
    m.loRl.LISTENERTYPE = 1  && Aperçu écran
    m.loRl.PREVIEWCONTAINER = m.oPc
    REPORT FORM rMyReport.frx OBJECT m.loRl
    loRl = .NULL.
    loPreview= .NULL.
    loPc= .NULL.


dans la classe MyReportListener.vcx dérivée du _REPORTLISTENER de VFP9 pour deux champs blob a imprimer

*Méthode MyreportListener.INIT()
This.ObjetGraph   = NULL
This.GraphPictureVal  = ''
This.ObjetImage   = NULL
This.ImagePictureVal  = ''
This.LISTENERTYPE   = 0 && 1 = Preview Listener | 0 = default output

* Après ajout d'une méthode InitObjetGraph() dont voici le contenu
LPARAMETERS p_Field_graph

* Ajout d'un objet ObjetGraph basé sur la classe de base IMAGE
* pour permettre le lien entre le REPORT et la classe ReportListener
* afin d'imprimer les images contenues dans le champ de type BLOB dont le nom est passé dans la variable (p_field-graph)
THIS.graphpictureval = m.p_Field_graph
THIS.objetGraph = NEWOBJECT('IMAGE')
THIS.objetGraph.PICTUREVAL  = m.p_Field_graph

* Ajout d'une méthode InitObjetImage()
LPARAMETERS p_Field_graph

* Ajout d'un objet ObjetImage basé sur la classe de base IMAGE
* pour permettre le lien entre le REPORT et la classe ReportListener
* afin d'imprimer les images contenues dans le champ de type BLOB dont le nom est passé dans la variable (p_field-graph)
THIS.imagepictureval = m.p_Field_graph
THIS.objetImage = NEWOBJECT('IMAGE')
THIS.objetImage.PICTUREVAL  = m.p_Field_graph

LPARAMETERS nBandObjCode, nFRXRecno

* Dans la méthode BEFOREBand()
*-- Before the DETAIL band is rendered, ;
*-- just redraw the IMAGE object so that it has
*-- the correct picture from the BLOB field.
IF nBandObjCode = 4 && si c'est un Page Header
  IF !EMPTY(THIS.GraphPictureVal)
    THIS.ObjetGraph.PICTUREVAL = EVALUATE(THIS.GraphPictureVal)
  ENDIF
  IF !EMPTY(THIS.ImagePictureVal)
    THIS.ObjetImage.PICTUREVAL = EVALUATE(THIS.ImagePictureVal)
  ENDIF
ENDIF


Cordialement
GLS

Journal

MSabri111 pense que ce message est la bonne réponse ou qu'il est utile
MSabri111 Signale un abus et demande la modération de ce message
Permalink : http://www.atoutfox.org/nntp.asp?ID=0000012405
19 380 messages dans le forum • Liste complète des messages

Publicité

Les pubs en cours :

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2019.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3