Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Суммирование значений ячеек из DataGrid / 12 сообщений из 12, страница 1 из 1
05.09.2012, 14:53
    #37944797
Breadfan86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование значений ячеек из DataGrid
Добрый день! Помогите решить проблему... программирую недавно, так что извиняюсь за возможно неточное объяснение) Имеется таблица деталей с данными, представленная на форме с помощью DataGrid. В ней есть числовые значения (вес детали, объем и т.д.) - возможно ли с помощью нажатия кнопки или каким-либо другим способом при последовательном выборе этих деталей выводить например в TextBox значения ячеек из DataGrid, что бы они суммировались?
Например 1-ая деталь - 4 кг, 2-ая деталь - 6 кг. При выборе одной в текстовом поле отображалось 4 кг, при выборе второй - уже 10 кг (4+6)?
Буду признателен любой помощи...
...
Рейтинг: 0 / 0
05.09.2012, 18:03
    #37945310
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование значений ячеек из DataGrid
Breadfan86,

про DataGrid хз, а в MSFlexGrid это делается так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
dim symma as long 'объявляем числовую переменную для сложения содержимого выделенных ячеек
Private Sub MSFlexGrid1_Click() 'событие нажатия на таблицу
x = MSFlexGrid1.ColSel
y = MSFlexGrid1.RowSel 'определение выделенной(нажатой) ячейки
symma = symma + val(MSFlexGrid1.TextMatrix(y, x)) 'перенос содержимого выделенной ячейки в переменную(сложение)
text1.text = symma
end sub

не проверял, но как-то так. + нужно добавить кучу условий проверки: если на ячейку нажали несколько раз, если нажали не на ту ячейку(не с числами) и тд
...
Рейтинг: 0 / 0
06.09.2012, 00:18
    #37945736
Breadfan86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование значений ячеек из DataGrid
Qlewer!
Большое спасибо - немного переделал под ДатаГрид и все заработало!!!) Правда в ячейку добавляются и считаются целые (округленные) значения... Возможно ли сделать передачу данных как есть, со знаками после запятой?
...
Рейтинг: 0 / 0
06.09.2012, 00:37
    #37945752
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование значений ячеек из DataGrid
Breadfan86Правда в ячейку добавляются и считаются целые (округленные) значения... это из-за объявления переменных. я когда-то с этим разбирался, но всё получилось так легко и быстро, что я уже не помню, как XD
можно объявлять переменные не как число (long), а как строку(string). а при вычислениях временно переводить обратно в числа. примерно так:
Код: vbnet
1.
2.
3.
4.
5.
Dim qwe As String
qwe = "12.2"
Dim ewq As String
ewq = "20.1"
Text1.Text = Val(qwe) + Val(ewq)

т.е. в коде
Код: vbnet
1.
2.
dim symma as string
symma = str(val(symma) + val(MSFlexGrid1.TextMatrix(y, x)))
...
Рейтинг: 0 / 0
06.09.2012, 12:48
    #37946409
Breadfan86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование значений ячеек из DataGrid
Qlewer, спасибо за помощь!
Все же в DataGrid и MSFlexGrid есть отличия)
В моей таблице цифровые значения находятся в колонке под номером семь.
1-ая строка значение колонки 4,12
2-ая строка - значение 7,86
3 строка - значение 4,12 и т.д.

Объявил переменную как число:
Dim symma as string

А для DataGrid1 получился такой код:

Private Sub DataGrid1_Click() 'событие нажатия на таблицу
symma = Val(symma) + DataGrid1.Columns(6).Value 'при нажатии строки берутся значения из 7 колонки (определение идет с нулевой колонки)
Text1.Text = symma
End Sub

При первом нажатии на таблицу в текстовом поле выводится значение 4,12 - правильное, а не округленное 4 как до этого. Но при следующем нажатии на вторую строку итоговое значение получается 11,86 (4+7,86), хотя должно было быть 11,98 (4,12+7,86). То есть первое значение все равно округляется и к нему просто добавляется второе неокругленное. и так далее - предыдущее округляется - последнее добавляется не округленным. При выбое таким образом последовательно 11 элементов таблиц, я не досчитался сотыми 4 кг...
можно ли это исправить?
...
Рейтинг: 0 / 0
06.09.2012, 14:19
    #37946648
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование значений ячеек из DataGrid
Breadfan86,

почему-то не распознаёт запятые в качестве разделителя. не помню такой проблемы. странно. можешь заменять запятые точками перед сложением. т.е. в процедуру каждого нажатия впихивать код вида
Код: vbnet
1.
DataGrid1.Columns(x).Value = Replace(DataGrid1.Columns(x).Value, ",", ".")

а потом уже складывать
...
Рейтинг: 0 / 0
07.09.2012, 18:22
    #37948853
stwom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование значений ячеек из DataGrid
Breadfan86Добрый день! Помогите решить проблему... программирую недавно, так что извиняюсь за возможно неточное объяснение) Имеется таблица деталей с данными, представленная на форме с помощью DataGrid. В ней есть числовые значения (вес детали, объем и т.д.) - возможно ли с помощью нажатия кнопки или каким-либо другим способом при последовательном выборе этих деталей выводить например в TextBox значения ячеек из DataGrid, что бы они суммировались?
Например 1-ая деталь - 4 кг, 2-ая деталь - 6 кг. При выборе одной в текстовом поле отображалось 4 кг, при выборе второй - уже 10 кг (4+6)?
Буду признателен любой помощи...не побрезгуйте Аcсess'ом(там есть еще аdp-возможность) - если не поздно, конечно...
...
Рейтинг: 0 / 0
09.09.2012, 15:22
    #37949924
Breadfan86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование значений ячеек из DataGrid
точки он тоже не воспринимает...
а что за adp-возможность?
я пока сделал так, - в Access перевел килограммы в граммы - и при подсчете в Байсике перевожу в килограммы)
главное - спасибо за формулу по суммированию!
...
Рейтинг: 0 / 0
17.09.2012, 16:48
    #37960778
Breadfan86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование значений ячеек из DataGrid
Уважаемые программисты! помогите пожалуйста с задачей - как суммировать значения из DataGrid в Listbox?
Для TextBox код был выше описан такой:

Код: vbnet
1.
2.
3.
4.
Private Sub DataGrid1_Click() 'событие нажатия на таблицу
symma = Val(symma) + DataGrid1.Columns(6).Value 'при нажатии строки берутся значения из 7 колонки (определение идет с нулевой колонки)
Text1.Text = symma
End Sub



при простой замене Text1 на List1 суммирование не происходит...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
21.10.2014, 00:13
    #38782349
Эдуард1916
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование значений ячеек из DataGrid
При открытии формы Text1=0
В коде lатагрида (clik) прописываете код ниже
Dim sum As Single
sum = Text1
sum = sum + DataGrid1.Columns(6)
Text2 = sm
Не нужно объявлять sum как строковую переменную
Listbox для выведения итоговой суммы не предназначен, ведь это просто список, но можете добавлять в него суммы которые вы выбирали:
List1 Add Iteam DataGrid1.Columns(6)
...
Рейтинг: 0 / 0
21.10.2014, 00:29
    #38782354
Эдуард1916
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование значений ячеек из DataGrid
Можно суммировать и из List1:
List1.AddIteam dataGrid1.Columns(6)
Dim sum as Single
Dim i as Integer
sum=0
For i=0 To List1.Listcount - 1
sum=sum + List1.List(i)
Next i
Text1=sum
...
Рейтинг: 0 / 0
21.10.2014, 00:41
    #38782358
Эдуард1916
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование значений ячеек из DataGrid
Дико извиняюсь, в коде выше очепятка
Было Text2=sm
вместо Text1=sum
и вместо List1 Add Iteam нужно List1.AddIteam
Начинающих эти мелочи могут сбить с толку
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Суммирование значений ячеек из DataGrid / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]