Для создания в проекте таблиц можно использовать удобный GDL элемент LABPP_Table.gsm.

Управление этим элементом удобно осуществлять через редактор LABPP_Table_unicode.cpp (LABPP_Table_unicode.zip).

Этот редактор можно модифицировать самостоятельно. Добавлять собственные кнопки и процедуры и т.п.



Основные возможности.

Максимальное число колонок - 100;

Максимальное число строк - 500;

Объединение ячеек - да;

Типов линий для отрисовки ячеек - 2 (перо для тонких линий, перо для толстых линий, без линии);

Регулировка размеров ячеек - да;

Групповое изменение высоты - да;

Групповое изменение ширины - да;

Число стилей в ячейках - 4:

Параметры для настройки стиля - шрифт, размер шрифта, отступ от границ ячейки, наклонный, жирный, коэффициент межстрочного интервала;

Перо для текста - общее для всех стилей;

Использование знаков UNICODE - да (не м2 а м²);

Выравнивание в ячейках - по горизонтали и вертикали (9 вариантов);

Расположение текста по вертикали - да;

Размещение в ячейках эскизов из других элементов - да (настройка масштаба, положения);


Описание работы редактора.

Запустить программу LabPP_Table_unicode.cpp.

Появится плавающее окно с кнопками управления редактором таблиц.

Все действия производятся при выделенном элементе таблицы.

 

Кнопки слева направо верхний ряд.


Редактирование текста в ячейке.

Щелкнуть на ячейке.

В появившемся окне отредактировать текст. Нажать кнопку записи.



Поворот текста в ячейке.

Щелкнуть на ячейке - текст в ней повернется в другое положение.


Объединение ячеек.

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


Ячейки объединятся.


Разъединение ячеек.

Щелкните на объединенную ячейку. 

Ячейки, ее составляющие, разъединятся.


Задать стиль в ячейке.

Нажать одну из кнопок - T, H, S, N - название, заголовок, подзаголовок и обычный текст.

Соответствующий стиль задается в настройках элемента таблицы.


Задать отрисовку линий пером для толстых линий.

Задать отрисовку линий пером для тонких линий.

Выключить отрисовку линий.

Выполняются одинаково - щелкнуть на воображаемый верхний левый угол и на воображаемый нижний правый угол.

В рамках воображаемого прямоугольника линии будут заданы в соответствии с командой.


Задать высоту строки.

Задать ширину колонки.

Выполняются одинаково - щелкнуть на воображаемый верхний левый угол и на воображаемый нижний правый угол.

В окне задайте соответствующее желаемое значение (можно предварительно измерить в проекте).

В рамках воображаемого прямоугольника колонки или строки будут заданы в соответствии с командой.


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


В появившемся окне задать параметры отображаемого фрагмента.

Формат:

Имя макроса#Название фрагмента в макросе#Масштаб#Смещение от центра ячейки по горизонтали#Смещение от центра ячейки по вертикали#

Для использования макроса в тексте 2d скрипта GDL необходимо разместить фрагменты с указанием названия и ответа для указания исходных размеров.


Пример фрагмента для отображения двух штриховок.

При отображении в таблице штриховки так же масштабируются.

За масштаб отвечает переменная TSScaleK.

Таких фрагментов может быть сколько угодно.


!----------------------------------------------------------

IF LABPP_PictureName = "Тип 1" THEN

       IF LABPP_Command = "GET SIZES"  THEN

               ! x,y,w,h

               EXIT 0.951, -16.940, 3.9937, 0.751 

       ENDIF


       fillAttribute_1 = 214

       fillAttribute_2 = 330


       lineTypeAttribute_1 = 1

       lineTypeAttribute_2 = 0


       pen     penAttribute_1

       fill fillAttribute_1

       poly2_b{5}       5,      2,      1,      8, penAttribute_1, penAttribute_2, 

                       2.947696588428, -16.52173742916,            TSScaleK,            0,            0,            TSScaleK,            0, 

                       1.09620462548, -16.47923742916,     33, 

                       1.09620462548, -16.56423742916,     33, 

                       4.799188551377, -16.56423742916,     33, 

                       4.799188551377, -16.47923742916,     33, 

                       1.09620462548, -16.47923742916,     33

       set line_type lineTypeAttribute_1

       pen     penAttribute_4

       poly2_b{5}       7,      1,      0,      3,      1,      0, 

                                          0,            0,            TSScaleK,            0,            0,            TSScaleK,            0, 

                       1.22479041471, -16.51429212963,      1, 

                       1.202131508217, -16.51429212963,    900, 

                                          0,          180,   4001, 

                       1.179472601724, -16.51429212963,      1, 

                       1.202131508217, -16.51429212963,    900, 

                                          0,          180,   4001, 

                       1.22479041471, -16.51429212963,      1


ENDIF




Масштабирование таблицы.

При нажатии кнопки в появившемся диалоге введите требуемый коэффициент увеличения/уменьшения ( меньше 1 - уменьшение, больше 1 - увеличение).