|
|
| (не показано 100 промежуточных версий 3 участников) |
| Строка 1: |
Строка 1: |
| '''Таблица''' (<code>Table</code>) - область данных, которая используется для отображения информации в табличном формате в табличных отчётах. | | '''Объект <code>Таблица</code>''' - состоит из строк, колонок и ячеек и представляет собой упрощенный аналог таблицы <code>Microsoft Excel</code>. Он выглядит следующим образом: |
|
| |
|
| ==Общие сведения==
| | [[Файл: table_obj.png|center|border]] |
| *таблица состоит из столбцов и строк, в которых организованы данные;
| |
| *по умолчанию в таблице три столбца и три строки, всего девять ячеек, каждая из которых заполнена [[TextBox|текстовым полем]];
| |
| *во время разработки вы можете добавлять или удалять столбцы, строки и группы в соответствии с вашими потребностями;
| |
| *в ячейки таблицы можно встраивать другие области данных ([[Текстовое_поле|текстовые поля]], [[Форматированный_текст|поля форматированного текста]], картинки и др.).
| |
|
| |
|
| ==Создание таблицы==
| | Подробнее об использовании этого объекта можно прочитать в главе <code>Построение отчетов</code>. |
| *для добавления таблицы необходимо в левой части окна Дизайнера (рис. 4.1) левой кнопкой мыши нажать на элемент <code>Table</code> и, не отпуская, перенести его в желаемое место и отпустить кнопку мыши;
| |
| *по умолчанию в таблице три столбца и три строки, всего девять ячеек, каждая из которых заполнена текстовым полем (рис. 4.2);
| |
| *по умолчанию в таблице три столбца и три строки, всего девять ячеек, каждая из которых заполнена текстовым полем (рис. 4.2);
| |
| *первая строка является строкой заголовка, может располагаться только на первой странице или повторяться на всех;
| |
| *вторая строка является строкой собственно данных;
| |
| *третья строка является результирующей (можно использовать для итоговых вычислений), также может располагаться только на первой странице или повторяться на всех;
| |
| *для скрытия результирующей строки в контекстном меню таблицы отжать значение <code>Table Footer</code> (рис. 4.3);
| |
| *аналогичным образом можно регулировать отображение остальных разделов строк (<code>Table Header</code>, <code>Table Details</code>).
| |
|
| |
|
| ==Изменение размера таблицы==
| | Объект имеет следующие свойства: |
| *для изменения размера таблицы необходимо левой кнопкой мыши перетащить узловую точку границы таблицы в желаемое место и отпустить кнопку мыши (рис. 4.4);
| |
| *также для изменения размера таблицы можно использовать окно свойств таблицы, пункт меню «Layout» >> «Size» (рис. 4.5).
| |
|
| |
|
| ==Изменение высоты строк== | | {|class="wikitable" style="margin:auto; background-color: #fff;" |
| *для изменения высоты строк необходимо выбрать одну или несколько строк таблицы, перейти в окно свойств таблицы, пункт меню «Layout» >> «Height» (рис. 4.6) и ввести необходимые данные (например, 0,55).
| | |- |
| | | !Свойство |
| ==Создание и удаление столбцов==
| | !Описание |
| *для добавления столбцов в таблицу необходимо выбрать один из столбцов таблицы, нажать правую клавишу мыши и в контекстном меню выбрать добавление столбца справа («Insert Column to the Right») или слева («Insert Column to the Left») от выделенного столбца (рис. 4.7);
| | |- |
| *для удаления столбцов в таблицу необходимо выбрать один или несколько столбцов, нажать правую клавишу мыши и в контекстном меню выбрать удаление столбца («Delete Columns») (рис. 4.7).
| | |<code>ColumnCount</code><br>'''''Количество колонок''''' |
| | | |Позволяет быстро создать нужное количество колонок. Если колонок в таблице меньше, они добавляются, если больше – удаляются. |
| ==Объединение и разделение ячеек==
| | |- |
| *для объединения необходимо выделить объединяемые ячейки, вызвать правой кнопкой мышки контекстное меню, выбрать пункт «Merge Cells» (рис. 4.8);
| | |<code>RowCount</code><br>'''''Количество строк''''' |
| *для разделения необходимо выделить разделяемую ячейку, вызвать правой кнопкой мышки контекстное меню, выбрать пункт «Split Cells» (рис. 4.9).
| | |Позволяет быстро создать нужное количество строк. Если строк в таблице меньше, они добавляются, если больше – удаляются. |
| | | |- |
| ==Объединение соседних ячеек с одинаковыми значениями==
| | |<code>FixedColumns</code><br>'''''Фиксированные колонки''''' |
| *левой кнопкой мыши выделить необходимую ячейку таблицы;
| | |Определяет, сколько колонок в начале таблицы являются фиксированными. Фиксированные колонки образуют заголовок таблицы. Печатью заголовков управляет свойство <code>Повторять заголовки</code>. Это свойство работает только для таблиц, которые строятся динамически. |
| *в разделе свойств элемента «Layout» >> «AutoMergeMode» нажать левой кнопкой мыши на стрелку (рис. 4.11);
| | |- |
| *выбрать значение из списка: Never (по умолчанию, никогда не объединяются), Always (всегда объединяются) и Restricted (объединяются только в том случае, если соответствующие ячейки в предыдущих столбцах объединены аналогичным образом – Always или Restricted).
| | |<code>FixedRows</code><br>'''''Фиксированные строки''''' |
| | | |Определяет, сколько строк в начале таблицы являются фиксированными. Фиксированные строки образуют заголовок таблицы. Печатью заголовков управляет свойство <code>Повторять заголовки</code>. Это свойство работает только для таблиц, которые строятся динамически. |
| ==Изменение свойств границ==
| | |- |
| *для отображения всех границ таблицы необходимо выделить всю таблицу (на основном поле конструктора или в дереве отчета «ReportSection1» >> «Body» >> «Table1»), перейти в окно свойств таблицы, в пункте меню «Appearance» >> «BorderStyle» (рис. 4.12) в раскрывающемся списке выбрать значение «Solid» или другое требуемое (по умолчанию при создании таблицы границы не отображаются – значение «None» );
| | |<code>RepeatHeaders</code><br>'''''Повторять заголовки''''' |
| *также можно настроить отображение каждой границы ячейки отдельно; для этого необходимо выбрать одну или несколько ячеек, раскрыть пункт меню «Appearance» >> «BorderStyle» (рис. 4.13) в раскрывающемся списке выбрать значение «Solid» для любой из четырех границ (в данном случае значение «Solid» установлено для нижней границы).
| | |Позволяет печатать заголовки таблицы на каждой новой странице. Это свойство работает только для таблиц, которые строятся динамически. |
| | | |- |
| ==Наименование и форматирование заголовков==
| | |} |
| *по умолчанию каждая ячейка таблицы является текстовым полем, соответственно форматирование содержимого такое же (пп. 3.2-3.4, рис. 3.4-3.11, 4.14);
| |
| *стиль шрифта выбирается в свойстве «Appearance» >> «Font» >> «FontStyle» – нормальный («Normal») или курсив («Italic»);
| |
| *названия шрифта выбирается в свойстве «Appearance» >> «Font» >> «FontFamily»;
| |
| *размер шрифта выбирается в свойстве «Appearance» >> «Font» >> «FontSize»;
| |
| *толщина шрифта выбирается в свойстве «Appearance» >> «Font» >> «FontWeight» – нормальный («Normal»), жирный («Bold») и другие;
| |
| *выравнивание текста по горизонтали выбирается в свойстве «Appearance» >> «Font» >> «TextAlign»;
| |
| *выравнивание текста по вертикали выбирается в свойстве «Appearance» >> «Font» >> «VerticalAlign»;
| |
| *изменение имени текстового поля выбирается в 2-х свойствах «Data» >> «DataElementName» и «Design» >> «(Name)».
| |
| | |
| ==Определение нумерации строк==
| |
| *на ячейке данных, в которой будут выводиться номера строк (в данном случае – первый столбец, первая строка после заголовка) правой кнопкой вызвать контекстное меню, выбрать пункт «Expression…» (рис. 4.15);
| |
| *в появившемся окне «Expression Editor» (рис. 4.16) в поле «Expression:» ввести с клавиатуры «=RowNumber()» или выбрать (двойной клик) данную функцию из меню «Fields:» >> «Common Functions» >> «Miscellaneous» >> «RowNumber»;,
| |
| *в дальнейшем, при необходимости, можно создать фильтр (ReportParametrNumberFirstString) для ввода начального значения первой строки пользователем, в таком случае выражение будет иметь вид «=RowNumber() + Parameters!ReportParametrNumberFirstString.Value – 1».
| |
| | |
| ==Добавление данных БД в ячейки из DataSet==
| |
| *для ввода простого значения из подключенного набора DataSet необходимо выбрать желаемую конечную ячейку таблицы;
| |
| *в правой верхней части ячейки левой кнопкой мыши нажать на три горизонтальных синих черточки (рис. 4.17);
| |
| *в появившемся списке всех доступных в DataSet полей выбрать необходимое поле;
| |
| *при этом значение поля в DataSet имеет ряд синонимов
| |
| **в списке название фигурирует как «fio»;
| |
| **в ячейке после выбора будет отображаться в сокращенном формате как «=[fio]»;
| |
| **в окне «Expression Editor» будет отображаться в полном формате как «=Fields!fio.Value».
| |
| | |
| ==Группировка данных таблицы==
| |
| ===Создание группировки таблицы===
| |
| *выделить таблицу на основном поле конструктора или в дереве;
| |
| *нажать на кнопку диалогового окна свойств «Property dialog…» (рис. 4.19);
| |
| *в открывшемся окне в левом столбце перейти на вкладку «Table - Groups» и нажать на кнопку «+» (рис. 4.20);
| |
| *в результате появится группа «MainTable_Group1» (рис. 4.21);
| |
| *в области «Group on:» нажать на стрелку поля «Expression» и в раскрывшемся списке выбрать поле из DataSet, по которому будет проводиться группировка (рис. 4.19);
| |
| *в результате на основном поле конструктора выше и ниже основной строки с данными появятся строки добавленной группировки (рис. 4.22).
| |
| | |
| ===Удаление результирующей строки группировки===
| |
| *выделить таблицу на основном поле конструктора или в дереве;
| |
| *нажать на кнопку диалогового окна свойств «Property dialog…» (рис. 4.19);
| |
| *в открывшемся окне в левом столбце перейти на вкладку «Table - Groups»;
| |
| *в правом разделе окна перейти на вкладку «Layout» (рис. 4.23);
| |
| *убрать галочку из поля «Include group footer».
| |
| | |
| ==Нумерация==
| |
| ===Сквозная нумерация строк===
| |
| *левой кнопкой мыши выделить ячейку таблицы (обычно крайнюю левую);
| |
| *правой кнопкой мыши вызвать контекстное меню
| |
| *выбрать пункт «Expression…»;
| |
| *в появившемся окне «Expression Editor» в левой части окна в области «Fields:» выбрать пункт «Common Function» >> «Miscellaneous» >> «RowNumber» (рис. 4.23) и двойным кликом или кнопкой «Append» добавить пункт «RowNumber» в область «Expression:» ;
| |
| *также можно с клавиатуры в поле «Expression:» ввести «=RowNumber()».
| |
| | |
| ===Сквозная нумерация строк со значения, заданного пользователем===
| |
| *создать простой фильтр «ReportParametrNumberFirstString» (пп. 5.1-5.2);
| |
| *задать имя фильтра, тип данных «Integer» и текст-приглашение для ввода данных на вкладке «Report – Parameters» >> «General» (рис. 4.24);
| |
| *задать значение по умолчанию «1», тип данных «Integer» и текст-приглашение для ввода данных на вкладке «Report – Parameters» >> «DefaultValues» (рис. 4.25);
| |
| *левой кнопкой мыши выбрать ячейку таблицы (обычно крайнюю левую);
| |
| *правой кнопкой мыши вызвать контекстное меню;
| |
| *выбрать пункт «Expression…»;
| |
| *в поле «Expression:» ввести с клавиатуры «=RowNumber() + Parameters!ReportParametrNumberFirstString.Value - 1» или выбрать соответствующие элементы в поле «Fields:» (рис. 4.26);
| |
| *в результате получится простой фильтр (рис. 4.27).
| |
| | |
| ===Нумерация групп и строк внутри групп===
| |
| *для нумерации групп и строк групп (рис. 4.28) необходимо дважды провести группировку таблицы (п. 4.11);
| |
| *создать группу верхнего уровня «Type_Group» («Тип объекта анализа») на основании поля «type_name» из текущего набора данных (рис. 4.29);
| |
| *левой кнопкой мыши выбрать ячейку таблицы (обычно крайнюю левую);
| |
| *правой кнопкой мыши вызвать контекстное меню;
| |
| *выбрать пункт «Expression…»;
| |
| *в поле «Expression:» ввести с клавиатуры (или выбрать в поле «Fields:») «=GroupIndex("Type_Group") + 1 & ". " & Fields.type_name.Value»;
| |
| *создается группа второго уровня «AO_Group» («Объект анализа») на основании поля «ao_name» из текущего набора данных (рис. 4.30);
| |
| *левой кнопкой мыши выбрать ячейку таблицы (обычно крайнюю левую);
| |
| *правой кнопкой мыши вызвать контекстное меню;
| |
| *выбрать пункт «Expression…»;
| |
| *в поле «Expression:» ввести с клавиатуры (или выбрать в поле «Fields:») «=GroupIndex("Type_Group") + 1 & "." & GroupIndex("AO_Group") + 1 & ". " & Fields!ao_name.Value».
| |