Page 1 of 1
ejemplo como hacer graficos en dialogo de fw
Posted: Thu Sep 28, 2023 1:48 pm
by JoseAlvarez
Estimados compañeros.
¿alguien tiene un ejemplo de como hacer un grafico y presentarlo en un dialogo? o donde puedo conseguir información al respecto?
Tengo 2 cantidades: Total de dinero otorgado en créditos y Total de dinero recogido en cobranzas.
quedo atento, gracias.
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Thu Sep 28, 2023 2:38 pm
by leandro
samples/graph.prg
Code: Select all | Expand
#include "Fivewin.ch"
#include "TGraph.ch"
#Define GRAPH_3D_SI .T.
#Define GRAPH_3D_NO .F.
FUNCTION MAIN()
LOCAL oDlg, oGraph, oBtn
#ifdef __CLIPPER__
SET RESOURCES TO "Test.Dll"
#else
SET RESOURCES TO "Test32.Dll"
#endif
DEFINE DIALOG oDlg;
SIZE 600, 500
@ 3, 1 GRAPH oGraph;
SIZE 250, 200;
TYPE GRAPH_TYPE_BAR;
YVALUES 3D XGRID YGRID XVALUES LEGENDS
// oGraph:aSeries = { { "Serie 1", CLR_CYAN } }
// { cLegend, nColor, nType, l3D }
oGraph:aSeries = { { "Serie 1", CLR_CYAN , , },;//BAR y 3D por defecto
{ "Serie 2", CLR_HBLUE, GRAPH_TYPE_LINE, GRAPH_3D_SI },;
{ "Serie 3", CLR_HRED, GRAPH_TYPE_POINT, GRAPH_3D_NO,.T.,.T.,.T.,"Rojo" } }
oGraph:aYVals = { "Jan", "Feb", "Mar", "Apr", "May" }
// oGraph:aData = { { 14280, 20420, 12870, 25347, 7640 } }
oGraph:aData = { { 14280, 20420, 12870, 25347, 7640 },;
{ 8350, 10315, 15870, 5347, 12340 },;
{ 12345, -8945, 10560, 15600, 17610 } }
oGraph:nClrX = CLR_GREEN
oGraph:nClrY = CLR_RED
oGraph:nPoint= 2 //Cross
oGraph:lLine = .T. //muestra la linea amarilla en BAR
oGraph:lViewSRLegend = .T.
oGraph:cToolTip = {|oGph,nSerie,nPos,nVal| oGph:aSeries[nSerie][1]+CRLF+oGraph:aYVals[nPos]+": "+cValToChar(nVal)}
@ 0, 0 BTNBMP oBtn RESOURCE "Bars" ACTION ( oGraph:nType := 1, oGraph:Refresh() )
@ oBtn:nTop, oBtn:nRight+1 BTNBMP oBtn RESOURCE "Lines" PIXEL ACTION ( oGraph:nType := 2, oGraph:Refresh() )
@ oBtn:nTop, oBtn:nRight+1 BTNBMP oBtn RESOURCE "Points" PIXEL ACTION ( oGraph:nType := 3, oGraph:Refresh() )
@ oBtn:nTop, oBtn:nRight+1 BTNBMP oBtn RESOURCE "Pie" PIXEL ACTION ( oGraph:nType := 4, oGraph:Refresh() )
@ oBtn:nTop, oBtn:nRight+1 BTNBMP oBtn RESOURCE "3D" PIXEL ACTION (oGraph:l3D :=!oGraph:l3D ,oGraph:Refresh())
@ oBtn:nTop, oBtn:nRight+1 BTNBMP oBtn RESOURCE "xGrid" PIXEL ACTION (oGraph:lxGrid :=!oGraph:lxGrid ,oGraph:Refresh())
@ oBtn:nTop, oBtn:nRight+1 BTNBMP oBtn RESOURCE "yGrid" PIXEL ACTION (oGraph:lyGrid :=!oGraph:lyGrid ,oGraph:Refresh())
ACTIVATE DIALOG oDlg;
CENTER
SET RESOURCES TO
RETURN NIL
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Thu Sep 28, 2023 7:22 pm
by sysctrl2
FWH Harbour Power
grap en EXCEL
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sat Sep 30, 2023 6:00 am
by JoseAlvarez
Hola a todos,
Gracias a los compañeros del foro que me orientaron con la elaboración de gráficos.
Ya comencé con algo muy simple, solo deseo graficar _: El dinero que se otorgó en nuevos créditos y el dinero que se recogió con la cobranza en los últimos 3 meses, cada mes.
Creo que ya lo tengo casi listo, pero por alguna razón no logro que se muestre el último mes en la gráfica.
Acá les dejo la imagen y el código:
Code: Select all | Expand
LOCAL oDlg, oGraph, oBtn
DEFINE DIALOG oDlg SIZE 650, 450
oDlg:lHelpIcon:=.f.
@ .5, 1 GRAPH oGraph SIZE 300, 200 TYPE GRAPH_TYPE_BAR YVALUES XGRID YGRID XVALUES LEGENDS
oGraph:aSeries = { { "Créditos" , CLR_CYAN },;//BAR y 3D por defecto
{ "Cobranzas", CLR_HBLUE }}
oGraph:aYVals := { "Enero", "Febrero", "Marzo" }
oGraph:aData := { { 14280, 20420 },;
{ 8350 , 10315 },;
{ 10000, 6000 }}
oGraph:nClrX := CLR_GREEN
oGraph:nClrY := CLR_HBLUE
oGraph:lViewSRLegend := .T.
oGraph:cToolTip := {|oGph,nSerie,nPos,nVal| oGph:aSeries[nSerie][1]+CRLF+oGraph:aYVals[nPos]+": "+cValToChar(nVal)}
ACTIVATE DIALOG oDlg CENTER
return .t.
También quiero que aparezca sobre cada columna la cantidad exacta, probé con lviewval:=.t. pero me da este error.
Time from start: 0 hours 0 mins 0 secs
Error occurred at: 30/09/2023, 01:58:50
Error description: Error BASE/1066 Argument error: conditional
Args:
[ 1] = U
Stack Calls
===========
Called from: .\source\classes\TGRAPH.PRG => TGRAPH:PAINT( 1270 )
Called from: .\source\classes\TGRAPH.PRG => (b)TGRAPH( 136 )
Called from: .\source\classes\TGRAPH.PRG => TGRAPH:DISPLAY( 0 )
¿que me esta faltando por hacer?
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sat Sep 30, 2023 1:54 pm
by Enrico Maria Giordano
I just add
to your example and it worked fine for me. No errors. This is the full working example:
Code: Select all | Expand
#include "Fivewin.ch"
#include "TGraph.ch"
FUNCTION MAIN()
LOCAL oDlg, oGraph
DEFINE DIALOG oDlg SIZE 650, 450
oDlg:lHelpIcon:=.f.
@ .5, 1 GRAPH oGraph SIZE 300, 200 TYPE GRAPH_TYPE_BAR YVALUES XGRID YGRID XVALUES LEGENDS
oGraph:aSeries = { { "Créditos" , CLR_CYAN },;//BAR y 3D por defecto
{ "Cobranzas", CLR_HBLUE }}
oGraph:aYVals := { "Enero", "Febrero", "Marzo" }
oGraph:aData := { { 14280, 20420 },;
{ 8350 , 10315 },;
{ 10000, 6000 }}
oGraph:nClrX := CLR_GREEN
oGraph:nClrY := CLR_HBLUE
oGraph:lViewSRLegend := .T.
oGraph:lViewVal := .T.
oGraph:cToolTip := {|oGph,nSerie,nPos,nVal| oGph:aSeries[nSerie][1]+CRLF+oGraph:aYVals[nPos]+": "+cValToChar(nVal)}
ACTIVATE DIALOG oDlg CENTER
return .t.
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sat Sep 30, 2023 3:26 pm
by JoseAlvarez
Enrico Maria Giordano wrote:I just add
to your example and it worked fine for me. No errors. This is the full working example:
Code: Select all | Expand
#include "Fivewin.ch"
#include "TGraph.ch"
FUNCTION MAIN()
LOCAL oDlg, oGraph
DEFINE DIALOG oDlg SIZE 650, 450
oDlg:lHelpIcon:=.f.
@ .5, 1 GRAPH oGraph SIZE 300, 200 TYPE GRAPH_TYPE_BAR YVALUES XGRID YGRID XVALUES LEGENDS
oGraph:aSeries = { { "Créditos" , CLR_CYAN },;//BAR y 3D por defecto
{ "Cobranzas", CLR_HBLUE }}
oGraph:aYVals := { "Enero", "Febrero", "Marzo" }
oGraph:aData := { { 14280, 20420 },;
{ 8350 , 10315 },;
{ 10000, 6000 }}
oGraph:nClrX := CLR_GREEN
oGraph:nClrY := CLR_HBLUE
oGraph:lViewSRLegend := .T.
oGraph:lViewVal := .T.
oGraph:cToolTip := {|oGph,nSerie,nPos,nVal| oGph:aSeries[nSerie][1]+CRLF+oGraph:aYVals[nPos]+": "+cValToChar(nVal)}
ACTIVATE DIALOG oDlg CENTER
return .t.
Hello Enrico,
Thaks for your reply
it not work in my PC
I keep continue looking for the problem,
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sat Sep 30, 2023 3:36 pm
by Enrico Maria Giordano
What is your FWH version? You may need to upgrade.
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sat Sep 30, 2023 4:10 pm
by JoseAlvarez
Enrico Maria Giordano wrote:What is your FWH version? You may need to upgrade.
fw 19.06
it is not the fw version. I checked the TGraph class and have the lViewval data.
it is another error from my side
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sat Sep 30, 2023 5:20 pm
by Enrico Maria Giordano
OK
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sat Sep 30, 2023 5:42 pm
by karinha
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sun Oct 01, 2023 2:21 am
by JoseAlvarez
Enrico Maria Giordano wrote:OK
Dear Enrico.
I already found the error.
I was defining the values in a single array:
Code: Select all | Expand
aMontos := { { nTCredM3, nTCredM2 , nTCredM1 },;
{ nTPagM3 , nTPagM2 , nTPagM1 }}
and it must be in different and separate arrangements:
Code: Select all | Expand
aCreditos:= { nTCredM3, nTCredM2 , nTCredM1 }
aPagos := { nTPagM3 , nTPagM2 , nTPagM1 }
We can now see the values in the graph
Thank you for your help and
kindness.
Joao, thanks for the links that you showed me, there, I found the error.
Thanks to both.
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sun Oct 01, 2023 7:29 am
by Enrico Maria Giordano
Ok, great. But I don't understand why your sample worked fine for me...
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Mon Oct 02, 2023 5:28 pm
by Marco Augusto
El ejemplo que puso SYSCTRL exportando datos y graficas a Excel
se ve fantástico
nos podrías compartir el código