Образовательный портал Claw.ru
Всё для учебы, работы и отдыха
» Шпаргалки, рефераты, курсовые
» Сочинения и изложения
» Конспекты и лекции
» Энциклопедии

Хотя эта функция выглядит длинной и сложной, делается очень немного: организуется два прохода по ibqInOut, который к этому времени должен содержать результат выполнения хранимой процедуры. Предварительно создается два обязательных поля - SenderID и SenderName (ID и наименование поставщика). Во время первого прохода у cdsInOut создается список колонок (в FieldDefs) с именами вида 'Receiver_NN'. Затем создается набор данных командой CreateDataSet и организуется второй проход, в котором ячейки заполняются значениями сумм. При этом производится поиск поставщика по SenderID (с использованием индекса), если такого поставщика еще нет – добавляется запись. Затем ячейке таблицы (с соответствующим Receiver_ID) присваивается сумма, полученная из хранимой процедуры. Попутно устанавливаются визуальные свойства полей. После прохода по результату запросу выставляются визуальные свойства первых двух колонок. Наконец, функция dspInOut.GetRecords возвращает ClientDataSet (вместе со свойствами полей), содержащий готовыйй отчет. Провайдер dspInOut нужен только чтобы в пакет были включены визуальные свойства полей. Для этого используется флаг grMetadata, а данные получаются прямым вызовом метода GetRecords. После получения пакета клиентский набор данных можно благополучно закрыть, что, собственно, и делается.

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

function InOutData(FromDate, To TDateTime): OleVariant; safecall;

Этот метод принимает параметры отчета, и выдает весь отчет, запакованный в OleVariant:

function TrdmReport.InOutData(FromDate, To TDateTime): OleVariant;

begin

 lock;

 try

  ibdReport.Connected := True;

  ibtInOut.StartTransaction;

  try

   with ibqInOut do

   begin

    ParamByName('FromDate').asDateTime := FromDate;

    ParamByName('ToDate').asDateTime := ToDate;


Рекомендуем скачать другие рефераты по теме: зимнее сочинение, шпаргалки по уголовному.


Категории:




Предыдущая страница реферата | 19  20  21  22  23  24  25  26  27  28  29 |


Поделитесь этой записью или добавьте в закладки

   



Рефераты от А до Я


Полезные заметки

  •