FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour ejemplo como hacer graficos en dialogo de fw
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
ejemplo como hacer graficos en dialogo de fw
Posted: Thu Sep 28, 2023 01:48 PM

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.

"Los errores en programación, siempre están entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Thu Sep 28, 2023 02:38 PM
samples/graph.prg
Code (fw): Select all Collapse
#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
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Thu Sep 28, 2023 07:22 PM
FWH Harbour Power

grap en EXCEL
Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sat Sep 30, 2023 06:00 AM
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 dos cantidades: 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 (fw): Select all Collapse
    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?
"Los errores en programación, siempre están entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sat Sep 30, 2023 01:54 PM
I just add
Code (fw): Select all Collapse
oGraph:lViewVal := .T.
to your example and it worked fine for me. No errors. This is the full working example:
Code (fw): Select all Collapse
#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.
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sat Sep 30, 2023 03:26 PM
Enrico Maria Giordano wrote:I just add
Code (fw): Select all Collapse
oGraph:lViewVal := .T.
to your example and it worked fine for me. No errors. This is the full working example:
Code (fw): Select all Collapse
#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,
"Los errores en programación, siempre están entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sat Sep 30, 2023 03:36 PM

What is your FWH version? You may need to upgrade.

Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sat Sep 30, 2023 04:10 PM
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
"Los errores en programación, siempre están entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sat Sep 30, 2023 05:20 PM

OK

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sat Sep 30, 2023 05:42 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sun Oct 01, 2023 02:21 AM
Enrico Maria Giordano wrote:OK
Dear Enrico.

I already found the error.

I was defining the values ​​in a single array:
Code (fw): Select all Collapse
aMontos := { { nTCredM3, nTCredM2 , nTCredM1 },;
             { nTPagM3 , nTPagM2  , nTPagM1  }}
and it must be in different and separate arrangements:
Code (fw): Select all Collapse
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.
"Los errores en programación, siempre están entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Sun Oct 01, 2023 07:29 AM

Ok, great. But I don't understand why your sample worked fine for me...

Posts: 151
Joined: Wed Oct 12, 2005 01:03 PM
Re: ejemplo como hacer graficos en dialogo de fw
Posted: Mon Oct 02, 2023 05:28 PM

El ejemplo que puso SYSCTRL exportando datos y graficas a Excel

se ve fantástico

nos podrías compartir el código

Marco Augusto Rodriguez Manzo

FWH January 2020 Xharbour 1.2.3

MySQL 5.0.19 Fastreport



PERZO SOFT

Sistemas Personalizados

Continue the discussion