Рефераты | Рефераты по информатике, программированию | MIDAS. Практическое применение | страница реферата 24 | Большая Энциклопедия Рефератов от А до Я
Большая Энциклопедия Рефератов от А до Я
  • Рефераты, курсовые, шпаргалки, сочинения, изложения
  • Дипломы, диссертации, решебники, рассказы, тезисы
  • Конспекты, отчеты, доклады, контрольные работы

  • Хотя эта функция выглядит длинной и сложной, делается очень немного: организуется два прохода по 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 |




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

       




    Категории:



    Разделы сайта




    •