TGraph 2.0 de Alfredo Arteaga
Posted: Sat Jun 30, 2007 3:14 pm
Uso la excelente Clase TGraph 2.0 y tengo la siguiente duda,
tengo una funcion en mi sistema que se encarga de mostrar una
grafica en la cual despliego el importe de ventas de cada uno
de los días del més, mi duda es..
Como puedo optimizar el uso del espacio a los lados de la grafica
para poder ver las barras un poco más amplias, es decir, al dibujar
todas las barras que representan la grafica quedan espacios vacios a
la izquierda y ala derecha, con lo cual, entre más barras se agregen,
más delgadas y más amontonadas se ven...
http://img525.imageshack.us/img525/152/tgraphmc8.jpg
La función pera las graficas es la siguiente..
#Include "FIVEWIN.CH"
#Include "TGRAPH.CH"
STATIC oGraph, oGlfGraph, aSerie, nTotal
STATIC aSers, aPers, nGraph, aValues, aVals
STATIC cFile, aItem, lInit, nRangoG
//----------------------------------------------------------------------------//
FUNCTION GrafVent()
nRangoG:= DAY(UltimoDia(DATE())) -> Para saber cuantos días tiene el mes
aVals:= ARRAY(nRangoG)
AFILL(aVals,0)
DEFINE DIALOG oGlfGraph RESOURCE "GRAFICA" TITLE "Estadisticas de Ventas del Mes"
REDEFINE GRAPH oGraph ID 100 OF oGlfGraph
oGraph:aYVals := {}
oGraph:cPicture := "$ 999"
oGraph:cTitX := "Importe de Ventas"
oGraph:cTitY := "Procesos"
oGraph:cTitle := "GRAFICA DE PRUEBA"
oGraph:cSubTit := "Subtitulo"
oGraph:lLegends := .T.
oGraph:lViewVal := .T.
oGraph:l3D := .T.
oGraph:lXVal := .T.
oGraph:lYVal := .T.
oGraph:lXGrid := .T.
oGraph:lYGrid := .T.
oGraph:lPopUp := .T.
oGraph:lDotted := .T.
oGraph:lTitle := .T.
oGraph:lcTitle := .T.
oGraph:lBorders := .T.
oGraph:lBordLeg := .T.
nGraph:= 1
oGraph:nPenWidth:= 2
oGraph:nXRanges := 25
oGraph:nBarD := 15
oGraph:nBarSep := 1
oGraph:nClrPane := CLR_WHITE
oGraph:nClrBack := CLR_HGRAY
oGraph:nClrGrid := CLR_BLUE
oGraph:nType := GRAPH_TYPE_BAR
oGraph:nTRight := 2
FOR N:= 1 TO nRangoG
aVals[N] := ImpoVenta(STR(N))
oGraph:AddSerie({aVals[N]}, "Día "+ALLTRIM(STR(N)), RandomRGB())
NEXT
oGlfGraph:lHelpIcon:= .F.
ACTIVATE DIALOG oGlfGraph CENTERED ON PAINT (oGraph:Refresh(.T.))
RETURN nil
Agradeciendo por su pronta respuesta...
xharbour + Fivewin 2.6[/img]
tengo una funcion en mi sistema que se encarga de mostrar una
grafica en la cual despliego el importe de ventas de cada uno
de los días del més, mi duda es..
Como puedo optimizar el uso del espacio a los lados de la grafica
para poder ver las barras un poco más amplias, es decir, al dibujar
todas las barras que representan la grafica quedan espacios vacios a
la izquierda y ala derecha, con lo cual, entre más barras se agregen,
más delgadas y más amontonadas se ven...
http://img525.imageshack.us/img525/152/tgraphmc8.jpg
La función pera las graficas es la siguiente..
#Include "FIVEWIN.CH"
#Include "TGRAPH.CH"
STATIC oGraph, oGlfGraph, aSerie, nTotal
STATIC aSers, aPers, nGraph, aValues, aVals
STATIC cFile, aItem, lInit, nRangoG
//----------------------------------------------------------------------------//
FUNCTION GrafVent()
nRangoG:= DAY(UltimoDia(DATE())) -> Para saber cuantos días tiene el mes
aVals:= ARRAY(nRangoG)
AFILL(aVals,0)
DEFINE DIALOG oGlfGraph RESOURCE "GRAFICA" TITLE "Estadisticas de Ventas del Mes"
REDEFINE GRAPH oGraph ID 100 OF oGlfGraph
oGraph:aYVals := {}
oGraph:cPicture := "$ 999"
oGraph:cTitX := "Importe de Ventas"
oGraph:cTitY := "Procesos"
oGraph:cTitle := "GRAFICA DE PRUEBA"
oGraph:cSubTit := "Subtitulo"
oGraph:lLegends := .T.
oGraph:lViewVal := .T.
oGraph:l3D := .T.
oGraph:lXVal := .T.
oGraph:lYVal := .T.
oGraph:lXGrid := .T.
oGraph:lYGrid := .T.
oGraph:lPopUp := .T.
oGraph:lDotted := .T.
oGraph:lTitle := .T.
oGraph:lcTitle := .T.
oGraph:lBorders := .T.
oGraph:lBordLeg := .T.
nGraph:= 1
oGraph:nPenWidth:= 2
oGraph:nXRanges := 25
oGraph:nBarD := 15
oGraph:nBarSep := 1
oGraph:nClrPane := CLR_WHITE
oGraph:nClrBack := CLR_HGRAY
oGraph:nClrGrid := CLR_BLUE
oGraph:nType := GRAPH_TYPE_BAR
oGraph:nTRight := 2
FOR N:= 1 TO nRangoG
aVals[N] := ImpoVenta(STR(N))
oGraph:AddSerie({aVals[N]}, "Día "+ALLTRIM(STR(N)), RandomRGB())
NEXT
oGlfGraph:lHelpIcon:= .F.
ACTIVATE DIALOG oGlfGraph CENTERED ON PAINT (oGraph:Refresh(.T.))
RETURN nil
Agradeciendo por su pronta respuesta...
xharbour + Fivewin 2.6[/img]