Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2012, 20:42   #1
city32
Пользователь
 
Регистрация: 14.10.2011
Сообщений: 48
По умолчанию Работа с ячейками в dbgrid

Добрый вечер уважаемые знатоки. Возникла проблема. Может быть вы поможете ее решить а может посоветуете сделать мою задумку другим способом.
База данных на access. ADOTable, ADOQuery.
Есть стандартная таблица. Типа отчета. Отображается через Table в dbgrid-е. Некоторые данные в нее должны загружаться через ADOQuery, но в определенные ячейки. Некоторые данные вводятся вручную через dbedit.
Ячейки в последней строке должны суммировать данные по всем ячейкам в столбце, в котором находится эта ячейка сумма. + некоторые ячейки должны проверяться на условия. Например ячейка 5 последней строки должна считать все ячейки в своем столбце и ее значение 10. Так же число 10 должно получаться если отнять от ячейки 8 последней строки ячейку 6 этой же последней строки.
Я знаю как сделать вычисляемым столбец, но как сделать вычисляемую строку и вычисляемые ячейки. И как вывести данные запроса в определенную ячейку.(т.е. например я выполняю запрос, получается по запросу 15 строк и мне надо в ячейку записать adoquery1.recordcount=15) Надеюсь на ваш совет. Может эту идею можно реализовать иным способом.
city32 вне форума Ответить с цитированием
Старый 17.01.2012, 21:48   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Можно, но достаточно сложно. Во-первых ни каких AdoTable. Всю информацию получить с помощью ADOQuery, записи должны быть типизированы в соответствии с вашими требованиями, возможно в SQL-запросе прийдется UNION использовать, да и в остальном запрос будет повышенной сложности. В ADOQuery желательно создать явный список фиелдов. В DBGrid явно разметить колонки фиелдами. Использовать для колонок свойство ReadOnly. Использовать события грида OnColEnter и OnColExit для управления текущим состояникм свойства колонки ReadOnly в зависимости от типа записи и колонки. OnAfterScroll ADOQuery тоже должен предусмотреть это, поскольку OnColEnter при вертикальном перемещении по гриду не отрабатывает. Если предусматривается запись редактирования в базу, то делать другим ADOQuery. Это основное, наверняка будут еще нюансы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.01.2012, 08:24   #3
city32
Пользователь
 
Регистрация: 14.10.2011
Сообщений: 48
По умолчанию

Ясно. А с помощью каких элементов это можно реализовать эту идею проще?
city32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с ячейками в Экселе Slimmi Microsoft Office Excel 3 19.02.2011 06:12
DBGrid и работа с ячейками таблицы maxwait БД в Delphi 2 25.01.2011 16:59
Работа с ячейками olvad Microsoft Office Excel 7 08.11.2010 18:58
Работа с ячейками и со строками ytzm2hsD3X0HVxwl Microsoft Office Excel 1 01.01.2010 08:41
Работа с ячейками в таблице НД Дмитрий Гриб БД в Delphi 0 23.10.2009 11:30