É possível gerar gráficos dinâmicos com informações resgatadas de um banco de dados.
No exemplo abaixo é gerado gráfico de acordo com os dados anuais, selecionado em um ListBox
Página Database01.asp
Esta página exibe um formulário para que possa ser selecionado o ano para gerar-se dinamicamente a imagem do gráfico
<html> <body> <h1>Integração com Base de Dados</h1> <p>Este exemplo cria um gráfico baseando-se nas informações passadas por um banco de dados</p> <form action="<%=Request("SCRIPT_NAME")%>"> Selecione o ano da consulta <select name="year"> <option value="1990">1990 <option value="1991">1991 <option value="1992">1992 <option value="1993">1993 <option value="1994">1994 <option value="1995">1995 <option value="1996">1996 <option value="1997">1997 <option value="1998">1998 <option value="1999">1999 <option value="2000">2000 <option value="2001">2001 </select> <input type="submit" value="OK"> </form> <% SelectedYear = Request("year") if SelectedYear = "" Then SelectedYear = 2001 end if %> <SCRIPT> //make sure the select box displays the current selected year. document.forms[0].year.selectedIndex = <%=SelectedYear - 1990%>; </SCRIPT> <img src="database02.asp?year=<%=SelectedYear%>"> </body> </html> |
Página Database02.asp
Esta página gera a imagem do gráfico e faz a consulta no banco de dados
Atenção! – No caminho do banco de dados você deverá alterar a palavra login para seu login de FTP
<%@ language="vbscript" %> <% 'Cria o Objeto Chart Director Set cd = CreateObject("ChartDirector.API") 'armazena em uma variável o ano escolhido. Se for aberto inicialmente, o valor será em branco e ele adotará o valor 2001 como default SelectedYear = Request("year") if SelectedYear = "" Then SelectedYear = 2001 'String SQL que efetuará a consulta no banco de dados SQL = "Select Month(TimeStamp) - 1 As ArrayIndex, " & _ "Software, Hardware, Services " & _ "From Revenue Where Year(TimeStamp)=" & SelectedYear 'Conecta-se ao banco de dados, lê os dados da tabela e armazena-os dentro de um array Set rs = CreateObject("ADODB.RecordSet") Call rs.Open(SQL, "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:/home/login/dados/sample.mdb") Set dbTable = cd.DBTable(rs, "ArrayIndex", 12) rs.Close() 'Agora com os dados obtidos podemos inicir a construção de nosso gráfico 'Cria uma imagem no tamanho de 420 pixels x 240 pixels, with pale yellow '(0xffffc0) background and 2 pixel 3D border Set c = cd.XYChart(420, 240, &Hffffc0, &Hffffc0, 2) 'Ajusta área de exibição na posição (70, 50) no tamanho de 320 x 150 pixels. Call c.setPlotArea(70, 50, 320, 150, &Hffffff, &Hffffff, &Hc0c0c0, &Hc0c0c0) 'Adiciona um título ao gráfico Call c.addTitle("Locaweb - Estatisticas de " & SelectedYear, "timesbi.ttf" _ ).setBackground(&Hffff00) 'Adiciona uma caixa de legenda no topo da área de exibição do gráfico Call c.addLegend(70, 30, 0, "", 8).setBackground(cd.Transparent) 'Cria o gráfico com os dados resgatados anteriormente Set layer = c.addBarLayer2(cd.Stack) Call layer.addDataSet(dbTable.getCol(1), -1, "Locaweb") Call layer.addDataSet(dbTable.getCol(2), -1, "Email Locaweb") Call layer.addDataSet(dbTable.getCol(3), -1, "Locavoz") Call layer.setBorderColor(cd.Transparent, 1) 'ajusta os rótulos do eixo x. Neste exemplo, eles vão de janeiro a dezembro labels = Array("Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", _ "Set", "Out", "Nov", "Dez") Call c.xAxis().setLabels(labels) 'Ajusta largura do eixo x para 2 pixels Call c.xAxis().setWidth(2) 'Ajusta o título do eixo Y Call c.yAxis().setTitle("Crescimento") 'Ajusta largura do eixo Y para 2 pixels Call c.yAxis().setWidth(2) 'Exibe o gráfico no browser Response.ContentType = "image/png" Response.BinaryWrite c.makeChart2(cd.PNG) 'Fecha e destrói o objeto rs rs.close Set rs = nothing 'Destrói o objeto c Set c = nothing 'Destrói o Objeto ChartDirector Set cd = nothing %> |
Clique aqui para fazer o download do Banco de Dados Access utilizado neste exemplo.
Referências
Recursos Sobre ASP na Internet
Há ainda muita informação na Internet sobre ASP. Além da Microsoft, visite também:
Veja também
No momento, não há conteúdo nesta página Você pode pesquisar pelo título desta página em outras páginas, ou buscar por registros relacionados . Note que, no entanto, você não tem permissão para criar esta página.