Usuário com melhor resposta
Alternando tela no C#

Pergunta
-
Bom dia pessoal tudo bem...
Sou novo em c# então estou aqui com uma duvida mas não sei se é possível e preciso da ajuda de vcs.
Montei em c# com visual studio e banco sql server uns relatórios usando o reportViewer, e nesses relatórios contém gráficos, e estes relatórios são atualizados automaticamente de tempos em tempos, blz ate agora esta tudo funcionando, agora vem o porém, preciso colocar estes relatórios com gráficos pra ficar sendo demonstrados em uma tela de tv, são 4 gráficos, e estes gráficos tem que ficar sendo alternados de tempos em tempos, ex. de 1 em 1hr preciso que a tela da tv troque de gráfico automaticamente, agora não sei se e possível fazer isso direto no c# ou tenho que usar algum software de terceiros.
Não sei se consegui me expressar com clareza, mas desde já agradeço.
JUNIOR GUERREIRO T.I
Respostas
-
Como você configurou o ReportViewer para abrir seus gráficos/relatórios? Painel de propriedades do VS ou via código?
Aqui tem um exemplo de configuração de report local via código: https://www.mindstick.com/Articles/1118/using-reportviewer-in-winforms-c-sharp
Basicamente o código de configuração seria executado a cada evento Tick do Timer, mas alterando o nome do arquivo RDLC.
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
- Marcado como Resposta Robson William SilvaModerator quarta-feira, 28 de dezembro de 2016 10:55
Todas as Respostas
-
Bom dia,
Suponho que esteja utilizando o controle ReportViewer, então você pode utilizar um objeto Timer para controlar os intervalos (hora em hora, por exemplo), daí alterar a propriedade ReportPath para o novo relatório que deverá ser exibido a cada intervalo do Timer.
public partial class Form1 : Form { private void Form1_Load(object sender, EventArgs e) { // Set the processing mode for the ReportViewer to Remote reportViewer1.ProcessingMode = ProcessingMode.Remote; ServerReport serverReport = reportViewer1.ServerReport; // Get a reference to the default credentials System.Net.ICredentials credentials = System.Net.CredentialCache.DefaultCredentials; // Get a reference to the report server credentials ReportServerCredentials rsCredentials = serverReport.ReportServerCredentials; // Set the credentials for the server report rsCredentials.NetworkCredentials = credentials; // Set the report server URL and report path serverReport.ReportServerUrl = new Uri("http:// <Server Name>/reportserver"); serverReport.ReportPath = "/AdventureWorks Sample Reports/Sales Order Detail"; // Create the sales order number report parameter ReportParameter salesOrderNumber = new ReportParameter(); salesOrderNumber.Name = "SalesOrderNumber"; salesOrderNumber.Values.Add("SO43661"); // Set the report parameters for the report reportViewer1.ServerReport.SetParameters( new ReportParameter[] { salesOrderNumber }); // Refresh the report reportViewer1.RefreshReport(); } }
Referência no MSDN: https://msdn.microsoft.com/en-us/library/aa337089.aspx
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
- Sugerido como Resposta Robson William SilvaModerator quinta-feira, 22 de dezembro de 2016 14:02
-
-
Sim, Junior, serve para WinForms. Pra ser mais exato, o exemplo do código é WinForms.
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
-
Juliano então os relatórios com os gráficos, já estão prontos e funcionando no meu projeto, a única coisa que falta e eu conseguir mudar de relatório de tempos em tempos só isso, pois os relatórios estão prontos e funcionando .
como mostro na imagem abaixo.
JUNIOR GUERREIRO T.I
-
Certo. Mas você tentou com o código que te indiquei? Ou está em dúvida em algum ponto específico?
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
-
então eu testei sim, mas quando jogo seu código no meu projeto ele não abre mais o gráfico, acho que estou fazendo alguma coisa de errado, e não descobri, e também não tenho um serverReport, meus gráficos e relatórios são todos locais.
JUNIOR GUERREIRO T.I
-
Como você configurou o ReportViewer para abrir seus gráficos/relatórios? Painel de propriedades do VS ou via código?
Aqui tem um exemplo de configuração de report local via código: https://www.mindstick.com/Articles/1118/using-reportviewer-in-winforms-c-sharp
Basicamente o código de configuração seria executado a cada evento Tick do Timer, mas alterando o nome do arquivo RDLC.
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
- Marcado como Resposta Robson William SilvaModerator quarta-feira, 28 de dezembro de 2016 10:55
-
Este abaixo e o codigo do meu relatório.
public partial class frmGraficoProduto : Form
{
Timer _timer = new Timer();
public frmGraficoProduto()
{
InitializeComponent();
_timer.Interval = 5000;
_timer.Tick += Timer_Tick;
}
private void Timer_Tick(object sender, EventArgs e)
{
this.ProdutoTop5TableAdapter.Fill_Top5(this.GrafVendedorDataSet1.ProdutoTop5);
this.repViewerProdutos.RefreshReport();
}
private void frmGraficoProduto_Load(object sender, EventArgs e)
{
this.repViewerProdutos.RefreshReport();
_timer.Start();
}
protected override void OnClosing(CancelEventArgs e)
{
_timer.Stop();
base.OnClosing(e);
}
}
}ele e chamado atravez de um menu.
private void MenuItemGrafProd_Click(object sender, EventArgs e)
{
frmGraficoProduto grafp = new frmGraficoProduto();
grafp.Show();
}JUNIOR GUERREIRO T.I
-
Boa tarde Junior Guerreiro,
Tentou seguir o exemplo sugerido acima?
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Bom dia,
Devido a falta de interação do autor dessa pergunta,
essa thread está sendo fechada. Caso o problema ainda
esteja ocorrendo, favor abrir uma nova thread.
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.