Главная страница
    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.47 MB
Время: 0.01 c
15-1150263922
Ega23
2006-06-14 09:45
2006.07.16
С Днём рождения! 14 июня


2-1151418657
guitarist
2006-06-27 18:30
2006.07.16
Проблемы с blockwrite.


3-1147511930
vishnia
2006-05-13 13:18
2006.07.16
Почему не выполняется запрос - создание хранимой процедуры?


6-1141725532
vcat
2006-03-07 12:58
2006.07.16
Компонента


15-1150462642
DVM
2006-06-16 16:57
2006.07.16
Меню и тулбар в стиле Office 2003 с исходниками.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский