RMChart
Moderador: Moderadores
RMChart
no sistema q quero testar é CONSOLE, mas coloquei as linhas abaixo pq ao inserir o codigo do teste no meu sistema verifiquei a necessidade, mas se tiver como somente CONSOLE neste caso especifico prefiro...
Analisando a função q gera o gráfico ela faz chamada a propriedade handle q no console desconheço como passar esta informação, daí o motivo da dúvida.
Como fazer somente console?
Analisando a função q gera o gráfico ela faz chamada a propriedade handle q no console desconheço como passar esta informação, daí o motivo da dúvida.
Como fazer somente console?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
De qualquer jeito vai precisar da janela Windows para o gráfico.
Mas... porque não usar GTWVG de uma vez?
Só acrescentar gtwvg.hbc na compilação.
E uma rotina de erros que não desapareça junto com a janela.
Mas... porque não usar GTWVG de uma vez?
Só acrescentar gtwvg.hbc na compilação.
E uma rotina de erros que não desapareça junto com a janela.
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/
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/
RMChart
Então eu adicionei pra testar e compilou normal e não mostrou nada...
Ai pra desencargo peguei teu exemplo (projeto baixado) e rodei o C.BAT e acusou falta de 2 defines...
#define WIN_WM_SIZE 5
#define EVENT_UNHANDLED 1
Ai depois passou... MAS SE EU COMPILO AKI O TEU EXEMPLO/PROJETO ele aparece o menu MAS não aparecem os gráficos...
Acredito q possa ser algo relativo a eu usar o harbour 3.2 pois pelo q vi tem questões do WVG q foram melhoradas/corrigidas/implementadas no ultimo harbour 3.4
Será q seria isto José?
Ai pra desencargo peguei teu exemplo (projeto baixado) e rodei o C.BAT e acusou falta de 2 defines...
#define WIN_WM_SIZE 5
#define EVENT_UNHANDLED 1
Ai depois passou... MAS SE EU COMPILO AKI O TEU EXEMPLO/PROJETO ele aparece o menu MAS não aparecem os gráficos...
Acredito q possa ser algo relativo a eu usar o harbour 3.2 pois pelo q vi tem questões do WVG q foram melhoradas/corrigidas/implementadas no ultimo harbour 3.4
Será q seria isto José?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
RMChart
Para não ter q baixar o Source do 3.4 e recompilar alguém teria um link de um já pronto pra MinGW (uso o TDM-GCC)
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
Você tem razão, no Harbour 3.2 não está funcionando justamente o retângulo.
Aproveitando:
Acompanhou a dificuldade em deixar os parâmetros compatíveis com rmchart? numéricos double, decimal, long
Pode ser comparado com as mudanças que o Viktor fez na GTWVG.
Enquanto no Harbour 3.4 os parâmetros/retornos da API Windows são compatíveis com Harbour, no Harbour 3.2 não.
Mas pelo que entendi o ASimões está usando Harbour 3.2.
Talvez ele tenha usado alguma coisa já existente e não o tstRetangle.
Aproveitando:
Acompanhou a dificuldade em deixar os parâmetros compatíveis com rmchart? numéricos double, decimal, long
Pode ser comparado com as mudanças que o Viktor fez na GTWVG.
Enquanto no Harbour 3.4 os parâmetros/retornos da API Windows são compatíveis com Harbour, no Harbour 3.2 não.
Mas pelo que entendi o ASimões está usando Harbour 3.2.
Talvez ele tenha usado alguma coisa já existente e não o tstRetangle.
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/
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/
RMChart
Quintas,
Eu uso o 3.4 com mingw
Eu uso o 3.4 com mingw
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
Vi em algum post seu algo sobre Harbour 3.2, por isso me confundi.
Fladimir, deixer passar algo: disse da falta de uma definição SIZE/RESIZE 5.
O último que postei é mais simples, contém todos os gráficos, até outros novos, mas mostra um de cada vez.
E deixei só o fonte do Rectangle, pra não encher de coisas.
http://www.jpatecnologia.com.br/arquivo ... mchart.zip
ou se preferir, agora está aqui, na pasta rmchart.
https://github.com/JoseQuintas/AllInOne
Fladimir, deixer passar algo: disse da falta de uma definição SIZE/RESIZE 5.
O último que postei é mais simples, contém todos os gráficos, até outros novos, mas mostra um de cada vez.
E deixei só o fonte do Rectangle, pra não encher de coisas.
http://www.jpatecnologia.com.br/arquivo ... mchart.zip
ou se preferir, agora está aqui, na pasta rmchart.
https://github.com/JoseQuintas/AllInOne
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/
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/
RMChart
Vlw vou testar... se não der vou tirar um tempinho pra migrar pro 3.4
[]´s
[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
Não sei se dá pra usar GTWVW no 3.2, pelo menos pro gráfico.
Janelas Windows disponíveis no Harbour:
- GTWVG
- GTWVT (faz parte da GTWVG)
- GTWGU (faz parte da GTWVG)
- GTWVW - no Harbour 3.2 fica em extras
Curiosidade, a criação dos controles da GTWVG
Harbour 3.2: Wvg_CreateWindowEx()
Harbour 3.4: wapi_CreateWindowEx()
Não é problema no Harbour ou na GTWVG.
A GTWVG do 3.2 está funcionando pra tudo que tem na GTWVG.
Eu é que comecei a testar coisas adicionais, e as alterações na GTWVG do 3.4 permitem.
Janelas Windows disponíveis no Harbour:
- GTWVG
- GTWVT (faz parte da GTWVG)
- GTWGU (faz parte da GTWVG)
- GTWVW - no Harbour 3.2 fica em extras
Curiosidade, a criação dos controles da GTWVG
Harbour 3.2: Wvg_CreateWindowEx()
Harbour 3.4: wapi_CreateWindowEx()
Não é problema no Harbour ou na GTWVG.
A GTWVG do 3.2 está funcionando pra tudo que tem na GTWVG.
Eu é que comecei a testar coisas adicionais, e as alterações na GTWVG do 3.4 permitem.
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/
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/
RMChart
Deu certo aki... migrei para harbour 3.4 (tive q mudar alguns nomes de funções como hb_sendmail() virou tip_mailsend(), HB_OEMTOANSI virou WIN_OEMTOANSI... coisas do tipo...
tb no meu HBP mudei as chamadas das libs q antes fazia:
para
Enfim foi isto... ai gerou o exemplo e deu certo...
Obrigado galera.
tb no meu HBP mudei as chamadas das libs q antes fazia:
Código: Selecionar todos
-lhbctCódigo: Selecionar todos
hbct.hbcObrigado galera.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
Nem queiram saber o que acabei de fazer.... e está funcionando...
Feito por quem não conhece linguagem C, e apenas está "fuçando" nessa área...
Seleção de gráficos do RMChart através do trackbar !!!! (também chamado de slider).
Não, não existe esse controle na GTWVG!!!
Sim, é só movimentar esse controle deslizante e os gráficos vão sendo trocados conforme a posição do controle deslizante.
Quem conhece dessas coisas diz que não dá pra fazer...
Como não conheço... foi.... rs
É só teste, não é um fonte final, mas o módulo principal ficou assim:
Feito por quem não conhece linguagem C, e apenas está "fuçando" nessa área...
Seleção de gráficos do RMChart através do trackbar !!!! (também chamado de slider).
Não, não existe esse controle na GTWVG!!!
Sim, é só movimentar esse controle deslizante e os gráficos vão sendo trocados conforme a posição do controle deslizante.
Quem conhece dessas coisas diz que não dá pra fazer...
Como não conheço... foi.... rs
É só teste, não é um fonte final, mas o módulo principal ficou assim:
Código: Selecionar todos
FUNCTION TstRmChart()
LOCAL oRmChart, oCrt1, oControl
SetMode(40,100)
SET WRAP ON
SetColor( "W/B" )
CLS
oRmChart := RMChart():New()
oCrt1 := TstRectangle():New( , , { -5, -1 }, { -MaxRow(), -MaxCol() } )
oCrt1:Create()
oControl := TstTrackbar():New()
oControl:Create( , , { -1, -1 }, { -2, -90 }, , .F. )
oControl:SetValues( 1, 1, 10 )
oControl:Show()
oControl:bChanged := { | nOpc | MoStraGrafico( nOpc, oCrt1, oRmChart ) }
Inkey(0)
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/
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/
RMChart
Kkkkk q louco... parabéns Zé...
Agora colocando mais tempeiro no feijão... fuçando nas minhas pastas eu lembrava q tinha algo de RMChart e achei um PRG (acho q é HWGUI não verifiquei) q cria o gráfico a partir da Dll tb e com 1 método q não vi na classe chamando CreateChartFromFile... ai pensei (não testei ainda vou fazer na sequencia) se usarmos o RMDesigner lá tem pra copiar o código fonte do gráfico de várias formas e 1 delas se assemelha muito a forma utilizada no código abaixo... Se possível analisem e deem vossas opiniões pra ver se é isso mesmo o raciocínio ou viajei...
[]´s
Agora colocando mais tempeiro no feijão... fuçando nas minhas pastas eu lembrava q tinha algo de RMChart e achei um PRG (acho q é HWGUI não verifiquei) q cria o gráfico a partir da Dll tb e com 1 método q não vi na classe chamando CreateChartFromFile... ai pensei (não testei ainda vou fazer na sequencia) se usarmos o RMDesigner lá tem pra copiar o código fonte do gráfico de várias formas e 1 delas se assemelha muito a forma utilizada no código abaixo... Se possível analisem e deem vossas opiniões pra ver se é isso mesmo o raciocínio ou viajei...
[]´s
Código: Selecionar todos
#include "windows.ch"
#include "guilib.ch"
#include "hbdyn.ch"
#define ID_CHART 5001
#define ID_CHART2 5002
Function Main
hDll:= hb_LibLoad("rmchart.dll")
PREPARE FONT oFont NAME "Times New Roman" WIDTH 0 HEIGHT -17 CHARSET 4
INIT WINDOW oMainWindow MAIN MDI TITLE "Example RMCHART";
AT 0,0 SIZE 1300,650 ;
FONT oFont
MENU OF oMainWindow
MENU TITLE "Charts"
MENUITEM "Charts" ID 1100 ACTION Chart()
ENDMENU
ENDMENU
oMainWindow:activate()
hb_LibFree( hDll )
Return nil
function chart
cLabel1 := "Coluna 1"
cLabel2 := "Coluna 2"
cLabel3 := "Coluna 3"
cLabel4 := "Coluna 4"
cLabel5 := "Coluna 5"
sTemp1 := "00003600|00004450|000051|000061|00008-984833|00009310|00011Tahoma|100011|100035|100045|";
+"10005-5|10006-5|1000911|100101|100111|100131|100181|100200|10021100|1002211|100238|100331|";
+"100341|100355|100378|100481|100491|10051-16776961|10052-256|10053-1|100541|100558|";
+"10056-16777216|10057-16777216|10060-16777216|10061-16777216|100626|10181This is the chart's caption|";
+"10187Label 1*Label 2*Label 3*Label 4*Label 5|110011|110021|110031|110043|110053|11006-1|";
+"110091|110131|11014-1|110171|1102111|110221|110235|1105350*70*40*60*30"
nSize1X := VAL( SUBS( sTemp1, AT("00003",sTemp1)+5 , 3 ) )
nSize1Y := VAL( SUBS( sTemp1, AT("00004",sTemp1)+5 , 3 ) )
sTemp1 := STRTRAN( sTemp1, "Label 1", cLabel1 )
sTemp1 := STRTRAN( sTemp1, "Label 2", cLabel2 )
sTemp1 := STRTRAN( sTemp1, "Label 3", cLabel3 )
sTemp1 := STRTRAN( sTemp1, "Label 4", cLabel4 )
sTemp1 := STRTRAN( sTemp1, "Label 5", cLabel5 )
sTemp2 := "00003650|00004450|000051|000061|000071|00008-6697831|00009412|00011Tahoma|100011";
+ "|1000310|1000410|10005-5|10006-5|1000910|100101|100111|100121|100131|100181|1002";
+ "00|100217|1002215|100238|100272|100331|100341|100358|100378|100411|100482|100492";
+ "|10051-6751336|10052-15132304|10053-983041|100541|100558|10056-16777077|10057-16";
+ "777077|100586|10060-16777077|10061-1468806|100622|10180data source: www.federalr";
+ "eserve.gov + www.ecb.int|10181Prime Rates in USA und Euroland|10183 %|101871999*";
+ "2000*2001*2002*2003*2004*2005*2006|110011|1100221|110035|1100434|110052|110063|1";
+ "10073|1100970|1101312|110171|11019-16744448|1102115|110221|1102396|110262|110521";
+ "2|110534.75*4.75*4.75*4.75*4.75*5*5*5.25*5.25*5.25*5.5*5.5*5.5*5.75*6*6*6.5*6.5*";
+ "6.5*6.5*6.5*6.5*6.5*6.5*5.5*5.5*5*4.5*4*3.75*3.75*3.5*3*2.5*2*1.75*1.75*1.75*1.7";
+ "5*1.75*1.75*1.75*1.75*1.75*1.75*1.75*1.25*1.25*1.25*1.25*1.25*1.25*1.25*1*1*1*1*";
+ "1*1*1*1*1*1*1*1*1*1*1.25*1.5*1.75*2*2.25*2.25*2.5*2.75*2.75*3*3.25*3.25*3.5*3.75";
+ "*3.75*4*4.25*4.5*4.5*4.75*4.75*5*5.25*5.25*5.25*5.25*5.25*5.25*5.25|120011|12002";
+ "21|120035|1200434|120052|120063|120073|1200950|1201312|120171|12019-2448096|1202";
+ "115|120221|1202396|120262|1205212|120533*3*3*2.5*2.5*2.5*2.5*2.5*2.5*2.5*3*3*3*3";
+ ".25*3.5*3.75*3.75*4.25*4.25*4.5*4.5*4.75*4.75*4.75*4.75*4.75*4.75*4.75*4.5*4.5*4";
+ ".5*4.25*3.75*3.75*3.25*3.25*3.25*3.25*3.25*3.25*3.25*3.25*3.25*3.25*3.25*3.25*3.";
+ "25*2.75*2.75*2.75*2.5*2.5*2.5*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*";
+ "2*2*2*2*2*2.25*2.25*2.25*2.5*2.5*2.5*2.75*2.75*3*3*3.25*3.25*3.5|010011|010054|0";
+ "100721|01014-16744448|010222|01024216*287|01025109*109|010272|010283|010012|0100";
+ "51|01010295|01011102|010191|01026USA (Federal Funds Rate)|010013|010054|0100721|";
+ "01014-10496|010222|01024260*287|01025192*192|010272|010283|010014|010051|0101029";
+ "5|01011185|010191|01026Euroland (Prime Rate)"
nSize2X := VAL( SUBS( sTemp2, AT("00003",sTemp2)+5 , 3 ) )
nSize2Y := VAL( SUBS( sTemp2, AT("00004",sTemp2)+5 , 3 ) )
INIT WINDOW oFormChart1 MDICHILD ;
TITLE "teste 1" ;
STYLE WS_VISIBLE + WS_OVERLAPPEDWINDOW;
AT 0,0;
SIZE nSize1X+20,nSize1Y+30;
FONT oFont;
ON INIT {|o| initForm_Chart1(o) };
oFormChart1:Activate(.T.)
INIT WINDOW oFormChart2 MDICHILD ;
TITLE "teste 2" ;
STYLE WS_VISIBLE + WS_OVERLAPPEDWINDOW;
AT nSize2X,0;
SIZE nSize2X+20,nSize2Y+30;
FONT oFont;
ON INIT {|o| initForm_Chart2(o) };
ON EXIT {|o| exitForm_Chart2(o) }
oFormChart2:Activate(.T.)
return .T.
function initForm_Chart1(o)
nRetVal := HB_DYNCALL( {"RMC_CREATECHARTFROMFILE", hDll, HB_DYN_CALLCONV_STDCALL },o:handle,ID_CHART,0,0,0,sTemp1)
nRetVal := HB_DYNCALL( {"RMC_DRAW", hDll, HB_DYN_CALLCONV_STDCALL },ID_CHART)
return(.t.)
function exitForm_Chart1(o)
nRetVal = HB_DYNCALL( {"RMC_DELETECHART", hDll, HB_DYN_CALLCONV_STDCALL },ID_CHART)
return(.t.)
function initForm_Chart2(o)
nRetVal := HB_DYNCALL( {"RMC_CREATECHARTFROMFILE", hDll, HB_DYN_CALLCONV_STDCALL },o:handle,ID_CHART2,0,0,0,sTemp2)
nRetVal := HB_DYNCALL( {"RMC_DRAW", hDll, HB_DYN_CALLCONV_STDCALL },ID_CHART2)
return(.t.)
function exitForm_Chart2(o)
nRetVal = HB_DYNCALL( {"RMC_DELETECHART", hDll, HB_DYN_CALLCONV_STDCALL },ID_CHART2)
return(.t.)
/*
************************
Function GraficoVendedor
************************
*
*
Local lOk:=.f., sTemp := ""
Private inicio := bom(date())
Private fim := eom(date())
PREPARE FONT oFont NAME "MS Sans Serif" WIDTH 0 HEIGHT -10
INIT DIALOG oDlg CLIPPER TITLE "Gráfico Por Vendedor" Font oFont AT 0,0 SIZE 300,180 STYLE DS_CENTER
@ 005,035 say 'Data Inicial:' size 100,20
@ 120,030 get oInicio Var inicio picture '@D' size 60,20
@ 005,065 say 'Data Final:' size 100,20
@ 120,060 get oFim Var Fim picture '@D' size 60,20
@ 200,020 Button oBt Caption 'Cancelar' Size 70,30 ON CLICK {||EndDialog()}
@ 200,070 Button oBt Caption 'Confirmar' Size 70,30 ON CLICK {||lOk:=.t.,EndDialog()}
Add status to oDlg parts 300
oDlg:Activate()
if cmonth(inicio) <> cmonth(fim)
MsgStop('Um Mes de Cada Vez !',2)
lOk := .f.
endif
if lOk
ano := str(year(inicio),4)
dAno := ano + iif(lLinux,'/','\')
nome_mes := substr(mes(month(inicio)),1,3)+'_'+ano+'.dbf'
if file(dDados+dAno+nome_mes)
AbreDb(dAno+Nome_Mes,'vm',.t.)
else
return nil
endif
vm->(OrdSetFocus(10))
vArray := {{},{}}
Stor 0 to nVendedor,xTotal
Do While vm->(!eof())
nVendedor ++
nCV := vm->cod_vended
Stor 0 to nTotal
Do While vm->Cod_Vended = nCV
nTotal += Soma_Valor('vm')
xTotal += Soma_Valor('vm')
vm->(DbSkip())
EndDo
aadd( vArray[1],nCV )
aadd( vArray[2],transf(nTotal,'9999999999.99') )
EndDo
sTemp = sTemp + "00003750|00004450|000051|000061|000072|00008-984833|00009401|00011Tahoma|100011|"
sTemp = sTemp + "100035|100045|10005-5|10006-5|1000910|100101|100111|100122|100181|100200|10021"
sTemp = sTemp + alltrim(transf(xTotal,'99999999.99')) +'|'
sTemp = sTemp + "1002212|100238|100272|100331|100341|1003512|100378|100481|100491|10051-13408615|"
sTemp = sTemp + "10052-2448096|100541|100558|10056-9868951|10057-11861886|10060-2987746|10061-983041|"
sTemp = sTemp + "100626|10063-1|100652|"
sTemp = sTemp + "10187"
For n := 1 to nVendedor
Stemp = sTemp + vArray[1,n]
if n = nVendedor
else
sTemp = sTemp + "*"
endif
Next
//Janeiro*Fevereiro*Março*Abril*Maio*Junho*Julho*Agosto*Setembro*Outubro*"Novembro*Dezembro
sTemp = sTemp + "|110011|110021|110049|110061|110081|110121|110131|1102111|110221|"
sTemp = sTemp + "1102312|110281|11053"
For n := 1 to nVendedor
Stemp = sTemp + vArray[2,n]
if n = nVendedor
else
sTemp = sTemp + "*"
endif
Next
Grafico(sTemp)
endif
Return nil
*********************
Function Chart(sTemp)
*********************
*
*
local nRetVal:=0, dll
nRetVal := dllcall(hDll,DC_CALL_STD,"RMC_CREATECHARTFROMFILE",omainwindow:handle,1001,10,10,0,sTemp)
nRetVal := dllcall(hDll,DC_CALL_STD,"RMC_DRAW",1001)
return ""
******************
Function endwindow
******************
*
*
nRetVal = dllcall(hDll,DC_CALL_STD,"RMC_RESET",1001)
omainwindow:close()
return Nil
************************
Function Grafico(sTemp)
************************
*
*
Private oMainWindow, oFont
private hDll
hDll:=loadlibrary("rmchart.dll")
PREPARE FONT oFont NAME "Times New Roman" WIDTH 0 HEIGHT -17 CHARSET 4
INIT DIALOG oMainWindow TITLE "GRÁFICO" Font oFont AT 0,0 SIZE 795,500 STYLE DS_CENTER ;
On Init {|| Chart(sTemp) }
oMainWindow:Activate()
Return nil
*/Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
Se acompanhou o post, acrescentei muito mais métodos.
Também passei como acrescentar mais coisas que faltarem.
Como exemplo desse método, caso ainda não tenha:
E se precisar alguma conversão, indicar parâmetros que precisam conversão (com todos os anteriores).
Exemplo:
Isso serve de base pra tudo que ainda não foi resolvido.
Mas pra ficar compatível com os exemplos mesmo, pra evitar qualquer GPF por causa de coisa errada, precisaria preencher o default quando o programa não preencher valor nos parâmetros.
Por exemplo:
É que no VB, ao declarar como OPTIONAL nNumero AS DOUBLE, por exemplo, isso equivale a ter usado o hb_Default() pra colocar 0 na variável.
No exemplo do VB nem precisa do parâmetro. Então se tentar no Harbour vai dar GPF por faltar o parâmetro.
Como eu disse, são mais de 200 funções, leva meses pra ajustar todas, e nem precisa usar todas durante o uso.
Então se por acaso, algum dia, precisar usar alguma dessas, é usar a referência deste post pra resolver.
Em outras palavras: com as explicações do post, a classe vai sobreviver sozinha, cada um vai poder resolver o que precisar, sem ter que esperar que alguém resolva.
Também passei como acrescentar mais coisas que faltarem.
Como exemplo desse método, caso ainda não tenha:
Código: Selecionar todos
METHOD CreateChartFromFile( ... ) INLINE ::CallDllStd( "RMC_CREATECHARTFROMFILE", ... )
Exemplo:
Código: Selecionar todos
METHOD NovaFuncao(a,b,c,...) INLINE ::CallDllStd( "RMC_NOVAFUNCAO", a, ::ToDouble(b), ::ToDouble(c), ... )
Mas pra ficar compatível com os exemplos mesmo, pra evitar qualquer GPF por causa de coisa errada, precisaria preencher o default quando o programa não preencher valor nos parâmetros.
Por exemplo:
Código: Selecionar todos
METHOD NovaFuncao(a,b,c,d,e,f)
...
METHOD NovaFuncao(a,b,c,d,e,f)
hb_Default( @a, 0 )
hb_Default( @b, 0 )
hb_Default( @c, 0 )
hb_Default( @d, 0 )
hb_Default( @e, 0 )
hb_Default( @f, 0 )
RETURN ::CallDllStd( "RMC_NOVAFUNCAO", a,b,c,d,e,f)
No exemplo do VB nem precisa do parâmetro. Então se tentar no Harbour vai dar GPF por faltar o parâmetro.
Como eu disse, são mais de 200 funções, leva meses pra ajustar todas, e nem precisa usar todas durante o uso.
Então se por acaso, algum dia, precisar usar alguma dessas, é usar a referência deste post pra resolver.
Em outras palavras: com as explicações do post, a classe vai sobreviver sozinha, cada um vai poder resolver o que precisar, sem ter que esperar que alguém resolva.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
Por falar nisso... pensei num jeito simples de converter aquele .BAS contendo TODAS as declarações.
Simples.... mas ainda assim trabalhoso.
Os pontos importantes são o nome interno da dll, que fica entre aspas, a quantidade de parâmetros, e o tipo de cada um.
Isso ficaria assim:
Isso garantiria o tratamento para o tipo compatível.
Depois só criar as rotinas de conversão, exemplo:
Lembrando que verdadeiro/falso são boolean, mas em chamadas desse tipo são numéricos.
hb_DefaultValue() não serve pra esses casos onde o tipo não é o que parece ser.
Simples.... mas ainda assim trabalhoso.
Código: Selecionar todos
Declare Function RMC_CreateChartFromFileOnDC Lib "RMCHART.DLL" Alias "RMC_CREATECHARTFROMFILEONDC" ( _
ByVal nParentDC As Long, _
ByVal nCtrlId As Long, _
ByVal nX As Long, _
ByVal nY As Long, _
ByVal nExportOnly As Long, _
ByVal sRMCFile As String _
) As RMCError
Isso ficaria assim:
Código: Selecionar todos
METHOD CreateChartFromFileOnDc( nParentDC, nCtrlId, nX, nY, nExportOnly, sRMCFile )
RETURN ::CallDllStd( "RMC_CREATECHARTFROMFILEONDC", ::ToLong( nParentDC ), ::ToLong( nCtrlId ), ;
::ToLong( nX ), ::ToLong( nY ), ::ToLong( nExportOnly ), ::ToString( sRMCFile ) )
Depois só criar as rotinas de conversão, exemplo:
Código: Selecionar todos
METHOD ToString( xValue )
RETURN iif( xValue == NIL, "", xValue )
METHOD ToDouble(xValue)
RETURN iif( xValue == NIL, 0, xValue ) // ou conversões adicionais
hb_DefaultValue() não serve pra esses casos onde o tipo não é o que parece ser.
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/
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/
RMChart
:)Pos
obrigado
obrigado
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
