ejemplo como hacer graficos en dialogo de fw

Post Reply
User avatar
JoseAlvarez
Posts: 807
Joined: Sun Nov 09, 2014 5:01 pm

ejemplo como hacer graficos en dialogo de fw

Post 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.
"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.
User avatar
leandro
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: ejemplo como hacer graficos en dialogo de fw

Post 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

 
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
sysctrl2
Posts: 1035
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: ejemplo como hacer graficos en dialogo de fw

Post by sysctrl2 »

FWH Harbour Power

grap en EXCEL
Image
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
JoseAlvarez
Posts: 807
Joined: Sun Nov 09, 2014 5:01 pm

Re: ejemplo como hacer graficos en dialogo de fw

Post 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:

Image

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?
"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.
User avatar
Enrico Maria Giordano
Posts: 8728
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: ejemplo como hacer graficos en dialogo de fw

Post by Enrico Maria Giordano »

I just add

Code: Select all | Expand

oGraph:lViewVal := .T.
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.
User avatar
JoseAlvarez
Posts: 807
Joined: Sun Nov 09, 2014 5:01 pm

Re: ejemplo como hacer graficos en dialogo de fw

Post by JoseAlvarez »

Enrico Maria Giordano wrote:I just add

Code: Select all | Expand

oGraph:lViewVal := .T.
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,
"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.
User avatar
JoseAlvarez
Posts: 807
Joined: Sun Nov 09, 2014 5:01 pm

Re: ejemplo como hacer graficos en dialogo de fw

Post 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
"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.
User avatar
JoseAlvarez
Posts: 807
Joined: Sun Nov 09, 2014 5:01 pm

Re: ejemplo como hacer graficos en dialogo de fw

Post 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

Image

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.
User avatar
Marco Augusto
Posts: 144
Joined: Wed Oct 12, 2005 1:03 pm
Location: Cuernacava, Morelos Mexico

Re: ejemplo como hacer graficos en dialogo de fw

Post 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
Marco Augusto Rodriguez Manzo
FWH January 2020 Xharbour 1.2.3
MySQL 5.0.19 Fastreport

PERZO SOFT
Sistemas Personalizados
Post Reply