ВУЗ:
Составители:
Рубрика:
55
– выполнить нужные перемещения по таблице;
– восстановить значение свойства
RecNo из локальной переменной.
Пример 2.1. Разработать функцию пользователя для вычисления среднего
значения поля. При этом положение указателя в таблице не должно меняться и
данные на экране не должны перерисовываться. Использовать закладку по спо-
собу 1.
function MyBookmark1(Table:TDataSet):Extended;
//Вычисление среднего значения поля Amt_Paid
var B:TBookmark;
begin
Result:=0;
try
B:=Table.GetBookmark; // Установили закладку
Table.DisableControls;
Table.First;
while not Table.Eof do
begin
Result:=Result+Table.FieldValues['Amt_Paid'];
Table.Next;
end;
Result:=Result/Table.RecordCount;
Table.GotoBookmark(B); // Перешли на закладку
Table.FreeBookmark(B);
finally
Table.EnableControls;
end;
end;
В приведённом примере использованы методы DisableControls и En-
ableControls
класса TDataSet, которые применяются для того, чтобы вре-
менно запретить, а затем разрешить вывод записей. Если этого не сделать, то
при программном перемещении по записям каждый раз при вызове метода
Next визуальные компоненты, с которыми связана таблица, будут перерисовы-
ваться. Перерисовка требует существенно больше времени, чем собственно
сканирование, и сопровождается мельканием на экране.
При реализации функции использован блок
try...finally, что позво-
ляет в любом случае восстановить вывод данных на экран.
При вызове функции
MyBookmark1 в параметре Table указывается таб-
лица, которая будет использоваться. Однако поле указано конкретно
(
Amt_Paid), что существенно ограничивает область применения функции.
– выполнить нужные перемещения по таблице;
– восстановить значение свойства RecNo из локальной переменной.
Пример 2.1. Разработать функцию пользователя для вычисления среднего
значения поля. При этом положение указателя в таблице не должно меняться и
данные на экране не должны перерисовываться. Использовать закладку по спо-
собу 1.
function MyBookmark1(Table:TDataSet):Extended;
//Вычисление среднего значения поля Amt_Paid
var B:TBookmark;
begin
Result:=0;
try
B:=Table.GetBookmark; // Установили закладку
Table.DisableControls;
Table.First;
while not Table.Eof do
begin
Result:=Result+Table.FieldValues['Amt_Paid'];
Table.Next;
end;
Result:=Result/Table.RecordCount;
Table.GotoBookmark(B); // Перешли на закладку
Table.FreeBookmark(B);
finally
Table.EnableControls;
end;
end;
В приведённом примере использованы методы DisableControls и En-
ableControls класса TDataSet, которые применяются для того, чтобы вре-
менно запретить, а затем разрешить вывод записей. Если этого не сделать, то
при программном перемещении по записям каждый раз при вызове метода
Next визуальные компоненты, с которыми связана таблица, будут перерисовы-
ваться. Перерисовка требует существенно больше времени, чем собственно
сканирование, и сопровождается мельканием на экране.
При реализации функции использован блок try...finally, что позво-
ляет в любом случае восстановить вывод данных на экран.
При вызове функции MyBookmark1 в параметре Table указывается таб-
лица, которая будет использоваться. Однако поле указано конкретно
(Amt_Paid), что существенно ограничивает область применения функции.
55
Страницы
- « первая
- ‹ предыдущая
- …
- 53
- 54
- 55
- 56
- 57
- …
- следующая ›
- последняя »
