Перейти к содержанию

Таблица

Материал из Химсофт Вики

Таблица (Table) - область данных, которая используется для отображения информации в табличном формате в табличных отчётах.

Общие сведения

  • таблица состоит из столбцов и строк, в которых организованы данные;
  • по умолчанию в таблице три столбца и три строки, всего девять ячеек, каждая из которых заполнена текстовым полем;
  • во время разработки вы можете добавлять или удалять столбцы, строки и группы в соответствии с вашими потребностями;
  • в ячейки таблицы можно встраивать другие области данных (текстовые поля, поля форматированного текста, картинки и др.).

Создание таблицы

  • для добавления таблицы необходимо в левой части окна Дизайнера левой кнопкой мыши нажать на элемент Table и, не отпуская, перенести его в желаемое место и отпустить кнопку мыши;
  • по умолчанию в таблице три столбца и три строки, всего девять ячеек, каждая из которых заполнена текстовым полем;
  • по умолчанию в таблице три столбца и три строки, всего девять ячеек, каждая из которых заполнена текстовым полем;
  • первая строка Table Header является строкой заголовка, может располагаться только на первой странице или повторяться на всех;
  • вторая строка Table Details является строкой собственно данных;
  • третья строка Table Footer является результирующей (можно использовать для итоговых вычислений), также может располагаться только на первой странице или повторяться на всех;
  • для скрытия результирующей строки в контекстном меню таблицы отжать значение Table Footer;
  • аналогичным образом можно регулировать отображение остальных разделов строк (Table Header, Table Details).

Изменение размера таблицы

  • для изменения размера таблицы необходимо левой кнопкой мыши перетащить узловую точку границы таблицы в желаемое место и отпустить кнопку мыши;
  • также для изменения размера таблицы можно использовать окно свойств таблицы, пункт меню Layout >> Size.

Изменение высоты строк

  • для изменения высоты строк необходимо выбрать одну или несколько строк таблицы, перейти в окно свойств таблицы, пункт меню Layout >> Height и ввести необходимые данные (например, 0,55).

Создание и удаление столбцов

  • для добавления столбцов в таблицу необходимо выбрать один из столбцов таблицы, нажать правую клавишу мыши и в контекстном меню выбрать добавление столбца справа Insert Column to the Right или слева Insert Column to the Left от выделенного столбца;
  • для удаления столбцов в таблицу необходимо выбрать один или несколько столбцов, нажать правую клавишу мыши и в контекстном меню выбрать удаление столбца Delete Columns.

Объединение и разделение ячеек

  • для объединения необходимо выделить объединяемые ячейки, вызвать правой кнопкой мышки контекстное меню, выбрать пункт Merge Cells;
  • для разделения необходимо выделить разделяемую ячейку, вызвать правой кнопкой мышки контекстное меню, выбрать пункт Split Cells.

Объединение соседних ячеек с одинаковыми значениями

  • левой кнопкой мыши выделить необходимую ячейку таблицы;
  • в разделе свойств элемента Layout >> AutoMergeMode нажать левой кнопкой мыши на стрелку;
  • выбрать значение из списка: Never (по умолчанию, никогда не объединяются), Always (всегда объединяются) и Restricted (объединяются только в том случае, если соответствующие ячейки в предыдущих столбцах объединены аналогичным образом – Always или Restricted).

Примечание: другие свойства сочетания границ и содержимого текстовых ячеек.

Изменение свойств границ

Для отображения всех границ таблицы:

  • выделить всю таблицу на основном поле конструктора или в дереве отчета ReportSection1 >> Body >> Table1;
  • перейти в окно свойств таблицы, в пункте меню Appearance >> BorderStyle;
  • в раскрывающемся списке выбрать значение Solid или другое требуемое (по умолчанию при создании таблицы границы не отображаются – значение None).

Также можно настроить отображение каждой границы ячейки отдельно. Для этого:

  • выбрать одну или несколько ячеек;
  • раскрыть пункт меню Appearance >> BorderStyle;
  • в раскрывающемся списке выбрать значение Solid для любой из четырех границ (в данном случае значение Solid установлено для нижней границы).

Наименование и форматирование заголовков

По умолчанию каждая ячейка таблицы является текстовым полем, соответственно форматирование содержимого такое же:

Для шрифта вносятся изменения в следующие свойства:

  • стиль Appearance >> Font >> FontStyle – нормальный Normal или курсив Italic;
  • название Appearance >> Font >> FontFamily;
  • размер Appearance >> Font >> FontSize;
  • толщина Appearance >> Font >> FontWeight – нормальный Normal, жирный Bold и другие.

Выравнивание текста:

  • по горизонтали Appearance >> Font >> TextAlign;
  • выравнивание текста по вертикали Appearance >> Font >> VerticalAlign.

Изменение имени текстового поля:

  • Data >> DataElementName;
  • Design >> Name.

Определение нумерации строк

  • на ячейке данных, в которой будут выводиться номера строк (в данном случае – первый столбец, первая строка после заголовка) правой кнопкой вызвать контекстное меню;
  • выбрать пункт Expression…;
  • в появившемся окне Expression Editor в поле Expression: ввести с клавиатуры =RowNumber() или выбрать (двойной клик) данную функцию из меню Fields: >> Common Functions >> Miscellaneous >> RowNumber;
  • в дальнейшем, при необходимости, можно создать фильтр ReportParametrNumberFirstString для ввода начального значения первой строки пользователем; в таком случае выражение будет иметь вид =RowNumber() + Parameters!ReportParametrNumberFirstString.Value – 1.

Добавление данных БД в ячейки из DataSet

  • для ввода простого значения из подключенного набора данных DataSet необходимо выбрать желаемую конечную ячейку таблицы;
  • в правой верхней части ячейки левой кнопкой мыши нажать на три горизонтальных синих черточки;
  • в появившемся списке всех доступных в DataSet полей выбрать необходимое поле;
  • при этом значение поля в DataSet имеет ряд синонимов
    • в списке название фигурирует как fio;
    • в ячейке после выбора будет отображаться в сокращенном формате как =[fio];
    • в окне Expression Editor будет отображаться в полном формате как =Fields!fio.Value.

Статическая сортировка

Статическая сортировка - выполняется (в отличие от интерактивной) до вывода отчета на экран и является условно неизменяемой. Для изменения нужны:

  • выход из режима Preview,
  • изменение в свойствах таблицы полей и/или порядка сортировки,
  • повторная генерация отчета в режиме Preview.

Порядок сортировки области данных таблицы

  • выберите таблицу и щелкните ссылку Property dialog..., чтобы открыть диалоговое окно Table;
  • перейдите в раздел Sorting и нажмите +;
  • в поле Expression выберите значение для сортировки данных отчета (например, =[fio]);
  • выберите направление сортировки, выбрав варианты по возрастанию (Ascending) или по убыванию (Descending);
  • нажмите ОК.

Интерактивная сортировка

Интерактивная сортировка используется для сортировки столбцов данных в области данных в уже опубликованном отчете.

Диалог свойств

Функция интерактивной сортировки настраивается на вкладке Interactive Sort, которая доступна в диалоговом окне TextBox.

Для настройки интерактивной сортировки используются следующие поля:

  • Sort Expression: - выражение, задающее значение сортировки (например - поле) для данных, содержащихся в столбце;
  • Data region or group to sort: - выберите уровень группировки или область данных в отчете для сортировки;
    • Current scope - значением по умолчанию является текущая область;
    • Choose data region or grouping - выбор альтернативной области данных или группировки;
  • Evaluate sort expression in this scope: - выберите уровень группировки в отчете, на котором будет оцениваться выражение сортировки выражение агрегированной сортировки;
    • Current scope - значением по умолчанию является текущая область;
    • Choose data region or grouping - выбор альтернативной области данных или группировки.

Блок интерфейса "Свойства"

Те же самые возможности (с другими названиями, но отражающими суть) доступны в разделе Свойства >> Data >> UserSort

Использование

После настройки интерактивной сортировки при предварительном просмотре отчета в элементе управления TextBox отображается значок сортировки .

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

Группировка данных таблицы

Создание группировки таблицы

  • выделить таблицу на основном поле конструктора или в дереве;
  • нажать на кнопку диалогового окна свойств Property dialog…;
  • в открывшемся окне в левом столбце перейти на вкладку Table - Groups и нажать на кнопку +;
  • в результате появится группа MainTable_Group1;
  • в области Group on: нажать на стрелку поля Expression и в раскрывшемся списке выбрать поле из DataSet, по которому будет проводиться группировка;
  • в результате на основном поле конструктора выше и ниже основной строки с данными появятся строки добавленной группировки.

Удаление результирующей строки группировки

  • выделить таблицу на основном поле конструктора или в дереве;
  • нажать на кнопку диалогового окна свойств Property dialog… (рис. 4.19);
  • в открывшемся окне в левом столбце перейти на вкладку Table - Groups;
  • в правом разделе окна перейти на вкладку Layout (рис. 4.23);
  • убрать галочку из поля Include group footer.

Нумерация

Сквозная нумерация строк

  • левой кнопкой мыши выделить ячейку таблицы (обычно крайнюю левую);
  • правой кнопкой мыши вызвать контекстное меню
  • выбрать пункт Expression…;
  • в появившемся окне Expression Editor в левой части окна в области Fields: выбрать пункт Common Function >> Miscellaneous >> RowNumber и двойным кликом или кнопкой Append добавить пункт RowNumber в область Expression:;
  • также можно с клавиатуры в поле Expression: ввести =RowNumber().

Сквозная нумерация строк со значения, заданного пользователем

  • создать простой фильтр ReportParametrNumberFirstString;
  • задать имя фильтра, тип данных Integer и текст-приглашение для ввода данных на вкладке Report – Parameters >> General;
  • задать значение по умолчанию 1, тип данных Integer и текст-приглашение для ввода данных на вкладке Report – Parameters >> DefaultValues;
  • левой кнопкой мыши выбрать ячейку таблицы (обычно крайнюю левую);
  • правой кнопкой мыши вызвать контекстное меню;
  • выбрать пункт Expression…;
  • в поле Expression: ввести с клавиатуры =RowNumber() + Parameters!ReportParametrNumberFirstString.Value - 1 или выбрать соответствующие элементы в поле Fields:;
  • в результате получится простой фильтр.

Нумерация групп и строк внутри групп

  • создать группу верхнего уровня Type_Group («Тип объекта анализа») на основании поля type_name из текущего набора данных;
  • левой кнопкой мыши выбрать ячейку таблицы (обычно крайнюю левую);
  • правой кнопкой мыши вызвать контекстное меню;
  • выбрать пункт Expression…;
  • в поле Expression: ввести с клавиатуры (или выбрать в поле Fields:) =GroupIndex("Type_Group") + 1 & ". " & Fields.type_name.Value;
  • создается группа второго уровня AO_Group («Объект анализа») на основании поля ao_name из текущего набора данных;
  • левой кнопкой мыши выбрать ячейку таблицы (обычно крайнюю левую);
  • правой кнопкой мыши вызвать контекстное меню;
  • выбрать пункт Expression…;
  • в поле Expression: ввести с клавиатуры (или выбрать в поле Fields:) =GroupIndex("Type_Group") + 1 & "." & GroupIndex("AO_Group") + 1 & ". " & Fields!ao_name.Value.

Условное отображение строк

Условное отображение строк - применяется, если таблица имеет сложную неоднородную структуру.

Например, если часть ячеек должна быть объединена (строка 1 по столбцам "минимальная" и "максимальная"), а часть остаться необъединенной (строки 2-3).

Порядок действий

  • в конструкторе создать элемент Table;
  • создать 2 строки заголовков Table Header (2 уровня строк нужны для ячеек блока "Норма: минимальная / максимальная");
  • привести созданную по умолчанию единственную строку данных Table Header в соответствие требуемой строке №1 (границы, шрифт, выравнивание, наполнение данными, объединение ячеек "минимальная / максимальная");
  • выделить строку данных;
  • в блоке элементов интерфейса "Свойства" выбрать Свойства >> Apperance >> Visibility >> Hidden;
  • ввести условие отображения строки с данным оформлением (например, =Fields!group_number.Value <> 1);
  • условной итоговой командой для дизайнера можно считать следующую - в таблице в визуальном представлении (Visibility) выбранной строки данных скрыть (Hidden) строки, у которых будет выполняться введенное условие (=Fields!group_number.Value <> 1);