Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Asteriscos

Gráfico com CHARTDIRECTOR + BD

Recommended Posts

Pessoal,Esse exemplo aqui está funcionando mas precisa do CHARTDIRECTOR (http://www.advsofteng.com/).O que eu não consigo fazer é a interação com o banco de dados.No código abaixo estou indicando onde estão os rótulos e os valores. Nestes dois gostaria que fossem lidos do banco de dados.<%@ language="vbscript" %><%'Instancia o Objeto ChartDirectorSet cd = CreateObject("ChartDirector.API")%><%var_nome_servidor = Request.ServerVariables("SERVER_NAME")%><!-- #include file="conexoes.inc" --><%' Contabilizando os dados ----- INICIO -----:contador = 0var_produto = array()var_qtd = array()' Consultando os dados do BD - INICIO' Construção da consulta com SQL strSQL = "SELECT DISTINCT script_acessado FROM tbl_log ORDER BY script_acessado" ' Inicialização do objeto Recordset Set SET rs = Server.CreateObject("ADODB.Recordset")' Execução da consulta rs.Open strSQL, conexao' Loop até encontrar EOF (fim do cursor) Do Until rs.EOF = True ' Gravando os registros a serem importados nas matrizes. ReDim preserve var_produto ( UBound( var_produto )+1) var_produto ( Ubound( var_produto ) ) = rs("script_acessado") rs.MoveNext Loop ' Consultando os dados do BD - FIM' Consultando os registros que foram importados nas matrizes.for i = LBound( var_produto ) to UBound ( var_produto ) var_produto_ok = Trim(var_produto( i )) 'response.write var_produto_ok & "<br>" contador = contador+1 'response.write contador & "<br><br>" ' Construção da consulta com SQL strSQL = "SELECT script_acessado FROM tbl_log WHERE script_acessado = '"& var_produto_ok &"' ORDER BY script_acessado" ' Inicialização do objeto Recordset Set SET rs = Server.CreateObject("ADODB.Recordset") ' Execução da consulta rs.Open strSQL, conexao ' Loop até encontrar EOF (fim do cursor) Do Until rs.EOF = True cont = cont +1 rs.MoveNext Loop 'response.write "<font color='blue'><b>" & cont & "</b></font><br><br>" ' Gravando os registros a serem importados nas matrizes. ReDim preserve var_qtd ( UBound( var_qtd )+1) var_qtd ( Ubound( var_qtd ) ) = cont Set dbTable = cd.DBTable(rs, "ArrayIndex", 12) cont = 0 ' Consultando os dados do BD - FIM next' Consultando os registros que foram importados nas matrizes.for i = LBound( var_qtd ) to UBound ( var_qtd ) var_qtd_ok = Trim(var_qtd( i )) var_produto_ok = Trim(var_produto( i )) 'response.write var_produto_ok & "<br>" 'response.write var_qtd_ok & "<br>"next' Contabilizando os dados ----- FIM -----:' Consultando os registros que foram importados nas matrizes.for i = LBound( var_qtd ) to UBound ( var_qtd ) var_qtd_ok = Trim(var_qtd( i ))next'Informa os dados para o gráfico <<<<<<<<<<<<<<<<<<<<<<<<<<<<---------------------------data = Array(30, 1, 59)'No lugar de 30,1,59 gostaria que fosse lida a Array contendo os valores.'Informa os rótulos do gráfico <<<<<<<<<<<<<<<<<<<<<<<<<<<<---------------------------labels = Array("NOTES", "VPN", "PORTAL")'No lugar de NOTES, VPN, PORTAL gostaria que fosse lida a Array contendo os nomes dos produtos.'Cria uma imagem no tamanho de 280 x 240 pixelsSet c = cd.PieChart(280, 240)'Ajusta localização do gráfico (140, 120) e o tamanho a ser exibido em 80 pixelsCall c.setPieSize(140, 120, 80)'Exibe o gráfico em 3DCall c.set3D()'Insere um título ao gráficoCall c.addTitle("Acessos aos script´s: GERAL")'Ajusta transparênciaCall c.setColors(cd.transparentPalette)'Ajusta os dados e rótulos do gráficoCall c.setData(data, labels)'Separa a terceira fatiaCall c.setExplode(2)'Exibe o gráfico no browserResponse.ContentType = "image/png"Response.BinaryWrite c.makeChart2(cd.PNG)'Destrói o objeto cSet c = nothing'Destrói o Objeto ChartDirectorSet cd = nothing%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,conseguí listar os rótulos com a propriedade Split()'Informa os dados para o gráfico <<<<<<<<<<<<<<<<<<<<<<<<<<<<---------------------------var_dados = "30, 1, 59,80"data = Split(var_string_total)Depois eu farei com que a var dados receba os dados do banco, mas agora é moleza.O problema agora é com o rótulo. Não está aceitando a mesma propriedade e não consegui também com a Join().Toh tantando, se alguem tiver alguma ideia posta ae.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

conseguí. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

segue o código.

 

<%@ language="vbscript" %>

 

<%

'Instancia o Objeto ChartDirector

Set cd = CreateObject("ChartDirector.API")

%>

<%var_nome_servidor = Request.ServerVariables("SERVER_NAME")%>

<!-- #include file="conexoes.inc" -->

 

<%

' Contabilizando os dados ----- INICIO -----:

 

contador = 0

var_produto = array()

var_qtd = array()

 

' Consultando os dados do BD - INICIO

 

' Construção da consulta com SQL

strSQL = "SELECT DISTINCT script_acessado FROM tbl_log ORDER BY script_acessado"

 

' Inicialização do objeto Recordset Set

SET rs = Server.CreateObject("ADODB.Recordset")

 

' Execução da consulta

rs.Open strSQL, conexao

 

' Loop até encontrar EOF (fim do cursor)

Do Until rs.EOF = True

' Gravando os registros a serem importados nas matrizes.

ReDim preserve var_produto ( UBound( var_produto )+1)

var_produto ( Ubound( var_produto ) ) = rs("script_acessado")

 

rs.MoveNext

Loop

' Consultando os dados do BD - FIM

 

 

' Consultando os registros que foram importados nas matrizes.

for i = LBound( var_produto ) to UBound ( var_produto )

var_produto_ok = Trim(var_produto( i ))

'response.write var_produto_ok & "<br>"

contador = contador+1

'response.write contador & "<br><br>"

 

' Construção da consulta com SQL

strSQL = "SELECT script_acessado FROM tbl_log WHERE script_acessado = '"& var_produto_ok &"' ORDER BY script_acessado"

 

' Inicialização do objeto Recordset Set

SET rs = Server.CreateObject("ADODB.Recordset")

 

' Execução da consulta

rs.Open strSQL, conexao

 

' Loop até encontrar EOF (fim do cursor)

Do Until rs.EOF = True

cont = cont +1

rs.MoveNext

Loop

 

'response.write "<font color='blue'><b>" & cont & "</b></font><br><br>"

' Gravando os registros a serem importados nas matrizes.

ReDim preserve var_qtd ( UBound( var_qtd )+1)

var_qtd ( Ubound( var_qtd ) ) = cont

Set dbTable = cd.DBTable(rs, "ArrayIndex", 12)

cont = 0

' Consultando os dados do BD - FIM

 

next

 

' Consultando os registros que foram importados nas matrizes.

for i = LBound( var_qtd ) to UBound ( var_qtd )

var_qtd_ok = Trim(var_qtd( i ))

var_produto_ok = Trim(var_produto( i ))

'response.write var_produto_ok & "<br>"

'response.write var_qtd_ok & "<br>"

 

if var_qtd_ok <> "" then

if var_dados_total = "" then

var_dados_total = var_dados_total & var_qtd_ok

else

var_dados_total = var_dados_total & ", " & var_qtd_ok

end if

End if

if var_produto_ok <> "" then

if var_rotulos = "" then

var_rotulos = var_rotulos & var_produto_ok

else

var_rotulos = var_rotulos & ", " & var_produto_ok

End if

End if

next

 

'response.write var_dados_total & "<br><br>"

'response.write var_rotulos & "<br><br>"

 

 

' Contabilizando os dados ----- FIM -----:

 

' Consultando os registros que foram importados nas matrizes.

 

for i = LBound( var_qtd ) to UBound ( var_qtd )

var_qtd_ok = Trim(var_qtd( i ))

next

 

'Informa os dados para o gráfico <<<<<<<<<<<<<<<<<<<<<<<<<<<<---------------------------

'var_dados_total = "30, 20, 1, 2"

data = Split(var_dados_total)

 

'Informa os rótulos do gráfico <<<<<<<<<<<<<<<<<<<<<<<<<<<<---------------------------

'var_rotulos = "NOTES, VPN, SAP, AMS"

labels = Split(var_rotulos)

 

'Cria uma imagem no tamanho de 280 x 240 pixels

Set c = cd.PieChart(800, 600)

 

'Ajusta localização do gráfico (140, 120) e o tamanho a ser exibido em 80 pixels

Call c.setPieSize(340, 320, 300)

 

'Exibe o gráfico em 3D

Call c.set3D()

 

'Insere um título ao gráfico

Call c.addTitle("Acessos aos script´s: GERAL")

 

'Ajusta transparência

Call c.setColors(cd.transparentPalette)

 

'Ajusta os dados e rótulos do gráfico

Call c.setData(data, labels)

 

'Separa a terceira fatia

Call c.setExplode(2)

 

'Exibe o gráfico no browser

Response.ContentType = "image/png"

Response.BinaryWrite c.makeChart2(cd.PNG)

 

'Destrói o objeto c

Set c = nothing

 

'Destrói o Objeto ChartDirector

Set cd = nothing

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.