none
Mostrar dados sem precisar em tempo real no DataGrid ou ListView, ou ListBox!!! RRS feed

  • Pergunta

  • Em uma PC digita os dados e depos que clicar em um botão, esses dados caem em um outro formulário que possui um DataGrid, ou ListView, ou pode ser um ListBox, mas nesse outro formulário, vai ser outro computador que vai estar com esse formulário aberto e vai estar sendo mostrada a informação atualizada sem ele precisar clicar em nenhum botão. O usuário do computador 1 lança os dados e depois de lançado tudo, clica no botão para encerrar lançamento e logo em seguida, esse lançamento vai para um outro formulário que vai conter um ListBox, ou DataGrid, ou ListView. O usuário do computador 2 não vai precisar clicar em nada, ele vai apenas ver na tela a informação em tempo real de lançamento. Após o usuário do computador 2 ter efetuado o que mostra o lançamento, é dado baixa e então retorna para o computador 1 como revisado ou feito.(ou algo assim) Isso não vai precisar ir para o banco de dados, pois não vai ser preciso armazenar no banco neste caso.
    Obs: O computador 1 vai lançando os dados e quando lançado finaliza clicando no botão e então vai para outro form do computador 2 e então vai entrando em fila, como em um Cyber e vai sendo eliminado conforme for dando baixa no PC2 e vai sendo mostrado no PC1 em outra janela. 

    Se conseguirem pelo menos um pouco, postem aí. Espero ajudar no que puder também.
    quinta-feira, 9 de julho de 2009 03:06

Respostas

  • Já consegui. Aí está aí o código
    declarar como pública as varáveis

    Public Class SRE
    
    Inherits System.Windows.Forms.Form
        Dim MyTimer As New Timer()
    
    'No LOAD do form coloque
    
    AddHandler MyTimer.Tick, AddressOf MyTimer_Elapsed
    
            MyTimer.Interval = 1000
            MyTimer.Start()
    'Criar a sub
     Private Sub MyTimer_Elapsed(ByVal sender As Object, ByVal e As EventArgs)
           
            Mostrar()
        End Sub
    
    'criar outra SUB para mostrar o banco de dados
    Sub Mostrar()
            'define a string de conexao
    
            Dim connStr As String = My.Settings.LC
    
    
            'define a instrução sql
    
            Dim sql As String = "SELECT COD, NOME, FROM LC"
    
    
            'define os objetos connecton, command e dataadapter
    
            Dim conn As OleDbConnection = New OleDbConnection(connStr)
    
            Dim comm As OleDbCommand = New OleDbCommand(sql, conn)
    
            Dim dataadapter As OleDbDataAdapter = New OleDbDataAdapter(comm)
    
    
            'define o dataset
    
            Dim ds As DataSet = New DataSet()
    
    
            Try
    
                '---abre a conexao---
    
                conn.Open()
    
                '---preenche o dataset---
    
                dataadapter.Fill(ds, "ID")
    
                '---fecha a conexao---
    
                conn.Close()
    
                '---vincula o dataset ao DataGridView---
    
                DataGridView1.DataSource = ds           'ou ds.tables(0)
    
                '---define a tabela a ser exibida---
    
                DataGridView1.DataMember = "ID"
    
            Catch ex As Exception
    
                MsgBox(ex.Message)
    
            End Try
        End Sub
    Com isso, a cada 1000 ms, ele vai abrir e fechar a conexão e os dados vão ser atualizados nesse período de tempo. Coloque o tempo que quiser. O pessoal usava muito a impressão, mas agora só basta ter outro computador para vizualizar os dados sem ser necessário gastar papel, uma impressora e tinta. Isso e coisa do passado e temos que mudar.


    quarta-feira, 5 de agosto de 2009 22:59

Todas as Respostas

  • Você está trabalhando com ASP.NET ou Windows Forms?
    segunda-feira, 13 de julho de 2009 15:46
  • Windows forms. VB.NET
    segunda-feira, 13 de julho de 2009 23:23
  • Já consegui. Aí está aí o código
    declarar como pública as varáveis

    Public Class SRE
    
    Inherits System.Windows.Forms.Form
        Dim MyTimer As New Timer()
    
    'No LOAD do form coloque
    
    AddHandler MyTimer.Tick, AddressOf MyTimer_Elapsed
    
            MyTimer.Interval = 1000
            MyTimer.Start()
    'Criar a sub
     Private Sub MyTimer_Elapsed(ByVal sender As Object, ByVal e As EventArgs)
           
            Mostrar()
        End Sub
    
    'criar outra SUB para mostrar o banco de dados
    Sub Mostrar()
            'define a string de conexao
    
            Dim connStr As String = My.Settings.LC
    
    
            'define a instrução sql
    
            Dim sql As String = "SELECT COD, NOME, FROM LC"
    
    
            'define os objetos connecton, command e dataadapter
    
            Dim conn As OleDbConnection = New OleDbConnection(connStr)
    
            Dim comm As OleDbCommand = New OleDbCommand(sql, conn)
    
            Dim dataadapter As OleDbDataAdapter = New OleDbDataAdapter(comm)
    
    
            'define o dataset
    
            Dim ds As DataSet = New DataSet()
    
    
            Try
    
                '---abre a conexao---
    
                conn.Open()
    
                '---preenche o dataset---
    
                dataadapter.Fill(ds, "ID")
    
                '---fecha a conexao---
    
                conn.Close()
    
                '---vincula o dataset ao DataGridView---
    
                DataGridView1.DataSource = ds           'ou ds.tables(0)
    
                '---define a tabela a ser exibida---
    
                DataGridView1.DataMember = "ID"
    
            Catch ex As Exception
    
                MsgBox(ex.Message)
    
            End Try
        End Sub
    Com isso, a cada 1000 ms, ele vai abrir e fechar a conexão e os dados vão ser atualizados nesse período de tempo. Coloque o tempo que quiser. O pessoal usava muito a impressão, mas agora só basta ter outro computador para vizualizar os dados sem ser necessário gastar papel, uma impressora e tinta. Isso e coisa do passado e temos que mudar.


    quarta-feira, 5 de agosto de 2009 22:59