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

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

Материал из Химсофт Вики
Нет описания правки
 
(не показано 10 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''Таблица''' (<code>Table</code>) - область данных, которая используется для отображения информации в табличном формате в табличных отчётах.  
'''Объект <code>Таблица</code>''' - состоит из строк, колонок и ячеек и представляет собой упрощенный аналог таблицы <code>Microsoft Excel</code>. Он выглядит следующим образом:


==Общие сведения==
[[Файл: table_obj.png|center|border]]
*таблица состоит из столбцов и строк, в которых организованы данные;
*по умолчанию в таблице три столбца и три строки, всего девять ячеек, каждая из которых заполнена [[TextBox|текстовым полем]];
*во время разработки вы можете добавлять или удалять столбцы, строки и группы в соответствии с вашими потребностями;
*в ячейки таблицы можно встраивать другие области данных ([[Текстовое_поле|текстовые поля]], [[Форматированный_текст|поля форматированного текста]], картинки и др.).


==Создание таблицы==
Подробнее об использовании этого объекта можно прочитать в главе <code>Построение отчетов</code>.
*для добавления таблицы необходимо в левой части окна Дизайнера левой кнопкой мыши нажать на элемент <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]]


==Изменение высоты строк==
{|class="wikitable" style="margin:auto; background-color: #fff;"
*для изменения высоты строк необходимо выбрать одну или несколько строк таблицы, перейти в окно свойств таблицы, пункт меню <code>Layout >> Height</code> и ввести необходимые данные (например, 0,55).
|-
[[Файл:Table6.png|center]]
!Свойство
 
!Описание
==Создание и удаление столбцов==
|-
*для добавления столбцов в таблицу необходимо выбрать один из столбцов таблицы, нажать правую клавишу мыши и в контекстном меню выбрать добавление столбца справа <code>Insert Column to the Right</code> или слева <code>Insert Column to the Left</code> от выделенного столбца;
|<code>ColumnCount</code><br>'''''Количество колонок'''''
[[Файл:Table7.png|center|thumb]]
|Позволяет быстро создать нужное количество колонок. Если колонок в таблице меньше, они добавляются, если больше – удаляются.
*для удаления столбцов в таблицу необходимо выбрать один или несколько столбцов, нажать правую клавишу мыши и в контекстном меню выбрать удаление столбца <code>Delete Columns</code>.
|-
 
|<code>RowCount</code><br>'''''Количество строк'''''
==Объединение и разделение ячеек==
|Позволяет быстро создать нужное количество строк. Если строк в таблице меньше, они добавляются, если больше – удаляются.
*для объединения необходимо выделить объединяемые ячейки, вызвать правой кнопкой мышки контекстное меню, выбрать пункт <code>Merge Cells</code>;
|-
[[Файл:Table8.png|center]]
|<code>FixedColumns</code><br>'''''Фиксированные колонки'''''
*для разделения необходимо выделить разделяемую ячейку, вызвать правой кнопкой мышки контекстное меню, выбрать пункт <code>Split Cells</code>.
|Определяет, сколько колонок в начале таблицы являются фиксированными. Фиксированные колонки образуют заголовок таблицы. Печатью заголовков управляет свойство <code>Повторять заголовки</code>. Это свойство работает только для таблиц, которые строятся динамически.
[[Файл:Table9.png|center]]
|-
 
|<code>FixedRows</code><br>'''''Фиксированные строки'''''
==Объединение соседних ячеек с одинаковыми значениями==
|Определяет, сколько строк в начале таблицы являются фиксированными. Фиксированные строки образуют заголовок таблицы. Печатью заголовков управляет свойство <code>Повторять заголовки</code>. Это свойство работает только для таблиц, которые строятся динамически.
*левой кнопкой мыши выделить необходимую ячейку таблицы;
|-
*в разделе свойств элемента <code>Layout >> AutoMergeMode</code> нажать левой кнопкой мыши на стрелку;
|<code>RepeatHeaders</code><br>'''''Повторять заголовки'''''
[[Файл: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>.
 
==Условное отображение строк==
'''Условное отображение строк''' - применяется, если таблица имеет сложную неоднородную структуру.
 
[[Файл:condition.png|center|thumb]]
 
Например, если часть ячеек должна быть объединена (строка 1 по столбцам "минимальная" и "максимальная"), а часть остаться необъединенной (строки 2-3).
 
===Порядок действий===
*в конструкторе создать элемент <code>Table</code>;
*создать 2 строки заголовков <code>Table Header</code> (2 уровня строк нужны для ячеек блока "Норма: минимальная / максимальная");
*привести созданную по умолчанию единственную строку данных <code>Table Header</code> в соответствие требуемой строке №1 (границы, шрифт, выравнивание, наполнение данными, объединение ячеек "минимальная / максимальная");
*выделить строку данных;
 
[[Файл:condition_2.png|center|thumb]]
 
*в блоке элементов интерфейса "Свойства" выбрать <code>Свойства >> Apperance >> Visibility >> Hidden</code>;
*ввести условие отображения строки с данным оформлением (например, <code>=Fields!group_number.Value <> 1</code>);
 
[[Файл:condition_3.png|center|thumb]]
 
{{Блок документов ВебЛИМС «Тритея»}}
 
[[Category:Внутренняя документация]]
[[Category:Тритея]]
[[Category:Дизайнер_документов]]

Текущая версия от 04:56, 15 октября 2026

Объект Таблица - состоит из строк, колонок и ячеек и представляет собой упрощенный аналог таблицы Microsoft Excel. Он выглядит следующим образом:

Подробнее об использовании этого объекта можно прочитать в главе Построение отчетов.

Объект имеет следующие свойства:

Свойство Описание
ColumnCount
Количество колонок
Позволяет быстро создать нужное количество колонок. Если колонок в таблице меньше, они добавляются, если больше – удаляются.
RowCount
Количество строк
Позволяет быстро создать нужное количество строк. Если строк в таблице меньше, они добавляются, если больше – удаляются.
FixedColumns
Фиксированные колонки
Определяет, сколько колонок в начале таблицы являются фиксированными. Фиксированные колонки образуют заголовок таблицы. Печатью заголовков управляет свойство Повторять заголовки. Это свойство работает только для таблиц, которые строятся динамически.
FixedRows
Фиксированные строки
Определяет, сколько строк в начале таблицы являются фиксированными. Фиксированные строки образуют заголовок таблицы. Печатью заголовков управляет свойство Повторять заголовки. Это свойство работает только для таблиц, которые строятся динамически.
RepeatHeaders
Повторять заголовки
Позволяет печатать заголовки таблицы на каждой новой странице. Это свойство работает только для таблиц, которые строятся динамически.