Рейтинг:
5
Maciej Los
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim data = firstDgv.Rows.Cast(Of DataGridViewRow)() _
.GroupBy(Function(r) New With {Key .A = r.Cells(0).Value, Key .B = r.Cells(1).Value}) _
.Select(Function(grp) New With
{
grp.Key.A,
grp.Key.B,
.C = grp.Sum(Function(x) CInt(x.Cells(2).Value))
}) _
.ToList()
For Each dgr In data
secondDgr.Rows.Add(New Object() {dgr.A, dgr.B, dgr.C})
Next
End Sub
Member 14588284
Спасибо за ответ
Как я могу использовать эти коды между двумя datagridview
первый D.сетка данных
вторая d.сетка-это группа сумм
Maciej Los
Ваша практическое руководство "Первого" связан с dataSource?
Member 14588284
Нет,
я добавляю Мануэль
Maciej Los
См. обновленный ответ.
Member 14588284
у меня есть ошибка на
r(0).Value, .B = r(1).Value}) _
https://yadi.sk/i/-imC8fRtg3d4GA
Maciej Los
Что такое сообщение об ошибке?
Member 14588284
https://yadi.sk/i/MlPG8m7dJagm7g
r не определен
Maciej Los
Попробуйте добавить .Тельца(). См. обновленный ответ.
Примечание: Я не тестировал свое решение, потому что мне лень создавать новый проект ;)
Member 14588284
https://yadi.sk/i/fAChqfNTtTBvNA
опять ошибка. Если это будет легко , я могу загрузить проект
Member 14588284
https://yadi.sk/d/0_1eEcx26yNzZw
я добавляю простой проект
Maciej Los
См. раздел обновленное решение.
Member 14588284
Большое спасибо.
Это работает. спасибо снова
Maciej Los
Всегда пожалуйста.
Member 14588284
Привет еще раз :)
Теперь я все понял.
цифры после запятой не приходят при взятии общей суммы.
Member 14588284
Пример
только в одном ряду суммирующая строка равна "0,36"
но сумма группы равна "0"
то же значение введите 4 строки затем
группа Сумма "1"
Maciej Los
Заменить этот:
CInt(x.Cells(2).Value)
с:
CDbl(x.Cells(2).Value)
Member 14588284
Я аплодирую
Спасибо
Member 14588284
Привет еще раз :)
Могу ли я добавить условия where в эти коды
Maciej Los
Конечно. Я хотел бы предложить, чтобы добавить, когда заявление до Метода groupBy ;)
Member 14588284
Я пытался, но у меня ничего не вышло. :(