12 Dezembro 2017 Ter

2 visitantes e 0 Usuários online

  Indique Download Forums Links Polita de Privacidade
PC-SOS :: Programação :: ASP - Criação de Gráficos em tempo real usando uma Applet
PC-SOS
Notícias
Anúncios
Estatística
FAQ
Usuários
Usuários Online
Conteúdo
1-Política de Privacidade
Artigos
Celular
Flash
Linux
Discos Rígidos
Hardware
Internet
Modem
MSOffice
MSOffice - Excel
Multimedia
Photoshop
Programação
Rede
Segurança
Sistema Operacional
Software
Software p/ PenDrive
Termos & Siglas
WEB
Windows
Xoops
Área de Usuário

Usuário:
Senha:
Lembrar!
Esqueci minha senha
Registrar

Pesquisa Avançada

Patrocinadores

 


Teste de Velocidade

Desenvolvido por

 

 

 

2.01.2009
Como configurar o Windows para aceitar 8GB de RAM
3.12.2008
Quando Pen Drive USB Não Aparece No Windows
15.02.2008
BBS, sistema que foi o antecessor da internet
26.11.2007
Firefox 3.0
5.10.2007
Hitachi trabalha em Blu-Ray de 100GB e 200GB
24.09.2007
Novo supercomputador entra em operação no Brasil
24.09.2007
IBM oferece software gratuito de edição de texto
19.09.2007
Processador com 80 NÚCLEOS
19.09.2007
IBM terá suíte de escritório gratuita
17.09.2007
Clone do Office online, e grátis

ASP - Criação de Gráficos em tempo real usando uma Applet
24.04.2005

Estou algum tempo com esta solução a qual julgo ser uma boa base para quem não tem sites com mais de 5.000 acessos únicos diàrios(sessões). É a criação de gráficos usando uma applet que é carregada para o lado do cliente.


A BASE DE DADOS :
Esta é do mais básico possível, servindo apenas de base para a informação que queremos usar de forma a gerarmos gràficos com um mínimo de aspecto estatístico possível.
O ficheiro da base de dados chama-se dados.mdb, e com otem vindo a ser habitual é feito em MSAccess devido à sua portabilidade e facilidade de manuseamento.
Existe uma única tabela com a seguinte estrutura :

Tabela : dados

id_dados

AutoNumber

quote_dados

Text

valor_dados

Number

datahora_dados

Date/Time

O auto-number uso sempre para que no futuro tenha garantido um código único para todos os meus registos, o quote vai funcionar como um código, referente neste exemplo, a uma linguagem de programação internet, como as ASP, PHP, PERL etc. O valor serà um numero que pode ser olhado como uma 'pontuação' que damos numa determinada hora à linguagem escolhida, e por isso termos o campo datahora_dados. Claro que o ideal era o campo quote_dados ser uma ligação a outra tabela onde estão todos os tipos de quote, mas neste momento a ideia é demonstrar o uso da Applet de gráficos.


Temos então 3 ficheiros, um é o Chart.jar que contém as classes necessàrias para a geração dos gráficos, o dados.mdb que jà referi, e o ficheiro onde se passa toda a programação ASP em graficos.asp.  

Queria frisar que o Applet gráfico não é gratuito, mas que se pode usar mesmo sem pagar, a diferença é que se não pagar uma licença vai ter um pequeno quadrado amarelo no fundo de cada gráfico que dispara um pequeno banner sobre a empresa do mesmo onde està o link deste produto www.objectplanet.com/EasyCharts/ .

Neste artigo estou só a usar tipo 30% das potencialidades desta Applet, cuja não é muito cara se tiver a criar um site comercial, onde a diferença por este produto não farà o seu cliente recusar um trabalho seu.

Podemos ver desde jà o resultado deste artigo...

... e agora podemos então passar a explicar o código que foi criado para o efeito.

ficheiro : graficos.ASP

<%
'uso o explicit para que o código esteja mais bem organizado
'e para que não comece a criar variàveis que depois deixam de
'ser usadas, e comecem a interferir na performance do site
Option Explicit
'definimos a variável para a conecção à base de dados
Dim Conn
'inicializamos o recordset para puxarmos a informação da BD
Dim RS
' a vari`vel que vai guardar as declarações de SQL a usar
Dim SQLStmt
'esta variàvel vai servir de suporte para guardar os dados a usar
Dim os_dados
'definimos Conn como um objecto para uso com a BD
Set Conn=Server.CreateObject("ADODB.Connection")
'fazemos a conecção à BDConn.Open "PROVIDER=MSDASQL;" & _
"DRIVER={Microsoft Access Driver (*.mdb)}; " & _
"DBQ=" & server.mappath("dados.mdb")
'definimos outro objecto para o Recordset
Set RS = Server.CreateObject("ADODB.Recordset")

'esta primeira função serve para criar uma espécie de array'
'com todos os valores de um quote
Function sacar_dados(quote)
'inicializamos a variável os_dados como vazia pois esta função serà
'usada mais que uma vez
os_dados = ""
'criamos a declaração de SQL
SQLStmt = "SELECT * FROM dados where quote_dados='" & quote & "'"
SQLStmt = SQLStmt & SQLStmt & " ORDER BY datahora_dados"
'executamos a declaração para obtermos a informação pretendida
'da nossa base de dados
Set Rs=Conn.Execute(SQLStmt)
'fazemos o loop para agarrarmos em todas as linhas devolvidas
While NOT RS.EOF
construimos o 'array' de valores do quote
os_dados = os_dados & RS("valor_dados") & ","
RS.MoveNext
Wend
'aqui retiramos a última virgula de todo o array que fica por defeito
os_dados = Left(os_dados,Len(os_dados)-1)
'fechamos o Recordset
RS.Close
'devolvemos a informação obtida e tratada
sacar_dados = os_dados
End Function

'esta outra função serve para gráficos que usam um só valor
Function sacar_totais(quote)
'a declaração de SQL
SQLStmt = "SELECT SUM(valor_dados) AS total FROM dados where "
SQLStmt = SQLStmt & "quote_dados='" & quote & "'"
Set Rs=Conn.Execute(SQLStmt)
'se for devolvido algum valor vamos buscá-lo
If NOT RS.EOF then
sacar_totais = RS("total")
End If
RS.Close
End Function

'Aqui vamos criar o código HTML que carrega a Applet com os dados
'com os dados que carregamos da Base de Dados
'pelo resultado podemos verificar que se trata de um gráfico de linhas


response.write "<APPLET code=""com.objectplanet.chart.LineChartApplet"" archive=""chart.jar"" width=250 height=180 VIEWASTEXT>" & VbNewLine
response.write "<param name=""seriesCount"" value=5>" & VbNewLine
response.write "<PARAM name=seriesLabels value=""ASP, JSP, PHP, PERL, CF"">" & VbNewLine


'vamos usar a função sacar_dados() para obtermos os valores de
'cada quote/linguagem

response.write "<param name=""series0_values"" value=""" & sacar_dados("ASP") & """>" & VbNewLine
response.write "<param name=""series1_values"" value=""" & sacar_dados("JSP") & """>" & VbNewLine
response.write "<param name=""series2_values"" value=""" & sacar_dados("PHP") & """>" & VbNewLine
response.write "<param name=""series3_values"" value=""" & sacar_dados("PERL") & """>" & VbNewLine
response.write "<param name=""series4_values"" value=""" & sacar_dados("CF") & """>" & VbNewLine


'podemos na Applet definir o alcance màximo dos valores
response.write "<PARAM name=range value=60>" & VbNewLine


'a unidade de medida para o gráfico também é costumizável
response.write "<PARAM name=rangeDecimalCount value=1>" & VbNewLine


'podemos indicar o título da imagem
response.write "<PARAM name=title value=""Grafico de Linhas"">" & VbNewLine
response.write "<PARAM name=titleOn value=""true"">" & VbNewLine
response.write "<PARAM name=legendOn value=true>" & VbNewLine
response.write "<PARAM name=legendPosition value=right>" & VbNewLine
response.write "<PARAM name=valueLinesOn value=true>" & VbNewLine
response.write "<PARAM name=sampleLabelsOn value=true>" & VbNewLine


'definir a cor de fundo é uma das opções possíveis
response.write "<PARAM name=background value=lightgray>" & VbNewLine
response.write "<PARAM name=foreground value=black>" & VbNewLine
response.write "<PARAM name=chartBackground value=white>" & VbNewLine
response.write "<PARAM name=chartForeground value=black>" & VbNewLine
response.write "<PARAM name=valueLinesColor value=lightgray>" & VbNewLine

'definir as cores das linhas do gráfico são possíveis com o método
'sampleColors
response.write "<PARAM name=sampleColors value=""orange, red, magenta, blue, green"">" & VbNewLine
response.write "</applet>" & VbNewLine

'depois do gráfico de linhas vamos criar um gráfico de barras em 3D
'jà não construimos um arrai de valores e por isso só nos interessa
~valores totais para a construção do mesmo


response.write "<APPLET code=""com.objectplanet.chart.BarChartApplet"" archive=""chart.jar"" width=250 height=180 VIEWASTEXT>" & VbNewLine
response.write "<param name=sampleCount value=5>" & VbNewLine

'os valores a ir buscar aqui são jà totais devido ao tipo de gráfico, e
'por isso jà não usamos a mesma função.


response.write "<PARAM name=sampleValues value=""" & sacar_totais("ASP") & ", " & sacar_totais("JSP") & ", " & sacar_totais("PHP") & ", " & sacar_totais("PERL") & ", " & sacar_totais("CF") & """>" & VbNewLine
response.write "<PARAM name=sampleLabels value=""ASP, JSP, PHP, PERL, CF"">" & VbNewLine
response.write "<PARAM name=range value=500>" & VbNewLine
response.write "<PARAM name=title value=""Grafico de Barras 3D"">" & VbNewLine
response.write "<PARAM name=range value=500>" & VbNewLine
response.write "<PARAM name=lowerRange value=0>" & VbNewLine
response.write "<PARAM name=sampleDecimalCount value=1>" & VbNewLine
response.write "<PARAM name=rangeDecimalCount value=1>" & VbNewLine
response.write "<PARAM name=titleOn value=true>" & VbNewLine
response.write "<PARAM name=legendOn value=true>" & VbNewLine
response.write "<PARAM name=legendPosition value=right>" & VbNewLine
response.write "<PARAM name=valueLabelsOn value=true>" & VbNewLine
response.write "<PARAM name=valueLinesOn value=true>" & VbNewLine
response.write "<PARAM name=multiColorOn value=true>" & VbNewLine
response.write "<PARAM name=barLabelsOn value=true>" & VbNewLine
response.write "<PARAM name=barAlignment value=vertical>" & VbNewLine
response.write "<PARAM name=3DModeOn value=true>" & VbNewLine
response.write "<PARAM name=frameOn value=false>" & VbNewLine
response.write "<PARAM name=background value=""200,200,200"">" & VbNewLine
response.write "<PARAM name=foreground value=black>" & VbNewLine
response.write "<PARAM name=chartBackground value=""#ffffff"">" & VbNewLine
response.write "<PARAM name=chartForeground value=black>" & VbNewLine
response.write "<PARAM name=sampleColors value=""red, green, blue, orange, gray"">" & VbNewLine
response.write "</APPLET>" & VbNewLine


'este último gráfico tipo ´queijo' é muito idêntico ao de barras 3D


response.write "<APPLET code=""com.objectplanet.chart.PieChartApplet"" archive=""chart.jar"" width=250 height=180 VIEWASTEXT>" & VbNewLine
response.write "<param name=sampleCount value=5>" & VbNewLine
response.write "<PARAM name=sampleValues value=""" & sacar_totais("ASP") & ", " & sacar_totais("JSP") & ", " & sacar_totais("PHP") & ", " & sacar_totais("PERL") & ", " & sacar_totais("CF") & """>" & VbNewLine
response.write "<PARAM name=sampleLabels value=""ASP, JSP, PHP, PERL, CF"">" & VbNewLine
response.write "<PARAM name=range value=500>" & VbNewLine
response.write "<PARAM name=title value=""Grafico de Barras 3D"">" & VbNewLine
response.write "<PARAM name=range value=500>" & VbNewLine
response.write "<PARAM name=lowerRange value=0>" & VbNewLine
response.write "<PARAM name=sampleDecimalCount value=1>" & VbNewLine
response.write "<PARAM name=rangeDecimalCount value=1>" & VbNewLine
response.write "<PARAM name=titleOn value=true>" & VbNewLine
response.write "<PARAM name=legendOn value=true>" & VbNewLine
response.write "<PARAM name=legendPosition value=right>" & VbNewLine
response.write "<PARAM name=valueLabelsOn value=true>" & VbNewLine
response.write "<PARAM name=valueLinesOn value=true>" & VbNewLine
response.write "<PARAM name=multiColorOn value=true>" & VbNewLine
response.write "<PARAM name=barLabelsOn value=true>" & VbNewLine
response.write "<PARAM name=barAlignment value=vertical>" & VbNewLine
response.write "<PARAM name=3DModeOn value=true>" & VbNewLine
response.write "<PARAM name=frameOn value=false>" & VbNewLine
response.write "<PARAM name=background value=""200,200,200"">" & VbNewLine
response.write "<PARAM name=foreground value=black>" & VbNewLine
response.write "<PARAM name=chartBackground value=""#ffffff"">" & VbNewLine
response.write "<PARAM name=chartForeground value=black>" & VbNewLine
response.write "<PARAM name=sampleColors value=""red, green, blue, orange, gray"">" & VbNewLine
response.write "</APPLET>" & VbNewLine
%>

As hipóteses desta Applet são imensas, vale a pena ir ver ao site da mesma, outra coisa que pode fazer desde jà quando tiver este código a correr, é clicar com o rato sobre os títulos das linguagens que estão nas legendas, um a um e ver as alterações que acontecem.

Faça Download de este exemplo AQUI

Boa Programação!...

Escrito por João Vieira

João Vieira é autor do livro "Programação Web com Active Server Pages", consultor B2B, e web developer multi-plataforma.

PC-SOS
Hits: 2000
Programação >>
 Ruim  Bom 
Comentário de Usuário: Nosso usuário podem revisar conteúdos

 

 

 

     

Número de visitas deste fev/2005 - Número de consultas ao site:

  © Copyright 2005 PC SOS. All Rights Reserved. contato@robweb.com.br