С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
3 / 3 / 2
Регистрация: 31.10.2017
Сообщений: 35

Подставить в формулу значения из ячеек DataGridView

31.10.2017, 10:02. Показов 2934. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
К сожалению раздела *для маленьких и тупых* не оказалось, поэтому попрошу помощи\совета здесь
Ситуация такая:
Есть огромная база сотрудников, со всеми ставками, коэффициентами, продолжительностью рабочего дня и т.д. в формате .accdb
База прикреплена к c# windows form и выводится в datagridview
После вывода в DGV через текстыБоксы добавляются еще пара тройка колонок со значениями, актуальные на данный момент .

И есть формула, по которой начисляется человеку зарплата. в формуле порядка 10 действий.
Как взять значения из ячеек и запихнуть их в эту длиннющую формулу?
Предположим, что a, b, c, d соответствую колонкам по порядку, а формула выглядит так (a+(a+b))*c*d = зп сотрудника.

Помогите, очень прошу
PS: Не забывайте, что помогаете маленьким и тупым... помогите примером кода пожалуйста, так как в "текстовом" совете ничего не пойму 8( а с Вашего кода смогу аналогично свой выстроить ^__^
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.10.2017, 10:02
Ответы с готовыми решениями:

Как автоматически подставить в формулу значения из ячеек на какую она ссылается
Предположим A1=8, B1=4, C1=6 Пример формулы скажем в ячейке Д1 - "=(A1+B1)/C1" Как сделать чтобы в Д1 автоматически скомпилировалась...

Подставить значения переменных в формулу
Здравствуйте. Подскажите пожалуйста, может ли маткад при записи формулы с переменными вывести такую же формулу но только подставив...

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

11
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
31.10.2017, 10:23
Так у тебя C# или C++?
0
3 / 3 / 2
Регистрация: 31.10.2017
Сообщений: 35
31.10.2017, 10:32  [ТС]
nmcf,
ммм... изначально c++, со вставкой c# windows form.. вроде так. делалось как говорит индус с ютуба)
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
31.10.2017, 10:33
Т. е. C++/CLI?
0
3 / 3 / 2
Регистрация: 31.10.2017
Сообщений: 35
31.10.2017, 13:51  [ТС]
nmcf, дада, точно

Добавлено через 3 часа 11 минут
Нашелся вот такой гайд https://www.youtube.com/watch?v=Z0YCFjNxbXM&t=2s
может кто подскажет, как его адаптировать, что бы значения ячеек не устанавливались заранее, а брались из моей DGV?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
31.10.2017, 14:59
Лучший ответ Сообщение было отмечено ZanydaZanydnaya как решение

Решение

Т. е. нужно пройтись по таблице и что-то вычислить по данным из ячеек?
Вот здесь показан цикл обхода и как обращаться к ячейке: опять DataGridView
1
3 / 3 / 2
Регистрация: 31.10.2017
Сообщений: 35
31.10.2017, 15:23  [ТС]
nmcf,
по-моему совсем не по моему вопросу этот цикл...

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

Нужно: после заполнения DGV, после нажатии *кнопки* заполнялась колонка Итог.
что бы она корректно заполнилась имеется восьмиэтажная формула, но для себя прошу разъяснить на простенькой (a+(a+b))*c*d как это реализовать.
Миниатюры
Подставить в формулу значения из ячеек DataGridView  
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
31.10.2017, 16:07
Цитата Сообщение от ZanydaZanydnaya Посмотреть сообщение
по-моему совсем не по моему вопросу этот цикл
Неужели? Исходные данные судя по рисунку - в таблице. Доступ к значениям через Value, как в примере. А дальше составляй формулу с обычными арифметическими операциями и скобками.
1
3 / 3 / 2
Регистрация: 31.10.2017
Сообщений: 35
31.10.2017, 18:52  [ТС]
nmcf,
Тяжело
А можно наглядный пример?
C#
1
2
3
4
5
for (int i=0;i<this.dataGridView1.Rows.Count;i++)
                 {
                    this.dataGridView1.Rows[i].Cells[10].Value=(); // вот сюда как правильно записать формулу?
 // (Convert.ToDouble(dataGridView1[i, 7].Value) + Convert.ToDouble(dataGridView1[i, 8].Value) * Convert.ToDouble(dataGridView1[i, 5].Value)); так?
                 }
ЗЫ: Да, пример точно был мой, но первыми были замечены формы, что автор той темы использовал)
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
31.10.2017, 19:17
Ну так оно работает или нет? Попробуй.
0
3 / 3 / 2
Регистрация: 31.10.2017
Сообщений: 35
01.11.2017, 10:24  [ТС]
nmcf,
Неа, выдает ошибку

C#
1
2
3
4
5
6
7
8
9
10
11
 private void button5_Click(object sender, EventArgs e)
 
        {
            for (int i = 0; i < this.dataGridViewSummary.Rows.Count; i++)
            {
 
                this.dataGridViewSummary.Rows[i].Cells[13].Value = (Convert.ToDouble(dataGridViewSummary[i,11].Value) + Convert.ToDouble(dataGridViewSummary[i, 12].Value));
            }
            
 
        }
Индекс за пределами диапазона. В чем моя ошибка?
некоторые колонки в DGV загружаются из базы. некоторые добавляются вручную. не может быть в этом засады?
Миниатюры
Подставить в формулу значения из ячеек DataGridView  
0
3 / 3 / 2
Регистрация: 31.10.2017
Сообщений: 35
01.11.2017, 13:54  [ТС]
Проверяю на других ячейках... и как то все дико криво работает, но складывает... пока, правда, не пойму как и что xD

Добавлено через 10 минут
УСе. разобралося) складывалось в колонку,а не в строку ^__^
В следующий раз напишу,как здоровенная формула пройдет ) или не пройдет.. в общем напишу)

Добавлено через 54 минуты
Ееее! все работает! 8)
Но пока не закрывайте, вдруг что сломаю %)

Добавлено через 1 час 9 минут
Все плохо((( не могу вывести итоговую сумму по столбцу в текст бокс.
Возможно потому что число не целое. а округлять ну совсем нельзя. как быть?

C#
1
2
3
4
5
6
7
8
9
10
        private void button2_Click_2(object sender, EventArgs e)
        {
          int sum = 0;
          for (int q = 0; q < dataGridViewSummary.Rows.Count; ++q)
              {
                 sum += Convert.ToInt32(dataGridViewSummary.Rows[q].Cells[4].Value);
               }
 
               textBox12.Text = sum.ToString(); 
        }
Добавлено через 10 минут
C#
1
2
3
4
5
6
7
8
9
10
{
            double balans = 0;
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                double incom;
                double.TryParse((row.Cells[4].Value ?? "0").ToString().Replace(".", ","), out incom);
                balans += incom;
            }
            textBox12.Text = balans.ToString();
        }
вот так все заработало ^__^
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2017, 13:54
Помогаю со студенческими работами здесь

Как автоматически подставить в формулу значения из этой же ячейки?
Как значение в ячейке заменить на формулу в этой же ячейке с использованием этого же значения. Я так понял это должен быть какой-то макрос.

Значения ячеек datagridview
Здрасте. Есть необходимость очищать значения ячеек в datagridview, а затем восстанавливать их. С очисткой я разобралась, а вот как...

Сложить значения ячеек в DataGridView
не складывает значения ячеек, не пойму Dim a As Integer Dim d As Integer a = Convert.ToInt32(DataGridView1(0,...

Как суммировать значения ячеек в dataGridView
Помгите разобраться с datagridview c# ... Как сложть элементы в таблице datagridview c# например 1-го и 2-го столбиков?

Перебор значений ячеек [уникальные значения DataGridView]
Здравствуйте, посоветуйте пожалуйста кусочек кода, чтоб узнать повторяется ли значение ячейки. Задача такова в datagridview (только один...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru