Разработка приложений баз данных в Delphi. Шейкер Т.Д. - 56 стр.

UptoLike

Составители: 

56
Пример 2.2. Разработать функцию пользователя для вычисления суммы
значений по заданному полю. При этом положение указателя в таблице не
должно меняться и данные на экране не должны перерисовываться. Использо-
вать закладку по способу 2.
function MyBookmark2(Table:TDataSet;f:string):Extended;
//Сумма по заданному полю
var B:TBookmarkstr; //Использование свойства Bookmark
begin
Result := 0;
Try
B:=Table.Bookmark; //Запомнили положение курсора
Table.DisableControls; //Отключили вывод на экран
Table.First;
while not Table.Eof do
begin
Result:=Result+Table.FieldValues[f];
Table.Next;
end;
Table.Bookmark:=B; //Восстановили положение курсора
Table.EnableControls; //Разрешили вывод на экран
except
ShowMessage('Ошибка при выполнении функции MyBookmark2');
end;
end;
При реализации функции использован блок try...except, что позволя-
ет обработать ошибки. Функция
MyBookmark2 имеет два параметра. При вызо-
ве функции в качестве параметра
Table задаётся таблица, которая будет ис-
пользоваться. Параметр
f предназначен для задания поля, что делает функцию
MyBookmark2
более универсальной, чем MyBookmark1.
Пример 2.3. Разработать функцию для вычисления максимального значе-
ния поля, указанного пользователем. При этом положение указателя в таблице
не должно меняться и данные на экране не должны перерисовываться. Для за-
дания позиции курсора использовать свойство
RecNo.
function Remember_rec(Table:TDataSet;f:string):Extended;
//Максимальное значение заданного поля
var B:longint; //Использование свойства RecNo
begin
Result:=0;
try
with Table do
     Пример 2.2. Разработать функцию пользователя для вычисления суммы
значений по заданному полю. При этом положение указателя в таблице не
должно меняться и данные на экране не должны перерисовываться. Использо-
вать закладку по способу 2.
function MyBookmark2(Table:TDataSet;f:string):Extended;
                    //Сумма по заданному полю
var B:TBookmarkstr; //Использование свойства Bookmark
begin
 Result := 0;
 Try
  B:=Table.Bookmark; //Запомнили положение курсора
  Table.DisableControls; //Отключили вывод на экран
  Table.First;
  while not Table.Eof do
   begin
    Result:=Result+Table.FieldValues[f];
    Table.Next;
   end;
  Table.Bookmark:=B; //Восстановили положение курсора
  Table.EnableControls; //Разрешили вывод на экран
 except
  ShowMessage('Ошибка при выполнении функции MyBookmark2');
 end;
end;
     При реализации функции использован блок try...except, что позволя-
ет обработать ошибки. Функция MyBookmark2 имеет два параметра. При вызо-
ве функции в качестве параметра Table задаётся таблица, которая будет ис-
пользоваться. Параметр f предназначен для задания поля, что делает функцию
MyBookmark2 более универсальной, чем MyBookmark1.
     Пример 2.3. Разработать функцию для вычисления максимального значе-
ния поля, указанного пользователем. При этом положение указателя в таблице
не должно меняться и данные на экране не должны перерисовываться. Для за-
дания позиции курсора использовать свойство RecNo.
function Remember_rec(Table:TDataSet;f:string):Extended;
               //Максимальное значение заданного поля
var B:longint; //Использование свойства RecNo
begin
 Result:=0;
 try
  with Table do

                                    56