Показать / скрыть оглавление

    Частные случаи использования выражений

    В данном руководстве перечислены решения общих задач , связанных с Выражениями.

    Сгруппированные предложения в скобках

    Используйте квадратные скобки, чтобы указать условие, при котором выражение должно возвращать результат.

    Например, следующее выражение возвращает всех клиентов с датой счета 25.08.2006 и клиентов c суммой счета 100:

    [Accounts][[Date] == #8/25/2006#] && [Accounts][[Amount] == 100]

    В следующем примере, выражение возвращает всех Клиентов, у которых есть Счет с датой 25.08.2006 и суммой 100:

    [Accounts][[Date] == #8/25/2006# && [Amount] == 100]

    Расчет групповые сводки

    Используйте оператор ^, чтобы указать выражение, которое вычисляет сводку группы.

    • Суммируйте значения полей EFC в группе:

      [][[GroupFieldName] == [^.GroupFieldName]].Sum([EFC])

    • Укажите значение заголовка группы:

      [][[CategoryID] == [^.CategoryID] and [ProductID] == [][[CategoryID] == [^.CategoryID]].Max([ProductID])].Max([ProductName])

    • Подсчитайте, сколько раз встречается значение:

    Следующее выражение подсчитывает, сколько раз значение 12 встречается в источнике данных:

    [][[FootSize]='12'].Count()

    Следующее выражение подсчитывает количество записей с ненулевыми значениями:

    [][[FootSize]!=0].Avg([FootSize])

    Свойства элементов отчета

    Элементы отчета отображаются в обозревателе отчетов конструктора отчетов. Вы можете получить доступ к этим элементам и их свойствам в выражении. В следующем примере показано, как задать для свойства BackColor метки значение свойства BackColor другой метки:

    [ReportItems].[xrLabel2].[BackColor]

    Замечание
    • [ReportItems] это обычный список, предоставляющий доступ ко всем элементам отчета на одном уровне.
    • Вы не можете использовать коллекцию ReportItems в выражении Вычисляемого поля.

    Изображения

    Когда вы указываете выражение для свойства Источник изображения элемента Картинка вы можете использовать идентификаторы изображений из коллекции ImageResources отчета.

    IIf([MarchSales]>20, [Images.ArrowUp],[Images.ArrowDown])

    Использование индексов строк/столбцов для ячеек кросс-таблицы

    Используйте следующие переменные, чтобы изменить настройки внешнего вида ячейки кросс-таблицы:

    • Arguments.GroupColumnIndex
      Возвращает индекс столбца ячейки в группе.

      iif([Arguments.GroupColumnIndex] % 2 == 1, Rgb(235, 241, 252), ?)
      /*
      Result: The specified color applies an odd-even color style to the Cross Tab's columns.
      */
      
    • Arguments.GroupRowIndex
      Возвращает индекс строки ячейки в группе.

      iif([Arguments.GroupRowIndex] % 2 == 1, Rgb(235, 241, 252), ?)
      /*
      Result: The specified color applies an odd-even color style to cross tab rows.
      */
      

    Использование переменных для выражений, связанных с событиями

    • DataSource.RowCount
      Возвращает общее количество строк данных в источнике данных.

      [DataSource.RowCount] != 0
      /*
      Result: When this expression is applied to a control's Visible property, the control is hidden if the data source contains no data.
      */
      
    • DataSource.CurrentRowIndex
      Возвращает индекс текущей строки данных в источнике данных.

      Iif([DataSource.CurrentRowIndex] % 2 = 0, 'red', 'green')
      /*
      Result: When this expression is used for a table row's BackColor property, odd rows are colored in red, even rows are colored in green.
      */
      
    Замечание

    Эти переменные недействительны, если в отчете есть элемент Оглавление.

    Укажите родительские отношения

    Используйте оператор родительского отношения '^' для ссылки на родителя в выражениях, написанных в контексте дочернего элемента. Вы можете последовательно применять этот оператор для охвата многоуровневых родительских отношений.

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

    [][[^.CategoryID] == [CategoryID]].Sum([UnitPrice])

    Проверка элементов коллекции

    Используйте скобки, чтобы проверить, содержит ли коллекция элемент, удовлетворяющий условию. Следующее выражение возвращает значение true, если коллекция Accounts содержит хотя бы один элемент, удовлетворяющий условию [Amount] == ​​100:

    [Accounts][[Amount] == 100]

    Следующее выражение возвращает false, если коллекция Accounts пуста:

    [Accounts][]

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

    В начало страницы Справочная система Колибри. Группа компаний Октоника, 2022