Мельница данных  (09.04.2020)
Интерфейс IExternalQuery
Объект, реализующий этот интерфейс, передается в макрос генерации отчета Excel (Template). Все его свойства и методы доступны для испоьзования в процессе генерации отчета
  IExternalQuery = interface(IDispatch)
    ['{1A86D1DA-A56E-4D53-88F9-7A035D7D12B4}']
    function Select(const SQL: WideString): IExternalDataSet; safecall;
    function SelectedRecordsCount: Integer; safecall;
    function SelectedRecord(Index: Integer): OleVariant; safecall;
    procedure PlaceCurrentQuery(const Sheet: IDispatch; 
      CaptionsNeeded: WordBool = False; Row: Integer = 1; 
      Column: Integer = 1; ShiftRows: WordBool = True; 
      ShiftColumns: WordBool = False); safecall;
    procedure PlaceQuery(const Sheet: IDispatch; const DataSet: ExternalDataSet;
      Row: Integer = 1; Column: Integer = 1; ShiftRows: WordBool = True; 
      ShiftColumns: WordBool = False); safecall;
    property CurrentQuery: WideString;
  end;
  • функция Select возвращает объект, реализующий интерфейс IExternalDataSet с данными, полученными в результате запроса, заданного параметром SQL. Фактически метод является оберткой метода Perform объекта-провайдера IInfoProvider
  • функция SelectedRecordsCount возвращает количество записей, отмеченных пользователем в гриде в момент выгрузки в Excel
  • функция SelectedRecord возвращает первичный ключ отмеченной пользователем записи с номером Index
  • процедура PlaceCurrentQuery осуществляет перенос в указанное положение указанного рабочего листа данных текущего табличного представления. Параметр Sheet указывает на рабочий лист Excel, на который будет осуществляться перенос, параметр CaptionsNeeded определяет необходимость переноса заголовков колонок, параметры Row и Column определяют соответственно номер строки и столбца на рабочем листе Excel, начиная с которых будут расположены данные. Параметр ShiftRows определяет необходимость сдвига строк вниз при переносе данных (информация в ячейках, лежащих НИЖЕ строки, определенной параметром Row, будет либо затерта, либо сдвинута на требуемое число строк вниз. Параметр ShiftColumns определяет необходимость сдвига колонок вправо при переносе данных (информация в ячейках, лежащих ПРАВЕЕ столбца, определенного параметром Column, будет либо затерта, либо сдвинута на требуемое число строк вниз.
  • процедура PlaceQuery осуществляет перенос в указанное положение указанного рабочего листа данных заданного параметром DataSet набора данных. Параметр Sheet указывает на рабочий лист Excel, на который будет осуществляться перенос, параметр CaptionsNeeded определяет необходимость переноса заголовков колонок, параметры Row и Column определяют соответственно номер строки и столбца на рабочем листе Excel, начиная с которых будут расположены данные. Параметр ShiftRows определяет необходимость сдвига строк вниз при переносе данных (информация в ячейках, лежащих НИЖЕ строки, определенной параметром Row, будет либо затерта, либо сдвинута на требуемое число строк вниз. Параметр ShiftColumns определяет необходимость сдвига колонок вправо при переносе данных (информация в ячейках, лежащих ПРАВЕЕ столбца, определенного параметром Column, будет либо затерта, либо сдвинута на требуемое число строк вниз.
  • свойство CurrentQuery возвращает строку запроса, на основе которого постоено текущее табличное представление.

См. также