José,
No se si esto es lo más correcto.
He probado lo siguiente:
WITH OBJECT oReport
:onStartPage := {| o | o:oDevice:oCanvas:DrawPicture(
{0,0,o:oDevice:PaperSize()[1],o:oDevice:PaperSize()[2] } ,
TPicture():Create( "pruebas.emf" ) ) }
END
Y me aparece el listado bien impreso pero el EMF aparece pequeño. Entonces
pensé que debemos pasar la información en mmHIMETRICS. Con lo que hice
esto:
WITH OBJECT oReport
:onStartPage := {| o |o:oDevice:oCanvas:nMapMode := mmHIMETRICS,
o:oDevice:oCanvas:DrawPicture(
{0,0,o:oDevice:PaperSize()[1],o:oDevice:PaperSize()[2] } ,
TPicture():Create( "pruebas.emf" ) ) }
END
Con esto consigo que el EMF aparezca como tiene que ser... pero como
contra-partida el listado aparece como más 'amplio', vamos, como si fuera a
doble espacio.
Yo creo que después de hacer la llamada a DrawPicture debería volver a dejar
el nMapMode como estaba... Entonces haciendo esto:
WITH OBJECT oReport
:onStartPage := {| o | a := o:oDevice:oCanvas:nMapMode,
o:oDevice:oCanvas:nMapMode := mmHIMETRICS, o:oDevice:oCanvas:DrawPicture(
{0,0,o:oDevice:PaperSize()[1],o:oDevice:PaperSize()[2] } ,
TPicture():Create( "pruebas.emf" ) ), o:oDevice:oCanvas:nMapMode := a }
END
Va estupendamente. Esto creo que puede ayudar a 'embellecer' la clase
tReport....
Muchas gracias José (Lalín) !!
Saludos,
José Luis Capel
"José Lalín" <
notelo@digo.com> escribió en el mensaje
news:[email=
4624bf9b@ozsrv2.ozlan.local...]
4624bf9b@ozsrv2.ozlan.local...[/email]
>
> José Luis,
>
>> Disculpa esta pregunta... pero 'aRect' ¿como lo obtengo?
>
> aRect son las coordenadas donde quieres que se dibuje la imagen, así:
>
> LOCAL oPicture := TPicture():Create( "mifichero.emf" )
>
> oPrinter:oCanvas:DrawPicture( { 0, 0, oPicture:nWidth, oPicture:nHeight },
> oPicture )
>
> Las coordenas 0, 0 son el punto de origen y tendrás que ajustarlas a la
> posición que necesites.
>
> Saludos,
> José Lalín