Умножение значений столбцов в сетке данных - PullRequest
0 голосов
/ 16 мая 2018

В настоящее время я делаю систему начисления заработной платы и пытаюсь выполнить вычисления между столбцами. Я пытаюсь умножить постоянное значение на значения в столбце с именем PayRate

У меня сейчас две формы. первая форма, где я отмечаю все необходимые отчисления и заработок. когда это будет выполнено, будет нажата кнопка, и будет показана вторая форма, содержащая сетку данных с данными о сотруднике и ставкой оплаты.

вот мой код:

    Private Sub btnPayroll_Click(sender As Object, e As EventArgs) Handles btnPayroll.Click
    myConnection.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0;   Data Source = C:\Users\MatMat\Documents\PBIPayrollMgmt1.accdb;"
    myConnection.Open()

    datagridshow()

    Me.Hide()
    viewPayroll.Show()

    If CheckBox1.Checked Then
        Try
            Dim icell As Double
            Dim totalpay As Double

            icell = viewPayroll.DataGridView1.CurrentRow.Cells(5).Value

            totalpay = icell * 11.0

            viewPayroll.DataGridView1.CurrentRow.Cells(5).Value = totalpay


        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try
    End If

End Sub

что он делает то, что мне нужно, но он только умножает значение в первой строке. Как применить его ко всем строкам? Есть ли такая вещь, как "CurrentColumn"?

Изображение ниже для справки:

2-я форма

1 Ответ

0 голосов
/ 16 мая 2018

, но это только умножает значение в первой строке

Естественно.Вы выполняете вычисления только для CurrentRow:

Вместо этого вам необходимо выполнить цикл по всем строкам в DatagridView и применить вычисления следующим образом:

For Each rowX As DataGridViewRow In dgv.Rows
    rowX.Cells(5).Value = rowX.Cells(5).Value * 11.0m;
Next

Кроме того, вам нужно будет поместить ваш цикл в более подходящий обработчик, такой как DataGridView.DataBindingComplete event.

...