graficos estilos tortas.

Post Reply
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

graficos estilos tortas.

Post by goosfancito »

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

gracias.
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
User avatar
cmsoft
Posts: 653
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: graficos estilos tortas.

Post by cmsoft »

Puedes usar la clase TGraph
Ejemplo:

Code: Select all

#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"
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

Re: graficos estilos tortas.

Post by goosfancito »

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: Select all

#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"
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
Vladimir Zorrilla
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU

Re: graficos estilos tortas.

Post by Vladimir Zorrilla »

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
MGA
Posts: 1219
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá
Contact:

Re: graficos estilos tortas.

Post by MGA »

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

ubiratan@sgsistemas.com.br
ubiratanmga@gmail.com

FWH17.04
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

Re: graficos estilos tortas.

Post by goosfancito »

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
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Re: graficos estilos tortas.

Post by anserkk »

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
User avatar
jose_murugosa
Posts: 943
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: graficos estilos tortas.

Post by jose_murugosa »

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
FWH + Harbour + Bcc7. Una seda!
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: graficos estilos tortas.

Post by FranciscoA »

Vladimir:
Me sumo a la solicitud. Mi correo es f.alegria.p@gmail.com
Gracias
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
acuellar
Posts: 1312
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: graficos estilos tortas.

Post by acuellar »

Vladimir el mio es:

adhemarcuellar@hotmail.com

Se le agradece Mucho

Saludos

Adhemar
Saludos,

Adhemar C.
User avatar
lubin
Posts: 404
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

Re: graficos estilos tortas.

Post by lubin »

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
MGA
Posts: 1219
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá
Contact:

Re: graficos estilos tortas.

Post by MGA »

Vladimir, eu não recebi...

Pode enviar-me?

ubiratan@sgsistemas.com.br
ubiratanmga@gmail.com

FWH17.04
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
Vladimir Zorrilla
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU

Re: graficos estilos tortas.

Post by Vladimir Zorrilla »

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=AR*BR*CA*CH*CN*CO*CZ*DE*ES*FR*GB*HU*IN*IS*IT*JP*KR*MX*MY*PR*SG*TH*TR*TW*US
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=AR*BR*CA*CH*CN*CO*CZ*DE*ES*FR*GB*HU*IN*IS*IT*JP*KR*MX*MY*PR*SG*TH*TR*TW*US
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._='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._='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=Matriculados*Retirados*Activos"+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=Asistencias*Tardanzas*Faltas"+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
Post Reply