none
formatar coluna de datagridview RRS feed

  • Pergunta

  •  

    Caro senhores tenho um problema que esta me atormentando, tenho em um campo de um tabela uma data no formato "aaaaddmm" e tenho que deixar no formato "dd/mm/aaaa" em um datagridview em tempo de execução. como proceder, alias o campo da tabela é texto.
    quinta-feira, 10 de julho de 2008 20:13

Todas as Respostas

  • Wagner,

     

     Tenta assim :

     

    Me.TeuDataGridView.Columns(1).DefaultCellStyle.Format = "dd/mm/yyyy"

     

     

    Espero ter ajudado

     

    quinta-feira, 10 de julho de 2008 22:16
  • Jorge este processo eu já teste e não deu certo veja que o campo tem o numero 20081107 ou seja "aaaaddmm" o mesmo tenho que retirar substrings acho que a função mid() e converter "dd/mm/aaaa".Aguardo.....

     

    sexta-feira, 11 de julho de 2008 12:08
  • Wagner,

     

    Fiz aqui uns testes rapidamente a acabei nisto :

     

      Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

     

            Dim DataCompleta As String = TextBox.Text

            Dim dia, mes, ano As String

            Dim DataFormatada As String

            ano = DataCompleta.Substring(0, 4)

            mes = DataCompleta.Substring(4, 2)

            dia = DataCompleta.Substring(6, 2)

     

            DataFormatada = dia & "/" & mes & "/" & ano

     

            For Each linha As DataGridViewRow In Me.TeuDataGridView.Rows

                If linha.Cells(1).Value > "" Then

                    linha.Cells(1).Value = DataFormatada

                End If

     

            Next

     

        End Sub

     

    Não sei se vai ajudar, mas dá para alterar o código adaptando à tua maneira.

     

    A data no formato aaaammdd fui buscar a uma texbox depois converti no formato dd/mm/yyyy e joguei para o DataGridView. Deu resultado. Se não conseguires adaptar ao teu caso, mais tarde dou uma vista de olhos para refinar o código.

     

    Abraços

     

    sexta-feira, 11 de julho de 2008 13:55
  • Jorge este exemplo ate poderia se o item se a origem fosse de um textbox mas o mesmo vem de uma tebela de access veja meu codigo que cria o dgv. note que no estring sql existe comando que retorna o campo "emissao" e este é o problema em que ponto pego o campo emissao e converto?

     

     

     

    Public Sub dadosTitulo()

    'limpa as colunas de um datagrid

    dgv.Columns.Clear()

    'bloqueia o datagrid para não gerar colunas

    dgv.AutoGenerateColumns = False

    Dim sql As String = "select id,tdoc,doc,emissao,valor,saldo from tblTitulo order by id"

    Dim ds As New DataSet

    Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sql, con)

    da.Fill(ds, "tblTitulo")

    con.Close()

    dgv.DataSource = ds 'ou ds.tables(0)

    dgv.DataMember = ds.Tables(0).TableName

    dgv.CreateControl()

    Dim txt0 As New DataGridViewTextBoxColumn()

    Dim txt1 As New DataGridViewTextBoxColumn()

    Dim txt2 As New DataGridViewTextBoxColumn()

    Dim txt3 As New DataGridViewTextBoxColumn()

    Dim txt4 As New DataGridViewTextBoxColumn()

    Dim txt5 As New DataGridViewTextBoxColumn()

    ''O HeaderText, ficará sendo o cabeçalho que aparecerá no seu DataGridView

     

    txt0.HeaderText = "id"

    txt0.DataPropertyName = "Id"

    txt1.HeaderText = "Tipo Doc"

    txt1.DataPropertyName = "tdoc"

    txt2.HeaderText = "Doc"

    txt2.DataPropertyName = "doc"

    txt3.HeaderText = "Emissão"

    txt3.DataPropertyName = "emissao"

    txt4.HeaderText = "Valor"

    txt4.DataPropertyName = "valor"

    txt4.DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomRight

    txt5.HeaderText = "saldo"

    txt5.DataPropertyName = "saldo"

    'O Columns.Add adicionará ao seu DataGridView a "coluna desejada"

    dgv.Columns.Add(txt0)

    dgv.Columns.Add(txt1)

    dgv.Columns.Add(txt2)

    dgv.Columns.Add(txt3)

    dgv.Columns.Add(txt4)

    dgv.Columns.Add(txt5)

    end sub

     

    sexta-feira, 11 de julho de 2008 15:13
  • Wagner,

     

    Depois de criar as colunas no datagridview, faça rodar este código :

     

     For Each linha As DataGridViewRow In Me.dgv.Rows

     

                Dim DataFinal As String

                Dim dia, mes, ano As String

     

                If linha.Cells(3).Value > "" Then ‘Julgo que a coluna da data seja a 3, depois confirme

                    Dim DataInicial As String = linha.Cells(3).Value.ToString

                    ano = DataInicial.Substring(0, 4)

                    mes = DataInicial.Substring(4, 2)

                    dia = DataInicial.Substring(6, 2)

                    DataFinal = dia & "/" & mes & "/" & ano

     

                    linha.Cells(3).Value = DataFinal

     

                End If

            Next

     

     Depois informa se deu certo.

     

     Abraços

     

    sábado, 12 de julho de 2008 12:42
  • Opa meu amigo utilizei uma outra alternativa formatei o campo já  na instrução do sql.

     

    mesmo assim muito obrigado..

     

    quarta-feira, 23 de julho de 2008 13:36