Usando dois gráficos (DRAW GRAPH) no mesmo Form

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Usando dois gráficos (DRAW GRAPH) no mesmo Form

Mensagem por NiltonGM »

Amigos,
Estou usando dois gráficos no mesmo Form, porem ao adicionar o segundo gráfico, o primeiro gráfico some os textos como Título, Valores, ficando apenas as barras. Se eu remover o segundo gráfico, então o primeiro volta ao normal. O que pode ser? Deixei espaço suficiente entre eles. Veja o código e a imagem.

Código: Selecionar todos

Procedure showGrafico_ctasReceber()

		//ERASE WINDOW finanGraficos  /* Essa linha ERASE, tanto faz comentada ou não, apenas pisca o gráfico, não entendi porque dela. */

		/* Primeiro gráfico - a esquerda */

		DRAW GRAPH ;
		IN WINDOW finanGraficos ;
		AT 180,10 ;
		TO 500,490 ;
		TITLE "Valores gerais" ;
		TYPE BARS ;
		SERIES fiGp_valoresGeral ;
		YVALUES {} ;
		DEPTH 15 ;
		BARWIDTH 15 ;
		HVALUES 1 ;
		SERIENAMES {"Receber","Pagar"} ;
		COLORS { {128,128,255}, {255,102, 10} } ;
		3DVIEW ;
		SHOWGRID ;
		SHOWXVALUES ;
		SHOWYVALUES ;
		SHOWLEGENDS ;
		NOBORDER

		/* Segundo gráfico - a direita */

		DRAW GRAPH ;
		IN WINDOW finanGraficos ;
		AT 180,560 ;
		TO 500,1040;
		TITLE "Valores por período" ;
		TYPE BARS ;
		SERIES fiGp_valoresPerio ;
		YVALUES {} ;
		DEPTH 15 ;
		BARWIDTH 15 ;
		HVALUES 1 ;
		SERIENAMES {"Receber","Pagar"} ;
		COLORS { {128,128,255}, {255,102, 10} } ;
		3DVIEW ;
		SHOWGRID ;
		SHOWXVALUES ;
		SHOWYVALUES ;
		SHOWLEGENDS ;
		NOBORDER

Return
finanGraph.png
Nilton Medeiros
nilton@sistrom.com.br
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Usando dois gráficos (DRAW GRAPH) no mesmo Form

Mensagem por NiltonGM »

Resolvi o problema usando o "GRAPH BITMAP" que é bem semelhante e não dá problemas, acredito que o "DRAW GRAPH" esteja com "pau" e precisa de revisão, mas infelizmente nosso amigo Dr. Claudio saiu do grupo de releases do HMG.
Nilton Medeiros
nilton@sistrom.com.br
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usando dois gráficos (DRAW GRAPH) no mesmo Form

Mensagem por JoséQuintas »

Pelo nome: Graph Bitmap, a impressão é de que gera um bitmap com a imagem do gráfico.

Se DrawGraph usa a área total do controle, a saída seria criar dois controles no form, um pra cada gráfico.
Pelo menos teoricamente seria isso, na prática tem a ver com a LIB, e o que a função faz.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Usando dois gráficos (DRAW GRAPH) no mesmo Form

Mensagem por NiltonGM »

É isso mesmo Zéh, ele gera e salva se vc quiser uma imagem do gráfico em BMP, JPG, PNG...

Código: Selecionar todos

PROCEDURE ProcSaveGraph()
LOCAL cFileName
LOCAL hBitmap := Form_1.Image_1.HBITMAP   // Gets the value of hBitmap from the IMAGE control
   IF hBitmap <> 0 .AND. Form_1.GraphType.VALUE > 0
      cFileName := "Graph_" + Form_1.GraphType.ITEM( Form_1.GraphType.VALUE ) + IIF( Form_1.Enable3D.VALUE, "3D", "2D") + ".PNG"
      BT_BitmapSaveFile( hBitmap, cFileName, BT_FILEFORMAT_PNG )
      MsgInfo( "Save as: " + cFileName )
   ENDIF
RETURN
Nilton Medeiros
nilton@sistrom.com.br
Responder