LazReport, implemented page option to print report with columns 'by rows' in addition to 'by columns', fixed/updated translations

git-svn-id: trunk@15740 -
This commit is contained in:
jesus 2008-07-10 16:48:06 +00:00
parent 7d929286db
commit 2bf859bbba
13 changed files with 846 additions and 400 deletions

View File

@ -482,7 +482,7 @@ msgstr "Reportoptionen"
#: lr_const.sdocoptformother
msgctxt "lr_const.sdocoptformother"
msgid "Other"
msgstr ""
msgstr "Sonstiges"
#: lr_const.sdocoptformprinter
msgctxt "lr_const.sdocoptformprinter"
@ -1231,8 +1231,9 @@ msgid "&Stretch"
msgstr "&Dehnen"
#: lr_const.sgroupeditorformadddbfield
msgctxt "lr_const.sgroupeditorformadddbfield"
msgid "Insert DB field"
msgstr ""
msgstr "Datenbankfeld einfügen"
#: lr_const.sgroupeditorformcapt
msgid "Group"
@ -1884,6 +1885,14 @@ msgstr "Seite"
msgid "&Bottom, mm"
msgstr "&Unten, mm"
#: lr_const.spgoptformbycolumns
msgid "By Colum&ns"
msgstr ""
#: lr_const.spgoptformbyrows
msgid "By Row&s"
msgstr ""
#: lr_const.spgoptformcapt
msgctxt "lr_const.spgoptformcapt"
msgid "Page options"
@ -1909,6 +1918,10 @@ msgstr "&Höhe, mm"
msgid "&Landscape"
msgstr "&Querformat"
#: lr_const.spgoptformlayoutorder
msgid "Layout Order"
msgstr ""
#: lr_const.spgoptformleft
msgid "&Left, mm"
msgstr "&Links, mm"
@ -2200,7 +2213,7 @@ msgstr "Umrißart"
#: lr_const.sspecval
msgctxt "lr_const.sspecval"
msgid "Other"
msgstr ""
msgstr "Sonstiges"
#: lr_const.sstretched
msgid "Stretched"

View File

@ -471,7 +471,7 @@ msgstr "Opciones del reporte"
#: lr_const.sdocoptformother
msgctxt "lr_const.sdocoptformother"
msgid "Other"
msgstr ""
msgstr "Otro"
#: lr_const.sdocoptformprinter
msgctxt "lr_const.sdocoptformprinter"
@ -1220,8 +1220,9 @@ msgid "&Stretch"
msgstr "&Ajustar"
#: lr_const.sgroupeditorformadddbfield
msgctxt "lr_const.sgroupeditorformadddbfield"
msgid "Insert DB field"
msgstr ""
msgstr "Insertar campo DB"
#: lr_const.sgroupeditorformcapt
msgid "Group"
@ -1873,6 +1874,14 @@ msgstr "Página"
msgid "&Bottom, mm"
msgstr "A&bajo, mm"
#: lr_const.spgoptformbycolumns
msgid "By Colum&ns"
msgstr ""
#: lr_const.spgoptformbyrows
msgid "By Row&s"
msgstr ""
#: lr_const.spgoptformcapt
msgctxt "lr_const.spgoptformcapt"
msgid "Page options"
@ -1898,6 +1907,10 @@ msgstr "&Altura, mm"
msgid "&Landscape"
msgstr "&Horizontal"
#: lr_const.spgoptformlayoutorder
msgid "Layout Order"
msgstr ""
#: lr_const.spgoptformleft
msgid "&Left, mm"
msgstr "&Izquierda, mm"
@ -2189,7 +2202,7 @@ msgstr "Clase de forma"
#: lr_const.sspecval
msgctxt "lr_const.sspecval"
msgid "Other"
msgstr ""
msgstr "Otro"
#: lr_const.sstretched
msgid "Stretched"

View File

@ -480,7 +480,7 @@ msgstr "Options du rapport"
#: lr_const.sdocoptformother
msgctxt "lr_const.sdocoptformother"
msgid "Other"
msgstr ""
msgstr "Autre"
#: lr_const.sdocoptformprinter
msgctxt "lr_const.sdocoptformprinter"
@ -1229,8 +1229,9 @@ msgid "&Stretch"
msgstr "&Etirer"
#: lr_const.sgroupeditorformadddbfield
msgctxt "lr_const.sgroupeditorformadddbfield"
msgid "Insert DB field"
msgstr ""
msgstr "Insérer un champ BDD"
#: lr_const.sgroupeditorformcapt
msgid "Group"
@ -1882,6 +1883,14 @@ msgstr "Page"
msgid "&Bottom, mm"
msgstr "&Bas, mm"
#: lr_const.spgoptformbycolumns
msgid "By Colum&ns"
msgstr ""
#: lr_const.spgoptformbyrows
msgid "By Row&s"
msgstr ""
#: lr_const.spgoptformcapt
msgctxt "lr_const.spgoptformcapt"
msgid "Page options"
@ -1907,6 +1916,10 @@ msgstr "&Hauteur, mm"
msgid "&Landscape"
msgstr "Pa&ysage"
#: lr_const.spgoptformlayoutorder
msgid "Layout Order"
msgstr ""
#: lr_const.spgoptformleft
msgid "&Left, mm"
msgstr "&Gauche, mm"
@ -2198,7 +2211,7 @@ msgstr "Type de forme"
#: lr_const.sspecval
msgctxt "lr_const.sspecval"
msgid "Other"
msgstr ""
msgstr "Autre"
#: lr_const.sstretched
msgid "Stretched"

View File

@ -471,7 +471,7 @@ msgstr "Opsi laporan"
#: lr_const.sdocoptformother
msgctxt "lr_const.sdocoptformother"
msgid "Other"
msgstr ""
msgstr "Lain-lain"
#: lr_const.sdocoptformprinter
msgctxt "lr_const.sdocoptformprinter"
@ -1220,8 +1220,9 @@ msgid "&Stretch"
msgstr "&Direntangkan"
#: lr_const.sgroupeditorformadddbfield
msgctxt "lr_const.sgroupeditorformadddbfield"
msgid "Insert DB field"
msgstr ""
msgstr "Sisipkan field DB"
#: lr_const.sgroupeditorformcapt
msgid "Group"
@ -1873,6 +1874,14 @@ msgstr "Halaman"
msgid "&Bottom, mm"
msgstr "&Bawah, mm"
#: lr_const.spgoptformbycolumns
msgid "By Colum&ns"
msgstr ""
#: lr_const.spgoptformbyrows
msgid "By Row&s"
msgstr ""
#: lr_const.spgoptformcapt
msgctxt "lr_const.spgoptformcapt"
msgid "Page options"
@ -1898,6 +1907,10 @@ msgstr "&Tinggi, mm"
msgid "&Landscape"
msgstr "Membentan&g"
#: lr_const.spgoptformlayoutorder
msgid "Layout Order"
msgstr ""
#: lr_const.spgoptformleft
msgid "&Left, mm"
msgstr "&Kiri, mm"
@ -2189,7 +2202,7 @@ msgstr "Jenis bentuk"
#: lr_const.sspecval
msgctxt "lr_const.sspecval"
msgid "Other"
msgstr ""
msgstr "Lain-lain"
#: lr_const.sstretched
msgid "Stretched"

View File

@ -472,7 +472,7 @@ msgstr "Pranešimo parinktys"
#: lr_const.sdocoptformother
msgctxt "lr_const.sdocoptformother"
msgid "Other"
msgstr ""
msgstr "Kita"
#: lr_const.sdocoptformprinter
msgctxt "lr_const.sdocoptformprinter"
@ -1221,8 +1221,9 @@ msgid "&Stretch"
msgstr "&Ištempti"
#: lr_const.sgroupeditorformadddbfield
msgctxt "lr_const.sgroupeditorformadddbfield"
msgid "Insert DB field"
msgstr ""
msgstr "Įterpti DB lauką"
#: lr_const.sgroupeditorformcapt
msgid "Group"
@ -1874,6 +1875,14 @@ msgstr "Lapas"
msgid "&Bottom, mm"
msgstr "&Apačioje, mm"
#: lr_const.spgoptformbycolumns
msgid "By Colum&ns"
msgstr ""
#: lr_const.spgoptformbyrows
msgid "By Row&s"
msgstr ""
#: lr_const.spgoptformcapt
msgctxt "lr_const.spgoptformcapt"
msgid "Page options"
@ -1899,6 +1908,10 @@ msgstr "&Aukštis, mm"
msgid "&Landscape"
msgstr "&Gulščias"
#: lr_const.spgoptformlayoutorder
msgid "Layout Order"
msgstr ""
#: lr_const.spgoptformleft
msgid "&Left, mm"
msgstr "&Kairėje, mm"
@ -2190,7 +2203,7 @@ msgstr "Figūros rūšis"
#: lr_const.sspecval
msgctxt "lr_const.sspecval"
msgid "Other"
msgstr ""
msgstr "Kita"
#: lr_const.sstretched
msgid "Stretched"

View File

@ -1215,6 +1215,7 @@ msgid "&Stretch"
msgstr ""
#: lr_const.sgroupeditorformadddbfield
msgctxt "lr_const.sgroupeditorformadddbfield"
msgid "Insert DB field"
msgstr ""
@ -1868,6 +1869,14 @@ msgstr ""
msgid "&Bottom, mm"
msgstr ""
#: lr_const.spgoptformbycolumns
msgid "By Colum&ns"
msgstr ""
#: lr_const.spgoptformbyrows
msgid "By Row&s"
msgstr ""
#: lr_const.spgoptformcapt
msgctxt "lr_const.spgoptformcapt"
msgid "Page options"
@ -1893,6 +1902,10 @@ msgstr ""
msgid "&Landscape"
msgstr ""
#: lr_const.spgoptformlayoutorder
msgid "Layout Order"
msgstr ""
#: lr_const.spgoptformleft
msgid "&Left, mm"
msgstr ""

View File

@ -122,10 +122,12 @@ msgid "Band data source"
msgstr "Источник данных для поля"
#: lr_const.sbandeditorformdatasrc
msgctxt "lr_const.sbandeditorformdatasrc"
msgid "Data source"
msgstr "Источник данных"
#: lr_const.sbandeditorformreccount
msgctxt "lr_const.sbandeditorformreccount"
msgid "&Record count"
msgstr "&Количество записей"
@ -150,10 +152,12 @@ msgid "&Code"
msgstr "&Код"
#: lr_const.sbarcodeformdbfld
msgctxt "lr_const.sbarcodeformdbfld"
msgid "Insert DB field"
msgstr "Вставить поле БД"
#: lr_const.sbarcodeformopts
msgctxt "lr_const.sbarcodeformopts"
msgid "Options"
msgstr "Параметры"
@ -194,6 +198,7 @@ msgid "Cancel"
msgstr "Отмена"
#: lr_const.scateg1
msgctxt "lr_const.scateg1"
msgid "Text"
msgstr "Текст"
@ -202,10 +207,12 @@ msgid "Number"
msgstr "Число"
#: lr_const.scateg3
msgctxt "lr_const.scateg3"
msgid "Date"
msgstr "Дата"
#: lr_const.scateg4
msgctxt "lr_const.scateg4"
msgid "Time"
msgstr "Время"
@ -219,7 +226,7 @@ msgstr "0"
#: lr_const.sclassobjectnotfound
msgid "Class Object \"%s\" not found"
msgstr "Объект "%s" класса не найден"
msgstr "Объект \"%s\" класса не найден"
#: lr_const.sconfirm
msgid "Confirm"
@ -366,6 +373,7 @@ msgid "&Contents"
msgstr "&Содержимое"
#: lr_const.sdesoptionsformdes
msgctxt "lr_const.sdesoptionsformdes"
msgid "Designer"
msgstr "Дизайнер"
@ -378,6 +386,7 @@ msgid "Grid size"
msgstr "Шаг сетки"
#: lr_const.sdesoptionsformgrid
msgctxt "lr_const.sdesoptionsformgrid"
msgid "Grid"
msgstr "Сетка"
@ -393,7 +402,13 @@ msgstr "&MM"
msgid "Object moving"
msgstr "Перемещение объектов"
#: lr_const.sdesoptionsformopt
msgctxt "lr_const.sdesoptionsformopt"
msgid "Options"
msgstr "Параметры"
#: lr_const.sdesoptionsformother
msgctxt "lr_const.sdesoptionsformother"
msgid "Other"
msgstr "Прочие"
@ -453,7 +468,13 @@ msgstr "Ключевые слова"
msgid "Report options"
msgstr "Свойства отчёта"
#: lr_const.sdocoptformother
msgctxt "lr_const.sdocoptformother"
msgid "Other"
msgstr "Прочие"
#: lr_const.sdocoptformprinter
msgctxt "lr_const.sdocoptformprinter"
msgid "Printer"
msgstr "Принтер"
@ -490,10 +511,12 @@ msgid "&DB field"
msgstr "&Поле БД"
#: lr_const.seditorformformat
msgctxt "lr_const.seditorformformat"
msgid "&Format"
msgstr "&Формат"
#: lr_const.seditorformmemo
msgctxt "lr_const.seditorformmemo"
msgid "&Memo"
msgstr "&Редактор"
@ -506,6 +529,7 @@ msgid "&Script"
msgstr "&Скрипт"
#: lr_const.seditorformvar
msgctxt "lr_const.seditorformvar"
msgid "&Variable"
msgstr "&Переменная"
@ -542,6 +566,7 @@ msgid "Va&lue"
msgstr "&Значение"
#: lr_const.sevformvar
msgctxt "lr_const.sevformvar"
msgid "&Variable"
msgstr "&Переменная"
@ -554,6 +579,7 @@ msgid "&Available DB's"
msgstr "&Доступные БД"
#: lr_const.sfieldsforminsert
msgctxt "lr_const.sfieldsforminsert"
msgid "Insert DB field"
msgstr "Вставить поле БД"
@ -566,6 +592,7 @@ msgid "Average font height:"
msgstr "Средняя высота шрифта:"
#: lr_const.sfindtextcaption
msgctxt "lr_const.sfindtextcaption"
msgid "Find text"
msgstr "Найти текст"
@ -574,6 +601,7 @@ msgid "&Case sensitive"
msgstr "&Чувствителен к регистру"
#: lr_const.sfindtextcurrentpg
msgctxt "lr_const.sfindtextcurrentpg"
msgid "Current &page"
msgstr "Текущая &страница"
@ -581,6 +609,11 @@ msgstr "Текущая &страница"
msgid "&1st page"
msgstr "&1я страница"
#: lr_const.sfindtextoptions
msgctxt "lr_const.sfindtextoptions"
msgid "Options"
msgstr "Параметры"
#: lr_const.sfindtextorg
msgid "Origin"
msgstr "Точка отсчёта"
@ -602,6 +635,7 @@ msgid "Fraction &symbol"
msgstr "Ра&зделитель"
#: lr_const.sfmtformfrmt
msgctxt "lr_const.sfmtformfrmt"
msgid "&Format"
msgstr "&Формат"
@ -618,6 +652,7 @@ msgid "Font..."
msgstr "Шрифт..."
#: lr_const.sformat11
msgctxt "lr_const.sformat11"
msgid "[None]"
msgstr "[Нет]"
@ -637,6 +672,11 @@ msgstr "1 234,5"
msgid "1 234,50"
msgstr "1 234,50"
#: lr_const.sformat25
msgctxt "lr_const.sformat25"
msgid "Custom"
msgstr ""
#: lr_const.sformat31
msgid "11.15.98"
msgstr "11.15.98"
@ -653,6 +693,11 @@ msgstr "15 ноя 1998"
msgid "15 november 1998"
msgstr "15 ноября 1998"
#: lr_const.sformat35
msgctxt "lr_const.sformat35"
msgid "Custom"
msgstr ""
#: lr_const.sformat41
msgid "02:43:35"
msgstr "02:43:35"
@ -669,6 +714,11 @@ msgstr "02:43"
msgid "2:43"
msgstr "2:43"
#: lr_const.sformat45
msgctxt "lr_const.sformat45"
msgid "Custom"
msgstr ""
#: lr_const.sformat51
msgid "0;1"
msgstr "0;1"
@ -686,6 +736,7 @@ msgid "False;True"
msgstr "False;True"
#: lr_const.sformat55
msgctxt "lr_const.sformat55"
msgid "Custom"
msgstr "Пользовательское"
@ -698,6 +749,7 @@ msgid "Force new page"
msgstr "С новой страницы"
#: lr_const.sfrdesignerformaddpg
msgctxt "lr_const.sfrdesignerformaddpg"
msgid "Add page"
msgstr "Добавить страницу"
@ -758,6 +810,7 @@ msgid "Bring to front"
msgstr "Перенести вперёд"
#: lr_const.sfrdesignerformcapt
msgctxt "lr_const.sfrdesignerformcapt"
msgid "Designer"
msgstr "Дизайнер"
@ -818,6 +871,7 @@ msgid "Frame width"
msgstr "Ширина фрейма"
#: lr_const.sfrdesignerformgrid
msgctxt "lr_const.sfrdesignerformgrid"
msgid "Grid"
msgstr "Сетка"
@ -826,6 +880,7 @@ msgid "Grid align"
msgstr "Выравнивать по сетке"
#: lr_const.sfrdesignerformhightlight
msgctxt "lr_const.sfrdesignerformhightlight"
msgid "Highlight attributes"
msgstr "Подсветить атрибуты"
@ -858,6 +913,7 @@ msgid "Left frame line"
msgstr "Левая линия фрейма"
#: lr_const.sfrdesignerformnewrp
msgctxt "lr_const.sfrdesignerformnewrp"
msgid "New report"
msgstr "Новый отчёт"
@ -874,6 +930,7 @@ msgid "Objects"
msgstr "Объекты"
#: lr_const.sfrdesignerformopenrp
msgctxt "lr_const.sfrdesignerformopenrp"
msgid "Open report"
msgstr "Открыть отчёт"
@ -882,6 +939,7 @@ msgid "Paste"
msgstr "Вставить"
#: lr_const.sfrdesignerformpgoption
msgctxt "lr_const.sfrdesignerformpgoption"
msgid "Page options"
msgstr "Свойства страницы"
@ -890,6 +948,7 @@ msgid "Preview report"
msgstr "Предварительный просмотр отчёта"
#: lr_const.sfrdesignerformrect
msgctxt "lr_const.sfrdesignerformrect"
msgid "Rectangle"
msgstr "Прямоугольник"
@ -910,6 +969,7 @@ msgid "Right frame line"
msgstr "Правая линия фрейма"
#: lr_const.sfrdesignerformsaverp
msgctxt "lr_const.sfrdesignerformsaverp"
msgid "Save report"
msgstr "Сохранить отчёт"
@ -934,6 +994,7 @@ msgid "Standard"
msgstr "Стандартная"
#: lr_const.sfrdesignerformtext
msgctxt "lr_const.sfrdesignerformtext"
msgid "Text"
msgstr "Текст"
@ -998,6 +1059,7 @@ msgid "&Delete"
msgstr "&Удалить"
#: lr_const.sfrdesignerform_edit
msgctxt "lr_const.sfrdesignerform_edit"
msgid "&Edit..."
msgstr "П&равка..."
@ -1006,6 +1068,7 @@ msgid "&Edit"
msgstr "&Правка"
#: lr_const.sfrdesignerform_editp
msgctxt "lr_const.sfrdesignerform_editp"
msgid "&Edit..."
msgstr "П&равка..."
@ -1106,10 +1169,12 @@ msgid "&Tools"
msgstr "&Сервис"
#: lr_const.sfrdesignerform_tools2
msgctxt "lr_const.sfrdesignerform_tools2"
msgid "Too&ls"
msgstr "С&редства"
#: lr_const.sfrdesignerform_tools3
msgctxt "lr_const.sfrdesignerform_tools3"
msgid "Too&ls"
msgstr "С&редства"
@ -1146,6 +1211,7 @@ msgid "&Load..."
msgstr "&Загрузить"
#: lr_const.sgeditorformmemo
msgctxt "lr_const.sgeditorformmemo"
msgid "&Memo"
msgstr "&Редактор"
@ -1153,11 +1219,17 @@ msgstr "&Редактор"
msgid "&Stretch"
msgstr "&Растянуть"
#: lr_const.sgroupeditorformadddbfield
msgctxt "lr_const.sgroupeditorformadddbfield"
msgid "Insert DB field"
msgstr "Вставить поле БД"
#: lr_const.sgroupeditorformcapt
msgid "Group"
msgstr "Группа"
#: lr_const.sgroupeditorformcond
msgctxt "lr_const.sgroupeditorformcond"
msgid "Condition"
msgstr "Условие"
@ -1178,6 +1250,7 @@ msgid "Co&lor..."
msgstr "&Цвет..."
#: lr_const.shilightformcond
msgctxt "lr_const.shilightformcond"
msgid "Condition"
msgstr "Условие"
@ -1186,6 +1259,7 @@ msgid "Font"
msgstr "Шрифт"
#: lr_const.shilightformhilitattr
msgctxt "lr_const.shilightformhilitattr"
msgid "Highlight attributes"
msgstr "Подсветить атрибуты"
@ -1286,6 +1360,7 @@ msgid "No"
msgstr "Нет"
#: lr_const.snotassigned
msgctxt "lr_const.snotassigned"
msgid "[None]"
msgstr "[Нет]"
@ -1310,6 +1385,7 @@ msgid "Other..."
msgstr "Другой..."
#: lr_const.sothercategory
msgctxt "lr_const.sothercategory"
msgid "Other"
msgstr "Прочие"
@ -1323,7 +1399,7 @@ msgstr "Печать страницы:"
#: lr_const.spaper1
msgid "Letter, 8 1/2 x 11\""
msgstr "Letter, 8 1/2 x 11""
msgstr "Letter, 8 1/2 x 11\""
#: lr_const.spaper10
msgid "A4 small sheet, 210 x 297 mm"
@ -1419,7 +1495,7 @@ msgstr "B5 182 x 257 mm"
#: lr_const.spaper14
msgid "Folio, 8 1/2 x 13\""
msgstr "Folio, 8 1/2 x 13""
msgstr "Folio, 8 1/2 x 13\""
#: lr_const.spaper15
msgid "Quarto Sheet, 215 x 275 mm"
@ -1427,55 +1503,56 @@ msgstr "Quarto Sheet, 215 x 275 mm"
#: lr_const.spaper16
msgid "10 x 14\""
msgstr "10 x 14""
msgstr "10 x 14\""
#: lr_const.spaper17
msgid "11 x 17\""
msgstr "11 x 17""
msgstr "11 x 17\""
#: lr_const.spaper18
msgid "Note, 8 1/2 x 11\""
msgstr "Note, 8 1/2 x 11""
msgstr "Note, 8 1/2 x 11\""
#: lr_const.spaper19
msgid "9 Envelope, 3 7/8 x 8 7/8\""
msgstr "9 Envelope, 3 7/8 x 8 7/8""
msgstr "9 Envelope, 3 7/8 x 8 7/8\""
#: lr_const.spaper2
msgid "Letter small, 8 1/2 x 11\""
msgstr "Letter small, 8 1/2 x 11""
msgstr "Letter small, 8 1/2 x 11\""
#: lr_const.spaper20
msgid "#10 Envelope, 4 1/8 x 9 1/2\""
msgstr "#10 Envelope, 4 1/8 x 9 1/2""
msgstr "#10 Envelope, 4 1/8 x 9 1/2\""
#: lr_const.spaper21
msgid "#11 Envelope, 4 1/2 x 10 3/8\""
msgstr "#11 Envelope, 4 1/2 x 10 3/8""
msgstr "#11 Envelope, 4 1/2 x 10 3/8\""
#: lr_const.spaper22
msgid "#12 Envelope, 4 3/4 x 11\""
msgstr "#12 Envelope, 4 3/4 x 11""
msgstr "#12 Envelope, 4 3/4 x 11\""
#: lr_const.spaper23
msgid "#14 Envelope, 5 x 11 1/2\""
msgstr "#14 Envelope, 5 x 11 1/2""
msgstr "#14 Envelope, 5 x 11 1/2\""
#: lr_const.spaper24
msgid "C Sheet, 17 x 22\""
msgstr "C Sheet, 17 x 22""
msgstr "C Sheet, 17 x 22\""
#: lr_const.spaper25
msgid "D Sheet, 22 x 34\""
msgstr "D Sheet, 22 x 34""
msgstr "D Sheet, 22 x 34\""
#: lr_const.spaper256
msgctxt "lr_const.spaper256"
msgid "Custom"
msgstr "Пользовательское"
#: lr_const.spaper26
msgid "E Sheet, 34 x 44\""
msgstr "E Sheet, 34 x 44""
msgstr "E Sheet, 34 x 44\""
#: lr_const.spaper27
msgid "DL Envelope, 110 x 220 mm"
@ -1491,7 +1568,7 @@ msgstr "C3 Envelope, 324 x 458 mm"
#: lr_const.spaper3
msgid "Tabloid, 11 x 17\""
msgstr "Tabloid, 11 x 17""
msgstr "Tabloid, 11 x 17\""
#: lr_const.spaper30
msgid "C4 Envelope, 229 x 324 mm"
@ -1523,27 +1600,27 @@ msgstr "Italy Envelope, 110 x 230 mm"
#: lr_const.spaper37
msgid "Monarch Envelope, 3 7/8 x 7 1/2\""
msgstr "Monarch Envelope, 3 7/8 x 7 1/2""
msgstr "Monarch Envelope, 3 7/8 x 7 1/2\""
#: lr_const.spaper38
msgid "6 3/4 Envelope, 3 5/8 x 6 1/2\""
msgstr "6 3/4 Envelope, 3 5/8 x 6 1/2""
msgstr "6 3/4 Envelope, 3 5/8 x 6 1/2\""
#: lr_const.spaper39
msgid "US Std Fanfold, 14 7/8 x 11\""
msgstr "US Std Fanfold, 14 7/8 x 11""
msgstr "US Std Fanfold, 14 7/8 x 11\""
#: lr_const.spaper4
msgid "Ledger, 17 x 11\""
msgstr "Ledger, 17 x 11""
msgstr "Ledger, 17 x 11\""
#: lr_const.spaper40
msgid "German Std Fanfold, 8 1/2 x 12\""
msgstr "German Std Fanfold, 8 1/2 x 12""
msgstr "German Std Fanfold, 8 1/2 x 12\""
#: lr_const.spaper41
msgid "German Legal Fanfold, 8 1/2 x 13\""
msgstr "German Legal Fanfold, 8 1/2 x 13""
msgstr "German Legal Fanfold, 8 1/2 x 13\""
#: lr_const.spaper42
msgid "B4 (ISO) 250 x 353 mm"
@ -1555,15 +1632,15 @@ msgstr "Japanese Postcard 100 x 148 mm"
#: lr_const.spaper44
msgid "9 x 11\""
msgstr "9 x 11""
msgstr "9 x 11\""
#: lr_const.spaper45
msgid "10 x 11\""
msgstr "10 x 11""
msgstr "10 x 11\""
#: lr_const.spaper46
msgid "15 x 11\""
msgstr "15 x 11""
msgstr "15 x 11\""
#: lr_const.spaper47
msgid "Envelope Invite 220 x 220 mm"
@ -1571,27 +1648,27 @@ msgstr "Envelope Invite 220 x 220 mm"
#: lr_const.spaper5
msgid "Legal, 8 1/2 x 14\""
msgstr "Legal, 8 1/2 x 14""
msgstr "Legal, 8 1/2 x 14\""
#: lr_const.spaper50
msgid "Letter Extra 9/275 x 12\""
msgstr "Letter Extra 9/275 x 12""
msgstr "Letter Extra 9/275 x 12\""
#: lr_const.spaper51
msgid "Legal Extra 9/275 x 15\""
msgstr "Legal Extra 9/275 x 15""
msgstr "Legal Extra 9/275 x 15\""
#: lr_const.spaper52
msgid "Tabloid Extra 11.69 x 18\""
msgstr "Tabloid Extra 11.69 x 18""
msgstr "Tabloid Extra 11.69 x 18\""
#: lr_const.spaper53
msgid "A4 Extra 9.27 x 12.69\""
msgstr "A4 Extra 9.27 x 12.69""
msgstr "A4 Extra 9.27 x 12.69\""
#: lr_const.spaper54
msgid "Letter Transverse 8/275 x 11\""
msgstr "Letter Transverse 8/275 x 11""
msgstr "Letter Transverse 8/275 x 11\""
#: lr_const.spaper55
msgid "A4 Transverse 210 x 297 mm"
@ -1599,7 +1676,7 @@ msgstr "A4 Transverse 210 x 297 mm"
#: lr_const.spaper56
msgid "Letter Extra Transverse 9/275 x 12\""
msgstr "Letter Extra Transverse 9/275 x 12""
msgstr "Letter Extra Transverse 9/275 x 12\""
#: lr_const.spaper57
msgid "SuperASuperAA4 227 x 356 mm"
@ -1611,11 +1688,11 @@ msgstr "SuperBSuperBA3 305 x 487 mm"
#: lr_const.spaper59
msgid "Letter Plus 8.5 x 12.69\""
msgstr "Letter Plus 8.5 x 12.69""
msgstr "Letter Plus 8.5 x 12.69\""
#: lr_const.spaper6
msgid "Statement, 5 1/2 x 8 1/2\""
msgstr "Statement, 5 1/2 x 8 1/2""
msgstr "Statement, 5 1/2 x 8 1/2\""
#: lr_const.spaper60
msgid "A4 Plus 210 x 330 mm"
@ -1659,7 +1736,7 @@ msgstr "Double Japanese Postcard 200 x 148 mm"
#: lr_const.spaper7
msgid "Executive, 7 1/4 x 10 1/2\""
msgstr "Executive, 7 1/4 x 10 1/2""
msgstr "Executive, 7 1/4 x 10 1/2\""
#: lr_const.spaper70
msgid "A6 105x148 mm"
@ -1797,7 +1874,16 @@ msgstr "Страница"
msgid "&Bottom, mm"
msgstr "&Нижнее, мм"
#: lr_const.spgoptformbycolumns
msgid "By Colum&ns"
msgstr ""
#: lr_const.spgoptformbyrows
msgid "By Row&s"
msgstr ""
#: lr_const.spgoptformcapt
msgctxt "lr_const.spgoptformcapt"
msgid "Page options"
msgstr "Свойства страницы"
@ -1821,6 +1907,10 @@ msgstr "&Высота, мм"
msgid "&Landscape"
msgstr "&Альбомная"
#: lr_const.spgoptformlayoutorder
msgid "Layout Order"
msgstr ""
#: lr_const.spgoptformleft
msgid "&Left, mm"
msgstr "&Левое, мм"
@ -1834,6 +1924,7 @@ msgid "&Number"
msgstr "&Количество"
#: lr_const.spgoptformoptions
msgctxt "lr_const.spgoptformoptions"
msgid "Options"
msgstr "Настройки"
@ -1898,6 +1989,7 @@ msgid "&Two pages"
msgstr "&Две страницы"
#: lr_const.spreviewformadd
msgctxt "lr_const.spreviewformadd"
msgid "Add page"
msgstr "Добавить страницу"
@ -1914,6 +2006,7 @@ msgid "Edit page"
msgstr "Редактировать страницу"
#: lr_const.spreviewformfind
msgctxt "lr_const.spreviewformfind"
msgid "Find text"
msgstr "Найти текст"
@ -1922,6 +2015,7 @@ msgid "Show help"
msgstr "Показать справку"
#: lr_const.spreviewformopen
msgctxt "lr_const.spreviewformopen"
msgid "Open report"
msgstr "Открыть отчёт"
@ -1934,6 +2028,7 @@ msgid "&Page width"
msgstr "&Ширина страницы"
#: lr_const.spreviewformsave
msgctxt "lr_const.spreviewformsave"
msgid "Save report"
msgstr "Сохранить отчёт"
@ -1958,6 +2053,7 @@ msgid "&Copies:"
msgstr "&Копии:"
#: lr_const.sprintformcurpg
msgctxt "lr_const.sprintformcurpg"
msgid "Current &page"
msgstr "Текущая &страница"
@ -1978,6 +2074,7 @@ msgid "Print"
msgstr "Печать"
#: lr_const.sprintformprinter
msgctxt "lr_const.sprintformprinter"
msgid "Printer"
msgstr "Принтер"
@ -2070,6 +2167,7 @@ msgid "Save changes"
msgstr "Сохранить изменения"
#: lr_const.sshape1
msgctxt "lr_const.sshape1"
msgid "Rectangle"
msgstr "Прямоугольник"
@ -2101,6 +2199,11 @@ msgstr "Контур"
msgid "Shape kind"
msgstr "Тип фигуры"
#: lr_const.sspecval
msgctxt "lr_const.sspecval"
msgid "Other"
msgstr "Прочие"
#: lr_const.sstretched
msgid "Stretched"
msgstr "Растянутое"
@ -2122,6 +2225,7 @@ msgid "Description"
msgstr "Описание"
#: lr_const.stemplformnewrp
msgctxt "lr_const.stemplformnewrp"
msgid "New report"
msgstr "Новый отчёт"
@ -2166,10 +2270,12 @@ msgid "Expression"
msgstr "Выражение"
#: lr_const.svar3
msgctxt "lr_const.svar3"
msgid "Date"
msgstr "Дата"
#: lr_const.svar4
msgctxt "lr_const.svar4"
msgid "Time"
msgstr "Время"
@ -2222,10 +2328,12 @@ msgid "Band data sources"
msgstr "Источники данных для поля"
#: lr_const.svbandeditorformdatasource
msgctxt "lr_const.svbandeditorformdatasource"
msgid "Data source"
msgstr "Источник данных"
#: lr_const.svbandeditorformrecordcount
msgctxt "lr_const.svbandeditorformrecordcount"
msgid "&Record count"
msgstr "&Количество записей"

View File

@ -126,6 +126,8 @@ type
Band : TfrBand;
Action : TfrBandRecType;
end;
TLayoutOrder = (loColumns, loRows);
TfrMemoStrings =Class(TStringList);
TfrScriptStrings=Class(TStringList);
@ -507,6 +509,7 @@ type
procedure DrawCrossCell(Parnt: TfrBand; CurX: Integer);
procedure DrawCross;
function CheckPageBreak(ay, ady: Integer; PBreak: Boolean): Boolean;
function CheckNextColumn: boolean;
procedure DrawPageBreak;
function HasCross: Boolean;
function DoCalcHeight: Integer;
@ -586,6 +589,7 @@ type
ColPos : Integer;
CurPos : Integer;
PageType : TfrPageType;
fLayoutOrder : TLayoutOrder;
procedure DoAggregate(a: Array of TfrBandType);
procedure AddRecord(b: TfrBand; rt: TfrBandRecType);
procedure ClearRecList;
@ -635,6 +639,8 @@ type
procedure ShowBandByType(bt: TfrBandType);
procedure NewPage;
procedure NewColumn(Band: TfrBand);
procedure NextColumn(Band: TFrBand);
function RowsLayout: boolean;
property ColCount : Integer read fColCount write fColCount;
property ColWidth : Integer read fColWidth write fColWidth;
@ -643,6 +649,7 @@ type
property Margins : TfrRect read fMargins write fMargins;
property PrintToPrevPage : Boolean read fPrintToPrevPage write fPrintToPrevPage;
property Orientation : TPrinterOrientation read fOrientation write fOrientation;
property LayoutOrder: TLayoutOrder read fLayoutOrder write fLayoutOrder;
published
property Script;
@ -668,6 +675,7 @@ type
property Margins;
property PrintToPrevPage;
property Orientation;
property LayoutOrder;
end;
{ TfrPageDialog }
@ -1143,6 +1151,51 @@ var
PrevY, PrevBottomY, ColumnXAdjust: Integer;
Append, WasPF: Boolean;
CompositeMode: Boolean;
{$IFDEF DebugLR}
var
nspc: integer = 0;
sspc: string = '';
procedure IncSpc(aInc:Integer);
begin
nspc := nspc + aInc;
if nspc<0 then
nspc := 0;
//WriteLn('[',nspc,']');
SetLength(sspc, nspc*2);
if aInc>0 then
fillchar(sspc[1], nspc*2, ' ');
end;
function typ2str(typ: TfrBandType): string;
begin
case typ of
btReportTitle: result := 'btReportTitle';
btReportSummary: result := 'btReportSummary';
btPageHeader: result := 'btPageHeader';
btPageFooter: result := 'btPageFooter';
btMasterHeader: result := 'btMasterHeader';
btMasterData: result := 'btMasterData';
btMasterFooter: result := 'btMasterFooter';
btDetailHeader: result := 'btDetailHeader';
btDetailData: result := 'btDetailData';
btDetailFooter: result := 'btDetailFooter';
btSubDetailHeader: result := 'btSubDetailHeader';
btSubDetailData: result := 'btSubDetailData';
btSubDetailFooter: result := 'btSubDetailFooter';
btOverlay: result := 'btOverlay';
btColumnHeader: result := 'btColumnHeader';
btColumnFooter: result := 'btColumnFooter';
btGroupHeader: result := 'btGroupHeader';
btGroupFooter: result := 'btGroupFooter';
btCrossHeader: result := 'btCrossHeader';
btCrossData: result := 'btCrossData';
btCrossFooter: result := 'btCrossFooter';
btNone: result:='btNone';
end;
end;
{$ENDIF}
{----------------------------------------------------------------------------}
function frCreateObject(Typ: Byte; const ClassName: String): TfrView;
@ -1556,7 +1609,7 @@ end;
procedure TfrView.Print(Stream: TStream);
begin
{$IFDEF DebugLR}
DebugLn(Name+'.TfrView.Print() ');
DebugLn('%s%s.TfrView.Print()',[sspc,name]);
{$ENDIF}
BeginDraw(Canvas);
Memo1.Assign(Memo);
@ -1569,7 +1622,7 @@ begin
frWriteString(Stream, ClassName);
SaveToStream(Stream);
{$IFDEF DebugLR}
DebugLn(Name+'.TfrView.Print() end');
DebugLn('%s%s.TfrView.Print() end',[sspc,name]);
{$ENDIF}
end;
@ -1582,8 +1635,8 @@ procedure TfrView.LoadFromStream(Stream: TStream);
var wb : Word;
begin
{$IFDEF DebugLR}
DebugLn(name,'.TfrView.LoadFromStream begin StreamMode =',
IntToStr(Ord(StreamMode)),' ClassName=',ClassName);
DebugLn('%s%s.TfrView.LoadFromStream begin StreamMode=%d ClassName=%s',
[sspc,name,Ord(StreamMode),ClassName]);
{$ENDIF}
with Stream do
begin
@ -1624,7 +1677,7 @@ begin
end;
end;
{$IFDEF DebugLR}
DebugLn(name,'.TfrView.LoadFromStream end');
DebugLn('%s%s.TfrView.LoadFromStream end',[sspc,name]);
{$ENDIF}
end;
@ -1674,7 +1727,7 @@ end;
procedure TfrView.SaveToStream(Stream: TStream);
begin
{$IFDEF DebugLR}
DebugLn(name,'.SaveToStream begin');
DebugLn('%s%s.SaveToStream begin',[sspc,name]);
{$ENDIF}
with Stream do
@ -1706,7 +1759,7 @@ begin
else frWriteMemo(Stream, Memo1);
end;
{$IFDEF DebugLR}
Debugln(name,'.SaveToStream end');
Debugln('%s%s.SaveToStream end',[sspc,name]);
{$ENDIF}
end;
@ -1990,21 +2043,6 @@ begin
end;
end;
{$IFDEF DebugLR}
function dbgstr(s: string): string;
var
i: Integer;
begin
result := '';
for i:=1 to length(s) do begin
if S[i]<#32 then
result := result + '#'+IntTostr(ord(s[i]))
else
result := result + s[i];
end;
end;
{$ENDIF}
type
TWordBreaks = string;
@ -2600,7 +2638,7 @@ var
i: Integer;
begin
{$IFDEF DebugLR}
DebugLn('TfrMemoView.Print ',Name);
DebugLn('%sTfrMemoView.Print %s',[sspc,Name]);
{$ENDIF}
BeginDraw(TempBmp.Canvas);
Streaming := True;
@ -4066,6 +4104,10 @@ procedure TfrBand.DrawObject(t: TfrView);
var
ox,oy: Integer;
begin
{$IFDEF DebugLR}
DebugLn('%sTfrBand.DrawObject INI t=%s:%s',[sspc,dbgsname(t),t.name]);
IncSpc(1);
{$ENDIF}
CurPage := Parent;
CurBand := Self;
AggrBand := Self;
@ -4083,6 +4125,10 @@ begin
except
on exception do DoError;
end;
{$IFDEF DebugLR}
IncSpc(-1);
DebugLn('%sTfrBand.DrawObject DONE t=%s:%s',[sspc,dbgsname(t),t.name]);
{$ENDIF}
end;
procedure TfrBand.PrepareSubReports;
@ -4333,13 +4379,52 @@ end;
function TfrBand.CheckPageBreak(ay, ady: Integer; PBreak: Boolean): Boolean;
begin
{$IFDEF DebugLR}
DebugLn('%sTfrBand.CheckPageBreak INI ay=%d ady=%d Pbreak=%d',
[sspc,ay,ady,ord(pbreak)]);
IncSpc(1);
{$ENDIF}
Result := False;
with Parent do
if ay + Bands[btColumnFooter].dy + ady > CurBottomY then
begin
if not PBreak then
NewColumn(Self);
Result := True;
with Parent do begin
{$IFDEF DebugLR}
DebugLn('%say+dy+ady=%d CurBottomY=%d',
[sspc, ay+Bands[btColumnFooter].dy+ady,CurBottomY]);
{$ENDIF}
if not RowsLayout then begin
if ay + Bands[btColumnFooter].dy + ady > CurBottomY then
begin
if not PBreak then
NewColumn(Self);
Result := True;
end;
end;
end;
{$IFDEF DebugLR}
IncSpc(-1);
DebugLn('%sTfrBand.CheckPageBreak END ay=%d ady=%d Result=%d',
[sspc,ay,ady,ord(Result)]);
{$ENDIF}
end;
function TfrBand.CheckNextColumn: boolean;
var
BandHeight: Integer;
begin
with Parent do begin
if (CurColumn=0) and (typ=btMasterData) then begin
BandHeight := DoCalcHeight;
{$IFDEF DebugLR}
DebugLn('%sTfrBand.CheckNextColumn INI CurY=%d BHeight=%d CurY+BH=%d CurBottomY=%d',
[sspc,CurY,BandHeight,CurY+BandHeight,CurBottomY]);
{$ENDIF}
// check left height space when on last column
if CurY + BandHeight>CurBottomY then
NewPage;
{$IFDEF DebugLR}
DebugLn('%sTfrBand.CheckNextColumn END CurY=%d BHeight=%d CurY+BH=%d CurBottomY=%d',
[sspc,CurY,BandHeight,CurY+BandHeight,CurBottomY]);
{$ENDIF}
end;
end;
end;
@ -4365,6 +4450,10 @@ var
end;
begin
{$IFDEF DebugLR}
DebugLn('%sDrawPageBreak INI y=%d Maxdy',[sspc,y,maxdy]);
IncSpc(1);
{$ENDIF}
for i := 0 to Objects.Count - 1 do
begin
t :=TfrView(Objects[i]);
@ -4468,6 +4557,10 @@ begin
t.dy := t.OriginalRect.Bottom;
end;
Inc(Parent.CurY, maxdy);
{$IFDEF DebugLR}
IncSpc(-1);
DebugLn('%sDrawPageBreak END Parent.CurY=%d',[sspc,Parent.CurY]);
{$ENDIF}
end;
function TfrBand.HasCross: Boolean;
@ -4496,14 +4589,23 @@ begin
if Objects.Count = 0 then Exit;
sfy := y;
UseY := not (Typ in [btPageFooter, btOverlay, btNone]);
if UseY then y := Parent.CurY;
if UseY then
y := Parent.CurY;
{$IFDEF DebugLR}
DebugLn('%sTfrBand.DoDraw INI sfy=%d y=%d dy=%d XAdjust=%d CurY=%d Stretch=%d PageBreak=%d',
[sspc, sfy, y, dy, Parent.XAdjust, parent.cury, Ord(Stretched), Ord(PageBreak)]);
IncSpc(1);
{$ENDIF}
if Stretched then
begin
sh := CalculatedHeight;
// sh := CalcHeight;
if sh > dy then StretchObjects(sh);
if sh > dy then
StretchObjects(sh);
maxdy := sh;
if not PageBreak then CheckPageBreak(y, sh, False);
if not PageBreak then
CheckPageBreak(y, sh, False);
y := Parent.CurY;
WasSub := False;
if PageBreak then
@ -4514,16 +4616,19 @@ begin
else
begin
WasSub := DrawObjects;
if HasCross then DrawCross;
if HasCross then
DrawCross;
end;
UnStretchObjects;
if not WasSub then Inc(Parent.CurY, sh);
if not WasSub then
Inc(Parent.CurY, sh);
end
else
begin
if UseY then
begin
if not PageBreak then CheckPageBreak(y, dy, False);
if not PageBreak then
CheckPageBreak(y, dy, False);
y := Parent.CurY;
end;
if PageBreak then
@ -4535,14 +4640,23 @@ begin
else
begin
WasSub := DrawObjects;
if HasCross then DrawCross;
if UseY and not WasSub then Inc(Parent.CurY, dy);
if HasCross then
DrawCross;
if UseY and not WasSub then begin
if (not Parent.RowsLayout) or (Parent.CurColumn=Parent.ColCount-1) then
Inc(Parent.CurY, dy);
end;
end;
end;
y := sfy;
if Typ in [btMasterData, btDetailData, btSubDetailData] then
Parent.DoAggregate([btPageFooter, btMasterFooter, btDetailFooter,
btSubDetailFooter, btGroupFooter, btReportSummary]);
{$IFDEF DebugLR}
IncSpc(-1);
DebugLn('%sTfrBand.DoDraw END sfy=%d y=%d dy=%d xadjust=%d CurY=%d',
[sspc, sfy, y, dy, parent.xadjust, parent.cury]);
{$ENDIF}
end;
function TfrBand.DoCalcHeight: Integer;
@ -4571,77 +4685,114 @@ function TfrBand.Draw: Boolean;
var
b: TfrBand;
begin
{$IFDEF debugLr}
DebugLn('%sTFrBand.Draw INI %s:%s y=%d vis=%s',[sspc, Name, ClassName,y,BoolToStr(Visible,true)]);
IncSpc(1);
{$endif}
Result := False;
CurView := View;
CurBand := Self;
AggrBand := Self;
CalculatedHeight := -1;
ForceNewPage := False;
ForceNewColumn := False;
if Assigned(CurReport.FOnBeginBand) then
CurReport.FOnBeginBand(Self);
frInterpretator.DoScript(Script);
// new page was requested in script
if ForceNewPage then
begin
Parent.CurColumn := Parent.ColCount - 1;
Parent.NewColumn(Self);
end;
if ForceNewColumn then
Parent.NewColumn(Self);
if Visible then
begin
if Typ = btColumnHeader then
Parent.LastStaticColumnY := Parent.CurY;
if Typ = btPageFooter then
y := Parent.CurBottomY;
if Objects.Count > 0 then
if Parent.RowsLayout then begin
if Visible then
begin
if not (Typ in [btPageFooter, btOverlay, btNone]) then
if (Parent.CurY + DoCalcHeight > Parent.CurBottomY) and not PageBreak then
begin
Result := True;
if Objects.Count > 0 then
begin
if not (Typ in [btPageFooter, btOverlay, btNone]) then begin
if Parent.Skip then
Exit else
CheckPageBreak(0, 10000, False);
exit
else
CheckNextColumn;
end;
EOFReached := True;
// dealing with multiple bands
if (Typ in [btMasterData, btDetailData, btSubDetailData]) and
(Next <> nil) and (Next.Dataset = nil) and (DataSet <> nil) then
begin
b := Self;
repeat
b.DoDraw;
b := b.Next;
until b = nil;
end
else
begin
DoDraw;
if not (Typ in [btMasterData, btDetailData, btSubDetailData, btGroupHeader]) and
NewPageAfter then
Parent.NewPage;
EOFReached := True;
// only masterdata band supported in RowsLayout columns report
if typ=btMasterData then begin
DoDraw;
Parent.NextColumn(Self);
end;
if not EOFReached then
Result := True;
end;
if not EOFReached then Result := True;
end;
end
// if band is not visible, just performing aggregate calculations
// relative to it
else if Typ in [btMasterData, btDetailData, btSubDetailData] then
Parent.DoAggregate([btPageFooter, btMasterFooter, btDetailFooter,
btSubDetailFooter, btGroupFooter, btReportSummary]);
// check if multiple pagefooters (in cross-tab report) - resets last of them
if not DisableInit then
if (Typ <> btPageFooter) or (PageNo = MasterReport.EMFPages.Count - 1) then
InitValues;
end else begin
// new page was requested in script
if ForceNewPage then
begin
Parent.CurColumn := Parent.ColCount - 1;
Parent.NewColumn(Self);
end;
if ForceNewColumn then
Parent.NewColumn(Self);
if Visible then
begin
if Typ = btColumnHeader then
Parent.LastStaticColumnY := Parent.CurY;
if Typ = btPageFooter then
y := Parent.CurBottomY;
if Objects.Count > 0 then
begin
if not (Typ in [btPageFooter, btOverlay, btNone]) then
if (Parent.CurY + DoCalcHeight > Parent.CurBottomY) and not PageBreak then
begin
Result := True;
if Parent.Skip then
Exit
else
CheckPageBreak(0, 10000, False);
end;
EOFReached := True;
// dealing with multiple bands
if (Typ in [btMasterData, btDetailData, btSubDetailData]) and
(Next <> nil) and (Next.Dataset = nil) and (DataSet <> nil) then
begin
b := Self;
repeat
b.DoDraw;
b := b.Next;
until b = nil;
end
else
begin
DoDraw;
if not (Typ in [btMasterData, btDetailData, btSubDetailData, btGroupHeader]) and
NewPageAfter then
Parent.NewPage;
end;
if not EOFReached then Result := True;
end;
end
// if band is not visible, just performing aggregate calculations
// relative to it
else
if Typ in [btMasterData, btDetailData, btSubDetailData] then
Parent.DoAggregate([btPageFooter, btMasterFooter, btDetailFooter,
btSubDetailFooter, btGroupFooter, btReportSummary]);
// check if multiple pagefooters (in cross-tab report) - resets last of them
if not DisableInit then
if (Typ <> btPageFooter) or (PageNo = MasterReport.EMFPages.Count - 1) then
InitValues;
end;
if Assigned(CurReport.FOnEndBand) then
CurReport.FOnEndBand(Self);
{$IFDEF debugLr}
IncSpc(-1);
DebugLn('%sTFrBand.Draw END %s y=%d PageNo=%d',[sspc, dbgsname(self),y, PageNo]);
{$endif}
end;
procedure TfrBand.InitValues;
@ -5215,9 +5366,19 @@ end;
procedure TfrPage.ShowBand(b: TfrBand);
begin
if b <> nil then
begin
{$IFDEF DebugLR}
DebugLn('%sTfrPage.ShowBand INI b=%s:%s',[sspc,dbgsname(b),typ2str(b.typ)]);
IncSpc(1);
{$ENDIF}
if Mode = pmBuildList then
AddRecord(b, rtShowBand) else
b.Draw;
{$IFDEF DebugLR}
IncSpc(-1);
DebugLn('%sTfrPage.ShowBand END b=%s:%s',[sspc,dbgsname(b),typ2str(b.typ)]);
{$ENDIF}
end;
end;
constructor TfrPage.Create;
@ -5329,6 +5490,10 @@ end;
procedure TfrPage.DrawPageFooters;
begin
{$IFDEF DebugLR}
DebugLn('%sTFrPage.DrawPageFootersPage INI PageNo=%d XAdjust=%d CurColumn=%d',
[sspc,PageNo, XAdjust, CurColumn]);
{$ENDIF}
CurColumn := 0;
XAdjust := LeftMargin;
if (PageNo <> 0) or ((Bands[btPageFooter].Flags and flBandOnFirstPage) <> 0) then
@ -5341,17 +5506,29 @@ begin
if (MasterReport <> CurReport) and (MasterReport <> nil) and
Assigned(MasterReport.FOnEndPage) then
MasterReport.FOnEndPage(PageNo);
ShowBand(Bands[btPageFooter]);
if not RowsLayout then
ShowBand(Bands[btPageFooter]);
end;
Inc(PageNo);
end;
PageNo := MasterReport.EMFPages.Count;
{$IFDEF DebugLR}
DebugLn('%sTFrPage.DrawPageFootersPage FIN PageNo=%d XAdjust=%d CurColumn=%d',
[sspc, PageNo, XAdjust, CurColumn]);
{$ENDIF}
end;
procedure TfrPage.NewPage;
begin
{$IFDEF DebugLR}
DebugLn('%sTFrPage.NewPage INI PageNo=%d CurBottomY=%d CurY=%d XAdjust=%d',
[sspc,PageNo, CurBottomY, CurY, XAdjust]);
IncSpc(1);
{$ENDIF}
CurReport.InternalOnProgress(PageNo + 1);
ShowBand(Bands[btColumnFooter]);
if not RowsLayout then
ShowBand(Bands[btColumnFooter]);
DrawPageFooters;
CurBottomY := BottomMargin;
MasterReport.EMFPages.Add(Self);
@ -5359,13 +5536,24 @@ begin
ShowBand(Bands[btOverlay]);
CurY := TopMargin;
ShowBand(Bands[btPageHeader]);
ShowBand(Bands[btColumnHeader]);
if not RowsLayout then
ShowBand(Bands[btColumnHeader]);
{$IFDEF DebugLR}
IncSpc(-1);
DebugLn('%sTFrPage.NewPage END PageNo=%d CurBottomY=%d CurY=%d XAdjust=%d',
[sspc,PageNo, CurBottomY, CurY, XAdjust]);
{$ENDIF}
end;
procedure TfrPage.NewColumn(Band: TfrBand);
var
b: TfrBand;
begin
{$IFDEF DebugLR}
DebugLn('%sTfrPage.NewColumn INI CurColumn=%d ColCount=%d CurY=%d XAdjust=%d',
[sspc,CurColumn, ColCount, CurY, XAdjust]);
IncSpc(1);
{$ENDIF}
if CurColumn < ColCount - 1 then
begin
ShowBand(Bands[btColumnFooter]);
@ -5390,6 +5578,43 @@ begin
if (Band.HeaderBand <> nil) and
((Band.HeaderBand.Flags and flBandRepeatHeader) <> 0) then
ShowBand(Band.HeaderBand);
{$IFDEF DebugLR}
IncSpc(-1);
DebugLn('%sTfrPage.NewColumn END CurColumn=%d ColCount=%d CurY=%d XAdjust=%d',
[sspc,CurColumn, ColCount, CurY, XAdjust]);
{$ENDIF}
end;
procedure TfrPage.NextColumn(Band: TFrBand);
begin
{$IFDEF DebugLR}
DebugLn('%sTfrPage.NextColumn INI CurColumn=%d ColCount=%d CurY=%d XAdjust=%d',
[sspc,CurColumn, ColCount, CurY, XAdjust]);
IncSpc(1);
{$ENDIF}
if CurColumn < ColCount - 1 then
begin
Inc(CurColumn);
Inc(XAdjust, ColWidth + ColGap);
Inc(ColPos);
end
else
begin
CurColumn := 0;
ColPos:=1;
XAdjust := LeftMargin;
end;
{$IFDEF DebugLR}
IncSpc(-1);
DebugLn('%sTfrPage.NextColumn END CurColumn=%d ColCount=%d CurY=%d XAdjust=%d',
[sspc,CurColumn, ColCount, CurY, XAdjust]);
{$ENDIF}
end;
function TfrPage.RowsLayout: boolean;
begin
// esta funcion debe leerse de las opciones de la pagina
result := (ColCount>1) and (LayoutOrder=loRows)
end;
procedure TfrPage.DoAggregate(a: Array of TfrBandType);
@ -5431,10 +5656,16 @@ var
var
i: Integer;
begin
{$IFDEF DebugLR}
DebugLn('%sShowStack INI',[sspc]);
{$ENDIF}
for i := 1 to BndStackTop do
if BandExists(BndStack[i]) then
ShowBand(BndStack[i]);
BndStackTop := 0;
{$IFDEF DebugLR}
DebugLn('%sShowStack END',[sspc]);
{$ENDIF}
end;
procedure DoLoop(Level: Integer);
@ -5455,6 +5686,10 @@ var
end;
begin
{$IFDEF DebugLR}
DebugLn('%sDoop(Level=%d) INI',[sspc,Level]);
IncSpc(1);
{$ENDIF}
b := Bands[Bnds[Level, bpData]];
while (b <> nil) and (b.Dataset <> nil) do
begin
@ -5464,7 +5699,8 @@ var
b.DataSet.First;
if Mode = pmBuildList then
AddRecord(b, rtFirst) else
AddRecord(b, rtFirst)
else
b.Positions[psLocal] := 1;
b1 := Bands[btGroupHeader];
@ -5487,7 +5723,8 @@ var
while not b.DataSet.Eof do
begin
Application.ProcessMessages;
if MasterReport.Terminated then break;
if MasterReport.Terminated then
break;
AddToStack(b);
WasPrinted := True;
if Level < MaxLevel then
@ -5502,7 +5739,8 @@ var
WasPrinted := False;
end;
end
else ShowStack;
else
ShowStack;
b.DataSet.Next;
@ -5543,9 +5781,11 @@ var
Inc(CurPos);
Inc(b.Positions[psGlobal]);
Inc(b.Positions[psLocal]);
if not b.DataSet.Eof and b.NewPageAfter then NewPage;
if not b.DataSet.Eof and b.NewPageAfter then
NewPage;
end;
if MasterReport.Terminated then break;
if MasterReport.Terminated then
break;
end;
if BndStackTop = 0 then
ShowBand(b.FooterBand) else
@ -5558,9 +5798,17 @@ var
end;
b := b.Next;
end;
{$IFDEF DebugLR}
IncSpc(-1);
DebugLn('%sDoop(Level=%d) END',[sspc,Level]);
{$ENDIF}
end;
begin
{$IFDEF DebugLR}
DebugLn('%sTfrPage.FormPage INI Mode=%d',[sspc,ord(mode)]);
IncSpc(1);
{$ENDIF}
if Mode = pmNormal then
begin
if Append then
@ -5580,6 +5828,9 @@ begin
CurColumn := 0;
XAdjust := LeftMargin;
{$IFDEF DebugLR}
DebugLn('%sXAdjust=%d CurBottomY=%d PrevY=%d',[sspc,XAdjust,CurBottomY,PrevY]);
{$ENDIF}
if not Append then
begin
MasterReport.EMFPages.Add(Self);
@ -5590,13 +5841,17 @@ begin
else
CurY := PrevY;
sfPage := PageNo;
{$IFDEF DebugLR}
DebugLn('%sXAdjust=%d CurY=%d sfPage=%d',[sspc,XAdjust,CurY,sfpage]);
{$ENDIF}
ShowBand(Bands[btReportTitle]);
if PageNo = sfPage then // check if new page was formed
begin
if BandExists(Bands[btPageHeader]) and
((Bands[btPageHeader].Flags and flBandOnFirstPage) <> 0) then
ShowBand(Bands[btPageHeader]);
ShowBand(Bands[btColumnHeader]);
if not RowsLayout then
ShowBand(Bands[btColumnHeader]);
end;
end;
@ -5607,10 +5862,14 @@ begin
MaxLevel := i;
end;
HasGroups := Bands[btGroupHeader].Objects.Count > 0;
{$IFDEF DebugLR}
DebugLn('%sMaxLevel=%d doing DoLoop(1)',[sspc,MaxLevel]);
{$ENDIF}
DoLoop(1);
if Mode = pmNormal then
begin
ShowBand(Bands[btColumnFooter]);
if not RowsLayout then
ShowBand(Bands[btColumnFooter]);
ShowBand(Bands[btReportSummary]);
PrevY := CurY;
PrevBottomY := CurBottomY;
@ -5628,6 +5887,11 @@ begin
end;
PageNo := sfPage + 1;
end;
{$IFDEF DebugLR}
IncSpc(-1);
DebugLn('%sTfrPage.FormPage END PrevY=%d PrevBottomY=%d PageNo=%d XAdjust=%d',
[sspc,PrevY,PrevBottomY,PageNo,XAdjust]);
{$ENDIF}
end;
function TfrPage.BandExists(b: TfrBand): Boolean;
@ -5669,6 +5933,7 @@ begin
Read(fColGap, 4);
if frVersion>23 then
Read(ord(PageType), SizeOf(TfrPageType));
Read(fLayoutOrder, 4);
end;
ChangePaper(pgSize, Width, Height, Orientation);
end;
@ -5707,6 +5972,7 @@ begin
Write(ColCount, 4);
Write(ColGap, 4);
Write(ord(PageType), SizeOf(TfrPageType));
Write(LayoutOrder, 4);
end;
end;
@ -6024,9 +6290,9 @@ var
begin
IsPrinting := Printer.Printing and (Canvas is TPrinterCanvas);
{$IFDEF DebugLR}
DebugLn('IsPrinting=',dbgs(IsPrinting),' PageIndex=', dbgs(Index),
' Canvas.ClassName=',Canvas.ClassName,
' Canvas.Font.PPI=',dbgs(Canvas.Font.pixelsPerInch));
DebugLn('TfrEMFPages.Draw IsPrinting=%d PageIndex=%d Canvas.ClassName=%s '+
'CanvasPPI=%d',[ord(IsPrinting), Index, Canvas.ClassName,
Canvas.Font.pixelsPerInch]);
DebugLn('----------------------------------------------------');
{$ENDIF}
@ -6649,9 +6915,6 @@ var
V : Variant;
ValStr: String;
begin
{$IFDEF DebugLR}
DebugLn('TfrReport.InternalOnGetValue(',ParName,')');
{$ENDIF}
SubValue := '';
Format := CurView.Format;
FormatStr := CurView.FormatStr;
@ -6716,6 +6979,9 @@ begin
ValStr := CurValue;
ParValue := FormatValueStr(ValStr, Format, FormatStr);
}
{$IFDEF DebugLR}
DebugLn('%sTfrReport.InternalOnGetValue(%s) Value=%s',[sspc,ParName,ParValue]);
{$ENDIF}
end;
procedure TfrReport.InternalOnEnterRect(Memo: TStringList; View: TfrView);
@ -9075,7 +9341,8 @@ begin
UseMargins := XML.GetValue(Path+'UseMargins/Value', True); // TODO chk
PrintToPrevPage := XML.GetValue(Path+'PrintToPrevPage/Value', True); // TODO chk
ColCount := XML.GetValue(Path+'ColCount/Value', 1); // TODO chk
ColGap := XML.GetValue(Path+'ColGap/Value', 10); // TODO chk
ColGap := XML.GetValue(Path+'ColGap/Value', 0);
RestoreProperty('LayoutOrder',XML.GetValue(Path+'LayoutOrder/Value',''));
ChangePaper(pgSize, Width, Height, Orientation);
end;
@ -9096,6 +9363,7 @@ begin
XML.SetValue(Path+'PrintToPrevPage/Value', PrintToPrevPage);
XML.SetValue(Path+'ColCount/Value', ColCount);
XML.SetValue(Path+'ColGap/Value', ColGap);
XML.SetValue(Path+'LayoutOrder/Value', GetSaveProperty('LayoutOrder'));
end;
constructor TfrPageReport.CreatePage;

View File

@ -56,7 +56,9 @@ resourcestring
sPgoptFormColumn = 'Columns';
sPgoptFormNumber = '&Number';
sPgoptFormColGap = '&Column gap, mm';
sPgoptFormLayoutOrder = 'Layout Order';
sPgoptFormByColumns = 'By Colum&ns';
sPgoptFormByRows = 'By Row&s';
//--- EditorForm resources ----------------------------------------------------
sEditorFormCapt = 'Text editor';

View File

@ -4759,6 +4759,10 @@ begin
E6.Text := IntToStr(Margins.Bottom * 5 div 18);
E7.Text := IntToStr(ColGap * 5 div 18);
ecolCount.Value := ColCount;
if LayoutOrder = loColumns then
RBColumns.Checked := true
else
RBRows.Checked := true;
WasOk := False;
if ShowModal = mrOk then
begin
@ -4771,6 +4775,10 @@ begin
Orientation := poPortrait
else
Orientation := poLandscape;
if RBColumns.Checked then
LayoutOrder := loColumns
else
LayoutOrder := loRows;
p := Prn.PaperSizes[ComB1.ItemIndex];
w := 0; h := 0;

View File

@ -138,18 +138,18 @@ object frPgoptForm: TfrPgoptForm
Left = 3
Height = 44
Top = 98
Width = 85
Width = 83
AutoSize = True
BorderSpacing.Left = 3
BevelOuter = bvNone
ClientHeight = 44
ClientWidth = 85
ClientWidth = 83
TabOrder = 0
object RB1: TRadioButton
AnchorSideTop.Control = Panel1
Left = 6
Height = 19
Width = 59
Width = 62
HelpContext = 111
AllowGrayed = True
BorderSpacing.Left = 6
@ -166,7 +166,7 @@ object frPgoptForm: TfrPgoptForm
Left = 6
Height = 19
Top = 25
Width = 79
Width = 77
HelpContext = 120
AllowGrayed = True
BorderSpacing.Top = 6
@ -289,14 +289,14 @@ object frPgoptForm: TfrPgoptForm
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
Caption = 'Options'
ClientHeight = 34
ClientWidth = 212
ClientHeight = 52
ClientWidth = 216
TabOrder = 0
object CB1: TCheckBox
Left = 6
Height = 19
Top = 6
Width = 129
Width = 132
HelpContext = 160
Caption = '&Print to previous page'
TabOrder = 0
@ -317,8 +317,8 @@ object frPgoptForm: TfrPgoptForm
BorderSpacing.Right = 6
BorderSpacing.Bottom = 6
Caption = 'Columns'
ClientHeight = 240
ClientWidth = 210
ClientHeight = 258
ClientWidth = 214
TabOrder = 1
object Label7: TLabel
Left = 6
@ -340,6 +340,59 @@ object frPgoptForm: TfrPgoptForm
FocusControl = E7
ParentColor = False
end
object lblLayout: TLabel
Left = 6
Height = 14
Top = 105
Width = 65
Caption = 'Layout Order'
ParentColor = False
end
object imgColumns: TImage
Left = 142
Height = 32
Top = 128
Width = 26
AutoSize = True
Picture.Data = {
1754506F727461626C654E6574776F726B477261706869636901000089504E47
0D0A1A0A0000000D494844520000001A00000020080200000083C9FF52000000
097048597300000EC400000EC401952B0E1B0000011B49444154789CCD96C16D
C3300C45BF0A0FD37B878977B1018A80866917B12F1D20DB2807212E4D514AA8
144579B1CD48CFCF8AFCE19052C22FD5BAAE138065595E67EDFB0E60BA5F7EA9
9F99AF44EFF5B446FF520E6FB217780E3C977393D5E91B3865E1EA3FC0FDA99D
5C9657ED4CD0A05D87D5C399768595E9BB35EBD87765E3CCC7393313D1991500
4444E0E33CCBC0D576062B536E8D2FD5593B3659B2EFC01D76CA4B59FBECEA67
1CB733D76BD0AEB5F623769DFFB16F67E49DD85F3A04A1F3EE187051B85365FA
6CDDDF9D288565BEB381E7BA2FDFE2939D946A594444C2CF309508EE4491883A
5D7C8962AEA96CBAED14515DBAD358220CD99452B62AC6E8EA6FDBD6C379ABE0
9ECABB67FA0F1E76CC6EC2FD6BE53FD60DBD715BF9EA5227680000000049454E
44AE426082
}
end
object imgRows: TImage
Left = 142
Height = 32
Top = 128
Width = 26
AutoSize = True
Picture.Data = {
1754506F727461626C654E6574776F726B477261706869636C01000089504E47
0D0A1A0A0000000D494844520000001A00000020080200000083C9FF52000000
097048597300000EC400000EC401952B0E1B0000011E49444154789CCD56C10D
8420101C2E146137D885F6A28931B198BB2EE0652BD705F7201294DD45F472B9
F9181718661776542DCB822F611C470D601886FB5CEBBA02D0DBEBEB30EC5C63
CC3B5FC6C4BBF07870BB915C42BC40E75C53150FD0E98B9AFBDDA065165900F0
D3B342DD35ECD4911BE6382691A0BA76818BDBB8EE64652E24C976993A678CD9
732900B6B5800103CD0D905C7EF2DCFC00A1768EE44AE3157451DD41D741759D
BA3CC7EBEAC87A5D54C7D55E56479F2CC715E25BCF12A74CF85DB8ABB6B5B909
FAE9193B4CCD2AB9CF94DFA9B98FF79EF3B5B425F2E6E592659B5CC6AF0C4AF8
56B4B6CDE717D471B513B8243AD2EF624D398F121C855057B4EB0ABF93E30165
4739192FD071BD79D7EF4EC60334B6BF957FC4072D668C7B8DFC603E00000000
49454E44AE426082
}
Visible = False
end
object E7: TEdit
AnchorSideLeft.Control = Label7
AnchorSideTop.Control = Label8
@ -363,8 +416,31 @@ object frPgoptForm: TfrPgoptForm
Top = 26
Width = 127
BorderSpacing.Around = 6
OnChange = ecolCountChange
TabOrder = 1
end
object RBColumns: TRadioButton
Left = 14
Height = 19
Top = 124
Width = 90
Caption = 'By Colum&ns'
Checked = True
Enabled = False
OnClick = RBColumnsClick
State = cbChecked
TabOrder = 2
end
object RBRows: TRadioButton
Left = 14
Height = 19
Top = 144
Width = 90
Caption = 'By Row&s'
Enabled = False
OnClick = RBRowsClick
TabOrder = 3
end
end
object GroupBox4: TGroupBox
AnchorSideLeft.Control = TabSheet3
@ -380,8 +456,8 @@ object frPgoptForm: TfrPgoptForm
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 6
Caption = 'Page margins'
ClientHeight = 182
ClientWidth = 212
ClientHeight = 200
ClientWidth = 216
TabOrder = 2
object Label3: TLabel
AnchorSideTop.Control = CB5

View File

@ -63,15 +63,15 @@ LazarusResources.Add('TfrPgoptForm','FORMDATA',[
+'J<'#164#198#239#232#242#0#244'#'#5#141#232'H'#7'F'#0#0#0#0'IEND'#174'B`'
+#130#0#0#6'TPanel'#6'Panel1'#22'AnchorSideLeft.Control'#7#9'GroupBox2'#21'An'
+'chorSideTop.Control'#7#9'GroupBox2'#18'AnchorSideTop.Side'#7#9'asrCenter'#4
+'Left'#2#3#6'Height'#2','#3'Top'#2'b'#5'Width'#2'U'#8'AutoSize'#9#18'BorderS'
+'Left'#2#3#6'Height'#2','#3'Top'#2'b'#5'Width'#2'S'#8'AutoSize'#9#18'BorderS'
+'pacing.Left'#2#3#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2','#11'Client'
,'Width'#2'U'#8'TabOrder'#2#0#0#12'TRadioButton'#3'RB1'#21'AnchorSideTop.Cont'
+'rol'#7#6'Panel1'#4'Left'#2#6#6'Height'#2#19#5'Width'#2';'#11'HelpContext'#2
,'Width'#2'S'#8'TabOrder'#2#0#0#12'TRadioButton'#3'RB1'#21'AnchorSideTop.Cont'
+'rol'#7#6'Panel1'#4'Left'#2#6#6'Height'#2#19#5'Width'#2'>'#11'HelpContext'#2
+'o'#11'AllowGrayed'#9#18'BorderSpacing.Left'#2#6#7'Caption'#6#9'&Portrait'#7
+'Checked'#9#7'OnClick'#7#8'RB1Click'#5'State'#7#9'cbChecked'#8'TabOrder'#2#0
+#0#0#12'TRadioButton'#3'RB2'#22'AnchorSideLeft.Control'#7#3'RB1'#21'AnchorSi'
+'deTop.Control'#7#3'RB1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6
+'Height'#2#19#3'Top'#2#25#5'Width'#2'O'#11'HelpContext'#2'x'#11'AllowGrayed'
+'Height'#2#19#3'Top'#2#25#5'Width'#2'M'#11'HelpContext'#2'x'#11'AllowGrayed'
+#9#17'BorderSpacing.Top'#2#6#7'Caption'#6#10'&Landscape'#7'OnClick'#7#8'RB2C'
+'lick'#8'TabOrder'#2#1#0#0#0#0#9'TGroupBox'#9'GroupBox3'#22'AnchorSideLeft.C'
+'ontrol'#7#9'TabSheet1'#21'AnchorSideTop.Control'#7#9'TabSheet1'#23'AnchorSi'
@ -111,8 +111,8 @@ LazarusResources.Add('TfrPgoptForm','FORMDATA',[
+#24'AnchorSideBottom.Control'#7#9'TabSheet3'#21'AnchorSideBottom.Side'#7#9'a'
+'srBottom'#4'Left'#2#6#6'Height'#2'4'#3'Top'#2#6#5'Width'#3#216#0#7'Anchors'
+#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6
+#7'Options'#12'ClientHeight'#2'"'#11'ClientWidth'#3#212#0#8'TabOrder'#2#0#0#9
+'TCheckBox'#3'CB1'#4'Left'#2#6#6'Height'#2#19#3'Top'#2#6#5'Width'#3#129#0#11
+#7'Options'#12'ClientHeight'#2'4'#11'ClientWidth'#3#216#0#8'TabOrder'#2#0#0#9
+'TCheckBox'#3'CB1'#4'Left'#2#6#6'Height'#2#19#3'Top'#2#6#5'Width'#3#132#0#11
+'HelpContext'#3#160#0#7'Caption'#6#23'&Print to previous page'#8'TabOrder'#2
+#0#0#0#0#9'TGroupBox'#9'GroupBox5'#21'AnchorSideTop.Control'#7#9'TabSheet3'
+#23'AnchorSideRight.Control'#7#9'TabSheet3'#20'AnchorSideRight.Side'#7#9'asr'
@ -120,235 +120,101 @@ LazarusResources.Add('TfrPgoptForm','FORMDATA',[
+'e'#7#9'asrBottom'#4'Left'#3#228#0#6'Height'#3#2#1#3'Top'#2#6#5'Width'#3#214
+#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#17'BorderSpacin'
+'g.Top'#2#6#19'BorderSpacing.Right'#2#6#20'BorderSpacing.Bottom'#2#6#7'Capti'
+'on'#6#7'Columns'#12'ClientHeight'#3#240#0#11'ClientWidth'#3#210#0#8'TabOrde'
+'r'#2#1#0#6'TLabel'#6'Label7'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#6#5'Width'
+#2'&'#7'Caption'#6#7'&Number'#11'ParentColor'#8#0#0#6'TLabel'#6'Label8'#22'A'
+'nchorSideLeft.Control'#7#6'Label7'#21'AnchorSideTop.Control'#7#9'ecolCount'
+#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#14#3'Top'#2'6'
+#5'Width'#2'P'#7'Caption'#6#15'&Column gap, mm'#12'FocusControl'#7#2'E7'#11
+'ParentColor'#8#0#0#5'TEdit'#2'E7'#22'AnchorSideLeft.Control'#7#6'Label7'#21
+'AnchorSideTop.Control'#7#6'Label8'#18'AnchorSideTop.Side'#7#9'asrBottom'#23
+'AnchorSideRight.Control'#7#9'GroupBox5'#4'Left'#2#12#6'Height'#2#22#3'Top'#2
,'J'#5'Width'#2''#11'HelpContext'#3#180#0#8'AutoSize'#9#20'BorderSpacing.Aro'
+'und'#2#6#8'TabOrder'#2#0#0#0#9'TSpinEdit'#9'ecolCount'#22'AnchorSideLeft.Co'
+'ntrol'#7#6'Label7'#21'AnchorSideTop.Control'#7#6'Label7'#18'AnchorSideTop.S'
+'ide'#7#9'asrBottom'#4'Left'#2#12#6'Height'#2#22#3'Top'#2#26#5'Width'#2''#20
+'BorderSpacing.Around'#2#6#8'TabOrder'#2#1#0#0#0#9'TGroupBox'#9'GroupBox4'#22
+'AnchorSideLeft.Control'#7#9'TabSheet3'#21'AnchorSideTop.Control'#7#9'GroupB'
+'ox1'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#9
+'GroupBox5'#24'AnchorSideBottom.Control'#7#9'TabSheet3'#21'AnchorSideBottom.'
+'Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#3#200#0#3'Top'#2'@'#5'Width'#3
+#216#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSp'
+'acing.Around'#2#6#7'Caption'#6#12'Page margins'#12'ClientHeight'#3#182#0#11
+'ClientWidth'#3#212#0#8'TabOrder'#2#2#0#6'TLabel'#6'Label3'#21'AnchorSideTop'
+'.Control'#7#3'CB5'#18'AnchorSideTop.Side'#7#9'asrBottom'#21'AnchorSideBotto'
+'m.Side'#7#9'asrBottom'#4'Left'#2'l'#6'Height'#2#14#3'Top'#2#27#5'Width'#2'+'
+#18'BorderSpacing.Left'#2#6#7'Caption'#6#9'&Left, mm'#11'ParentColor'#8#0#0#6
+'TLabel'#6'Label4'#22'AnchorSideLeft.Control'#7#3'CB5'#21'AnchorSideTop.Cont'
+'rol'#7#3'CB5'#18'AnchorSideTop.Side'#7#9'asrBottom'#21'AnchorSideBottom.Sid'
+'e'#7#9'asrBottom'#4'Left'#2#14#6'Height'#2#14#3'Top'#2#27#5'Width'#2'*'#18
+'BorderSpacing.Left'#2#6#7'Caption'#6#8'&Top, mm'#11'ParentColor'#8#0#0#6'TL'
+'abel'#6'Label5'#22'AnchorSideLeft.Control'#7#6'Label4'#21'AnchorSideTop.Con'
+'trol'#7#2'E4'#18'AnchorSideTop.Side'#7#9'asrBottom'#21'AnchorSideBottom.Sid'
+'e'#7#9'asrBottom'#4'Left'#2#14#6'Height'#2#14#3'Top'#2'K'#5'Width'#2'1'#7'C'
+'aption'#6#10'&Right, mm'#11'ParentColor'#8#0#0#6'TLabel'#6'Label6'#22'Ancho'
+'rSideLeft.Control'#7#6'Label3'#21'AnchorSideTop.Control'#7#2'E3'#18'AnchorS'
+'ideTop.Side'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'
+#2'l'#6'Height'#2#14#3'Top'#2'K'#5'Width'#2':'#7'Caption'#6#11'&Bottom, mm'
+#11'ParentColor'#8#0#0#9'TCheckBox'#3'CB5'#18'AnchorSideTop.Side'#7#9'asrBot'
+'tom'#4'Left'#2#8#6'Height'#2#19#3'Top'#2#2#5'Width'#2'G'#11'HelpContext'#2
+'>'#20'BorderSpacing.Around'#2#6#7'Caption'#6#10'&Don''t use'#8'OnChange'#7#8
+'CB5Click'#8'TabOrder'#2#0#11'UseOnChange'#9#0#0#5'TEdit'#2'E3'#22'AnchorSid'
+'eLeft.Control'#7#6'Label3'#21'AnchorSideTop.Control'#7#6'Label3'#18'AnchorS'
+'ideTop.Side'#7#9'asrBottom'#4'Left'#2'r'#6'Height'#2#22#3'Top'#2'/'#5'Width'
+#2'@'#11'HelpContext'#2'H'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#8'TabO'
+'rder'#2#1#0#0#5'TEdit'#2'E4'#22'AnchorSideLeft.Control'#7#6'Label4'#21'Anch'
+'orSideTop.Control'#7#6'Label4'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'
+#2#20#6'Height'#2#22#3'Top'#2'/'#5'Width'#2'@'#11'HelpContext'#2'Q'#8'AutoSi'
+'ze'#9#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#2#0#0#5'TEdit'#2'E5'#22'An'
+'chorSideLeft.Control'#7#6'Label5'#21'AnchorSideTop.Control'#7#6'Label5'#18
+'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#20#6'Height'#2#22#3'Top'#2'_'#5
+'Width'#2'@'#11'HelpContext'#2'['#8'AutoSize'#9#20'BorderSpacing.Around'#2#6
+#8'TabOrder'#2#3#0#0#5'TEdit'#2'E6'#22'AnchorSideLeft.Control'#7#6'Label6'#21
+'AnchorSideTop.Control'#7#6'Label6'#18'AnchorSideTop.Side'#7#9'asrBottom'#4
+'Left'#2'r'#6'Height'#2#22#3'Top'#2'_'#5'Width'#2'@'#11'HelpContext'#2'e'#8
+'AutoSize'#9#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#4#0#0#0#0#0#12'TButt'
+'onPanel'#12'ButtonPanel1'#4'Left'#2#6#6'Height'#2'('#3'Top'#3'('#1#5'Width'
+#3#188#1#5'Align'#7#8'alBottom'#8'AutoSize'#9#8'TabOrder'#2#1#11'ShowButtons'
+#11#4'pbOK'#8'pbCancel'#6'pbHelp'#0#0#0#0#12'TfrPgoptForm'#11'frPgoptForm'#4
+'Left'#3'V'#1#6'Height'#3'P'#1#3'Top'#3'!'#1#5'Width'#3#200#1#13'ActiveContr'
+'ol'#7#12'PageControl1'#7'Caption'#6#12'Page options'#12'ClientHeight'#3'P'#1
+#11'ClientWidth'#3#200#1#11'Font.Height'#2#245#9'Font.Name'#6#13'MS Sans Ser'
+'if'#10'OnActivate'#7#12'FormActivate'#8'OnCreate'#7#10'FormCreate'#8'Positi'
+'on'#7#14'poScreenCenter'#8'ShowHint'#9#10'LCLVersion'#6#6'0.9.25'#0#12'TPag'
+'eControl'#12'PageControl1'#6'Height'#3'('#1#5'Width'#3#200#1#10'ActivePage'
+#7#9'TabSheet1'#5'Align'#7#8'alClient'#8'TabIndex'#2#0#8'TabOrder'#2#0#0#9'T'
+'TabSheet'#9'TabSheet1'#7'Caption'#6#5'Paper'#12'ClientHeight'#3#14#1#11'Cli'
+'entWidth'#3#192#1#0#9'TGroupBox'#9'GroupBox2'#21'AnchorSideTop.Control'#7#9
+'TabSheet1'#23'AnchorSideRight.Control'#7#9'TabSheet1'#20'AnchorSideRight.Si'
+'de'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#9'TabSheet1'#21'AnchorSid'
+'eBottom.Side'#7#9'asrBottom'#4'Left'#3#251#0#6'Height'#3#2#1#3'Top'#2#6#5'W'
+'idth'#3#191#0#7'Anchors'#11#5'akTop'#7'akRight'#8'akBottom'#0#17'BorderSpac'
+'ing.Top'#2#6#19'BorderSpacing.Right'#2#6#20'BorderSpacing.Bottom'#2#6#7'Cap'
+'tion'#6#11'Orientation'#12'ClientHeight'#3#240#0#11'ClientWidth'#3#187#0#8
+'TabOrder'#2#0#0#6'TImage'#12'imgLandScape'#23'AnchorSideRight.Control'#7#9
+'GroupBox2'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#149#0#6'Height'
,#2#26#3'Top'#2'k'#5'Width'#2' '#7'Anchors'#11#7'akRight'#0#8'AutoSize'#9#19
+'BorderSpacing.Right'#2#6#12'Picture.Data'#10#207#3#0#0#23'TPortableNetworkG'
+'raphic'#179#3#0#0#137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0' '#0#0#0#26#8#3
+#0#0#0#225'E'#174#13#0#0#3#0'PLTE'#132#132#132#0#0#0#198#198#198#255#255#255
+'xxx'#1#1#1#2#2#2#1#1#1'aC_zOCaMHrMEuACsNK\D=rENeROs_'#0'oDGuRPrIUcVTeEIs=L'
+#0'CSA:_L'#0'HLCEUOASMDEMERARSN_PDPREAORTF_HII=LNCEI:==\CCg::n\\uDW\oIgcNpuD'
+'umOteWinSlt\ssW\ IhaNenCadMd DeS.reI'#0'tNGtIPi'#0'UnCTgOIsML\MSAA_lNLlDK E'
+'RUR_s_PePArATsTH'#0'H=A=CPC:P:\D\gAtnTouAt\=agClp:cu\mtDdio'#0'lcCsuo\mmlem'
+'knortn'#0'sPH rOaoMngEdrD aRSmIeFVtiEtl=ieCns:g='#0'sCH\:OJ\MeAEsrPucAshT\i'
+'HDv=ao\tsDo osdc eud mepe rnpotrgsor gaarmnaadm\ aAS'#0'reActPhtRii_vnIogCs'
+'sO \NcJVoe_msPuuAnsTe'#0'HsK='#0'MCCP:O_\MDAPUrUPcTLhEIiRCvNAoATsME E_d=LeM'
+'I YBpW_rIOoNKgX=rPTa'#0'RmCUaoE\m'#0'SSLupObeGvcOe=NrCSs:Ei\RoWVnIE\NRiD=cO'
+'\oW\nSMv\Y'#0'sWCyIGsN_tXBePIm'#0'N3M_2KP\LAc_TmSHdE=.RCeI:xA\eLA'#0'=rCYcV'
+'EhSSi_'#0'vENoXUsTM =BdcEe:R \_pPOruFoT_gTPrYRa\OmpCalE\iSNnSVkOI.RDeSIx=Ae'
+'1 '#0#0'CCOoVSrS=p_WoRirSnaHdt=oicwo:sn\_\PNCuTgT'#0'\TPbYai\tnph'#0'l=ClCL'
+'i:In\'#182'"'#214#249#0#0#0'nIDATx'#156#205#208'A'#18#192' '#8#3#192#16#255
+#255#231'*c;%'#22#184'67'#199'%'#216#2'Y'#140#30'`$1t`'#160#1'tQ'#130'%j0E'#1
+'<P'#0#134'#M'#128'6'#30'`6'#178#2#132#236'T0'#199'c'#133#0#194#151#228'`'#13
+'3T('#216#201#0'}6TD'#176'/'#222#21#1#16#207#183#242#11#220#203#195'3'#142'?'
+#169#249#19'`'#26#131'5'#185#0#234'e'#7#187'p'#16#244'`'#0#0#0#0'IEND'#174'B'
+'`'#130#0#0#6'TImage'#11'imgPortrait'#23'AnchorSideRight.Control'#7#9'GroupB'
+'ox2'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#155#0#6'Height'#2' '
+#3'Top'#2'h'#5'Width'#2#26#7'Anchors'#11#7'akRight'#0#8'AutoSize'#9#19'Borde'
+'rSpacing.Right'#2#6#12'Picture.Data'#10#206#3#0#0#23'TPortableNetworkGraphi'
+'c'#178#3#0#0#137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#26#0#0#0' '#8#3#0#0#0
+';u'#152'7'#0#0#3#0'PLTE'#132#132#132#198#198#198#255#255#255#0#0#0'xxx'#1#1
+#1#2#2#2#1#1#1'_CaCOzHMaEMrCAuKNs=D\NErORe'#0'_sGDoPRuUIrTVcIEeL=sSC'#0'_:AH'
+#0'LECLAOUDMSEMERAR_NSPDPAERTROH_F=IICNL:IE\==gCCn::u\\\WDgIopNcuDutOmiWelSn'
+'s\t\WshI eNaaCndMdeD r.S'#0'IeGNtPItU'#0'iTCnIOgLMsSM\_AALNlKDlRE _RUP_sAPe'
+'TArHTs=H'#0'C=A:CP\:Pg\DntAuoT\tAga=plCuc:tm\idDl'#0'osCc\oulmmkmeron'#0'nt'
+'HPsOr MoaEgnDrdRa ImSVFeEit=ltCei:sn'#0'=gHCsO:\M\JEAePrsAcuThsHi\=vD\oaDst'
+'o ocdsue m depenr topsgr roaagnmrdaa \mSAaer'#0'tcAthPiiRnv_goIssC\ OJcNeoV'
+'sm_uuPsnA'#0'eTKsHM'#0'=PCC_O:DM\UPAPUrLTcIEhCRiANvTAoEMs_E L=dIMeBY _WpOIr'
+'KNo=XgTPrR'#0'aUCmEoa'#0'm\LSSOpuGebOcvN=eSCrE:sR\iVWoEInRN\=Di\Oc\WoMSnY\v'
+'Ws'#0'IyCNsGXt_PeB'#0'mIM3NK2_L\P_cASmTEdHR.=IeCAx:Le\='#0'AYCrEVcSSh'#0'_i'
+'NEvUXoMTsB= EcdR:e_\ OPpFur_ToPTgRYrO\aCpmElaSi\SnNOkVR.ISeD=xI1eA'#0#0' OC'
+'CSVo=SrW_piRonSrdHao=twcis:o_\nNP\TuC'#0'TgPT\aYbt\ihpn=l'#0'ClC:iL\nI'#172
+#219'H'#160#0#0#0'mIDATx'#156#205#210#193#18#192#16#16#3#208#132#255#255#231
+'Vl-#n'#14#205#165'3'#158'`v'#10#152'P'#1#202#22#212'3u'#179'D'#153#165'"'
+#243'$'#243#207'P'#28')'#188'A'#224#137#150'7'#173#212#166#231#137'm'#178#158
+#222#202'T'#155#137#208#145#142'Z'#129'Y[('#178#19#181'?k'#19#197#210#168'%q'
+'|c'#207#160#239#146#188#238#202#228'J<'#164#198#239#232#242#0#244'#'#5#141
+#232'H'#7'F'#0#0#0#0'IEND'#174'B`'#130#0#0#6'TPanel'#6'Panel1'#22'AnchorSide'
+'Left.Control'#7#9'GroupBox2'#21'AnchorSideTop.Control'#7#9'GroupBox2'#18'An'
+'chorSideTop.Side'#7#9'asrCenter'#4'Left'#2#3#6'Height'#2','#3'Top'#2'b'#5'W'
+'idth'#2'U'#8'AutoSize'#9#18'BorderSpacing.Left'#2#3#10'BevelOuter'#7#6'bvNo'
+'ne'#12'ClientHeight'#2','#11'ClientWidth'#2'U'#8'TabOrder'#2#0#0#12'TRadioB'
+'utton'#3'RB1'#21'AnchorSideTop.Control'#7#6'Panel1'#4'Left'#2#6#6'Height'#2
+#19#5'Width'#2';'#11'HelpContext'#2'o'#11'AllowGrayed'#9#18'BorderSpacing.Le'
+'ft'#2#6#7'Caption'#6#9'&Portrait'#7'Checked'#9#7'OnClick'#7#8'RB1Click'#5'S'
+'tate'#7#9'cbChecked'#8'TabOrder'#2#0#0#0#12'TRadioButton'#3'RB2'#22'AnchorS'
+'ideLeft.Control'#7#3'RB1'#21'AnchorSideTop.Control'#7#3'RB1'#18'AnchorSideT'
+'op.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#2#25#5'Width'#2'O'
+#11'HelpContext'#2'x'#11'AllowGrayed'#9#17'BorderSpacing.Top'#2#6#7'Caption'
+#6#10'&Landscape'#7'OnClick'#7#8'RB2Click'#8'TabOrder'#2#1#0#0#0#0#9'TGroupB'
+'ox'#9'GroupBox3'#22'AnchorSideLeft.Control'#7#9'TabSheet1'#21'AnchorSideTop'
+'.Control'#7#9'TabSheet1'#23'AnchorSideRight.Control'#7#9'GroupBox2'#24'Anch'
+'orSideBottom.Control'#7#9'TabSheet1'#21'AnchorSideBottom.Side'#7#9'asrBotto'
+'m'#4'Left'#2#6#6'Height'#3#2#1#3'Top'#2#6#5'Width'#3#239#0#7'Anchors'#11#5
+'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#6#17'Bor'
+'derSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#20'BorderSpacing.Bottom'#2#6
+#7'Caption'#6#4'Size'#12'ClientHeight'#3#240#0#11'ClientWidth'#3#235#0#8'Tab'
+'Order'#2#1#0#6'TLabel'#6'Label1'#24'AnchorSideBottom.Control'#7#2'E1'#21'An'
+'chorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#8#6'Height'#2#14#3'Top'#2'3'#5
,'Width'#2'4'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#10'&Width, m'
+'m'#12'FocusControl'#7#2'E1'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#24'An'
+'chorSideBottom.Control'#7#2'E2'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4
+'Left'#2#8#6'Height'#2#14#3'Top'#2'O'#5'Width'#2'7'#7'Anchors'#11#6'akLeft'#8
+'akBottom'#0#7'Caption'#6#11'&Height, mm'#12'FocusControl'#7#2'E2'#11'Parent'
+'Color'#8#0#0#9'TComboBox'#5'ComB1'#22'AnchorSideLeft.Control'#7#9'GroupBox3'
+#23'AnchorSideRight.Control'#7#9'GroupBox3'#20'AnchorSideRight.Side'#7#9'asr'
+'Bottom'#4'Left'#2#6#6'Height'#2#22#3'Top'#2#15#5'Width'#3#223#0#11'HelpCont'
+'ext'#3#130#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteT'
+'ext'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#18'BorderSpac'
+'ing.Left'#2#6#19'BorderSpacing.Right'#2#6#10'ItemHeight'#2#16#9'ItemWidth'#3
+#200#0#9'MaxLength'#2#0#7'OnClick'#7#10'ComB1Click'#10'OnDrawItem'#7#13'ComB'
+'1DrawItem'#5'Style'#7#16'csOwnerDrawFixed'#8'TabOrder'#2#0#0#0#5'TEdit'#2'E'
+'1'#21'AnchorSideTop.Control'#7#5'ComB1'#18'AnchorSideTop.Side'#7#9'asrBotto'
+'m'#23'AnchorSideRight.Control'#7#9'GroupBox3'#20'AnchorSideRight.Side'#7#9
+'asrBottom'#4'Left'#3#155#0#6'Height'#2#22#3'Top'#2'+'#5'Width'#2'J'#11'Help'
+'Context'#3#140#0#7'Anchors'#11#5'akTop'#7'akRight'#0#8'AutoSize'#9#20'Borde'
+'rSpacing.Around'#2#6#8'TabOrder'#2#1#0#0#5'TEdit'#2'E2'#21'AnchorSideTop.Co'
+'ntrol'#7#2'E1'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Con'
+'trol'#7#9'GroupBox3'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#155#0
+#6'Height'#2#22#3'Top'#2'G'#5'Width'#2'J'#11'HelpContext'#3#150#0#7'Anchors'
+#11#5'akTop'#7'akRight'#0#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#8'TabOr'
+'der'#2#2#0#0#0#0#9'TTabSheet'#9'TabSheet3'#7'Caption'#6#7'Options'#12'Clien'
+'tHeight'#3#14#1#11'ClientWidth'#3#192#1#0#9'TGroupBox'#9'GroupBox1'#22'Anch'
+'orSideLeft.Control'#7#9'TabSheet3'#21'AnchorSideTop.Control'#7#9'TabSheet3'
+#23'AnchorSideRight.Control'#7#9'GroupBox5'#24'AnchorSideBottom.Control'#7#9
+'TabSheet3'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2
+'4'#3'Top'#2#6#5'Width'#3#216#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0
+#20'BorderSpacing.Around'#2#6#7'Caption'#6#7'Options'#12'ClientHeight'#2'"'
+#11'ClientWidth'#3#212#0#8'TabOrder'#2#0#0#9'TCheckBox'#3'CB1'#4'Left'#2#6#6
+'Height'#2#19#3'Top'#2#6#5'Width'#3#129#0#11'HelpContext'#3#160#0#7'Caption'
+#6#23'&Print to previous page'#8'TabOrder'#2#0#0#0#0#9'TGroupBox'#9'GroupBox'
+'5'#21'AnchorSideTop.Control'#7#9'TabSheet3'#23'AnchorSideRight.Control'#7#9
+'TabSheet3'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Cont'
+'rol'#7#9'TabSheet3'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#228#0
+#6'Height'#3#2#1#3'Top'#2#6#5'Width'#3#214#0#7'Anchors'#11#5'akTop'#6'akLeft'
+#7'akRight'#8'akBottom'#0#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2
+#6#20'BorderSpacing.Bottom'#2#6#7'Caption'#6#7'Columns'#12'ClientHeight'#3
+#240#0#11'ClientWidth'#3#210#0#8'TabOrder'#2#1#0#6'TLabel'#6'Label7'#4'Left'
+#2#6#6'Height'#2#14#3'Top'#2#6#5'Width'#2'&'#7'Caption'#6#7'&Number'#11'Pare'
+'ntColor'#8#0#0#6'TLabel'#6'Label8'#22'AnchorSideLeft.Control'#7#6'Label7'#21
+'AnchorSideTop.Control'#7#9'ecolCount'#18'AnchorSideTop.Side'#7#9'asrBottom'
+#4'Left'#2#6#6'Height'#2#14#3'Top'#2'6'#5'Width'#2'P'#7'Caption'#6#15'&Colum'
+'n gap, mm'#12'FocusControl'#7#2'E7'#11'ParentColor'#8#0#0#5'TEdit'#2'E7'#22
+'on'#6#7'Columns'#12'ClientHeight'#3#2#1#11'ClientWidth'#3#214#0#8'TabOrder'
+#2#1#0#6'TLabel'#6'Label7'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#6#5'Width'#2
+'&'#7'Caption'#6#7'&Number'#11'ParentColor'#8#0#0#6'TLabel'#6'Label8'#22'Anc'
+'horSideLeft.Control'#7#6'Label7'#21'AnchorSideTop.Control'#7#9'ecolCount'#18
+'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#14#3'Top'#2'6'#5
+'Width'#2'P'#7'Caption'#6#15'&Column gap, mm'#12'FocusControl'#7#2'E7'#11'Pa'
+'rentColor'#8#0#0#6'TLabel'#9'lblLayout'#4'Left'#2#6#6'Height'#2#14#3'Top'#2
+'i'#5'Width'#2'A'#7'Caption'#6#12'Layout Order'#11'ParentColor'#8#0#0#6'TIma'
+'ge'#10'imgColumns'#4'Left'#3#142#0#6'Height'#2' '#3'Top'#3#128#0#5'Width'#2
,#26#8'AutoSize'#9#12'Picture.Data'#10#133#1#0#0#23'TPortableNetworkGraphici'
+#1#0#0#137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#26#0#0#0' '#8#2#0#0#0#131
+#201#255'R'#0#0#0#9'pHYs'#0#0#14#196#0#0#14#196#1#149'+'#14#27#0#0#1#27'IDAT'
+'x'#156#205#150#193'm'#195'0'#12'E'#191#10#15#211'{'#135#137'w'#177#1#138#128
+#134'i'#23#177'/'#29' '#219'('#7'!.MQJ'#168#20'Ey'#177#205'H'#207#207#138#252
+#225#144'R'#194'/'#213#186#174#19#128'eY^g'#237#251#14'`'#186'_~'#169#159#153
+#175'D'#239#245#180'F'#255'R'#14'o'#178#23'x'#14'<'#151's'#147#213#233#27'8e'
+#225#234'?'#192#253#169#157'\'#150'W'#237'L'#208#160']'#135#213#195#153'v'
+#133#149#233#187'5'#235#216'we'#227#204#199'93'#19#209#153#21#0'DD'#224#227
+'<'#203#192#213'v'#6'+Sn'#141'/'#213'Y;6Y'#178#239#192#29'v'#202'KY'#251#236
+#234'g'#28#183'3'#215'k'#208#174#181#246'#v'#157#255#177'og'#228#157#216'_:'
+#4#161#243#238#24'pQ'#184'Se'#250'l'#221#223#157'('#133'e'#190#179#129#231
+#186'/'#223#226#147#157#148'jYDD'#194#207'0'#149#8#238'D'#145#136':]|'#137'b'
+#174#169'l'#186#237#20'Q]'#186#211'X"'#12#217#148'R'#182'*'#198#232#234'o'
+#219#214#195'y'#171#224#158#202#187'g'#250#15#30'v'#204'n'#194#253'k'#229'?'
+#214#13#189'q['#249#234'R''h'#0#0#0#0'IEND'#174'B`'#130#0#0#6'TImage'#7'imgR'
+'ows'#4'Left'#3#142#0#6'Height'#2' '#3'Top'#3#128#0#5'Width'#2#26#8'AutoSize'
+#9#12'Picture.Data'#10#136#1#0#0#23'TPortableNetworkGraphicl'#1#0#0#137'PNG'
+#13#10#26#10#0#0#0#13'IHDR'#0#0#0#26#0#0#0' '#8#2#0#0#0#131#201#255'R'#0#0#0
+#9'pHYs'#0#0#14#196#0#0#14#196#1#149'+'#14#27#0#0#1#30'IDATx'#156#205'V'#193
+#13#132' '#16#28'.'#20'a7'#216#133#246#162#137'1'#177#152#187'.'#224'e+'#215
+#5#247' '#18#148#221'E'#244'r'#185#249#24#23#24'f'#23'vT-'#203#130'/a'#28'G'
+#13'`'#24#134#251'\'#235#186#2#208#219#235#235'0'#236'\c'#204';_'#198#196#187
+#240'xp'#187#145'\B'#188'@'#231'\S'#21#15#208#233#139#154#251#221#160'e'#22
+'Y'#0#240#211#179'B'#221'5'#236#212#145#27#230'8&'#145#160#186'v'#129#139#219
+#184#238'de.$'#201'v'#153':g'#140#217's)'#0#182#181#128#1#3#205#13#144'\~'
+#242#220#252#0#161'v'#142#228'J'#227#21'tQ'#221'A'#215'Au'#157#186'<'#199#235
+#234#200'z]T'#199#213'^VG'#159','#199#21#226'['#207#18#167'L'#248']'#184#171
+#182#181#185#9#250#233#25';L'#205'*'#185#207#148#223#169#185#143#247#158#243
+#181#180'%'#242#230#229#146'e'#155'\'#198#175#12'J'#248'V'#180#182#205#231#23
+#212'q'#181#19#184'$:'#210#239'bM9'#143#18#28#133'PW'#180#235#10#191#147#227
+#1'eG9'#25'/'#208'q'#189'y'#215#239'N'#198#3'4'#182#191#149''#196#7'-f'#140
+'{'#141#252'`>'#0#0#0#0'IEND'#174'B`'#130#7'Visible'#8#0#0#5'TEdit'#2'E7'#22
+'AnchorSideLeft.Control'#7#6'Label7'#21'AnchorSideTop.Control'#7#6'Label8'#18
+'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#9'GroupBox'
+'5'#4'Left'#2#12#6'Height'#2#22#3'Top'#2'J'#5'Width'#2''#11'HelpContext'#3
+#180#0#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#0#0#0#9'TSpi'
+'nEdit'#9'ecolCount'#22'AnchorSideLeft.Control'#7#6'Label7'#21'AnchorSideTop'
+'.Control'#7#6'Label7'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#12#6
+'Height'#2#22#3'Top'#2#26#5'Width'#2''#20'BorderSpacing.Around'#2#6#8'TabOr'
+'der'#2#1#0#0#0#9'TGroupBox'#9'GroupBox4'#22'AnchorSideLeft.Control'#7#9'Tab'
+'Sheet3'#21'AnchorSideTop.Control'#7#9'GroupBox1'#18'AnchorSideTop.Side'#7#9
+'asrBottom'#23'AnchorSideRight.Control'#7#9'GroupBox5'#24'AnchorSideBottom.C'
+'ontrol'#7#9'TabSheet3'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6
+#6'Height'#3#200#0#3'Top'#2'@'#5'Width'#3#216#0#7'Anchors'#11#5'akTop'#6'akL'
+'eft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#12
+'Page margins'#12'ClientHeight'#3#182#0#11'ClientWidth'#3#212#0#8'TabOrder'#2
+#2#0#6'TLabel'#6'Label3'#21'AnchorSideTop.Control'#7#3'CB5'#18'AnchorSideTop'
+'.Side'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2'l'
+#6'Height'#2#14#3'Top'#2#27#5'Width'#2'+'#18'BorderSpacing.Left'#2#6#7'Capti'
+'on'#6#9'&Left, mm'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#22'AnchorSideL'
+'eft.Control'#7#3'CB5'#21'AnchorSideTop.Control'#7#3'CB5'#18'AnchorSideTop.S'
+'ide'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#14#6
,'Height'#2#14#3'Top'#2#27#5'Width'#2'*'#18'BorderSpacing.Left'#2#6#7'Caption'
+#6#8'&Top, mm'#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#22'AnchorSideLeft.C'
+'ontrol'#7#6'Label4'#21'AnchorSideTop.Control'#7#2'E4'#18'AnchorSideTop.Side'
+#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#14#6'Heig'
+'ht'#2#14#3'Top'#2'K'#5'Width'#2'1'#7'Caption'#6#10'&Right, mm'#11'ParentCol'
+'or'#8#0#0#6'TLabel'#6'Label6'#22'AnchorSideLeft.Control'#7#6'Label3'#21'Anc'
+'horSideTop.Control'#7#2'E3'#18'AnchorSideTop.Side'#7#9'asrBottom'#21'Anchor'
+'SideBottom.Side'#7#9'asrBottom'#4'Left'#2'l'#6'Height'#2#14#3'Top'#2'K'#5'W'
+'idth'#2':'#7'Caption'#6#11'&Bottom, mm'#11'ParentColor'#8#0#0#9'TCheckBox'#3
+'CB5'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#8#6'Height'#2#19#3'Top'
+#2#2#5'Width'#2'G'#11'HelpContext'#2'>'#20'BorderSpacing.Around'#2#6#7'Capti'
+'on'#6#10'&Don''t use'#8'OnChange'#7#8'CB5Click'#8'TabOrder'#2#0#11'UseOnCha'
+'nge'#9#0#0#5'TEdit'#2'E3'#22'AnchorSideLeft.Control'#7#6'Label3'#21'AnchorS'
+'ideTop.Control'#7#6'Label3'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2
+'r'#6'Height'#2#22#3'Top'#2'/'#5'Width'#2'@'#11'HelpContext'#2'H'#8'AutoSize'
+#9#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#1#0#0#5'TEdit'#2'E4'#22'Anchor'
+'SideLeft.Control'#7#6'Label4'#21'AnchorSideTop.Control'#7#6'Label4'#18'Anch'
+'orSideTop.Side'#7#9'asrBottom'#4'Left'#2#20#6'Height'#2#22#3'Top'#2'/'#5'Wi'
+'dth'#2'@'#11'HelpContext'#2'Q'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#8
+'TabOrder'#2#2#0#0#5'TEdit'#2'E5'#22'AnchorSideLeft.Control'#7#6'Label5'#21
+'AnchorSideTop.Control'#7#6'Label5'#18'AnchorSideTop.Side'#7#9'asrBottom'#4
+'Left'#2#20#6'Height'#2#22#3'Top'#2'_'#5'Width'#2'@'#11'HelpContext'#2'['#8
+'AutoSize'#9#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#3#0#0#5'TEdit'#2'E6'
+#22'AnchorSideLeft.Control'#7#6'Label6'#21'AnchorSideTop.Control'#7#6'Label6'
+'Height'#2#22#3'Top'#2#26#5'Width'#2''#20'BorderSpacing.Around'#2#6#8'OnCha'
+'nge'#7#15'ecolCountChange'#8'TabOrder'#2#1#0#0#12'TRadioButton'#9'RBColumns'
+#4'Left'#2#14#6'Height'#2#19#3'Top'#2'|'#5'Width'#2'Z'#7'Caption'#6#11'By Co'
+'lum&ns'#7'Checked'#9#7'Enabled'#8#7'OnClick'#7#14'RBColumnsClick'#5'State'#7
+#9'cbChecked'#8'TabOrder'#2#2#0#0#12'TRadioButton'#6'RBRows'#4'Left'#2#14#6
+'Height'#2#19#3'Top'#3#144#0#5'Width'#2'Z'#7'Caption'#6#8'By Row&s'#7'Enable'
+'d'#8#7'OnClick'#7#11'RBRowsClick'#8'TabOrder'#2#3#0#0#0#9'TGroupBox'#9'Grou'
+'pBox4'#22'AnchorSideLeft.Control'#7#9'TabSheet3'#21'AnchorSideTop.Control'#7
+#9'GroupBox1'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Contr'
+'ol'#7#9'GroupBox5'#24'AnchorSideBottom.Control'#7#9'TabSheet3'#21'AnchorSid'
+'eBottom.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#3#200#0#3'Top'#2'@'#5'Wi'
+'dth'#3#216#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#20'B'
+'orderSpacing.Around'#2#6#7'Caption'#6#12'Page margins'#12'ClientHeight'#3
+#200#0#11'ClientWidth'#3#216#0#8'TabOrder'#2#2#0#6'TLabel'#6'Label3'#21'Anch'
+'orSideTop.Control'#7#3'CB5'#18'AnchorSideTop.Side'#7#9'asrBottom'#21'Anchor'
+'SideBottom.Side'#7#9'asrBottom'#4'Left'#2'l'#6'Height'#2#14#3'Top'#2#27#5'W'
+'idth'#2'+'#18'BorderSpacing.Left'#2#6#7'Caption'#6#9'&Left, mm'#11'ParentCo'
+'lor'#8#0#0#6'TLabel'#6'Label4'#22'AnchorSideLeft.Control'#7#3'CB5'#21'Ancho'
+'rSideTop.Control'#7#3'CB5'#18'AnchorSideTop.Side'#7#9'asrBottom'#21'AnchorS'
+'ideBottom.Side'#7#9'asrBottom'#4'Left'#2#14#6'Height'#2#14#3'Top'#2#27#5'Wi'
+'dth'#2'*'#18'BorderSpacing.Left'#2#6#7'Caption'#6#8'&Top, mm'#11'ParentColo'
+'r'#8#0#0#6'TLabel'#6'Label5'#22'AnchorSideLeft.Control'#7#6'Label4'#21'Anch'
+'orSideTop.Control'#7#2'E4'#18'AnchorSideTop.Side'#7#9'asrBottom'#21'AnchorS'
+'ideBottom.Side'#7#9'asrBottom'#4'Left'#2#14#6'Height'#2#14#3'Top'#2'K'#5'Wi'
+'dth'#2'1'#7'Caption'#6#10'&Right, mm'#11'ParentColor'#8#0#0#6'TLabel'#6'Lab'
,'el6'#22'AnchorSideLeft.Control'#7#6'Label3'#21'AnchorSideTop.Control'#7#2'E'
+'3'#18'AnchorSideTop.Side'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrB'
+'ottom'#4'Left'#2'l'#6'Height'#2#14#3'Top'#2'K'#5'Width'#2':'#7'Caption'#6#11
+'&Bottom, mm'#11'ParentColor'#8#0#0#9'TCheckBox'#3'CB5'#18'AnchorSideTop.Sid'
+'e'#7#9'asrBottom'#4'Left'#2#8#6'Height'#2#19#3'Top'#2#2#5'Width'#2'G'#11'He'
+'lpContext'#2'>'#20'BorderSpacing.Around'#2#6#7'Caption'#6#10'&Don''t use'#8
+'OnChange'#7#8'CB5Click'#8'TabOrder'#2#0#11'UseOnChange'#9#0#0#5'TEdit'#2'E3'
+#22'AnchorSideLeft.Control'#7#6'Label3'#21'AnchorSideTop.Control'#7#6'Label3'
+#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2'r'#6'Height'#2#22#3'Top'#2
+'_'#5'Width'#2'@'#11'HelpContext'#2'e'#8'AutoSize'#9#20'BorderSpacing.Around'
+#2#6#8'TabOrder'#2#4#0#0#0#0#0#12'TButtonPanel'#12'ButtonPanel1'#4'Left'#2#6
+#6'Height'#2'('#3'Top'#3'('#1#5'Width'#3#188#1#5'Align'#7#8'alBottom'#8'Auto'
+'Size'#9#8'TabOrder'#2#1#11'ShowButtons'#11#4'pbOK'#8'pbCancel'#6'pbHelp'#0#0
+#0#0
+'/'#5'Width'#2'@'#11'HelpContext'#2'H'#8'AutoSize'#9#20'BorderSpacing.Around'
+#2#6#8'TabOrder'#2#1#0#0#5'TEdit'#2'E4'#22'AnchorSideLeft.Control'#7#6'Label'
+'4'#21'AnchorSideTop.Control'#7#6'Label4'#18'AnchorSideTop.Side'#7#9'asrBott'
+'om'#4'Left'#2#20#6'Height'#2#22#3'Top'#2'/'#5'Width'#2'@'#11'HelpContext'#2
+'Q'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#2#0#0#5'TEdit'#2
+'E5'#22'AnchorSideLeft.Control'#7#6'Label5'#21'AnchorSideTop.Control'#7#6'La'
+'bel5'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#20#6'Height'#2#22#3'T'
+'op'#2'_'#5'Width'#2'@'#11'HelpContext'#2'['#8'AutoSize'#9#20'BorderSpacing.'
+'Around'#2#6#8'TabOrder'#2#3#0#0#5'TEdit'#2'E6'#22'AnchorSideLeft.Control'#7
+#6'Label6'#21'AnchorSideTop.Control'#7#6'Label6'#18'AnchorSideTop.Side'#7#9
+'asrBottom'#4'Left'#2'r'#6'Height'#2#22#3'Top'#2'_'#5'Width'#2'@'#11'HelpCon'
+'text'#2'e'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#4#0#0#0
+#0#0#12'TButtonPanel'#12'ButtonPanel1'#4'Left'#2#6#6'Height'#2'('#3'Top'#3'('
+#1#5'Width'#3#188#1#5'Align'#7#8'alBottom'#8'AutoSize'#9#8'TabOrder'#2#1#11
+'ShowButtons'#11#4'pbOK'#8'pbCancel'#6'pbHelp'#0#0#0#0
]);

View File

@ -31,13 +31,18 @@ TfrPgoptForm = class(TForm)
E5: TEdit;
E6: TEdit;
GroupBox4: TGroupBox;
imgColumns: TImage;
imgRows: TImage;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
lblLayout: TLabel;
PageControl1: TPageControl;
ecolCount: TSpinEdit;
Panel1: TPanel;
RBColumns: TRadioButton;
RBRows: TRadioButton;
RB1: TRadioButton;
RB2: TRadioButton;
TabSheet1: TTabSheet;
@ -59,14 +64,18 @@ TfrPgoptForm = class(TForm)
Label8: TLabel;
procedure ComB1DrawItem(Control: TWinControl; Index: Integer; ARect: TRect;
State: TOwnerDrawState);
procedure ecolCountChange(Sender: TObject);
procedure RB1Click(Sender: TObject);
procedure RB2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure ComB1Click(Sender: TObject);
procedure CB5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure RBColumnsClick(Sender: TObject);
procedure RBRowsClick(Sender: TObject);
private
{ Private declarations }
procedure UpdateColumnsLayout;
public
{ Public declarations }
end;
@ -118,6 +127,11 @@ begin
end;
end;
procedure TfrPgoptForm.ecolCountChange(Sender: TObject);
begin
UpdateColumnsLayout;
end;
procedure TfrPgoptForm.RB2Click(Sender: TObject);
begin
ImgLandscape.Show;
@ -139,6 +153,8 @@ begin
Label3.Left:=Max(Label3.Left, Label4.Width + Label4.Left);
Label3.Left:=Max(Label3.Left, Label5.Width + Label5.Left);
UpdateColumnsLayout;
end;
procedure TfrPgoptForm.ComB1Click(Sender: TObject);
@ -163,9 +179,7 @@ begin
GroupBox3.Caption :=sPgoptFormSize;
Label1.Caption := sPgoptFormWidth;
Label2.Caption := sPgoptFormHeight;
// TabSheet2.Caption := sPgoptFormMargins;
GroupBox4.Caption := sPgoptFormPgMargins;
// Label9.Caption := sPgoptFormPgMargins;
Label3.Caption := sPgoptFormLeft;
Label4.Caption := sPgoptFormTop;
Label5.Caption := sPgoptFormRight;
@ -177,6 +191,32 @@ begin
GroupBox5.Caption := sPgoptFormColumn;
Label7.Caption := sPgoptFormNumber;
Label8.Caption := sPgoptFormColGap;
lblLayout.Caption := sPgoptFormLayoutOrder;
RBColumns.Caption := sPgoptFormByColumns;
RBRows.Caption := sPgoptFormByRows;
end;
procedure TfrPgoptForm.RBColumnsClick(Sender: TObject);
begin
ImgColumns.Visible:=true;
ImgRows.Visible:=false;
end;
procedure TfrPgoptForm.RBRowsClick(Sender: TObject);
begin
ImgColumns.Visible:=false;
ImgRows.Visible:=true;
end;
procedure TfrPgoptForm.UpdateColumnsLayout;
begin
if EColCount.Value<2 then begin
RBColumns.Enabled:=false;
RBRows.Enabled:=false;
end else begin
RBColumns.Enabled:=true;
RBRows.Enabled:=true;
end;
end;