![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Временное отключение 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