Foros del Web » Programando para Internet » ASP Clásico »

Ayuda Urgente !!!

Estas en el tema de Ayuda Urgente !!! en el foro de ASP Clásico en Foros del Web. Hola a todos...!! Como puedo generar una grafica.. (en particular de pastel..) en asp... en base a que la puedo generar.. para desplegarla en el ...
  #1 (permalink)  
Antiguo 10/06/2003, 15:25
 
Fecha de Ingreso: abril-2003
Ubicación: Villahermosa, Mexico
Mensajes: 16
Antigüedad: 22 años
Puntos: 0
Ayuda Urgente !!!

Hola a todos...!!

Como puedo generar una grafica.. (en particular de pastel..) en asp... en base a que la puedo generar..
para desplegarla en el navegador. posteriormente


Gracias... !!!
  #2 (permalink)  
Antiguo 10/06/2003, 16:21
Avatar de Mignola  
Fecha de Ingreso: noviembre-2002
Ubicación: Templo Shaolin
Mensajes: 167
Antigüedad: 22 años, 6 meses
Puntos: 1
Código PHP:
<%

'this is to be included within a page to draw out pie graphs
    

'
****************************************************************************************************************************    
'    
'    
Author:        Mark Baekdal 23 September 2002
'
'    
DrawPieGraph
'
'    
Funnily enough DrawPieGraph does just thatIt draws a Pie graph.
'    
'    
Public Properties:        Please note that all properties are set defaults when the class is initialized.
'
'                
Diameter                    read/write int
'                    Diameter is not strictly the diameter of the circle increasing this exponatially increases the
'                    
size of the circle.
'                        
'                
Shadow                        read/write boolean
'                    Draws a nice little shadow with your pie.
'
'                Title                        read/write string
'                    
Set this to title your graphYou can also include html formating if desiredie: <font size=5>
'
'                
ShowLegend                    read/write boolean
'                    Set this to false if you don't want to display the legend.
'
'                
LegendSize                    read/write int
'                    This sets the size of the images used for the legend. Personally I like 10.
'
'                HTMLinnerTableDef            read/write string
'                    
Set this to change the display of the graph.
'
'                
HTMLouterTableDef            read/write string
'                    Set this to change the display of the graph.
'
'                ShowValues                    read/write boolean
'                    
Set this to false if you don't want to display the values.
'
'                FormatValuesAsCurrency        read/write boolean
'                    
Set this to format the value as n.nn
'
'                
FontDef                        read/write string
'                    Set this to change the display of the legend characters.
'                    
'    Public Methods:
'                
AddValue                
'                        Parameters
'                                    
valuethe value which will be converted to a percentage of the overall total
'                                            to display a segment of the pie graph.
'                                    
labela title/description of the value.
'                                    color: the color to use for this segment. Must be in hex format ie:#00ffdd etc
'                        
'                        call AddValue for all the different segments that you want to display.
'
'                DeleteAllAddedValues
'                        
Parameters    none
'
'                        
call DeleteAllAddedValues to delete all the values previously addedThis is useful if you
'                        are drawing multiple pie graphs, so you can use the one object to do them all. 
'
'                Draw
'                        
Parameters    none
'
'                        
call Draw to draw out the graph.
'
'
****************************************************************************************************************************    

class 
DrawPieGraph

    
private pvDiameter
    
private pvShadow
    
private pvTitle
    
private rsPieGraphValues
    
private pvShowLegend
    
private pvLegendSize
    
private pvHTMLinnerTableDef
    
private pvHTMLouterTableDef
    
private pvShowValues
    
private pvFormatValuesAsCurrency
    
private pvFontDef
    
    
'----------------------------------------------------------------------------------------------------------------------

    private function ReturnRecordset

        dim rs
        
        set rs = CreateObject("ADODB.Recordset")
        '
value fld is currency data type (6)
        
rs.Fields.append "value",6
        
'label fld is varchar type (200), length is 50 chars long max
        rs.Fields.append "label",200,50
        '
color fld is varchar type (200), length is 20 chars longmust be hex value
        rs
.Fields.append "color",200,20
        
'open the rs ready for adding records
        rs.Open 
        
        set ReturnRecordset = rs
    end function

    '
----------------------------------------------------------------------------------------------------------------------
    
    private function 
ReturnValueWithFontTags(value)
        
ReturnValueWithFontTags pvFontDef value "</font>"
    
end function

    
'----------------------------------------------------------------------------------------------------------------------
    
    private sub Class_Initialize

        set rsPieGraphValues = ReturnRecordset
                
        pvDiameter = 100
    
        pvShadow = true

        pvTitle = ""
        
        pvShowLegend = true
        
        pvLegendSize = 20
        
        pvHTMLinnertableDef = "<table cols=""2"" border=1>"
        
        pvHTMLouterTableDef = "<table cellpadding=""12"" style=""border: 2px outset;"">"
        
        pvShowValues = true
        
        pvFormatValuesAsCurrency = false
        
        pvFontDef = "<font size=2>"
        
    end sub

    '
----------------------------------------------------------------------------------------------------------------------
    
    
'the diameter of the circle, integer
    public property let Diameter(value)
        pvDiameter=cint(value)
    end property
    '
----------------------------------------------------------------------------------------------------------------------
    public 
property get Diameter
        Diameter
=pvDiameter
    end property

    
'----------------------------------------------------------------------------------------------------------------------
    '
the shadow true/false
    
public property let Shadow(value)
        
pvShadow=cbool(value)
    
end property
    
'----------------------------------------------------------------------------------------------------------------------
    public property get Shadow
        Shadow=pvShadow
    end property

    '
----------------------------------------------------------------------------------------------------------------------
    
'the title - string value
    public property let Title(value)
        pvTitle=cstr(value)
    end property
    '
----------------------------------------------------------------------------------------------------------------------
    public 
property get Title
        Title
=pvTitle
    end property
    
    
'----------------------------------------------------------------------------------------------------------------------
    '
draw out the legend
    
public property let ShowLegend(value)
        
pvShowLegend=cbool(value)
    
end property
    
'----------------------------------------------------------------------------------------------------------------------
    public property get ShowLegend
        ShowLegend=pvShowLegend
    end property
    
    '
----------------------------------------------------------------------------------------------------------------------
    
'the legend size
    public property let LegendSize(value)
        pvLegendSize=cstr(value)
    end property
    '
----------------------------------------------------------------------------------------------------------------------
    public 
property get LegendSize
        LegendSize
=pvLegendSize
    end property
    
    
'----------------------------------------------------------------------------------------------------------------------
    '
table definition for inner table to allow customisation
    
public property let HTMLinnerTableDef(value)
        
pvHTMLinnertableDef=cstr(value)
    
end property
    
'----------------------------------------------------------------------------------------------------------------------
    public property get HTMLinnerTableDef
        HTMLinnerTableDef=pvHTMLinnertableDef
    end property
        
    '
----------------------------------------------------------------------------------------------------------------------
    
'table definition for inner table to allow customisation
    public property let HTMLouterTableDef(value)
        pvHTMLouterTableDef=cstr(value)
    end property
    '
----------------------------------------------------------------------------------------------------------------------
    public 
property get HTMLouterTableDef
        HTMLouterTableDef
=pvHTMLouterTableDef
    end property

    
'----------------------------------------------------------------------------------------------------------------------
    '
show the values or not
    
public property let ShowValues(value)
        
pvShowValues=cbool(value)
    
end property
    
'----------------------------------------------------------------------------------------------------------------------
    public property get ShowValues
        ShowValues=pvShowValues
    end property
    
    '
----------------------------------------------------------------------------------------------------------------------
    
'the size of the font for the value display
    public property let FontDef(value)
        pvFontDef=cstr(value)
    end property
    '
----------------------------------------------------------------------------------------------------------------------
    public 
property get FontDef
        FontDef
=pvFontDef
    end property
    

    
'----------------------------------------------------------------------------------------------------------------------
    '
format the values as currency or not
    
public property let FormatValuesAsCurrency(value)
        
pvFormatValuesAsCurrency=cbool(value)
    
end property
    
'----------------------------------------------------------------------------------------------------------------------
    public property get FormatValuesAsCurrency
        FormatValuesAsCurrency=pvFormatValuesAsCurrency
    end property
    

    '
----------------------------------------------------------------------------------------------------------------------
    
'add the values for the different segments of the pie chart
    public sub AddValue(value,label,color)
        with rsPieGraphValues
            .AddNew
            .Fields("value") = value
            .Fields("label") = label
            .Fields("color") = color
            .Update  
        end with
    end sub
    '
----------------------------------------------------------------------------------------------------------------------
    
    public 
sub DeleteAllAddedValues
        set rsPieGraphValues 
nothing
        set rsPieGraphValues 
ReturnRecordset
    end sub 

Última edición por Mignola; 10/06/2003 a las 16:25
  #3 (permalink)  
Antiguo 10/06/2003, 16:21
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 3 meses
Puntos: 1
Busca aqui:
http://www.hotscripts.com/ASP/Script...rts/index.html
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #4 (permalink)  
Antiguo 10/06/2003, 16:22
Avatar de Mignola  
Fecha de Ingreso: noviembre-2002
Ubicación: Templo Shaolin
Mensajes: 167
Antigüedad: 22 años, 6 meses
Puntos: 1
Sigue:
Código PHP:

    
'----------------------------------------------------------------------------------------------------------------------
    '
draw the actual graph
    
public sub Draw
        
        Dim startPoint
endPointsumOfValuespercentagei
        Dim strTitle
magicNumber
        dim Height
Width
    
        
if rsPieGraphValues.EOF and rsPieGraphValues.BOF then exit sub
        
        magicNumber 
23592960    ' It's mysticalmagicalkinda nutty even
        startPoint 
5850000    ' this setting is approximately 12:00 noon
        strTitle=pvTitle
        
        '
height to width ratio is h:0.75:1
        
'we work out the height and width from the diameter given
        '
the formula is diameter=100 therefore height=375ptwidth=500pt
        Height 
round(pvDiameter 3.75,0)
        
Width  round(pvDiameter 5,0)
        
        
with response
        
        
' GET SUM OF VALUES ****************
        rsPieGraphValues.MoveFirst 
        do while not rsPieGraphValues.EOF 
            sumOfValues = sumOfValues + rsPieGraphValues("value").Value 
            rsPieGraphValues.MoveNext 
        loop
        if sumOfValues=0 then exit sub
        
        ' 
VML tags ***********************************
        .
Write "<xml:namespace prefix=""v""/>"
        
.Write "<object id=""VMLRender"" classid=""CLSID:10072CEC-8CC1-11D1-986E-00A0C955B42E"" width=""0"" height=""0""></object>"
        
.Write "<style> v\:* {behavior=url(#VMLRender)}</style>"
        ' ********************************************
        
        ' 
********************************************
        
' Start Outer Table //
        .Write pvHTMLouterTableDef & vbCrLf 
        .Write "<tr>" & vbCrLf 
        .Write "<td>" & vbCrLf 
        ' 
********************************************
        
        
' ********************************************
        ' 
Start Inner Table //
        
.Write pvHTMLinnertableDef vbCrLf
        
if pvTitle<>"" then
            
.Write "<tr align=""center"" >" vbCrLf
            
' Create Title //
            if pvShowLegend then
                .Write "<td colspan=""2""><b>" & strTitle & "</b><br><br></td>" & vbCrLf
            else
                .Write "<td><b>" & strTitle & "</b><br><br></td>" & vbCrLf
            end if
            .Write "</tr>" & vbCrLf
        end if
        ' 
********************************************
        
        
' Start Building Pie //
        .Write "<tr>" & vbCrLf
        .Write "<td>" & vbCrLf
        '
VML tags
        
.Write "<div style=""margin-top=0pt"">" vbCrLf
        
.Write "<v:group style=""height=" Height "pt; width=" Width "pt"" coordsize=""4320,3240"">" vbCrLf
        
        

        
' BUILD THE SHADOW ***************
        if pvShadow then
            .Write("<v:shape style='
position:relativewidth:4320height:3240' fillcolor=#C0C0C0 path=""M 790 760 AE 790 760 707 707 " & startPoint & " " & magicNumber & " X E"">" & vbCrLf)
            .Write("<v:stroke on=""False""/>" & vbCrLf)
            .Write("</v:shape>" & vbCrLf)
        end if

        ' 
BUILD THE PIE ********************
        
rsPieGraphValues.MoveFirst 
        
do while not rsPieGraphValues.EOF 
            percentage 
FormatNumber(rsPieGraphValues("value").Value sumOfValues3)
            
endPoint magicNumber percentage
            endPoint 
FormatNumber(endPoint0)
            
endPoint Fix(endPoint)
            .
Write("<v:shape style='width:4320; height:3240' strokeweight=0.5pt fillcolor=" rsPieGraphValues("color").Value " path=""M 750 720 AE 750 720 707 707 " startPoint " " endPoint " X E""/>" vbCrLf)
            
startPoint startPoint endPoint
            rsPieGraphValues
.MoveNext 
        loop

        
' VML tag
        .Write("</v:group></div>" & vbCrLf)
        .Write("</td>" & vbCrLf)
        ' 
End Build Pie ******************************


        
' ********************************************
        ' 
Start Legend Table //
        
if pvShowLegend then
            
.Write("<td>" vbCrLf)
            .
Write("<table bordercolor=""white"" border=""1"" cellpadding=""2"">" vbCrLf)
    
            
' Step 6)    BUILD THE LEGEND
            rsPieGraphValues.MoveFirst 
            do while not rsPieGraphValues.EOF 
                .Write("<tr>" & vbCrLf)
                ' 
Color //
                
.Write "<td><img src='../images/1pixel.gif' border=1 width='" pvLegendSize "' height='" pvLegendSize "' style='background:" rsPieGraphValues("color").Value ";'/></td>"
                ' Category    //
                .Write("<td width=""75"">" & vbCrLf)
                .Write ReturnValueWithFontTags(rsPieGraphValues("label").Value) & vbCrLf
                .Write("</td>" & vbCrLf)
                ' 
Value or Percent //
                
if pvShowValues then
                    
.Write("<td align=""right"">" vbCrLf)
                    if 
pvFormatValuesAsCurrency then
                        
.Write ReturnValueWithFontTags(formatnumber(rsPieGraphValues("value").Value,2,true,false,false)) & vbCrLf
                    
else
                        .
Write ReturnValueWithFontTags(rsPieGraphValues("value").Value) & vbCrLf
                    end 
if
                    .
Write("</td>" vbCrLf)
                
end if
                .
Write("</tr>" vbCrLf)
                
rsPieGraphValues.MoveNext 
            loop
                
            
' End Legend Table ***************************
            .Write("</table>" & vbCrLf)
            .Write("</td>" & vbCrLf)
        end if
    
        ' 
End Inner Table ****************************
        .
Write("</tr>" vbCrLf)
        .
Write("</table>" vbCrLf)
    
        
' End Outer Table ****************************
        .Write("</td>" & vbCrLf)
        .Write("</tr>" & vbCrlf)
        .Write("</table>" & vbCrLf)
    
        end with
        
    end sub
    '
----------------------------------------------------------------------------------------------------------------------
    
end class    
    
%>


<%

  
Dim oGraph
  
  Set oGraph 
= New DrawPieGraph
  With oGraph
    
.Diameter 50
.Shadow True
    
.Title "<font face='Arial' size=3><b>This is the title</b></font>"
   
    
.ShowLegend True
    
.LegendSize 8
    
.ShowValues True

.FontDef "<font face='Arial' size=2>"
    
.HTMLouterTableDef "<table border=2 cellpadding=1 cellspacing=0>"
    
.HTMLinnerTableDef "<table border=1 cellspacing=0 cellpadding=3>"
    
   
.AddValue 100"label1""red"
    
.AddValue 200"label2""green"
    
.AddValue 30"label3""blue"
    
.AddValue 50"label4""yellow"
    
.AddValue 5"label5""gray"
    
   
 
.Draw
 
End With

  Set oGraph 
Nothing
  
%> 

Última edición por Mignola; 10/06/2003 a las 16:26
  #5 (permalink)  
Antiguo 10/06/2003, 16:28
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
sigue? =)
__________________
...___...
  #6 (permalink)  
Antiguo 10/06/2003, 17:36
Avatar de Mignola  
Fecha de Ingreso: noviembre-2002
Ubicación: Templo Shaolin
Mensajes: 167
Antigüedad: 22 años, 6 meses
Puntos: 1
ein?

vamos q se pongan los dos cachitos de codigo juntitos... es q se me adelanto maestro y puso el mensaje por el medio.. :)
  #7 (permalink)  
Antiguo 10/06/2003, 19:16
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 3 meses
Puntos: 1
Buffff, podias haber puesto un enlace
Espero que funcione...
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #8 (permalink)  
Antiguo 11/06/2003, 05:31
Avatar de Mignola  
Fecha de Ingreso: noviembre-2002
Ubicación: Templo Shaolin
Mensajes: 167
Antigüedad: 22 años, 6 meses
Puntos: 1
Lo que pasa es que no se de donde lo saque... sorry.

Lo bueno es que si que funciona... eso si, poniendo los dos mensajes oejaditos y seguiditos en la misma page.

Hasta luek!!


P.D: Me encanta poner emoticonitos...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:06.