Fernando Sena - Programação & Tecnologia Digital
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Procurar
 
 

Resultados por:
 


Rechercher Pesquisa avançada

Palavras-chaves

Últimos assuntos
» Wii ganha versão de 'Street Fighter II' para Mega Drive com modo on-line
ASP – Gráficos de barras Icon_minitime1Qua 16 Nov - 16:14 por fernandosena

» Segurança e redes sem fio
ASP – Gráficos de barras Icon_minitime1Qua 16 Nov - 16:11 por fernandosena

» Nokia lançará tablet com Windows 8 em junho de 2012, diz executivo
ASP – Gráficos de barras Icon_minitime1Qua 16 Nov - 16:05 por fernandosena

» Empresa registra aumento de 472% no número de vírus para Android
ASP – Gráficos de barras Icon_minitime1Qua 16 Nov - 16:03 por fernandosena

» YouTube investe US$ 100 milhões em vídeos
ASP – Gráficos de barras Icon_minitime1Sex 7 Out - 8:34 por fernandosena

» Todos os títulos futuros da Microsoft devem trazer suporte para o Kinect
ASP – Gráficos de barras Icon_minitime1Sex 7 Out - 8:25 por fernandosena

» Resident Evil 5 - PC
ASP – Gráficos de barras Icon_minitime1Sex 7 Out - 8:22 por fernandosena

» Novo trailer de Assassin’s Creed Revelations é lançado
ASP – Gráficos de barras Icon_minitime1Sex 7 Out - 8:12 por fernandosena

» Biostar apresenta nova placa-mãe que permite acesso remoto via smartphones
ASP – Gráficos de barras Icon_minitime1Sex 7 Out - 8:08 por fernandosena

setembro 2024
SegTerQuaQuiSexSábDom
      1
2345678
9101112131415
16171819202122
23242526272829
30      

Calendário Calendário

Blog
Fórum grátis


ASP – Gráficos de barras

Ir para baixo

ASP – Gráficos de barras Empty ASP – Gráficos de barras

Mensagem por fernandosena Sex 2 Set - 13:18

Mais uma técnica para mostrar gráficos de barras usando apenas HTML. Ele também garante que ele irá exibir corretamente para qualquer navegador que suporta tabelas.

Primeiro vou apresentar um gráfico de barras estáticas, com pontos de dados a serem plotado, podemos recuperar as informações de um banco de dados para preencher dinamicamente o gráfico de barras.

Vamos iniciar um exemplo mais simples de duas:

<%@ %>
<% Option Explicit %>

Usando o Option Explicit, para otimizar o código, essa instrução força a declaração (com Dim, Private, Public ou ReDim) de todas as variáveis usadas no script, antes de serem utilizadas.
Deve ser colocado no script antes de qualquer outra instrução. Qualquer tentativa de usar uma variável não declarada ocasionará um erro. A declaração de variáveis antes de usá-las faz com que o script seja executado mais rapidamente.

Agora, queremos definir algumas constantes que irá afetar a forma como o gráfico é exibido. Essas constantes são a altura do gráfico em pixels, a largura do gráfico em pixels, e o nome da imagem que será as barras do gráfico. Neste exemplo, foi uma criado uma imagem de 20 pixels de largura e 5 pixels de altura, chamada bluebar.gif, voê pode criar uma barra de dimensão semelhante, com a cor que desejar.

<%
‘Quantos pixels de altura / largura queremos que o nosso gráfico de barras
Const graphHeight = 300
Const graphWidth = 450

'caminho da imagem bar
Const barImage = "/images/bluebar.gif"

Agora estamos prontos para escrever a nossa sub-rotina que irá exibir o gráfico de barras. A sub-rotina é chamada BarChart e leva quatro parâmetros:

- data: um array de dimensão de todos os pontos de dados (começa em 0)
- labels: um array de dimensão de todas as etiquetas para as barras (começa em 0, deve ser do mesmo tamanho que a matriz de dados)
- title: uma string; o título que deseja na barra do gráfico
- axislabel – uma string; o título que você deseja para suas etiquetas

Basicamente, estamos indo para exibir uma tabela que tem n +1 colunas, onde n é igual array. Em cada coluna, exceto para a primeira, vamos fazer uma <IMG SRC…> com uma altura proporcional ao valor do datapoint atual no array.

sub BarChart(data, labels, title, axislabel)

'Exibe título(heading)

Response.Write(“<TABLE CELLSPACING=0 CELLPADDING=1 BORDER=0″)
Response.Write(” WIDTH=” & graphWidth & “>” & chr(13))
Response.Write(“<TR><TH COLSPAN=” & UBound(data) – LBound(data) + 2)
Response.Write(“>”)
Response.Write(“<FONT SIZE=+2>” & title & “</FONT></TH></TR>”
Response.Write(“<TR><TD VALIGN=TOP ALIGN=RIGHT>” & chr(13))

‘Encontrar o maior valor

Dim hi, low

hi = data(LBound(data))
Dim i
for i = LBound(data) to UBound(data)
if data(i) > hi then hi = data(i)
next

‘Exibe o maior valor no topo do gráfico

Response.Write(hi & “</TD>”)
Dim widthpercent
widthpercent = CInt((1 / (UBound(data) – LBound(data) + 1)) * 100)
For i = LBound(data) to UBound(data)
Response.Write(” <TD VALIGN=BOTTOM ROWSPAN=2 WIDTH=”
Response.Write(widthpercent & “% >” & chr(13))
Response.Write(“ <IMG SRC=”"” & barImage & “”" WIDTH=100% “)
Response.Write(“HEIGHT=” & CInt(data(i)/hi * graphHeight) & “>”)
Response.Write(chr(13))
Response.Write(” </TD>” & chr(13))
Next

Response.Write(“</TR>”)
Response.Write(“<TR><TD VALIGN=BOTTOM ALIGN=RIGH>>0</TD></TR>”)

‘rodapé /labels

Response.Write(“<TR><TD ALIGN=RIGHT VALIGN=BOTTOM>”)
Response.Write(axislabel & “</TD>” & chr(13))
for i = LBound(labels) to UBound(labels)
Response.Write(“<TD VALIGN=BOTTOM ALIGN=CENTER>” & labels(i))
Response.Write(“</TD>” & chr(13))
next

Response.Write(“</TR>” & chr(13))
Response.Write(“</TABLE>”)
end sub
%>

Antes de podermos chamar a subrotina, precisamos criar e inicializar os dados do array. Aqui estão alguns valores aleatórios em ambos os arrays:

Dim dataArray(10)
dataArray(0) = 8
dataArray(1) = 10
dataArray(2) = 8
dataArray(3) = 14
dataArray(4) = 6
dataArray(5) = 13
dataArray(6) = 7
dataArray(7) = 11
dataArray(Cool = 8
dataArray(9) = 9

Dim labelArray(10)
labelArray(0) = "3/2"
labelArray(1) = "3/3"
labelArray(2) = "3/4"
labelArray(3) = "3/5"
labelArray(4) = "3/6"
labelArray(5) = "3/7"
labelArray(6) = "3/8"
labelArray(7) = "3/9"
labelArray(Cool = "3/10"
labelArray(9) = "3/11"

%>
Agora, para mostrar o gráfico, dentro das tags HTML, só precisamos chamar a função BarChart passar os dados do arrays rótulo, bem como o título do gráfico de barras e os rótulos dos eixos.

Aqui está um exemplo:

<HTML>
<BODY>
<% BarChar dataArray, labelArray, “Vendas Telefone”, “Data”%>
</ BODY>
</ HTML>
fernandosena
fernandosena
Admin

Mensagens : 155
Data de inscrição : 01/09/2011
Idade : 60
Localização : Salvador-BA

http://www.wix.com/fernandopadre/padre

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos