Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom Dia!
Mais uma vez, estou necessitando da esperiência de vocês!
Estou tentando gerar um gráfico com o aplicativo FusionCharts (www.fusioncharts.com/free) para implementar a administração de um sisteminha que eu fiz de gerenciamento de chamados (HelpDesk). A pedido do meu chefe, preciso separar por meses, até ai tudo bem, peguei um Calendário na net, e por ele, eu escoleria a data inicial e a final,pela lógica seria tranquilo, porém não foi isso que eu percebi...
eu seleciono a data inicial/final, mas não armazena nas variaveis para enviar pro arquio .php, não sei mais oque pode ser ja revisei e não consegui achar os erros.
segue os códigos usados:
página com o calendario e que executa o fusion:
media.html
<html>
<head>
<!-- insira o seguinte código de javascript em sua página. -->
<script language='Javascript'>
// construindo o calendário
function popdate(obj,div,tam,ddd)
{
if (ddd)
{
day = ""
mmonth = ""
ano = ""
c = 1
char = ""
for (s=0;s<parseInt(ddd.length);s++)
{
char = ddd.substr(s,1)
if (char == "/")
{
c++;
s++;
char = ddd.substr(s,1);
}
if (c==1) day += char
if (c==2) mmonth += char
if (c==3) ano += char
}
ddd = mmonth + "/" + day + "/" + ano
}
if(!ddd) {today = new Date()} else {today = new Date(ddd)}
date_Form = eval (obj)
if (date_Form.value == "") { date_Form = new Date()} else {date_Form = new Date(date_Form.value)}
ano = today.getFullYear();
mmonth = today.getMonth ();
day = today.toString ().substr (8,2)
umonth = new Array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro")
days_Feb = (!(ano % 4) ? 29 : 28)
days = new Array (31, days_Feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
if ((mmonth < 0) || (mmonth > 11)) alert(mmonth)
if ((mmonth - 1) == -1) {month_prior = 11; year_prior = ano - 1} else {month_prior = mmonth - 1; year_prior = ano}
if ((mmonth + 1) == 12) {month_next = 0; year_next = ano + 1} else {month_next = mmonth + 1; year_next = ano}
txt = "<table bgcolor='#efefff' style='border:solid #330099; border-width:2' cellspacing='0' cellpadding='3' border='0' width='"+tam+"' height='"+tam*1.1 +"'>"
txt += "<tr bgcolor='#FFFFFF'><td colspan='7' align='center'><table border='0' cellpadding='0' width='100%' bgcolor='#FFFFFF'><tr>"
txt += "<td width=20% align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+((mmonth+1).toString() +"/01/"+(ano-1).toString())+"') class='Cabecalho_Calendario' title='Ano Anterior'><<</a></td>"
txt += "<td width=20% align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+( "01/" + (month_prior+1).toString() + "/" + year_prior.toString())+"') class='Cabecalho_Calendario' title='Mês Anterior'><</a></td>"
txt += "<td width=20% align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+( "01/" + (month_next+1).toString() + "/" + year_next.toString())+"') class='Cabecalho_Calendario' title='Próximo Mês'>></a></td>"
txt += "<td width=20% align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+((mmonth+1).toString() +"/01/"+(ano+1).toString())+"') class='Cabecalho_Calendario' title='Próximo Ano'>>></a></td>"
txt += "<td width=20% align=right><a href=javascript:force_close('"+div+"') class='Cabecalho_Calendario' title='Fechar Calendário'><b>X</b></a></td></tr></table></td></tr>"
txt += "<tr><td colspan='7' align='right' bgcolor='#ccccff' class='mes'><a href=javascript:pop_year('"+obj+"','"+div+"','"+tam+"','" + (mmonth+1) + "') class='mes'>" + ano.toString() + "</a>"
txt += " <a href=javascript:pop_month('"+obj+"','"+div+"','"+tam+"','" + ano + "') class='mes'>" + umonth[mmonth] + "</a> <div id='popd' style='position:absolute'></div></td></tr>"
txt += "<tr bgcolor='#330099'><td width='14%' class='dia' align=center><b>Dom</b></td><td width='14%' class='dia' align=center><b>Seg</b></td><td width='14%' class='dia' align=center><b>Ter</b></td><td width='14%' class='dia' align=center><b>Qua</b></td><td width='14%' class='dia' align=center><b>Qui</b></td><td width='14%' class='dia' align=center><b>---<b></td><td width='14%' class='dia' align=center><b>Sab</b></td></tr>"
today1 = new Date((mmonth+1).toString() +"/01/"+ano.toString());
diainicio = today1.getDay () + 1;
week = d = 1
start = false;
for (n=1;n<= 42;n++)
{
if (week == 1) txt += "<tr bgcolor='#efefff' align=center>"
if (week==diainicio) {start = true}
if (d > days[mmonth]) {start=false}
if (start)
{
dat = new Date((mmonth+1).toString() + "/" + d + "/" + ano.toString())
day_dat = dat.toString().substr(0,10)
day_today = date_Form.toString().substr(0,10)
year_dat = dat.getFullYear ()
year_today = date_Form.getFullYear ()
colorcell = ((day_dat == day_today) && (year_dat == year_today) ? " bgcolor='#FFCC00' " : "" )
txt += "<td"+colorcell+" align=center><a href=javascript:block('"+ d + "/" + (mmonth+1).toString() + "/" + ano.toString() +"','"+ obj +"','" + div +"') class='data'>"+ d.toString() + "</a></td>"
d ++
}
else
{
txt += "<td class='data' align=center> </td>"
}
week ++
if (week == 8)
{
week = 1; txt += "</tr>"}
}
txt += "</table>"
div2 = eval (div)
div2.innerHTML = txt
}
// função para exibir a janela com os meses
function pop_month(obj, div, tam, ano)
{
txt = "<table bgcolor='#CCCCFF' border='0' width=80>"
for (n = 0; n < 12; n++) { txt += "<tr><td align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+("01/" + (n+1).toString() + "/" + ano.toString())+"')>" + umonth[n] +"</a></td></tr>" }
txt += "</table>"
popd.innerHTML = txt
}
// função para exibir a janela com os anos
function pop_year(obj, div, tam, umonth)
{
txt = "<table bgcolor='#CCCCFF' border='0' width=160>"
l = 1
for (n=1991; n<2012; n++)
{ if (l == 1) txt += "<tr>"
txt += "<td align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+(umonth.toString () +"/01/" + n) +"')>" + n + "</a></td>"
l++
if (l == 4)
{txt += "</tr>"; l = 1 }
}
txt += "</tr></table>"
popd.innerHTML = txt
}
// função para fechar o calendário
function force_close(div)
{ div2 = eval (div); div2.innerHTML = ''}
// função para fechar o calendário e setar a data no campo de data associado
function block(data, obj, div)
{
force_close (div)
obj2 = eval(obj)
obj2.value = data
}
</script>
<!--
o css abaixo é apenas para dar uma aparência melhor para o calendário. você pode mudá-lo a sua maneira
insira o código abaixo entre as tags <HEAD> </HEAD> de sua página
-->
<style>
.dia {font-family: helvetica, arial; font-size: 8pt; color: #FFFFFF}
.data {font-family: helvetica, arial; font-size: 8pt; text-decoration:none; color:#191970}
.mes {font-family: helvetica, arial; font-size: 8pt}
.Cabecalho_Calendario {font-family: helvetica, arial; font-size: 10pt; color: #000000; text-decoration:none; font-weight:bold}
</style>
<title>Votos da Linguagem de Programação</title>
<script language="javascript" src="FusionCharts.js"></script>
<link href="estilo.css" rel="stylesheet" type="text/css">
</head>
<body onload=newGraf();>
<div id="chartdiv" align="center">Produtividade dos Chamados Help Desk THALES </div>
<!-- insira o código abaixo dentro das tags <BODY> </BODY> de sua página -->
<form name='form1'>
<p>
<!-- data 1 -->
<input NAME="data1" id="data1" SIZE="10" MAXLENGTH="10">
<input TYPE="button" NAME="btnData1" VALUE="..." Onclick="javascript:popdate('document.form1.data1','pop1','150',document.form1.data1.value)">
<!--
na span abaixo aparece o primeiro calendario.
você pode colocar a span abaixo no lugar onde quiser em sua
pagina inclusive dentro de uma table para facilitar o
posicionamento. Mas lembre-se que quanto mais perto a span
estiver do campo de data a ela associada mais fácil será para
o usuario associar. <span id="pop1" style="position:absolute"></span>
<br>
<br>
<!-- data 2 -->
<input NAME="data2" id="data2" SIZE="10" MAXLENGTH="10">
<input TYPE="button" NAME="btnData2" VALUE="..." Onclick="javascript:popdate('document.form1.data2','pop2','150',document.form1.data2.value)">
<!-- na span abaixo aparece o segundo calendario -->
<span id="pop2" style="position:absolute"></span>
<!--
caso queira inserir outros campos de data em sua página
certifique-se de substituir corretamente os nomes dos
objetos em javascript.
EX: o objeto input text será o data3 - ou como você quiser
o objeto button será o btnData3 - ou como você quiser
nas chamadas das funçoes no evento onClick os nomes
deverão referenciar seus respectivos objetos.
-->
</p>
<p>
<label>
<input type="button" name="Button" value="Calcular" onClick="newGraf()">
</label>
</p>
</form>
<div align="center">
<script type="text/javascript">
var chart = new FusionCharts("Pie3D.swf", "ChartId", "500", "300", "0", "0");
chart.setDataURL("media.php");
chart.render("chartdiv");
function newGraf()
{
//var data1 = document.form1.getElementById('data1').value;
//var data2 = document.form1.getElementById('data2').value;
var url = 'media.php?data1='+document.form1.data1.value+'&data2='+document.form1.data2.value;
var chart = new FusionCharts("Pie3D.swf", "ChartId", "500", "300", "0", "0");
chart.setDataURL(url);
chart.render("chartdiv");
}
</script>
</div>
</body>
</html>
Arquivo que processa os dados, andamento= , seria o andamento que o chamado se encontra, 1= concluido, 2= cancelado ...
media.php
<chart>
<?php
$conn = mssql_connect("localhost","sa","camara");
mssql_select_db("SIAC");
$data1 = $_GET['data1'];
$data2 = $_GET['data2'];
########################################## IF ###############################
if(empty($data1) && empty($data2)){
$sql1 = mssql_query("SELECT count(*) FROM HD WHERE andamento = 1 ",$conn);
$sql2 = mssql_query("SELECT count(*) FROM HD WHERE andamento = 2 ",$conn);
$sql3 = mssql_query("SELECT count(*) FROM HD WHERE andamento = 3 ",$conn);
$sql4 = mssql_query("SELECT count(*) FROM HD WHERE andamento = 4 ",$conn);
$sql5 = mssql_query("SELECT count(*) FROM HD WHERE andamento = 5 ",$conn);
$um['Concluidos'] = mssql_result($sql1, 0, 0);
$um['Em Espera'] = mssql_result($sql2, 0, 0);
$um['Cancelados'] = mssql_result($sql3, 0, 0);
$um['Em Andamento'] = mssql_result($sql4, 0, 0);
$um['Fechados'] = mssql_result($sql5, 0, 0);
}else {
$sql1 = mssql_query("SELECT count(*) FROM HD WHERE andamento = 1 AND data_ini between CONVERT(char,'$data1',103) AND CONVERT(char,'$data2',103)",$conn);
$sql2 = mssql_query("SELECT count(*) FROM HD WHERE andamento = 2 AND data_ini between CONVERT(char,'$data1',103) AND CONVERT(char,'$data2',103)",$conn);
$sql3 = mssql_query("SELECT count(*) FROM HD WHERE andamento = 3 AND data_ini between CONVERT(char,'$data1',103) AND CONVERT(char,'$data2',103)",$conn);
$sql4 = mssql_query("SELECT count(*) FROM HD WHERE andamento = 4 AND data_ini between CONVERT(char,'$data1',103) AND CONVERT(char,'$data2',103) ",$conn);
$sql5 = mssql_query("SELECT count(*) FROM HD WHERE andamento = 5 AND data_ini between CONVERT(char,'$data1',103) AND CONVERT(char,'$data2',103)",$conn);
$um['Concluidos'] = mssql_result($sql1, 0, 0);
$um['Em Espera'] = mssql_result($sql2, 0, 0);
$um['Cancelados'] = mssql_result($sql3, 0, 0);
$um['Em Andamento'] = mssql_result($sql4, 0, 0);
$um['Fechados'] = mssql_result($sql5, 0, 0);
} echo("\t<set label ='".$elemento['key']."' value='".$elemento['value']."'/>\n");
}
mssql_close($conn);
?>
</chart>
Agradeço a atenção de todos!
Carregando comentários...