Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Временное отключение DBGrid от DataSet [D7, XP]


D@Nger ©   (2006-06-30 13:22:00) 

Всем здрасте! У меня есть таблица (TTable). Строки высчитываются на основе предыдущих строк и в конце выводится сумма. Для этого нужно пробежаться с 1-ой строки до последней при каждом изменении данных, чтобы сумма всегда была верной. Все это, конечно, отображает DBGrid. Как сделать, чтобы пользователь не замечал что идет перебор строк и чтобы после перебора курсор вставал на редактируемую строку. Я предположил, что может быть на время перебора отключать DBGrid от DataSet. Но как это сделать?


Sergey13   (2006-06-30 15:04:00) [1]

> [11] D@Nger ©   (30.06.06 14:59)

Я не МАЭСТРО, но и задачи не знаю. Я лишь выразил сомнения в правильности, а не утверждал этого. Если каждая запись зависит от предыдущей - для меня это подозрительно.
ЗЫ: И вообще - пятница перед отпуском. Осталось полчаса.


D@Nger   (2006-06-30 14:59:00) [2]

Для вас МАЭСТРО это конечно не задача :-)


Sergey13   (2006-06-30 14:55:00) [3]

> [7] D@Nger ©   (30.06.06 14:26)
>А как бы вы эту задачу решили?

А что за задача то?


Vlad   (2006-06-30 14:52:00) [4]


> D@Nger ©   (30.06.06 14:26) [7]


> А как бы вы эту задачу решили?

если работаешь с TTable, то фактически только так.
Можно вместо стандартного DBGrid использовать Quantum Grid, там есть возможости подсуммировок, группировок и.т.д,  но он платный.
А вобще все-таки с помощью SQL при возможности.


Ega23   (2006-06-30 14:39:00) [5]


> Я делаю проверку на корректность введенных данных, так что
> ошибок быть не должно. А как бы вы эту задачу решили?


В случае TTable - это у нас Sergey13 специалист, мы постоянно с ним лаемся по этому поводу...  :о)

Я бы вместо TTable использовал TQuery и при добавлении/изменении данных вызывал модальную форму со всеми свойствами данной записи.


D@Nger   (2006-06-30 14:26:00) [6]


> Сам подход, когда "Строки высчитываются на основе предыдущих
> строк и в конце выводится сумма" как-то внушает сомнения
> в правильности проектирования БД.


Я делаю проверку на корректность введенных данных, так что ошибок быть не должно. А как бы вы эту задачу решили?


Ega23   (2006-06-30 13:35:00) [7]

Desdechado ©   (30.06.06 13:30) [3]

Я бы try-finally добавил, чтобы навсегда не отвязаться:


x := Dataset.GetBookmark;
Dataset.DisableControls;
try
перебор
if( Dataset.BookmarkValid( x ) then
Dataset.GotoBookmark( x );
finally
Dataset.EnableControls;
end;


Sergey13   (2006-06-30 13:34:00) [8]

> [0] D@Nger ©   (30.06.06 13:22)

Сам подход, когда "Строки высчитываются на основе предыдущих строк и в конце выводится сумма" как-то внушает сомнения в правильности проектирования БД.


D@Nger   (2006-06-30 13:32:00) [9]

Спасибо большое!!!!


Desdechado   (2006-06-30 13:30:00) [10]

x := Dataset.GetBookmark;
Dataset.DisableControls;
перебор
if( Dataset.BookmarkValid( x ) then
 Dataset.GotoBookmark( x );
Dataset.EnableControls;


Delphi basic   (2006-06-30 13:27:00) [11]

MyTable.DisableControls


Delphi basic   (2006-06-30 13:27:00) [12]

MyTable.DisableControls


Наверх

Титульная страница Поиск, карта сайта Написать письмо