graficos estilos tortas.

graficos estilos tortas.

Postby goosfancito » 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/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: graficos estilos tortas.

Postby cmsoft » Wed Jun 03, 2009 1:03 am

Puedes usar la clase TGraph
Ejemplo:
Code: Select all  Expand view

#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
cmsoft
 
Posts: 1189
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: graficos estilos tortas.

Postby goosfancito » 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: Select all  Expand view

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

Re: graficos estilos tortas.

Postby Vladimir Zorrilla » Wed Jun 03, 2009 3: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
Vladimir Zorrilla
 
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU

Re: graficos estilos tortas.

Postby MGA » Wed Jun 03, 2009 4:57 pm

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

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

FWH18.02
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1234
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: graficos estilos tortas.

Postby goosfancito » Wed Jun 03, 2009 9: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/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: graficos estilos tortas.

Postby anserkk » Thu Jun 04, 2009 7: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
User avatar
anserkk
 
Posts: 1329
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Re: graficos estilos tortas.

Postby jose_murugosa » 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
FWH + Harbour + Bcc7. Una seda!
User avatar
jose_murugosa
 
Posts: 1144
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: graficos estilos tortas.

Postby FranciscoA » 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
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: graficos estilos tortas.

Postby acuellar » Thu Jun 04, 2009 1:11 pm

Vladimir el mio es:

adhemarcuellar@hotmail.com

Se le agradece Mucho

Saludos

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1593
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: graficos estilos tortas.

Postby lubin » Thu Jun 04, 2009 7: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
User avatar
lubin
 
Posts: 439
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru

Re: graficos estilos tortas.

Postby MGA » Fri Jun 05, 2009 9:00 pm

Vladimir, eu não recebi...

Pode enviar-me?

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

FWH18.02
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1234
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: graficos estilos tortas.

Postby Vladimir Zorrilla » 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=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
Vladimir Zorrilla
 
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 90 guests