Page 1 of 1

RMCHART

Posted: Mon Apr 06, 2009 11:48 pm
by Vladimir Zorrilla
Friends

Para los que aun no migran a 32 bits hay una forma de usar el RMCHART , aqui les dejo una forma sencilla de hacerlo

http://rapidshare.com/files/218290764/RMC.ZIP.html

Consiste en un ejecutable RMC.exe que acompanado del RMCHART.dll grafica segun los
datos del archivo RMC.TXT , es decir su ejecutable debe escribir un archivo asi

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))


En el link tambien dejo el codigo fuente para ver si alguien se anima a hacer una clase
con FWH


Ah com es RMCHART.dll no requieres registro del sistema bastar con poner
el dll en la carpeta del ejecutable

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

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

Saludos