none
Alternando tela no C# RRS feed

  • 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

    quinta-feira, 22 de dezembro de 2016 11:25

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".

    quinta-feira, 22 de dezembro de 2016 17:37

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".

    quinta-feira, 22 de dezembro de 2016 11:56
  • Juliano muito obrigado pela atenção, esqueci de mencionar estou usando windows form e não web form, este comando server também para ser usado no windows form.


    JUNIOR GUERREIRO T.I

    quinta-feira, 22 de dezembro de 2016 12:49
  • 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".

    quinta-feira, 22 de dezembro de 2016 13:58
  • 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

    quinta-feira, 22 de dezembro de 2016 15:53
  • 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".

    quinta-feira, 22 de dezembro de 2016 17:05
  • 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

    quinta-feira, 22 de dezembro de 2016 17:23
  • 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".

    quinta-feira, 22 de dezembro de 2016 17:37
  • 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

    quinta-feira, 22 de dezembro de 2016 17:47
  • 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.

    segunda-feira, 26 de dezembro de 2016 17:53
    Moderador
  • 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.

    quarta-feira, 28 de dezembro de 2016 10:55
    Moderador