Usuário com melhor resposta
Consulta para dashboards

Pergunta
-
Preciso renderizar um gráfico em linha data, peso do animal, ganho de peso percentual.
A tabela contém os campos id, data, peso, cod_proprietario, cod_animal.
Meu problema é a questão do intervalo, precisaria incluir algum campo na tabela? Como ficaria esta consulta?
O usuário entra com o peso e o animal sob controle.
Ele tem uma orientação para pesar semanalmente, quinzenalmente ou mensalmente conforme cada caso.
Na visualização do gráfico do peso o usuário tem a opção de escolher o intervalo evolutivo semanal, quinzenal, mensal.
Anexo a evolução de peso quinzenal do Pumba.
- Movido Ricardo Barbosa Cortes quarta-feira, 25 de fevereiro de 2015 13:22 Encontrar mais respostas para a dúvida
Respostas
-
Então Pereira,
neste forum https://groups.google.com/forum/#!forum/google-visualization-api o retorno foi de que o problema é com Javascript. Eu não sei onde conseguir ajuda.
Não imaginava que rederizar um gráfico tão simples deste seria tão complicado.
Eu tentei usando Script, mas sem sucesso, abaixo:
Retorna o erro:
"Uncaught Error: Type mismatch. Value 3/8/2014 does not match type date in column index 0"
<script>function ToJavaScriptDate(value){var pattern = /Date\(([^)]+)\)/;var results = pattern.exec(value);var dt = new Date(parseFloat(results[1]));return (dt.getDate() + 1) + "/" + dt.getMonth() + "/" + dt.getFullYear();}</script><!-- Script--><script type="text/javascript">google.load('visualization', '1.1', { 'packages': ['corechart'] });google.setOnLoadCallback(drawChart);function drawChart() {$.get('/Programa_Nutricao/Avaliacao/EvolucaoPeso', {},function (data) {var tdata = new google.visualization.DataTable();tdata.addColumn('date', 'data_semanal');tdata.addColumn('number', 'peso_kg');for (var i = 0; i < data.length; i++) {if (data[i].data_semanal != null)tdata.addRow([ToJavaScriptDate(data[i].data_semanal), data[i].peso_kg]);}var options = {vAxis: { title: "PESO", minValue: 1 },hAxis: { title: "DATA", textStyle: { fontSize: 10 }},legend: { none" }};var chart = new google.visualization.LineChart(document.getElementById('EvolucaoPeso'));chart.draw(tdata, options);});}</script>
Pelo erro, tente forçar uma data, exemplo '2014.03.08', muito provavel que seja o formato da data que você esta consumindo
;) até mais.
Altieri Pereira http://altieripereira.blogspot.com/
- Marcado como Resposta Wilson Boris sábado, 21 de março de 2015 23:55
-
Resolvido:
tdata.addRow([ToJavaScriptDate(data[i].data_semanal), parseFloat(data[i].peso_kg)]);
- Marcado como Resposta Wilson Boris sábado, 21 de março de 2015 23:55
Todas as Respostas
-
Wilson,
Minha sugestão é que você aplique este post na Categoria Reporting Services.
Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
-
-
Sim.
Tentando evoluir na questão, com código abaixo, porém retorna com erro:
ERRO:</script>Controler:
public ActionResult Peso()
{
var dia = db.spPesoEvolucao().ToList();
var a = dia.Select(x => new { x.data_semanal, x.peso_kg });
return Json(a, JsonRequestBehavior.AllowGet);
}View:
<script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <!-- Script--> <script type="text/javascript"> google.load('visualization', '1', { 'packages': ['corechart'] }); google.setOnLoadCallback(drawChart); function drawChart() { $.get('/Programa/Peso', {}, function (data) { var tdata = new google.visualization.DataTable(); tdata.addColumn('date', 'data'); tdata.addColumn('number', 'peso_kg'); //tdata.addColumn({ type: 'string', role: 'annotation' }); console.log(data); for (var i = 0; i < data.length; i++) { if (data[i].data_semanal != null) tdata.addRow([data[i].data_semanal, data[i].peso_kg]); } var options = { vAxis: { title: "PESO", minValue: 1 }, hAxis: { title: "DATA", textStyle: { fontSize: 10 } }, legend: { position: "none" } }; var chart = new google.visualization.LineChart(document.getElementById('EvolucaoPeso')); chart.draw(tdata, options); }); } </script> <body> <div id="EvolucaoPeso" style="width: 900px; height: 500px;"></div> </body>
No banco SQL Server 2008:
No design da tabela os campos peso_kg(nchar(10),null) e data_semanal(date,null)
-
-
Bom dia,
Pelo que observei, você esta utilizando a biblioteca do Google Chart, esta área é somente para posts sobre o SQL Server Reporting Services. Não sei vamos conseguir te ajudar. Esse site tem um forum especifico para Google Chart: https://groups.google.com/forum/#!forum/google-visualization-api
;) até mais.
Altieri Pereira http://altieripereira.blogspot.com/
-
Então Pereira,
neste forum https://groups.google.com/forum/#!forum/google-visualization-api o retorno foi de que o problema é com Javascript. Eu não sei onde conseguir ajuda.
-
Então Pereira,
neste forum https://groups.google.com/forum/#!forum/google-visualization-api o retorno foi de que o problema é com Javascript. Eu não sei onde conseguir ajuda.
Não imaginava que rederizar um gráfico tão simples deste seria tão complicado.
Eu tentei usando Script, mas sem sucesso, abaixo:
Retorna o erro:
"Uncaught Error: Type mismatch. Value 3/8/2014 does not match type date in column index 0"
<script>function ToJavaScriptDate(value){var pattern = /Date\(([^)]+)\)/;var results = pattern.exec(value);var dt = new Date(parseFloat(results[1]));return (dt.getDate() + 1) + "/" + dt.getMonth() + "/" + dt.getFullYear();}</script><!-- Script--><script type="text/javascript">google.load('visualization', '1.1', { 'packages': ['corechart'] });google.setOnLoadCallback(drawChart);function drawChart() {$.get('/Programa_Nutricao/Avaliacao/EvolucaoPeso', {},function (data) {var tdata = new google.visualization.DataTable();tdata.addColumn('date', 'data_semanal');tdata.addColumn('number', 'peso_kg');for (var i = 0; i < data.length; i++) {if (data[i].data_semanal != null)tdata.addRow([ToJavaScriptDate(data[i].data_semanal), data[i].peso_kg]);}var options = {vAxis: { title: "PESO", minValue: 1 },hAxis: { title: "DATA", textStyle: { fontSize: 10 }},legend: { none" }};var chart = new google.visualization.LineChart(document.getElementById('EvolucaoPeso'));chart.draw(tdata, options);});}</script>- Editado Wilson Boris quarta-feira, 11 de março de 2015 16:18 complemento
-
Então Pereira,
neste forum https://groups.google.com/forum/#!forum/google-visualization-api o retorno foi de que o problema é com Javascript. Eu não sei onde conseguir ajuda.
Não imaginava que rederizar um gráfico tão simples deste seria tão complicado.
Eu tentei usando Script, mas sem sucesso, abaixo:
Retorna o erro:
"Uncaught Error: Type mismatch. Value 3/8/2014 does not match type date in column index 0"
<script>function ToJavaScriptDate(value){var pattern = /Date\(([^)]+)\)/;var results = pattern.exec(value);var dt = new Date(parseFloat(results[1]));return (dt.getDate() + 1) + "/" + dt.getMonth() + "/" + dt.getFullYear();}</script><!-- Script--><script type="text/javascript">google.load('visualization', '1.1', { 'packages': ['corechart'] });google.setOnLoadCallback(drawChart);function drawChart() {$.get('/Programa_Nutricao/Avaliacao/EvolucaoPeso', {},function (data) {var tdata = new google.visualization.DataTable();tdata.addColumn('date', 'data_semanal');tdata.addColumn('number', 'peso_kg');for (var i = 0; i < data.length; i++) {if (data[i].data_semanal != null)tdata.addRow([ToJavaScriptDate(data[i].data_semanal), data[i].peso_kg]);}var options = {vAxis: { title: "PESO", minValue: 1 },hAxis: { title: "DATA", textStyle: { fontSize: 10 }},legend: { none" }};var chart = new google.visualization.LineChart(document.getElementById('EvolucaoPeso'));chart.draw(tdata, options);});}</script>
Format a Microsoft JSON date?
-
Então Pereira,
neste forum https://groups.google.com/forum/#!forum/google-visualization-api o retorno foi de que o problema é com Javascript. Eu não sei onde conseguir ajuda.
Não imaginava que rederizar um gráfico tão simples deste seria tão complicado.
Eu tentei usando Script, mas sem sucesso, abaixo:
Retorna o erro:
"Uncaught Error: Type mismatch. Value 3/8/2014 does not match type date in column index 0"
<script>function ToJavaScriptDate(value){var pattern = /Date\(([^)]+)\)/;var results = pattern.exec(value);var dt = new Date(parseFloat(results[1]));return (dt.getDate() + 1) + "/" + dt.getMonth() + "/" + dt.getFullYear();}</script><!-- Script--><script type="text/javascript">google.load('visualization', '1.1', { 'packages': ['corechart'] });google.setOnLoadCallback(drawChart);function drawChart() {$.get('/Programa_Nutricao/Avaliacao/EvolucaoPeso', {},function (data) {var tdata = new google.visualization.DataTable();tdata.addColumn('date', 'data_semanal');tdata.addColumn('number', 'peso_kg');for (var i = 0; i < data.length; i++) {if (data[i].data_semanal != null)tdata.addRow([ToJavaScriptDate(data[i].data_semanal), data[i].peso_kg]);}var options = {vAxis: { title: "PESO", minValue: 1 },hAxis: { title: "DATA", textStyle: { fontSize: 10 }},legend: { none" }};var chart = new google.visualization.LineChart(document.getElementById('EvolucaoPeso'));chart.draw(tdata, options);});}</script>
Pelo erro, tente forçar uma data, exemplo '2014.03.08', muito provavel que seja o formato da data que você esta consumindo
;) até mais.
Altieri Pereira http://altieripereira.blogspot.com/
- Marcado como Resposta Wilson Boris sábado, 21 de março de 2015 23:55
-
Resolvido:
tdata.addRow([ToJavaScriptDate(data[i].data_semanal), parseFloat(data[i].peso_kg)]);
- Marcado como Resposta Wilson Boris sábado, 21 de março de 2015 23:55