Самоучитель по Delphi 7 для профессионалов


         

обработчике onopen рассчитывается число записей,



i := 0;

  end;

procedure TfmMain.rcCustomGetCols(Connection: TRvCustomConnection); 

begin

Connection.WriteField('LeftColumn', dtString, 40, 'LeftColumn', '');

Connection.WriteField('RightColumn1, dtString, 40, 'RightColumn1, '');

  end;

procedure TfmMain.rcCustomGetRow(Connection: TRvCustomConnection);

 begin

if meLeft.Lines.Count >= i

then Connection.WriteStrData('', meLeft.Lines[i])

 else Connection. WriteNullData; if meRight.Lines.Count >= i

then Connection.WriteStrData('', meRight.Lines[i])

 else Connection. WriteNullData; 

Inc(i); 

end;

При открытии соединения в методе- обработчике onopen рассчитывается число записей, необходимое для отображения наиболее длинного из двух файлов.

Метод-обработчик onGetCols вызывается, когда отчету необходимы метаданные о наборе данных соединения. Здесь создаются два поля.

Для этого используется метод

procedure WriteField(Name: String; DataType; TRPDataType; Width: Integer; FullName: String; Description: String);

который создает поле в соответствии с переданными в нем параметрами.

И при печати отчета для каждой строки вызывается метод-обработчик OnGetRow, в котором задаются значения полей. Для каждого типа данных используется свой метод:

function WriteBCDData(FormatData: String; NativeData: Currency): String;

function WriteBlobData(var: Buffer; Len: Longint): String;

function WriteBoolData(FonnatCata: String; NativeData: Boolean): String;

function WriteCurrData(FormatData: String; NativeData: Currency): String;

function WriteDateTime(FormatData: String; NativeData: TDateTime);

function WriteFloatData(FomatData: String; NativeData: Extended): String;

function WritelntData(FormatData: String; NativeData: Integer): String;

function WriteNullData;

function WriteStrData(FormatData: String; NativeData: String): String;

Обратите внимание, что все эти методы не определяют, какому именно полю будет присвоено значение. Поэтому присваивание осуществляется в порядке следования полей: первый по порядку метод отправляет в отчет значение для первого поля, второй для второго и т. д.


Содержание  Назад  Вперед