<!-- If you want to validate or edit this document separately, uncomment this prolog <?xml version="1.0" ?> <!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.1-Based Variant V1.0//EN" "dtd/kdex.dtd"> --> <chapter id="tutorial"> <chapterinfo> <authorgroup> <author ><firstname >Alexander</firstname > <surname >Dymo</surname > <affiliation > <address ><email >cloudtemple@mksat.net </email ></address> </affiliation> </author> <author ><firstname >Phil</firstname > <surname >Thompson</surname > <affiliation > <address ><email >phil@river-bank.demon.co.uk </email ></address> </affiliation> </author> <othercredit role="translator" ><firstname >Олег</firstname ><surname >Баталов</surname ><affiliation ><address ><email >olegbatalov@mail.ru</email ></address ></affiliation ><contrib >Перевод на русский язык</contrib ></othercredit > </authorgroup> </chapterinfo> <title >Учебник</title> <para >Этот учебник предназначен для краткого введения в Kugar.</para> <para >Вы создадите с помощью &kudesigner; простой шаблон отчёта, простой файл данных и в конце сгенерируете законченный отчёт.</para> <para >Исходный код для примеров шаблонов и файла данных может быть найден в файлах<filename >sample1.kut</filename > и <filename >sample1.kud</filename >, которые распространяются совместно с &kugar;.</para> <sect1 id="tut-1"> <title >Создание шаблона отчёта с помощью &kudesigner;</title> <para >Запустите &kudesigner; набрав в командной строке <command >kudesigner</command >. </para> <para >После того как вы запустите дизайнер, выберите <guimenu >Файл</guimenu >|<guilabel >Создать</guilabel > и установите размер страницы в <guilabel >Letter</guilabel > и её ориентацию в <guilabel >Landscape</guilabel >. Установите левое и правое поля в 48, верхнее и нижнее в 40. Все размеры в &kudesigner; (поля страницы, размеры, позиции, &etc;) указываются в миллиметрах. <screenshot > <mediaobject> <imageobject> <imagedata fileref="tut_file_new.png" format="PNG"/> </imageobject> <textobject> <phrase >Диалог <interface >Новый отчёт</interface ></phrase> </textobject> </mediaobject> </screenshot> </para> <para >Теперь создан новый отчёт и все кнопки на <guilabel >Панели элементов</guilabel > и <guilabel >Панели разделов</guilabel > теперь включены (соответствующие пункты меню в <guilabel > Элементы</guilabel > и <guilabel >Секции</guilabel > также включены). <screenshot > <mediaobject> <imageobject> <imagedata fileref="tut_empty_report.png" format="PNG"/> </imageobject> <textobject> <phrase >Диалог Пустой отчёт</phrase> </textobject> </mediaobject> </screenshot> </para> <para >Теперь пришло время добавить некоторые разделы к отчёту и определить их размеры. Мы добавим <link linkend="report-header-and-footer" >заголовок и итоги отчёта</link >, <link linkend="page-header-and-footer" >верхний и нижний колонтитул</link > и одну <link linkend="detail" >секцию</link >. Заголовок и итоги отчёте печатаются соответственно на первой и последней страницах перед и после любых данных отчёта. Итоги отчёта являются хорошим местом для помещения <link linkend="calculated-field-element" >вычисляемых полей</link >. Колонтитулы страницы печатаются сверху и снизу каждой страницы. Наш отчёт будет иметь одну секцию с уровнем 0. Это означает что все наши строки данных имеют идентичную структуру (&ie; поля). Если структура данных более сложная или организована согласно отношению главный-подчинённый, должны быть создано больше уровней секций. Пример как это может быть сделано смотрите в файлах <filename >sample3.kut</filename > и <filename >sample3.kud</filename > За дополнительной информацией обратитесь к <link linkend="template-elements" > описанию элементов шаблона</link >. </para> <para >Секции могут быть добавлены с помощь меню <guilabel >Секции</guilabel > или <guilabel >Панели секций</guilabel >. Теперь добавим заголовок и итоги отчёта, колонтитулы и затем секцию. При добавлении секции установите её уровень в 0 как показано на снимке экрана далее. <screenshot > <mediaobject> <imageobject> <imagedata fileref="tut_set_level.png" format="PNG"/> </imageobject> <textobject> <phrase >Установка уровня секции</phrase> </textobject> </mediaobject> </screenshot> </para> <para >Теперь наш отчёт должен напоминать этот снимок экрана. <screenshot > <mediaobject> <imageobject> <imagedata fileref="tut_rep_look1.png" format="PNG"/> </imageobject> <textobject> <phrase >Отчёт с секциями</phrase> </textobject> </mediaobject> </screenshot> </para> <para >Все наши разделы имеют предопределённую высоту - 50mm. Давайте изменить это. Щёлкните &RMB; на секции Заголовка отчёта и нажмите кнопку <guilabel >Изменить свойства</guilabel > на панели <guilabel >Правка </guilabel > и затем выберите секцию. Должно показаться окно свойств. <screenshot > <mediaobject> <imageobject> <imagedata fileref="tut_edit_height.png" format="PNG"/> </imageobject> <textobject> <phrase >Изменение высоты секции</phrase> </textobject> </mediaobject> </screenshot> </para> <para >Теперь установите высоту заголовка отчёте в 70. Повторим эту процедуру для всех остальных секций. Установите высоту верхнего колонтитула в 45 а секции в 30. Нижний колонтитул и итоги отчёта должны быть высотой 32 мм. </para> <para >Шаблон отчёта с размеченными должным образом секциями готов к заполнению элементами отчёта. <screenshot > <mediaobject> <imageobject> <imagedata fileref="tut_rep_look2.png" format="PNG"/> </imageobject> <textobject> <phrase >Отчёт с настроенными размерами секций</phrase> </textobject> </mediaobject> </screenshot> </para> <para >Теперь вы можете добавлять в секции отчёта элементы. Пять различных типов элементов могут быть добавлены в отчёт. <link linkend="label-element" >Метка</link > является прямоугольной областью, которая может иметь границу и может быть заполнена любым текстом. Цвет текста метки и фона, так же как и её шрифт могут быть изменены. Тип линии границы и её цвет также можно настроить. <link linkend="field-element" >Поле</link > может быть помещено в секцию данных. Поля представляют поля дынных, их значения будут браться из файла данных при генерации отчёта. Количество, суммы, средние числа &etc; для значений полей могут быть напечатаны в отчёте с помощью <link linkend= "calculated-field-element" > Вычисляемых полей</link >. <link linkend="special-element" >Специальные</link > - метки с предопределённым текстом типа текущей даты или номера страницы. Общий вид отчёта может быть улучшен с с помощью <link linkend="line-element" >Линий</link >. </para> <para >Для добавления в отчёт элемента щёлкните на соответствующем кнопке в <guilabel >Панели элементов</guilabel > и поместите (щёлкните) его в секцию. Выбранный элементы будет помещён в выбранную секцию с верхним левым углом в указанные координаты. Другие свойства установлены в значения по умолчанию и могут быть изменены с помощью диалога <guilabel >Свойства элемента отчёта</guilabel > (там же самым способом что мы изменяли высоту разделов). </para> <para >Так, давайте добавим метки в заголовок отчёта и верхний колонтитул как показано на снимке экрана ниже. Обратите внимание, что у метки <quote >Mutiny Bay Software</quote > <guilabel >BorderStyle</guilabel > и <guilabel >BorderWidth</guilabel > установлены в 0, а <quote >Отчёт об инвентаризации программного обеспечения</quote > - 1mm. Все цвета установлены как комбинации трёх значений (RGB - красный, зелёный,синий) и разделены запятыми. </para> <para >Также добавим элементы полей в секция данных. Только предположим что мы имеем четыре поля - заголовок, версию, платформу и количество копий. Так четыре элемента <guilabel >Поле</guilabel > должны быть помещены и их свойства <guilabel >Поля</guilabel > установлены. Обратите внимание, что Свойство <guilabel >Текст</guilabel > автоматически установлено в <quote >[<userinput >имя_поля</userinput >]</quote > </para> <para >Нижний колонтитул является хорошим местом для отображения текущей даты и номера страницы, так что добавим два специальных поля и установим их свойства <guilabel >Тип</guilabel > в 0 и 1. Специальное поле с Типом=0 представляет дату и с типом=1 - номер страницы. Обратите внимание, что свойство <guilabel >Текст</guilabel > автоматически изменилось. </para> <para >Последний элемент, который будет помещён - это <guilabel >Вычисляемое поле</guilabel > для поля <quote >копии</quote >. Для назначения суммы(копий) установите свойство <guilabel >Field</guilabel > вычисляемого поля в <quote >копии</quote > и <guilabel >CalculationType</guilabel > в 1 (функция суммы). </para> <para >Наконец, наш шаблон отчёта должен выглядеть следующим образом: <screenshot > <mediaobject> <imageobject> <imagedata fileref="tut_rep_complete.png" format="PNG"/> </imageobject> <textobject> <phrase >Полный отчёт</phrase> </textobject> </mediaobject> </screenshot> </para> </sect1> <sect1 id="tut-2"> <title >Создание файла данных для отчёта</title> <para >Вообще говоря, файлы данных могут быть созданы несколькими способами. Некоторые используют таблицы преобразования xsl для создания &XML; из другого документа &XML; (типа электронной таблицы &kspread;); другие используют собственную программу для получения данных из базы данных и заполнения файла данных. В этом учебнике мы просто создадим его вручную. Исходный код для этого примера может быть найден в файле <filename >sample1.kud</filename > или скопирован из примера ниже. </para> <programlisting ><?xml version=<quote >1.0</quote > encoding=<quote >UTF-8</quote >?> <!DOCTYPE KugarData [ <!ELEMENT KugarData (Row* )> <!ATTLIST KugarData Template CDATA #REQUIRED> <!ELEMENT Row EMPTY> <!ATTLIST Row level CDATA #REQUIRED title CDATA #REQUIRED version CDATA #REQUIRED platform CDATA #REQUIRED copies CDATA #REQUIRED> ]> <KugarData Template="sample1.kut"> <Row level="0" title=" BRU" version="15.0" platform="x86" copies="1"/> <Row level="0" title=" Caldera Open Linux" version="2.2" platform="x86" copies="3"/> <Row level="0" title=" K Desktop" version="1.1.1" platform="x86" copies="1"/> <Row level="0" title=" Netscape Communicator" version="4.6" platform="x86" copies="10"/> <Row level="0" title=" Redhat Linux" version="5.0" platform="x86" copies="11"/> <Row level="0" title=" Redhat Linux" version="5.1" platform="x86" copies="12"/> <Row level="0" title=" Redhat Linux" version="5.2" platform="x86" copies="14"/> <Row level="0" title=" Redhat Linux" version="6.0" platform="x86" copies="15"/> <Row level="0" title=" Star Office" version="5.0" platform="x86" copies="1"/> <Row level="0" title=" Star Office" version="5.1" platform="x86" copies="3"/> <Row level="0" title=" Microsoft Windows NT" version="3.1" platform="x86" copies="1"/> <Row level="0" title=" Microsoft Windows NT" version="3.51" platform="x86" copies="1"/> <Row level="0" title=" Microsoft Windows NT" version="4.0" platform="x86" copies="1"/> <Row level="0" title=" Microsoft Windows NT" version="5.0" platform="x86" copies="1"/> <Row level="0" title=" Sun Solaris" version="2.5" platform="Sparc" copies="1"/> </KugarData> </programlisting> </sect1> <sect1 id="tut-3"> <title >Создание отчёта</title> <para >В настоящий момент вы имеете шаблон отчёта (<filename >sample1.kut</filename >) и файл данных отчёта (<filename >sample1.kud</filename >). </para> <para >Для создания отчёта, наберите в оболочке следующую команду: <command >kugar <option >-r <replaceable >sample1.kut</replaceable ></option > <option >-d <replaceable >sample1.kud</replaceable ></option ></command > </para> <para >Это запустит окно оболочки &kugar; с сгенерированным отчётом. <screenshot > <mediaobject> <imageobject> <imagedata fileref="tut_rep_generated.png" format="PNG"/> </imageobject> <textobject> <phrase >Созданный отчёт</phrase> </textobject> </mediaobject> </screenshot> </para> </sect1> </chapter>