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

Таблица: различия между версиями

Материал из Химсофт Вики
Нет описания правки
Полностью удалено содержимое страницы
Метка: очистка
Строка 1: Строка 1:
<div style="background-color: #fff0f3; border-left: 5px solid #dc3545; padding: 15px; margin: 10px 0; color: #a71d2a;">
<b>Внимание!</b><br/>
Это описание - для старой версии дизайнера документов (<b><i>AR</i></b>).<br/>
В ближайшее время страница будет обновлена на описание настройки в <b><i>FastReports</i></b>.
</div>


'''Таблица''' (<code>Table</code>) - область данных, которая используется для отображения информации в табличном формате в табличных отчётах.
==Общие сведения==
*таблица состоит из столбцов и строк, в которых организованы данные;
*по умолчанию в таблице три столбца и три строки, всего девять ячеек, каждая из которых заполнена [[TextBox|текстовым полем]];
*во время разработки вы можете добавлять или удалять столбцы, строки и группы в соответствии с вашими потребностями;
*в ячейки таблицы можно встраивать другие области данных ([[Текстовое_поле|текстовые поля]], [[Форматированный_текст|поля форматированного текста]], картинки и др.).
==Создание таблицы==
*для добавления таблицы необходимо в левой части окна Дизайнера левой кнопкой мыши нажать на элемент <code>Table</code> и, не отпуская, перенести его в желаемое место и отпустить кнопку мыши;
[[Файл:Table.png|center|thumb]]
*по умолчанию в таблице три столбца и три строки, всего девять ячеек, каждая из которых заполнена текстовым полем;
*по умолчанию в таблице три столбца и три строки, всего девять ячеек, каждая из которых заполнена текстовым полем;
[[Файл:Table2.png|center|thumb]]
*первая строка <code>Table Header</code> является строкой заголовка, может располагаться только на первой странице или повторяться на всех;
*вторая строка <code>Table Details</code> является строкой собственно данных;
*третья строка <code>Table Footer</code> является результирующей (можно использовать для итоговых вычислений), также может располагаться только на первой странице или повторяться на всех;
*для скрытия результирующей строки в контекстном меню таблицы отжать значение <code>Table Footer</code>;
[[Файл:Table3.png|center|thumb]]
*аналогичным образом можно регулировать отображение остальных разделов строк (<code>Table Header</code>, <code>Table Details</code>).
==Изменение размера таблицы==
*для изменения размера таблицы необходимо левой кнопкой мыши перетащить узловую точку границы таблицы в желаемое место и отпустить кнопку мыши;
[[Файл:Table4.png|center|thumb]]
*также для изменения размера таблицы можно использовать окно свойств таблицы, пункт меню <code>Layout >> Size</code>.
[[Файл:Table5.png|center]]
==Изменение высоты строк==
*для изменения высоты строк необходимо выбрать одну или несколько строк таблицы, перейти в окно свойств таблицы, пункт меню <code>Layout >> Height</code> и ввести необходимые данные (например, 0,55).
[[Файл:Table6.png|center]]
==Создание и удаление столбцов==
*для добавления столбцов в таблицу необходимо выбрать один из столбцов таблицы, нажать правую клавишу мыши и в контекстном меню выбрать добавление столбца справа <code>Insert Column to the Right</code> или слева <code>Insert Column to the Left</code> от выделенного столбца;
[[Файл:Table7.png|center|thumb]]
*для удаления столбцов в таблицу необходимо выбрать один или несколько столбцов, нажать правую клавишу мыши и в контекстном меню выбрать удаление столбца <code>Delete Columns</code>.
==Объединение и разделение ячеек==
*для объединения необходимо выделить объединяемые ячейки, вызвать правой кнопкой мышки контекстное меню, выбрать пункт <code>Merge Cells</code>;
[[Файл:Table8.png|center]]
*для разделения необходимо выделить разделяемую ячейку, вызвать правой кнопкой мышки контекстное меню, выбрать пункт <code>Split Cells</code>.
[[Файл:Table9.png|center]]
==Объединение соседних ячеек с одинаковыми значениями==
*левой кнопкой мыши выделить необходимую ячейку таблицы;
*в разделе свойств элемента <code>Layout >> AutoMergeMode</code> нажать левой кнопкой мыши на стрелку;
[[Файл:Table11.png|center]]
*выбрать значение из списка: <code>Never</code> (по умолчанию, никогда не объединяются),  <code>Always</code> (всегда объединяются) и <code>Restricted</code> (объединяются только в том случае, если соответствующие ячейки в предыдущих столбцах объединены аналогичным образом – <code>Always</code> или <code>Restricted</code>).
[[Файл:Table10.png|center|thumb]]
Примечание: [[Текстовое поле#Свойства Layout|другие свойства]] сочетания границ и содержимого текстовых ячеек.
==Изменение свойств границ==
Для отображения всех границ таблицы: 
*выделить всю таблицу на основном поле конструктора или в дереве отчета <code>ReportSection1 >> Body >> Table1</code>;
*перейти в окно свойств таблицы, в пункте меню <code>Appearance >> BorderStyle</code>;
[[Файл:Table12.png|center]]
*в раскрывающемся списке выбрать значение <code>Solid</code> или другое требуемое (по умолчанию при создании таблицы границы не отображаются – значение <code>None</code>).
Также можно настроить отображение каждой границы ячейки отдельно. Для этого:
*выбрать одну или несколько ячеек;
*раскрыть пункт меню <code>Appearance >> BorderStyle</code>;
[[Файл:Table13.png|center]]
*в раскрывающемся списке выбрать значение <code>Solid</code> для любой из четырех границ (в данном случае значение <code>Solid</code> установлено для нижней границы).
==Наименование и форматирование заголовков==
По умолчанию каждая ячейка таблицы является текстовым полем, соответственно форматирование содержимого такое же:
[[Файл:Table14.png|center]]
Для шрифта вносятся изменения в следующие свойства:
*стиль <code>Appearance >> Font >> FontStyle</code> – нормальный <code>Normal</code> или курсив <code>Italic</code>;
*название <code>Appearance >> Font >> FontFamily</code>;
*размер <code>Appearance >> Font >> FontSize</code>;
*толщина <code>Appearance >> Font >> FontWeight</code> – нормальный <code>Normal</code>, жирный <code>Bold</code> и другие.
Выравнивание текста:
*по горизонтали <code>Appearance >> Font >> TextAlign</code>;
*выравнивание текста по вертикали <code>Appearance >> Font >> VerticalAlign</code>.
Изменение имени текстового поля:
*<code>Data >> DataElementName</code>;
*<code>Design >> Name</code>.
==Определение нумерации строк==
*на ячейке данных, в которой будут выводиться номера строк (в данном случае – первый столбец, первая строка после заголовка) правой кнопкой вызвать контекстное меню;
*выбрать пункт <code>Expression…</code>;
[[Файл:Table15.png|center]]
*в появившемся окне <code>Expression Editor</code> в поле <code>Expression:</code> ввести с клавиатуры <code>=RowNumber()</code> или выбрать (двойной клик) данную функцию из меню <code>Fields: >> Common Functions >> Miscellaneous >> RowNumber</code>;
[[Файл:Table16.png|center|thumb]]
*в дальнейшем, при необходимости, можно создать фильтр <code>ReportParametrNumberFirstString</code> для ввода начального значения первой строки пользователем; в таком случае выражение будет иметь вид <code>=RowNumber() + Parameters!ReportParametrNumberFirstString.Value – 1</code>.
==Добавление данных БД в ячейки из DataSet==
*для ввода простого значения из подключенного [[DataSet|набора данных <code>DataSet</code>]] необходимо выбрать желаемую конечную ячейку таблицы;
*в правой верхней части ячейки левой кнопкой мыши нажать на три горизонтальных синих черточки;
[[Файл:Table17.png|center]]
*в появившемся списке всех доступных в <code>DataSet</code> полей выбрать необходимое поле;
*при этом значение поля в <code>DataSet</code> имеет ряд синонимов
**в списке название фигурирует как <code>fio</code>;
**в ячейке после выбора будет отображаться в сокращенном формате как <code>=[fio]</code>;
**в окне <code>Expression Editor</code> будет отображаться в полном формате как <code>=Fields!fio.Value</code>.
==Статическая сортировка==
'''Статическая сортировка''' - выполняется (в отличие от интерактивной) до вывода отчета на экран и является условно неизменяемой. Для изменения нужны:
*выход из режима <code>Preview</code>,
*изменение в свойствах таблицы полей и/или порядка сортировки,
*повторная генерация отчета в режиме <code>Preview</code>.
===Порядок сортировки области данных таблицы===
*выберите таблицу и щелкните ссылку <code>Property dialog...</code>, чтобы открыть диалоговое окно <code>Table</code>;
*перейдите в раздел <code>Sorting</code> и нажмите <code>+</code>;
*в поле <code>Expression</code> выберите значение для сортировки данных отчета (например, <code>=[fio]</code>);
*выберите направление сортировки, выбрав варианты по возрастанию (<code>Ascending</code>) или по убыванию (<code>Descending</code>);
*нажмите <code>ОК</code>.
[[Файл:sorting.png|center|thumb]]
==Интерактивная сортировка==
'''Интерактивная сортировка''' используется для сортировки столбцов данных в области данных в уже опубликованном отчете.
===Диалог свойств===
Функция интерактивной сортировки настраивается на вкладке <code>Interactive Sort</code>, которая доступна в диалоговом окне <code>TextBox</code>.
[[Файл:sorting_2.png|center|thumb]]
Для настройки интерактивной сортировки используются следующие поля:
*<code>Sort Expression:</code> - выражение, задающее значение сортировки (например - поле) для данных, содержащихся в столбце;
*<code>Data region or group to sort:</code> - выберите уровень группировки или область данных в отчете для сортировки;
**<code>Current scope</code> - значением по умолчанию является текущая область;
**<code>Choose data region or grouping</code> - выбор альтернативной области данных или группировки;
*<code>Evaluate sort expression in this scope:</code> - выберите уровень группировки в отчете, на котором будет оцениваться выражение сортировки выражение агрегированной сортировки;
**<code>Current scope</code> - значением по умолчанию является текущая область;
**<code>Choose data region or grouping</code> - выбор альтернативной области данных или группировки.
===Блок интерфейса "Свойства"===
Те же самые возможности (с другими названиями, но отражающими суть) доступны в разделе <code>Свойства >> Data >> UserSort</code>
[[Файл:sorting_4.png|center|thumb]]
===Использование===
После настройки интерактивной сортировки при предварительном просмотре отчета в элементе управления TextBox отображается значок сортировки [[Файл:sorting_3.png|20px|baseline|link=]].
Пользователь может сортировать данные, отображаемые в текстовом поле, в порядке возрастания или убывания, щелкая по значкам.
==Группировка данных таблицы==
===Создание группировки таблицы===
*выделить таблицу на основном поле конструктора или в дереве;
*нажать на кнопку диалогового окна свойств <code>Property dialog…</code>;
[[Файл:Table19.png|center|thumb]]
*в открывшемся окне в левом столбце перейти на вкладку <code>Table - Groups</code> и нажать на кнопку <code>+</code>;
[[Файл:Table20.png|center|thumb]]
*в результате появится группа <code>MainTable_Group1</code>;
[[Файл:Table21.png|center|thumb]]
*в области <code>Group on:</code> нажать на стрелку поля <code>Expression</code> и в раскрывшемся списке выбрать поле из <code>DataSet</code>, по которому будет проводиться группировка;
*в результате на основном поле конструктора выше и ниже основной строки с данными появятся строки добавленной группировки.
[[Файл:Table22.png|center|thumb]]
===Удаление результирующей строки группировки===
*выделить таблицу на основном поле конструктора или в дереве;
*нажать на кнопку диалогового окна свойств <code>Property dialog…</code> (рис. 4.19);
[[Файл:Table19.png|center|thumb]]
*в открывшемся окне в левом столбце перейти на вкладку <code>Table - Groups</code>;
*в правом разделе окна перейти на вкладку <code>Layout</code> (рис. 4.23);
[[Файл:Table23.png|center|thumb]]
*убрать галочку из поля <code>Include group footer</code>.
==Нумерация==
===Сквозная нумерация строк===
*левой кнопкой мыши выделить ячейку таблицы (обычно крайнюю левую);
*правой кнопкой мыши вызвать контекстное меню
*выбрать пункт <code>Expression…</code>;
*в появившемся окне <code>Expression Editor</code> в левой части окна в области <code>Fields:</code> выбрать пункт <code>Common Function >> Miscellaneous >> RowNumber</code> и двойным кликом или кнопкой <code>Append</code> добавить пункт <code>RowNumber</code> в область <code>Expression:</code>;
[[Файл:Table24.png|center|thumb]]
*также можно с клавиатуры в поле <code>Expression:</code> ввести <code>=RowNumber()</code>.
===Сквозная нумерация строк со значения, заданного пользователем===
*создать [[простой фильтр]] <code>ReportParametrNumberFirstString</code>;
*задать имя фильтра, тип данных <code>Integer</code> и текст-приглашение для ввода данных на вкладке <code>Report – Parameters >> General</code>;
[[Файл:Table25.png|center|thumb]]
*задать значение по умолчанию <code>1</code>, тип данных <code>Integer</code> и текст-приглашение для ввода данных на вкладке <code>Report – Parameters >> DefaultValues</code>;
[[Файл:Table26.png|center|thumb]]
*левой кнопкой мыши выбрать ячейку таблицы (обычно крайнюю левую);
*правой кнопкой мыши вызвать контекстное меню;
*выбрать пункт <code>Expression…</code>;
*в поле <code>Expression:</code> ввести с клавиатуры <code>=RowNumber() + Parameters!ReportParametrNumberFirstString.Value - 1</code> или выбрать соответствующие элементы в поле <code>Fields:</code>;
[[Файл:Table27.png|center|thumb]]
*в результате получится простой фильтр.
[[Файл:Table28.png|center]]
===Нумерация групп и строк внутри групп===
*для нумерации групп и строк групп необходимо дважды провести [[Таблица#Группировка данных таблицы|группировку таблицы]];
[[Файл:Table29.png|center|thumb]]
*создать группу верхнего уровня <code>Type_Group</code> («Тип объекта анализа») на основании поля <code>type_name</code> из текущего набора данных;
[[Файл:Table30.png|center|thumb]]
*левой кнопкой мыши выбрать ячейку таблицы (обычно крайнюю левую);
*правой кнопкой мыши вызвать контекстное меню;
*выбрать пункт <code>Expression…</code>;
*в поле <code>Expression:</code> ввести с клавиатуры (или выбрать в поле <code>Fields:</code>) <code>=GroupIndex("Type_Group") + 1 & ". " & Fields.type_name.Value</code>;
*создается группа второго уровня <code>AO_Group</code> («Объект анализа») на основании поля <code>ao_name</code> из текущего набора данных;
[[Файл:Table31.png|center|thumb]]
*левой кнопкой мыши выбрать ячейку таблицы (обычно крайнюю левую);
*правой кнопкой мыши вызвать контекстное меню;
*выбрать пункт <code>Expression…</code>;
*в поле <code>Expression:</code> ввести с клавиатуры (или выбрать в поле <code>Fields:</code>) <code>=GroupIndex("Type_Group") + 1 & "." & GroupIndex("AO_Group") + 1 & ". " & Fields!ao_name.Value</code>.
==Фильтрация данных по параметру==
*выделить таблицу на основном поле конструктора или в дереве;
*нажать на кнопку диалогового окна свойств <code>Property dialog…</code>;
*в открывшемся окне в левом столбце перейти на вкладку <code>Table - Filters</code> и нажать на кнопку <code>+</code> (рис. 5.4);
[[Файл:Parameter4.png|center|thumb]]
*в результате появится «пустой» параметр, не имеющий свойств;
*для добавления свойств нажать на стрелку поля <code>Expression</code> и в раскрывшемся списке выбрать поле из <code>DataSet</code> (например, <code>=Fields!lab_name.Value</code>), по которому будет проводиться группировка (рис. 5.5);
[[Файл:Parameter5.png|center|thumb]]
*в поле <code>Operator:</code> выбрать оператор <code>Equal</code> (рис. 5.6);
[[Файл:Parameter6.png|center|thumb]]
*в разделе <code>Values</code> в поле <code>Expression</code> нажать стрелку меню и выбрать из списка значение <code>Expression…</code> (рис. 5.6);
*в открывшемся окне <code>Expression Editor</code> в левой части окна в области <code>Fields:</code> раскрыть группу <code>Parameters</code> и выбрать пункт <code>ReportParameterLaboratory</code> (рис. 5.7);
[[Файл:Parameter7.png|center|thumb]]
*двойным кликом или кнопкой <code>Append</code> добавить пункт <code>ReportParameterLaboratory</code> в область <code>Expression:</code>;
*нажать кнопку <code>ОК</code> в окне <code>Expression Editor</code>;
*нажать кнопку <code>ОК</code> в окне <code>Table - Filters</code>;
*при формировании отчета перед выводом документа на экран появится колонка с параметром в качестве параметра (рис. 5.8).
[[Файл:Parameter8.png|center]]
==Условное отображение строк==
'''Условное отображение строк''' - применяется, если таблица имеет сложную неоднородную структуру.
[[Файл:condition.png|center|thumb]]
Например, если часть ячеек должна быть объединена (строка 1 по столбцам "минимальная" и "максимальная"), а часть остаться необъединенной (строки 2-3).
===Порядок действий===
*в конструкторе создать элемент <code>Table</code>;
*создать 2 строки заголовков <code>Table Header</code> (2 уровня строк нужны для ячеек блока "Норма: минимальная / максимальная");
*привести созданную по умолчанию единственную строку данных <code>Table Details</code> в соответствие требуемой строке №1 (границы, шрифт, выравнивание, наполнение данными, объединение ячеек "минимальная / максимальная");
*выделить строку данных;
[[Файл:condition_2.png|center|thumb]]
*в блоке элементов интерфейса "Свойства" выбрать <code>Свойства >> Apperance >> Visibility >> Hidden</code>;
[[Файл:condition_3.png|center|thumb]]
*ввести условие отображения строки с данным оформлением (например, <code>=Fields!group_number.Value <> 1</code>);
*условной итоговой командой для дизайнера можно считать следующую - ''в таблице в визуальном представлении (<code>Visibility</code>) выбранной строки данных скрыть (<code>Hidden</code>) строки, у которых будет выполняться введенное условие (<code>=Fields!group_number.Value <> 1</code>), т.е. скрыть все строки, кроме первой'';
*создать вторую строку данных;
*скопировать (для ускорения форматирования) все ячейки из первой строки данных;
*привести вторую строку данных <code>Table Details</code> в соответствие требуемой в строках №2-3 (границы, шрифт, выравнивание, наполнение данными, раздельные ячейки "минимальная / максимальная");
[[Файл:condition_4.png|center|thumb]]
*в блоке элементов интерфейса "Свойства" выбрать <code>Свойства >> Apperance >> Visibility >> Hidden</code>;
[[Файл:condition_5.png|center|thumb]]
*ввести условие отображения строки с данным оформлением (например, <code>=Fields!group_number.Value = 1</code>);
*условной итоговой командой для дизайнера можно считать следующую - ''в таблице в визуальном представлении (<code>Visibility</code>) выбранной строки данных скрыть (<code>Hidden</code>) строки, у которых будет выполняться введенное условие (<code>=Fields!group_number.Value = 1</code>), т.е. скрыть первую строку''.
{{Блок документов ВебЛИМС «Тритея»}}
[[Category:Внутренняя документация]]
[[Category:Тритея]]
[[Category:Дизайнер_документов]]

Версия от 04:49, 15 октября 2026