Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OTVET_NA_BD.docx
Скачиваний:
19
Добавлен:
08.11.2019
Размер:
916.72 Кб
Скачать

Событие OnGetCols

Событие OnGetCols вызывается, когда Rave желает получить мета данные. Внутри этого события Вы захотите вызвать метод Connection.WriteField для каждого поля (колонки) ваших данных. Определение WriteField следующее:

procedure WriteField(Name: string;

DataType: TRpDataType;

Width: integer;

FullName: string;

Description: string);

Name это короткое имя поля и должно состоять только из алфавитно-цифровых символов. DataType это тип данных поля и должен быть одним из следующих типов: dtString, dtInteger, dtBoolean, dtFloat, dtCurrency, dtBCD, dtDate, dtTime, dtDateTime, dtBlob, dtMemo или dtGraphic. Width это относительная ширина поля в символах. Full name это полное, более описательное имя поля и может включать в себя пробелы и другие не алфавитно-цифровые символы. Если FullName пустое, то будет использовано короткое имя поля. Description это полное описание поля и обычно редактируется с помощью компонента, поэтому может состоять из нескольких строк. Используйте свойство Description для описания, как используется поле или для любой другой более, нужной информации насчет данного поля.

Пример:

procedure TDataForm.CustomCXNGetCols(Connection: TRvCustomConnection);

begin

With Connection do begin

WriteField('Index',dtInteger,8,'Index Field','Описание 1');

WriteField('Name',dtString,30,'Name Field','Описание 2');

WriteField('Amount',dtFloat,20,'Amount Field','Описание 3');

end; { with }

end;

Событие OnOpen

Событие OnOpen возбуждается при инициализации сессии данных. В этом событие Вы можете открыть файлы данных, инициализировать переменные и сохранить текущее состояние данных для события OnRestore, которое будет возбуждено при закрытии сессии данных.

Пример:

procedure TDataForm.CustomCXNOpen(Connection: TRvCustomConnection);

begin

AssignFile(DataFile,'DATAFILE.DAT');

Reset(DataFile,1);

end;

Событие OnFirst

Событие OnFirst вызывается, когда требуется перемещение курсора данных на первую строку данных.

Пример:

procedure TDataForm.CustomCXNFirst(Connection: TRvCustomConnection);

begin

Seek(DataFile,0);

BlockRead(DataFile,DataRecord,SizeOf(DataRecord),DataRead);

end;

Событие OnNext

Событие OnNext вызывается, когда требуется перемещение курсора данных на следующую строку данных.

Пример:

procedure TDataForm.CustomCXNNext(Connection: TRvCustomConnection);

begin

BlockRead(DataFile,DataRecord,SizeOf(DataRecord),DataRead);

end;

Событие OnEOF

Событие OnEOF вызывается для возврата состояния курсора данных, находится ли он на данных или уже вышел за конец. Значение TRUE должно быть возвращено, если данных больше нет или если вызов события OnNext привел к выходу из последней строки.

Пример:

procedure TMainForm.CustomCXNEOF(Connection: TRvCustomConnection;

var EOF: Boolean);

begin

EOF := DataRead < SizeOf(DataRecord);

end;

Событие OnGetRow

Событие OnGetRow вызывается для получения данных для текущей строки. Имеется несколько методов для записи данных в специальные буферы используемые Rave. Порядок и типы записываемых полей должен быть точно таким же, как полученные определения полей в событии OnGetCols.

В следующем списке приведены методы объекта Connection для записи данных в буфера.

procedure WriteStrData(FormatData: string; NativeData: string); {dtString}

procedure WriteIntData(FormatData: string; NativeData: integer); {dtInteger}

procedure WriteBoolData(FormatData: string; NativeData: boolean); {dtBoolean}

procedure WriteFloatData(FormatData: string; NativeData: extended); {dtFloat}

procedure WriteCurrData(FormatData: string; NativeData: currency); {dtCurrency}

procedure WriteBCDData(FormatData: string; NativeData: currency); {dtBCD}

procedure WriteDateTimeData(FormatData: string; NativeData: TDateTime);

{dtDate, dtTime and dtDateTime}

procedure WriteBlobData(var Buffer; Len: longint);

{dtBlob, dtMemo and dtGraphic}

Также имеется специальный метод, названный WriteNullData (без параметров), который может быть использован для некоторых полей, для указания неинициализированных данных (null). Параметр FormatData используется для передачи строки форматирования данных для данного поля. Параметр NativeData предназначен для передачи неформатированных или чистых данных поля. Если строка форматирования определена в отчете Rave, то она используется для форматирования, иначе используется FormatData.

Пример:

procedure TDataForm.CustomCXNGetRow(Connection: TRvCustomConnection);

begin

With Connection do begin

WriteIntData('',DataRecord.IntField);

WriteStrData('',DataRecord.StrField);

WriteFloatData('',DataRecord.FloatField);

end; { with }

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]