He estado haciendo pruebas con la maravillosa clase tgraph, hasta ahora excelente y fácil de usar. Pero ahora se me presenta un nuevo reto, debo poder adjuntar las graficas en un reporte generado desde EasyReport. Buscando en el foro encontré que con el método Save2bmp, podría generar un archivo .bmp del grafico y
así seria fácil montarlo en el Reporte. Pero resulta que cuando grabo la imagen me genera un archivo con fondo gris, pero no muestra el grafico que se ve perfectamente en pantalla.
El código es el siguiente:
- Code: Select all Expand view
// Muestra gráfica de distribución de captura por día
#Include "FiveWin.Ch"
Static oWnd , nTot, nCan
Static oGraph, aDia, aCan
Function Main()
LOCAL cDate, aFld, cTotal
Local cFile:="C:\Cartera\pictures\prueba.Bmp"
SET DELETED ON
SetHandleCount(99)
nTot:=nCan:=0
aDia:={}
aCan:={}
for n := 1 to 5
AAdd(aDia,Str(n))
AAdd(aCan,n)
nCan++
next
DEFINE WINDOW oWnd FROM 1, 1 TO 20, 80 TITLE "Distribucion de captura"
oGraph:=TGraph():New(0,0,oWnd,oWnd:nWidth()-8,oWnd:nHeight()-40)
cTotal:="Total: "+Tran(nTot,"999,999")+" registros. Promedio "+Tran(nTot/nCan,"999,999")
oGraph:cPicture:="999,999"
//oGraph:SetYVals(aDia)
oGraph:cTitX :="Volumen"
oGraph:cTitY :=cTotal
oGraph:lYVal :=.F.
oGraph:lLegends:=.F.
oGraph:lPopUp :=.T.
oGraph:AddSerie(aCan,"",RGB(128,128,255))
ACTIVATE WINDOW oWnd ;
ON PAINT (oGraph:nWidth:=oWnd:nWidth()- 8, ;
oGraph:nHeight:=oWnd:nHeight-40, ;
oGraph:Refresh(.t.),oGraph:Save2Bmp(cFile,0))
RETURN (NIL)
procedure AppSys // Xbase++ requirement
return