none
Aplicar um "For" a uma coluna especifica RRS feed

  • Pergunta

  • Olá pessoal tudo bem? O código abaixo gera um tabela com duas colunas, na primeira coluna ("Chamada") ele enumera nessa coluna de 1 até NL (dado que busco em outro form). Até aqui tudo bem o código funciona perfeito, porém gostaria a agora de aplicar um segundo "For" ou se possível dá um jeito de fazer o 

    Private WithEvents DaGV As New DataGridView
        Private DT As New DataTable
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim I As Integer
            DaGV.SetBounds(20, 50, 800, 500)
            Controls.Add(DaGV)
            'INDICE DE COLUNAS'
            DT.Columns.Add("Chamada", GetType(Int32))
            DT.Columns.Add("Raio", GetType(Double))
            I = 1
            For I = 1 To Form2.NL
                DT.Rows.Add(I)
            Next (I)
            DaGV.ReadOnly = True
            DaGV.DataSource = DT
        End Sub

    Esse código gera uma tela com mostra a figura abaixo:

    Pois bem o que eu precisaria agora seria pegar de cada linha da coluna "Chamada" e multiplica-lo por uma constante (que depende de outros cálculos em outro form). Apresentando o dado na coluna "Raio".

    Eu estava tentando utilizar o comando:

    DT.Column(1).Expression = form2.DSM * "Chamada"   , mas este não funciona, pois todos devem estar entre ""

    Tentei criar um For


    Dim K, I As Integer
    For I = 1 To Form2.NL
        DT.Rows.Add(I)
    Next (I)
    For K = Form2.DSM To Form.NL
        DT.Rows.Add(K * I)
    Next (K)


    Só que dessa forma ele faz apenas o primeiro "For" na coluna 0 ("Chamada").

    Alguém poderia me ajudar?

    terça-feira, 7 de julho de 2015 16:38

Respostas

  • já tentou assim:

     DT.Rows.Add(i , i * suaConstanteQueVemDoOutroForm)

    assim ele já preenche as duas colunas.


    Natan

    • Marcado como Resposta A_Nunes quarta-feira, 8 de julho de 2015 16:35
    quarta-feira, 8 de julho de 2015 11:43

Todas as Respostas

  • Olá A_Nunes,

    Você tentou usar um for dentro do outro para obrigar os dois a rodarem?

    Atenciosamente

    Marcos Robertto

    terça-feira, 7 de julho de 2015 17:19
  • Olá Marcos_Robertto obrigado pela dica, tentei da seguinte forma mais sem êxito:

    For I = 1 To Form2.NL
           DT.Rows.Add(I)
                For J = 3 To Form2.NL
                    DT.Rows.Add(J*I)
                Next (J)
           Next (I)
    Ele calculou os dados, porém forçou todos eles na mesma coluna, eu necessito que os valores de "I" fiquem na primeira coluna, enquanto que "J" fique na segunda coluna.

    terça-feira, 7 de julho de 2015 19:10
  • já tentou assim:

     DT.Rows.Add(i , i * suaConstanteQueVemDoOutroForm)

    assim ele já preenche as duas colunas.


    Natan

    • Marcado como Resposta A_Nunes quarta-feira, 8 de julho de 2015 16:35
    quarta-feira, 8 de julho de 2015 11:43
  • Obrigado 'Natan Silva! Era exatamente isto, tem pouco tempo que estou trabalhando com VB, eu tinha mais conhecimento em VBA (com base em macro), por isto estou tendo problemas com alguns funções.

    Muito obrigado mesmo.

    quarta-feira, 8 de julho de 2015 16:37