RMChart

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

RMChart

Mensagem por Daniel »

Você poderia por um exemplo onde esta dando erro
com array de cores ? Quintas

pois estou fazendo pra Minigui uns teste aqui
única diferencia que achei da de vocês e, não precisa transformar o valor em decimal na função AddDataAxis
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

Código: Selecionar todos

#include "rmchart.ch"
#define COLOR_MIDNIGHT_BLUE MidnightBlue
#define COLOR_DEFAULT Default
#define COLOR_WHITE Wite
#define COLOR_LIGHT_GREEN ColorLightGreen
#define COLOR_YELLOW Yellow
#define COLOR_GOLDENROD Goldenrod
#define COLOR_CRIMSON Crimson

FUNCTION Graphic5( oCrt, oRmChart )

LOCAL ID_RMC1 := 6
LOCAL aColors := { COLOR_LIGHT_GREEN, COLOR_YELLOW, COLOR_GOLDENROD, COLOR_CRIMSON }
LOCAL aData   := { 40, 30, 60, 20 }

oRmChart:CreateChart( oCrt:hWnd,ID_RMC1,10,10,600,450,COLOR_MIDNIGHT_BLUE,RMC_CTRLSTYLEIMAGE,.F.,"seasky.jpg","Tahoma", 0, COLOR_DEFAULT )
oRMChart:AddRegion(ID_RMC1,5,5,-5,-5,"",.F.)
oRMChart:AddLegend(ID_RMC1,1,"Apples*Citrons*Bananas*Cherries",RMC_LEGEND_CUSTOM_CENTER,COLOR_DEFAULT,RMC_LEGENDNORECT,COLOR_WHITE,8,.F.)
oRmChart:AddGridlessSeries(ID_RMC1,1, aData, 4, aColors, 4,RMC_DONUT_GRADIENT,RMC_FULL,0,.F.,RMC_VLABEL_TWIN,RMC_HATCHBRUSH_OFF, 0)
oRmChart:SetWatermark(RMC_USERWM,RMC_USERWMCOLOR,RMC_USERWMLUCENT,RMC_USERWMALIGN,RMC_USERFONTSIZE)
oRmChart:Draw(ID_RMC1)
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
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

RMChart

Mensagem por Daniel »

Quintas aqui funcionou tive que trocar o array para double
Anexos
rmchart1.png
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

Valeu, eu estava convertendo o parâmetro errado no teste.... rs

Além disso, estou testando todos os gráficos de uma vez.
Isso gera problema para os demais gráficos.

Mas encontrei uma solução: só converter se for array

Código: Selecionar todos

METHOD RMChart:ToDouble( xValue )

   LOCAL cDouble := "", oElement

   IF ValType( xValue ) == "N"
      RETURN xValue
   ENDIF
   FOR EACH oElement IN xValue
      cDouble += FToC( oElement )
   NEXT

   RETURN cDouble
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

Meu teste, gerando todos os gráficos em seguida, um de cada vez.
E consegui redimensionar automático, mesmo nos 4 gráficos simultâneos.

Código: Selecionar todos

FUNCTION Main

   LOCAL oCrt1, oRMChart
   SetMode(50,100)
   SetColor( "W/B" )
   CLS
   oCrt1 := tstRetangle():New( , , { 0, 0 }, { -MaxRow()-1, -MaxCol()-1 } )
   oCrt1:Create()
   oRMChart := RMChart():New()
   Graphic1( oCrt1, oRMChart )
   Graphic2( oCrt1, oRMChart )
   Graphic3( oCrt1, oRMChart )
   Graphic4( oCrt1, oRmChart )
   Graphic5( oCrt1, oRmChart )
   // oRMChart:Destroy()

   RETURN NIL
grafico1.png
grafico2.png
grafico3.png
grafico4.png
grafico5.png
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

O fonte desse último.

Código: Selecionar todos

FUNCTION Graphic5( oCrt, oRmChart )

   LOCAL ID_RMC1 := 6
   LOCAL aColors := { COLOR_LIGHT_GREEN, COLOR_YELLOW, COLOR_GOLDENROD, COLOR_CRIMSON }
   LOCAL aData   := { 40, 30, 60, 20 }

   oRmChart:CreateChart( oCrt:hWnd,ID_RMC1,0,0,MAX_SIZE_ONE,MAX_SIZE_TWO,COLOR_MIDNIGHT_BLUE,RMC_CTRLSTYLEIMAGE,.F.,"seasky.jpg","Tahoma", 0, COLOR_DEFAULT )
   oRMChart:AddRegion(ID_RMC1,5,5,-5,-5,"",.F.)
   oRMChart:AddLegend(ID_RMC1,1,"Apples*Citrons*Bananas*Cherries",RMC_LEGEND_CUSTOM_CENTER,COLOR_DEFAULT,RMC_LEGENDNORECT,COLOR_WHITE,8,.F.)
   oRmChart:AddGridlessSeries(ID_RMC1,1, aData, 4, aColors, 4,RMC_DONUT_GRADIENT,RMC_FULL,0,.F.,RMC_VLABEL_TWIN,RMC_HATCHBRUSH_OFF, 0)
   oRmChart:SetWatermark(RMC_USERWM,RMC_USERWMCOLOR,RMC_USERWMLUCENT,RMC_USERWMALIGN,RMC_USERFONTSIZE)
   oRmChart:Draw(ID_RMC1)
   Inkey(0)
   oRmChart:DeleteChart( ID_RMC1 )
   RETURN NIL
Nota: alterei as cores pra COLOR_ pra evitar conflitos e pra ver depois se é possível usar nas janelas. Além disso, Default não é uma palavra interessante pra colocar no #define, melhor COLOR_DEFAULT

Nota2: parece que linha/coluna é invertido, então usei SIZE_ONE e SIZE_TWO pra não me confundir com a inversão durante testes.
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
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

RMChart

Mensagem por Daniel »

Vai ter que por um função no quinto elemento, para não dar erro quanto passa numero

Código: Selecionar todos

AddGridlessSeries(ID_CHART,1, FDouble(aData), 4, FDouble(aColors), FTamanho(aColors),RMC_DONUT_GRADIENT,RMC_FULL,0,0,RMC_VLABEL_TWIN,RMC_HATCHBRUSH_OFF, 0)

Function FTamanho(Arg)
Return IIf(ValType(Arg) == "N", 0, Len(Arg))
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

Já comentei que ficou resolvido, e postei o que usei pra resolver que foi praticamente isso mesmo, valeu a intenção.

Mais um, abusando pra ver se realmente está funcionando.... rs
grafico6.png
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

só alterei o fonte principal, criando uma área pra cada um:

Código: Selecionar todos

FUNCTION Main

   LOCAL oRmChart, oCrt1, oCrt2, oCrt3, oCrt4, oCrt5
   SetMode(50,100)
   SetColor( "W/B" )
   CLS
   @ 30, 5 SAY "Testing"
   @ 31, 5 SAY "RMChart.dll"
   @ 32, 5 SAY "On"
   @ 33, 5 SAY "Modified"
   @ 34, 5 SAY "GTWVG"
   oCrt1 := tstRetangle():New( , , { 0, 0 }, { -25, -25 } )
   oCrt1:Create()
   oCrt2 := TstRetangle():New( , , { 0, -26 }, { -25, -25 } )
   oCrt2:Create()
   oCrt3 := TstRetangle():New( , , { 0, -51 }, { -25, -25 } )
   oCrt3:Create()
   oCrt4 := TstRetangle():New( , , { 0, -76 }, { -25, -25 } )
   oCrt4:Create()
   oCrt5 := TstRetangle():New( , , { -26, 0 }, { -25, -25 } )
   oCrt5:Create()
   oRMChart := RMChart():New()
   Graphic1( oCrt1, oRMChart )
   Graphic2( oCrt2, oRMChart )
   Graphic3( oCrt3, oRMChart )
   Graphic4( oCrt4, oRmChart )
   Graphic5( oCrt5, oRmChart )
   Inkey(0)
   // oRMChart:Destroy()

   RETURN NIL
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
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

RMChart

Mensagem por Daniel »

Legal, Ficou muito bom mesmo
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

Melhor organizado.
grafico8.png
Tanto faz. Dá pra dividir a tela pelo programa, ou dividir pelo RMChart.
A opção de 4 gráficos agora virou até algo que é mais complicado fazer pelo RMChart.... rs
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
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

RMChart

Mensagem por Daniel »

A função que eu passei e para arrumar erro quanto nao passa array na cor
pois tem que trocar o valor para 0 para rmchart usar alto-comando

AddGridlessSeries(ID_CHART,1, FDouble(aData), 4, FDouble(aColors), FTamanho(aColors),RMC_DONUT_GRADIENT,RMC_FULL,0,0,RMC_VLABEL_TWIN,RMC_HATCHBRUSH_OFF, 0)
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

O tamanho a ser usado:

Código: Selecionar todos

#define MAX_SIZE_ONE oCrt:CurrentSize[ 1 ]
#define MAX_SIZE_TWO oCrt:CurrentSize[ 2 ]
Nada complicado. Ao invés do tradicional Row/Col Linhas/Colunas, as coordenadas X/Y, praticamente a mesma coisa mas em pixels.
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

Já postei lá atrás, foi graças a ter falado que funcionou.

Alterei o método que precisou o acerto

Código: Selecionar todos

   METHOD AddGridLessSeries(a,b,c,d,e,...) INLINE ::CallDllStd( "RMC_ADDGRIDLESSSERIES", a, b, ::ToDouble(c), d, ::ToDouble(e), ... )
E alterei a conversão, pra só converter se for array

Código: Selecionar todos

METHOD RMChart:ToDouble( xValue )

   LOCAL cDouble := "", oElement

   IF ValType( xValue ) == "N"
      RETURN xValue
   ENDIF
   FOR EACH oElement IN xValue
      cDouble += FToC( oElement )
   NEXT

   RETURN cDouble
Nos testes que eu tinha feito antes, eu já tinha alterado a rotina, mas não tinha dado certo porque peguei o parâmetro errado.
Antes eu tinha convertido D ao invés de E.
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
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

RMChart

Mensagem por Daniel »

Quintas, outra coisa que eu vi, usar .T. ou .F. não funciona tem que ser 1 ou 0

seria a onde esta em vermelho, testa ai passando uma cor so em vez do array para voce entender
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Responder