Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.16;
Скачать: CL | DM;

Вниз

Временное отключение DBGrid от DataSet   Найти похожие ветки 

 
D@Nger ©   (2006-06-30 13:22) [0]

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


 
Delphi basic ©   (2006-06-30 13:27) [1]

MyTable.DisableControls


 
Delphi basic ©   (2006-06-30 13:27) [2]

MyTable.DisableControls


 
Desdechado ©   (2006-06-30 13:30) [3]

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


 
D@Nger ©   (2006-06-30 13:32) [4]

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


 
Sergey13 ©   (2006-06-30 13:34) [5]

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

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


 
Ega23 ©   (2006-06-30 13:35) [6]

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;


 
D@Nger ©   (2006-06-30 14:26) [7]


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


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


 
Ega23 ©   (2006-06-30 14:39) [8]


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


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

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


 
Vlad ©   (2006-06-30 14:52) [9]


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


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

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


 
Sergey13 ©   (2006-06-30 14:55) [10]

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

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


 
D@Nger ©   (2006-06-30 14:59) [11]

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


 
Sergey13 ©   (2006-06-30 15:04) [12]

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

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



Страницы: 1 вся ветка

Текущий архив: 2006.07.16;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.028 c
2-1151467285
Freze_Kati
2006-06-28 08:01
2006.07.16
Как вставить часть французского текста?


3-1147432339
Ломброзо
2006-05-12 15:12
2006.07.16
Битовые операции в Oracle


2-1151472188
Zilog
2006-06-28 09:23
2006.07.16
Как устновить для всего приложения курсор crHourGlass ?


8-1138748086
WST
2006-02-01 01:54
2006.07.16
bass_dl - руководство


4-1142234178
XMAN
2006-03-13 10:16
2006.07.16
Ассоциированные иконки