Главная страница
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.03 c
15-1150270198
Prohodil Mimo
2006-06-14 11:29
2006.07.16
Можно ли в макросе Excela добавить строку, содержащую юникоды?


2-1151406821
novill
2006-06-27 15:13
2006.07.16
Как проще всего узнать время создания исполняемого файла ?


5-1135000220
Vaitek_
2005-12-19 16:50
2006.07.16
Ручная прорисовка TEdit


15-1150456037
aka
2006-06-16 15:07
2006.07.16
about Com


15-1150219382
dimodim-Furyz
2006-06-13 21:23
2006.07.16
Web-radio