|
1 / 1 / 0
Регистрация: 18.10.2016
Сообщений: 27
|
|
Использование формул в ячейках DataGridView20.10.2016, 14:38. Показов 3173. Ответов 8
Собственно, нужно производить вычисления прямо в заполняемой ячейке датагрида, примерно как в экселе. Была идея перебора введенного выражения по символам математических операций (+, -, *, /), но тогда встает вопрос с вводом самих этих символов в переменную, которая заменит содержимое ячейки. Есть какой-либо способ засунуть выражение ячейки в переменную, чтобы переменная считала его не как текст, а как собственную формулу и вычислила результат?
0
|
|
| 20.10.2016, 14:38 | |
|
Ответы с готовыми решениями:
8
Перерасчет формул в ячейках
Пересчёт формул на отдельных диапазонах, столбцах, ячейках |
|
Модератор
4360 / 3430 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
|
||||||
| 20.10.2016, 15:35 | ||||||
Сообщение было отмечено Yury Komar как решение
Решение
могу предложить такой вот вариант, но он имеет свои ограничения на сам вид формул конечно, но примитивные - просчитает:
6
|
||||||
|
|
|
| 20.10.2016, 16:38 | |
|
Вообще, надо сказать, что пихать данные прямо в грид - это порочная практика и многие проблемы, которые могли бы решиться элементарно, на практике требуют использования костылей, именно благодаря тому, что грид используется не только для отображения, но и для хранения данных.
Решение на самом деле элементарно: используй DataTable (лучше в составе DataSet, но можно и так). Объект DataColumn имеет свойство Expression, с помощью которого можно создавать столбцы с вычисляемыми полями. Свойство DataColumn.Expression (System.Data)
3
|
|
|
1 / 1 / 0
Регистрация: 18.10.2016
Сообщений: 27
|
|
| 20.10.2016, 18:27 [ТС] | |
|
diadiavova,
В моем случае в таблице нужно и хранить данные, и проводить вычисления площадей с привязкой к конкретному объекту, позже вся информация занесенная в таблицу будет использоваться в качестве переменных при дальнейших расчетах. Грид практически готов к полноценному использованию, но в любом случае спасибо за информацию - учту это при дальнейшей разработке =). Yury Komar, Да это то, что надо, вычислений сложнее простейшего сложения/умножения не будет. Благодарю. И еще такой вопрос: как определить первый символ в ячейке или строке? Через Left(dgv.CurrentCell.Value, 1) выдает ошибку.
0
|
|
|
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
|
| 20.10.2016, 19:01 | |
|
1
|
|
|
Модератор
4360 / 3430 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
|
||||||
| 20.10.2016, 20:36 | ||||||
|
моно просто
0
|
||||||
|
1 / 1 / 0
Регистрация: 18.10.2016
Сообщений: 27
|
||
| 21.10.2016, 00:05 [ТС] | ||
|
0
|
||
|
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330
|
||||||
| 21.10.2016, 08:08 | ||||||
|
Химер, Вот вам пример.
0
|
||||||
|
1 / 1 / 0
Регистрация: 18.10.2016
Сообщений: 27
|
||||||
| 21.10.2016, 14:25 [ТС] | ||||||
|
Модифицировал код предложенный товарисчем Yury Komar и добавил функцию подстановки первоначального значения ячейки (формулы) при редактировании оной, прямо как в экселе. Использовал скрытый датагрид на 2 столбца, т.к. формулы нужны только в 2 столбцах основного грида, значения в гридах изменяются синхронно, так что если ячейка основоного грида очищается, то и открыть первоначальную формулу не получится. Единственный минус - значение пустой ячейки после вскрытия автоматически заменяется на 0, но это и не важно.
1
|
||||||
| 21.10.2016, 14:25 | |
|
Помогаю со студенческими работами здесь
9
Дополнение формул в ячейках с появляющихся листов VBA Excel Запись формул, находящихся в определенных ячейках Excel, в код макроса
Сумма в ячейках datagridview DataGridView и CheckBox в ее ячейках Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|