FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour graficos estilos tortas.
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
graficos estilos tortas.
Posted: Wed Jun 03, 2009 12:37 AM

hola.
necesito generar e imprimir (sin excel) graficos tipo torta.
Que puedo usar?

gracias.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: graficos estilos tortas.
Posted: Wed Jun 03, 2009 01:03 AM
Puedes usar la clase TGraph
Ejemplo:
Code (fw): Select all Collapse
#Include "FiveWin.Ch"
#Include "TGraph.Ch"

      DEFINE DIALOG oDlg RESOURCE "GRAFICA" OF oWnd
      oDlg:lHelpIcon := .f.
      REDEFINE GRAPH oGraf OF oDlg ID 111 TITLE "Ventas por rubros" 3D XGRID;
                            YGRID XVALUES YVALUES LEGENDS TYPE 4
      oGraf:cTitle := "Ventas x rubros"  
      oGraf:cSubTit:= "En pesos"
      oGraf:cTitX  := "Valores"
      oGraf:cTitY  := "Rubro"
      oGraf:lPopUp := .T.
      FOR j := 1 TO 10
          aRubro := {j}
          oGraf:AddSerie(aRubro,"Rubro "+STR(j,2), RGB(nRandom(255),nRandom(255),nRandom(255)))
      NEXT j
      oGraf:Refresh()
      REDEFINE BUTTON oBot2 ID 104 OF oDlg ACTION oDlg:End()
      ACTIVATE DIALOG oDlg CENTER

En el recurso debes poner el Style en "TGRAPH"
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: graficos estilos tortas.
Posted: Wed Jun 03, 2009 12:36 PM
Este control estoy viendo segun la clase que hay problemas al imprimir en los xp, y por las pruebas que hice los graficos no se ven bien (no en el aspecto) sino que en el tipo "pie" para mi "torta" no terminan de cerrar completamente el circulo.

Gracias.

cmsoft wrote:Puedes usar la clase TGraph
Ejemplo:
Code (fw): Select all Collapse
#Include "FiveWin.Ch"
#Include "TGraph.Ch"

      DEFINE DIALOG oDlg RESOURCE "GRAFICA" OF oWnd
      oDlg:lHelpIcon := .f.
      REDEFINE GRAPH oGraf OF oDlg ID 111 TITLE "Ventas por rubros" 3D XGRID;
                            YGRID XVALUES YVALUES LEGENDS TYPE 4
      oGraf:cTitle := "Ventas x rubros"  
      oGraf:cSubTit:= "En pesos"
      oGraf:cTitX  := "Valores"
      oGraf:cTitY  := "Rubro"
      oGraf:lPopUp := .T.
      FOR j := 1 TO 10
          aRubro := {j}
          oGraf:AddSerie(aRubro,"Rubro "+STR(j,2), RGB(nRandom(255),nRandom(255),nRandom(255)))
      NEXT j
      oGraf:Refresh()
      REDEFINE BUTTON oBot2 ID 104 OF oDlg ACTION oDlg:End()
      ACTIVATE DIALOG oDlg CENTER

En el recurso debes poner el Style en "TGRAPH"
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 225
Joined: Tue Feb 28, 2006 04:25 PM
Re: graficos estilos tortas.
Posted: Wed Jun 03, 2009 03:50 PM

RMCHART sin lugar a dudas la mejor opción

Yo tengo un ejecutable que te saca la grafica en varios estilos a partir de un archivo de
texto si te interesa dejame tu correo y te lo envio.

Saludos

ME INTERESA FW Y XHB POR SER OPEN SOURCE
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: graficos estilos tortas.
Posted: Wed Jun 03, 2009 04:57 PM

Vladimir, por favor poderia enviar-me também?

ubiratan@sgsistemas.com.br

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: graficos estilos tortas.
Posted: Wed Jun 03, 2009 09:40 PM
Enviado

Vladimir Zorrilla wrote:RMCHART sin lugar a dudas la mejor opción


Yo tengo un ejecutable que te saca la grafica en varios estilos a partir de un archivo de
texto si te interesa dejame tu correo y te lo envio.

Saludos
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
Re: graficos estilos tortas.
Posted: Thu Jun 04, 2009 07:02 AM
Estimado Sr. Vladimir,

RMCHART sin lugar a dudas la mejor opción

Yo tengo un ejecutable que te saca la grafica en varios estilos a partir de un archivo de
texto si te interesa dejame tu correo y te lo envio.


También estoy interesado en tener una copia del programa que usted ha dicho. Mi dirección de correo electrónico está anserkk@gmail.com

Gracias

Anser
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: graficos estilos tortas.
Posted: Thu Jun 04, 2009 12:15 PM
Vladimir Zorrilla wrote:RMCHART sin lugar a dudas la mejor opción


Yo tengo un ejecutable que te saca la grafica en varios estilos a partir de un archivo de
texto si te interesa dejame tu correo y te lo envio.

Saludos


Vladimir, parece muy interesante, me gustaría si pudiera enviármelo también a jmurugosa(arroba)gmail.com, o tal vez colocar un link aquí para que los interesados podamos bajarlo.

Gracias desde ya.
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: graficos estilos tortas.
Posted: Thu Jun 04, 2009 12:51 PM

Vladimir:
Me sumo a la solicitud. Mi correo es f.alegria.p@gmail.com
Gracias

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: graficos estilos tortas.
Posted: Thu Jun 04, 2009 01:11 PM

Vladimir el mio es:

adhemarcuellar@hotmail.com

Se le agradece Mucho

Saludos

Adhemar

Saludos,



Adhemar C.
Posts: 467
Joined: Fri Dec 09, 2005 12:41 AM
Re: graficos estilos tortas.
Posted: Thu Jun 04, 2009 07:13 PM

Hola Vladimir
Si no es molestia, te agradecere el envio a mi correo es lubin.am@speedy.com.pe , me parece interesante la alternativa que mencionas

Lubin

Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: graficos estilos tortas.
Posted: Fri Jun 05, 2009 09:00 PM

Vladimir, eu não recebi...

Pode enviar-me?

ubiratan@sgsistemas.com.br

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 225
Joined: Tue Feb 28, 2006 04:25 PM
Re: graficos estilos tortas.
Posted: Fri Jun 05, 2009 10:03 PM

Amigos

Hace varios dias que no entro a las news por ello no respondi a tiempo esta liga.

RMC.EXE lo hice por que tengo ejecutables en clipper y en diferentes versiones de FW
que requieren graficas y usar RMCHART.dll exige estar en 32 bits y actualizado con las
versiones mas recientes de FWH y XHARBOUR

La idea es simple sus programas en clipper o FW deben crear un archivo de texto llamado
RMC.TXT que sera leido por RMC.EXE que genera una ventana con la grafica y un menu
para cambiar a los estilos del RMCHART.Adicionalmnete deben poner rmchart.dll en la misma
carpeta del ejecutable.
Solo esos 3 archivos y nada mas por que no usamos la version en ocx del rmchart que exige
registro de sistema.

Esos archivos estan un correo de yahoo que yo uso para enviar cosas a mis amigos
Entren como si fuera su correo y descargen los archivos de ahi , busquen el mensaje
que dice para los amigos del foro de fivetech
Usuario : cps_envios@yahoo.es
Clave : 020369

Aqui os dejo algunos ejemplos de como se crea RMC.txt

RMC.TXT

TYPECHART=SIMPLELINE
CAPTION=Importaciones por Pais Origen ABRIL 2008
XMINVALUE=0
XMAXVALUE=500
XTICKCOUNT=5
XSUNIT=
XSTEXT=Nº Despachos
YLABEL=ARBRCACHCNCOCZDEESFRGBHUINISITJPKRMXMYPRSGTHTRTWUS
YSTEXT=Paises
YTICKCOUNT=25
BARSERIES=2,22,1,9,403,4,15,34,9,5,4,1,18,1,12,12,50,4,3,1,1,2,2,4,68

Aqui os explico

Tipo de Grafica inicial
TYPECHART=SIMPLELINE
Titulo de la Grafica
CAPTION=Importaciones por Pais Origen ABRIL 2008
Valores del eje x
XMINVALUE=0
XMAXVALUE=500
XTICKCOUNT=5
XSUNIT=
XSTEXT=Nº Despachos
Valores del eje Y
YLABEL=ARBRCACHCNCOCZDEESFRGBHUINISITJPKRMXMYPRSGTHTRTWUS
YSTEXT=Paises
YTICKCOUNT=25

Datos de la grafica
BARSERIES=2,22,1,9,403,4,15,34,9,5,4,1,18,1,12,12,50,4,3,1,1,2,2,4,68

Por ejemplo asi seria su programa

Func gpaisRM
Local j,dplan:={},mplan:={},nombre:={},n,T:="",sLabels:="",k,cadbar:=""
Local mes:="4"//LTRIM(STR(VAL(ZZZMES(VG("GPAIS_1")) )))
local cmd,CMD
:="SELECT SEA"+XCOD()+".PAIS_ORIGE,TA141.DESCRI,DGA"+XCOD()+".FCHNUMER FROM SEA"+XCOD()+" LEFT JOIN DGA"+XCOD()+" ON SEA"+XCOD()+".NUME_ORDEN=DGA"+XCOD()+".NUME_ORDEN LEFT JOIN TA141 ON SEA"+XCOD()+".PAIS_ORIGE=TA141.CODIGO WHERE YEAR(DGA"+XCOD()+".FCHNUMER)="+VG("A20_19")+" AND MONTH(DGA"+XCOD()+".FCHNUMER)="+mes+" AND SEA"+XCOD()+".CODI_REGI='10'"
cmd
+=" ORDER BY SEA"+XCOD()+".PAIS_ORIGE"
VZ2QUERY(@cmd,CMD_)
For j=1 to cmd:nRowCount
cmd:Goto(j);cmd:Load()
IF (n:=ASCAN(mplan,cmd:FldGet(1)))=0
aadd(dplan,1 )
aadd(mplan,cmd:FldGet(1) )
aadd(nombre,subs(cmd:FldGet(2),1,15) )
sLabels+=cmd:FldGet(1)+"*"
ELSE
dplan[n]:=dplan[n]+1
ENDIF
Next j
sLabels:=subs(sLabels,1,len(sLabels)-1)
For k=1 to len(dplan)
if k=len(dplan)
cadbar+=ltrim(str(dplan[k]))
else
cadbar+=ltrim(str(dplan[k]))+","
endif
next k
T+="TYPECHART=SIMPLEBAR"+H()
T+="CAPTION=Importaciones por Pais Origen ABRIL "+ALLTRIM(_VG("A20_19"))+H()
T+="XMINVALUE=0"+H()
T+="XMAXVALUE=500"+H()
T+="XTICKCOUNT=5"+H()
T+="XSUNIT= "+H()
T+="XSTEXT=Nº Despachos "+h()
T+="YLABEL="+sLabels+H()
T+="YSTEXT=Paises "+h()
T+="YTICKCOUNT="+LTRIM(STR(len(dplan)))+H()
T+="BARSERIES="+cadbar+H()
MEMOWRIT("RMC.TXT",T)
cmd:Close()
winexec("RMC")
retu .t.
Function h
retu(chr(13)+chr(10))


T+="TYPECHART=SIMPLEBAR"+H()

Otra cosa los valores del TYPE CHART que pueden variar para
la grafica inicial son

SIMPLEBAR
PIE
DONUT
PYRAMID
HORIZONTALBAR
SIMPLELINE
GROUPBAR
BARSLINES

y dentro con el menu pueden cambiar a todas esas graficas
y se puede imprimir y copiar al portapapeles


*** MAS EJEMPLOS


/////////////// FUENTE DE LAS GRAFICAS DEL MATRICSOFT ////////////////////
FUNC GRAFHM // COMPARATIVA ENTRE HOMBRE SY MUJERES POR OFERTA EDUCARTIVA SEPRADO POR CARRERA
LOCAL cmd:="",oHom,oMuj,j,BARSERIES:="BARSERIES=",BARSERIES2:="BARSERIES2=",YLABEL:="YLABEL=",oCarr
LOCAL TXT:="",MAXVALO:=0
cmd+="SELECT CARRERA FROM carreras ORDER BY COD_CAR"
vz2Query(@oCarr,cmd )
For j=1 to oCarr:nRowCount
oCarr:Goto(j);oCarr:Load()
YLABEL+=alltrim(oCarr:FldGet(1))+if(j=oCarr:nRowCount,"","")
Next j
cmd:=""
cmd+="SELECT COUNT(
) FROM matricula "
cmd+="LEFT JOIN alumnos ON alumnos.codigo=matricula.cod_alum "
cmd+="WHERE PERIODO='"+PERIODO()+"' AND matricula.TIPO_CAR='"+SUBS(OFERTAEDUCATIVA(),1,2)+"' AND alumnos.SEXO='M' "
cmd+="GROUP BY COD_CAR "
//MSGGET(,,CMD)
vz2Query(@oHom,cmd)
//MSGALERT("Cuantros hombres hay "+ltrim(str(oHom:nRowCount)))
For j=1 to oHom:nRowCount
oHom:Goto(j);oHom:Load()
IF VALTYPE(oHom:FldGet(1))="N"
BARSERIES+=ltrim(str(oHom:FldGet(1)))+if(j=oHom:nRowCount,"",",")
else
BARSERIES+=oHom:FldGet(1)+if(j=oHom:nRowCount,"",",")
ENDIF
IF VAL(oHom:FldGet(1))>MAXVALO
MAXVALO:=VAL(oHom:FldGet(1))
ENDIF
Next j
cmd:=""
cmd+="SELECT COUNT(*) FROM matricula "
cmd+="LEFT JOIN alumnos ON alumnos.codigo=matricula.cod_alum "
cmd+="WHERE PERIODO='"+PERIODO()+"' AND matricula.TIPO_CAR='"+SUBS(OFERTAEDUCATIVA(),1,2)+"' AND alumnos.SEXO='F' "
cmd+="GROUP BY COD_CAR "
vz2Query(@oMuj,cmd)
For j=1 to oMuj:nRowCount
oMuj:Goto(j);oMuj:Load()

IF VALTYPE(oMuj:FldGet(1))="N"
BARSERIES2+=ltrim(str(oMuj:FldGet(1)))+if(j=oMuj:nRowCount,"",",")
else
BARSERIES2+=oMuj:FldGet(1)+if(j=oMuj:nRowCount,"",",")
ENDIF
IF VAL(oHom:FldGet(1))>MAXVALO
MAXVALO:=VAL(oHom:FldGet(1))
ENDIF
Next j
//MSGALERT("Cuantas mujeres hay "+ltrim(str(oMuj:nRowCount)) )

//MSGALERT(MAXVALO,"MAXVALO "+VALTYPE(MAXVALO))

TXT+="TYPECHART=HORIZONTALBAR"+H()
TXT+="CAPTION=Alumnos de "+OFERTAEDUCATIVA()+" "+PERIODO()+H()
TXT+="XMINVALUE=0"+H()
TXT+="XMAXVALUE="+LTRIM(STR(MAXVALO))+H() //200"+H()
TXT+="XTICKCOUNT=10"+H()
TXT+="XSUNIT="+H()
TXT+="XSTEXT=Nº Alumnos"+H()
TXT+=YLABEL+H()
TXT+="YSTEXT=AÑOS DE ESTUDIOS"+h()
TXT+="YTICKCOUNT="+ltrim(str( oCarr:nRowCount ))+H()
TXT+=BARSERIES+h()
TXT+=BARSERIES2+h()
TXT+="LEGEND=Hombres*Mujeres"+h()

MEMOWRIT("RMC.TXT",TXT)

WINEXEC("RMC.exe")
RETU .T.

FUNC GRAFMR // COMPARATIVA MATRICULADO Y RETIRADOS
LOCAL cmd:="",oMat,oAct,oRet,j,BARSERIES:="BARSERIES=",BARSERIES2:="BARSERIES2=",BARSERIES3:="BARSERIES3=",YLABEL:="YLABEL=",oCarr
LOCAL TXT:="",MAXVALO:=0
cmd+="SELECT CARRERA FROM carreras ORDER BY COD_CAR"
vz2Query(@oCarr,cmd )
For j=1 to oCarr:nRowCount
oCarr:Goto(j);oCarr:Load()
YLABEL+=alltrim(oCarr:FldGet(1))+if(j=oCarr:nRowCount,"","")
Next j
cmd:=""
cmd+="SELECT COUNT(
) FROM matricula "
cmd+="WHERE PERIODO='"+PERIODO()+"' AND matricula.TIPO_CAR='"+SUBS(OFERTAEDUCATIVA(),1,2)+"' "
cmd+="GROUP BY COD_CAR "
//MSGGET(,,CMD)
vz2Query(@oMat,cmd)
//MSGALERT("Cuantros hombres hay "+ltrim(str(oHom:nRowCount)))
For j=1 to oMat:nRowCount
oMat:Goto(j);oMat:Load()
IF VALTYPE(oMat:FldGet(1))="N"
BARSERIES+=ltrim(str(oMat:FldGet(1)))+if(j=oMat:nRowCount,"",",")
else
BARSERIES+=oMat:FldGet(1)+if(j=oMat:nRowCount,"",",")
ENDIF
IF VAL(oMat:FldGet(1))>MAXVALO
MAXVALO:=VAL(oMat:FldGet(1))
ENDIF
Next j
cmd:=""
cmd+="SELECT COUNT(*) FROM matricula "
cmd+="WHERE PERIODO='"+PERIODO()+"' AND matricula.TIPO_CAR='"+SUBS(OFERTAEDUCATIVA(),1,2)+"' AND matricula.BAJA='SI' "
cmd+="GROUP BY COD_CAR "
vz2Query(@oRet,cmd)
For j=1 to oRet:nRowCount
oRet:Goto(j);oRet:Load()

IF VALTYPE(oRet:FldGet(1))="N"
BARSERIES2+=ltrim(str(oRet:FldGet(1)))+if(j=oRet:nRowCount,"",",")
else
BARSERIES2+=oRet:FldGet(1)+if(j=oRet:nRowCount,"",",")
ENDIF
IF VAL(oRet:FldGet(1))>MAXVALO
MAXVALO:=VAL(oRet:FldGet(1))
ENDIF

Next j

cmd:=""
cmd+="SELECT COUNT(*) FROM matricula "
cmd+="INNER JOIN asiscur on matricula.cod_alum=asiscur.cod_alum "
cmd+="WHERE matricula.PERIODO='"+PERIODO()+"' AND matricula.TIPO_CAR='"+SUBS(OFERTAEDUCATIVA(),1,2)+"' "
cmd+="GROUP BY matricula.COD_CAR "
vz2Query(@oAct,cmd)
For j=1 to oAct:nRowCount
oAct:Goto(j);oAct:Load()
IF VALTYPE(oAct:FldGet(1))="N"
BARSERIES3+=ltrim(str(oAct:FldGet(1)))+if(j=oAct:nRowCount,"",",")
else
BARSERIES3+=oAct:FldGet(1)+if(j=oAct:nRowCount,"",",")
ENDIF
IF VAL(oAct:FldGet(1))>MAXVALO
MAXVALO:=VAL(oAct:FldGet(1))
ENDIF

Next j
//MSGALERT("Cuantas mujeres hay "+ltrim(str(oMuj:nRowCount)) )
TXT+="TYPECHART=HORIZONTALBAR"+H()
TXT+="CAPTION=Alumnos de "+OFERTAEDUCATIVA()+" "+PERIODO()+H()
TXT+="XMINVALUE=0"+H()
TXT+="XMAXVALUE="+ltrim(str(maxvalo))+H()
TXT+="XTICKCOUNT=10"+H()
TXT+="XSUNIT="+H()
TXT+="XSTEXT=Nº Alumnos"+H()
TXT+=YLABEL+H()
TXT+="YSTEXT=AÑOS DE ESTUDIOS"+h()
TXT+="YTICKCOUNT="+ltrim(str( oCarr:nRowCount ))+H()
TXT+=BARSERIES+h()
TXT+=BARSERIES2+h()
TXT+=BARSERIES3+h()
TXT+="LEGEND=MatriculadosRetiradosActivos"+h()

MEMOWRIT("RMC.TXT",TXT)

WINEXEC("RMC.exe")
RETU .T.

FUNC GRAFATF // COMPARATIVA ASISTENCUA TARDANZAS Y FALTAS
LOCAL cmd:="",oMat,j,BARSERIES:="BARSERIES=",BARSERIES2:="BARSERIES2=",BARSERIES3:="BARSERIES3=",YLABEL:="YLABEL=",oCarr
LOCAL TXT:="",MAXVALO:=0
cmd+="SELECT CARRERA FROM carreras ORDER BY COD_CAR"
vz2Query(@oCarr,cmd )
For j=1 to oCarr:nRowCount
oCarr:Goto(j);oCarr:Load()
YLABEL+=alltrim(oCarr:FldGet(1))+if(j=oCarr:nRowCount,"","*")
Next j
cmd:=""
cmd+="SELECT SUM(ASISTENCIA),SUM(TARDANZA),SUM(FALTAS) FROM asiscur "
cmd+="WHERE asiscur.PERIODO='"+PERIODO()+"' AND asiscur.TIPO_CAR='"+SUBS(OFERTAEDUCATIVA(),1,2)+"' "
cmd+="GROUP BY asiscur.COD_CAR "
//MSGGET(,,CMD)
vz2Query(@oMat,cmd)
//MSGALERT("Cuantros hombres hay "+ltrim(str(oHom:nRowCount)))
For j=1 to oMat:nRowCount
oMat:Goto(j);oMat:Load()
BARSERIES+=ltrim(str(oMat:FldGet(1)))+if(j=oMat:nRowCount,"",",")
BARSERIES2+=ltrim(str(oMat:FldGet(2)))+if(j=oMat:nRowCount,"",",")
BARSERIES3+=ltrim(str(oMat:FldGet(3)))+if(j=oMat:nRowCount,"",",")
IF oMat:FldGet(1)>MAXVALO
MAXVALO=oMat:FldGet(1)
ENDIF
IF oMat:FldGet(2)>MAXVALO
MAXVALO=oMat:FldGet(2)
ENDIF
IF oMat:FldGet(3)>MAXVALO
MAXVALO=oMat:FldGet(3)
ENDIF

Next j

//MSGALERT("Cuantas mujeres hay "+ltrim(str(oMuj:nRowCount)) )
TXT+="TYPECHART=GROUPBAR"+H()
TXT+="CAPTION=Alumnos de "+OFERTAEDUCATIVA()+" "+PERIODO()+H()
TXT+="XMINVALUE=0"+H()
TXT+="XMAXVALUE="+ltrim(str(maxvalo))+H()
TXT+="XTICKCOUNT=10"+H()
TXT+="XSUNIT="+H()
TXT+="XSTEXT=Nº veces"+H()
TXT+=YLABEL+H()
TXT+="YSTEXT=AÑOS DE ESTUDIOS"+h()
TXT+="YTICKCOUNT="+ltrim(str( oCarr:nRowCount ))+H()
TXT+=BARSERIES+h()
TXT+=BARSERIES2+h()
TXT+=BARSERIES3+h()
TXT+="LEGEND=AsistenciasTardanzasFaltas"+h()

MEMOWRIT("RMC.TXT",TXT)

WINEXEC("RMC.exe")
RETU .T.

/// FLUJOGRAMA DE PAGO DE PENSIONES EMITIDOS VZ COBRADOS
FUNC GRAFFLUJO
LOCAL TXT:="",J,CMD:="",o
LOCAL YLABEL:="YLABEL="
LOCAL BARSERIES:="BARSERIES=",BARSERIES2:="BARSERIES2=",MAXVALO:=0
cmd+="SELECT MES,SUM(DEBE),SUM(HABER) FROM "+ASHIS2()+" "
cmd+="WHERE PERIODO='"+PERIODO()+"' AND PAIS_ORIGE='"+SUBS(OFERTAEDUCATIVA(),1,2)+"' "
cmd+="GROUP BY MES "
//MSGGET(,,@CMD)
vz2Query(@o,cmd )
For j=1 to o:nRowCount
o:Goto(j);o:Load(j)
YLABEL+=cccmes(VAL(o:FldGet(1)))+if(j=o:nRowCount,"","*")
BARSERIES+=ltrim(str(o:FldGet(2)))+if(j=o:nRowCount,"",",")
BARSERIES2+=ltrim(str(o:FldGet(3)))+if(j=o:nRowCount,"",",")
if o:FldGet(2)>MAXVALO
MAXVALO=o:FldGet(2)
endif
if o:FldGet(3)>MAXVALO
MAXVALO=o:FldGet(3)
endif

Next j
TXT+="TYPECHART=GROUPBAR"+H()
TXT+="CAPTION=FLUJOGRAMA DE PAGO DE PENSIONES "+OFERTAEDUCATIVA()+" "+PERIODO()+H()
TXT+="XMINVALUE=0"+H()
TXT+="XMAXVALUE="+LTRIM(STR(MAXVALO))+H()
TXT+="XTICKCOUNT=10"+H()
TXT+="XSUNIT=S/."+H()
TXT+="XSTEXT=Importes Emitidos"+H()
TXT+="XSUNIT2=S/."+H()
TXT+="XSTEXT2=Importes Cobrados"+H()
TXT+=YLABEL+H()
TXT+="YSTEXT=MESES"+h()
TXT+="YTICKCOUNT="+ltrim(str(o:nRowCount))+H()
TXT+=BARSERIES+h()
TXT+=BARSERIES2+h()
TXT+="LEGEND=Emitido*Cobrado"+h()

MEMOWRIT("RMC.TXT",TXT)

WINEXEC("RMC.exe")
RETU .T.

/// grafica del flujo de caja por fechas INGRESOS VZ GASYOS POR DIA
Func grafrubro
LOCAL TXT:="",J,CMD:="",o
LOCAL YLABEL:="YLABEL="
LOCAL BARSERIES:="BARSERIES=",BARSERIES2:="BARSERIES2=",MAXVALO:=0

cmd+="SELECT fchnumer,sum(debe),sum(haber) FROM "+ashis2()+" "
cmd+="WHERE CUENTA='"+CTA10()+"' AND (FCHNUMER>='"+DTOMY(_vg("RCRU_3"))+"' AND FCHNUMER<='"+DTOMY(_vg("RCRU_5"))+"' ) "
cmd+="GROUP BY FCHNUMER"
vz2Query(@o,cmd )

For j=1 to o:nRowCount
o:Goto(j);o:Load(j)
YLABEL+=dtoc(o:FldGet(1))+if(j=o:nRowCount,"","*")
BARSERIES+=ltrim(str(o:FldGet(2)))+if(j=o:nRowCount,"",",")
BARSERIES2+=ltrim(str(o:FldGet(3)))+if(j=o:nRowCount,"",",")
IF o:FldGet(2)>MAXVALO
MAXVALO:=o:FldGet(2)
ENDIF
IF o:FldGet(3)>MAXVALO
MAXVALO:=o:FldGet(3)
ENDIF

Next j
MSGALERT( MAXVALO,"MAXVALO")
TXT+="TYPECHART=GROUPBAR"+H()
TXT+="CAPTION=FLUJOGRAMA DE INGRESOS Y GASTOS POR DIA "+OFERTAEDUCATIVA()+" "+PERIODO()+H()
TXT+="XMINVALUE=0"+H()
TXT+="XMAXVALUE="+LTRIM(STR(MAXVALO))+H()
TXT+="XTICKCOUNT=10"+H()
TXT+="XSUNIT=S/."+H()
TXT+="XSTEXT=Ingresos"+H()
TXT+="XSUNIT2=S/."+H()
TXT+="XSTEXT2=Salidas"+H()
TXT+=YLABEL+H()
TXT+="YSTEXT=DIAS"+h()
TXT+="YTICKCOUNT="+ltrim(str(o:nRowCount))+H()
TXT+=BARSERIES+h()
TXT+=BARSERIES2+h()
TXT+="LEGEND=Ingresos*Salidas"+h()

MEMOWRIT("RMC.TXT",TXT)

WINEXEC("RMC.exe")
RETU .T.

Espero les sea de utilidad

Saludos

ME INTERESA FW Y XHB POR SER OPEN SOURCE

Continue the discussion