<!-- 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="prog-guide">
<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
>Stefan</firstname
> <surname
>Asserhäll</surname
> <affiliation
><address
><email
>stefan.asserhall@comhem.se</email
></address
></affiliation
> <contrib
>Översättare</contrib
></othercredit
>
</authorgroup>
</chapterinfo>
<title
>Guide för programmerare</title>
<sect1 id="how-to-use-in-progs">
<title
>Hur &kugar; kan användas för att skapa rapporter i dina egna program</title>
<itemizedlist>
<title
>Det finns flera olika sätt att använda &kugar;</title>
<listitem>
<para
>Skapa en tillfällig fil och fyll den med data, organiserad enligt <link linkend="kugardata-dtd"
>KugarData dokumenttypdefinitionen</link
>. Anropa sedan skalkommandot <command
>kugar</command
> ( <cmdsynopsis
><command
>kugar</command
> <group
> <option
>-d <replaceable
>Kugar datafil</replaceable
></option
> </group
> <group
> <option
>-r <replaceable
>Kugar mallfil</replaceable
></option
> </group
></cmdsynopsis
>) för att förhandsgranska och skriva ut rapporten. Se avsnittet <link linkend="prog-using-for-preview"
>Använda &kugar;-skalet för att förhandsgranska rapporter</link
> för en detaljerad beskrivning. </para>
</listitem>
<listitem>
<para
>Använd &kugar; direkt i programmets kod. Se avsnittet <link linkend="prog-using-widget"
>Använda &kugar;-klasser för rapporter</link
> för en detaljerad beskrivning. </para>
</listitem>
<listitem>
<para
>Skapa en &Qt; Designer insticksmodul, använd den för att bygga programmets grafiska gränssnitt i Designer, och länka den dynamiskt till programmet. Se <link linkend="prog-designer-plugin"
>Skapa en &Qt; Designer insticksmodul</link
> för en detaljerad beskrivning. </para>
</listitem>
</itemizedlist>
<para
>De sista två sätten är användbara för &Qt;- och &kde;-utvecklare. Men &kugar; är konstruerad för att vara en rapportgenerator som är oberoende av programspråk och/eller integrerad utvecklingsmiljö. Den använder &XML;-formatet för att beskriva rapportmallar och datafiler. Så vilket program som helst kan skapa utdata på &kugar;s datafilformat som beskrivs i <link linkend="kugardata-dtd"
>KugarData <acronym
>DTD</acronym
></link
>, eller till och med på rapportmallformat (se <link linkend="template-dtd"
>KugarTemplate <acronym
>DTD</acronym
></link
>). Ett &kugar;-skal (rapportvisare) kan användas för att förhandsgranska och skriva ut skapade rapporter. </para>
</sect1>
<sect1 id="prog-using-for-preview">
<title
>Använda &kugar;-skalet för att förhandsgranska rapporter</title>
<orderedlist>
<title
>Sättet att skapa och förhandsgranska (skriva ut) en rapport är:</title>
<listitem>
<para
>Skapa en rapportmall med &kudesigner; </para>
</listitem>
<listitem>
<para
>Skapa en datafil med kolumnvärden för detaljband i rapporten. Använd <link linkend="kugardata-dtd"
>KugarData <acronym
>DTD</acronym
></link
> för att skapa riktiga datafiler. </para>
</listitem>
<listitem>
<para
>Kör &kugar;-skalet för att förhandsgranska och skriva ut en rapport. För att till exempel göra detta med språken C eller C++, anropa:</para>
<programlisting
><function
>system(<option
>"kugar -r <replaceable
>mall_fil.ktf</replaceable
>-d <replaceable
>data_fil.kdf</replaceable
>"</option
>)</function
>.
</programlisting>
<para
>Glöm inte att inkludera <filename class="headerfile"
>stdlib.h</filename
>. </para>
</listitem>
</orderedlist>
</sect1>
<sect1 id="prog-using-widget">
<title
>Använda &kugar;s klasser för rapporter</title>
<para
>&kugar;-biblioteket innefattar två grafiska komponenter som kan användas. </para>
<para
>Klassen <classname
>KReportViewer</classname
> är konstruerad för &kde;-utvecklare. Den stöder &kde;:s utskriftssystem och översättning under &UNIX; via <function
>i18n()</function
>-anrop. </para>
<para
>Klassen <classname
>MReportViewer</classname
> är konstruerad för &Qt;-utvecklare och erbjuder riktigt plattformsoberoende. Den kan inte bara användas på &UNIX;-plattformar, utan också på &Windows; och &MacOS;. </para>
<para
>För att bygga ett program som använder &kugar;-biblioteket, ska det länkas med det delade biblioteket <filename
>libkugar.so</filename
>, som tillhandahålls med &kugar;-distributioner på alla &UNIX;-plattformar. </para>
<para
>Deklarationsfiler är <filename
>kugarqt.h</filename
> och <filename
>kugar.h</filename
> för respektive &Qt;- och &kde;-program. </para>
<para
>För ett detaljerat exempel på hur &kugar;-klasser kan användas, titta i katalogen <filename class="directory"
>/shell</filename
> i &kugar;s källkod. </para>
<para
><classname
>MReportViewer</classname
> (och också <classname
>KReportViewer</classname
>) innehåller flera synliga metoder som kan användas. </para>
<funcsynopsis>
<funcprototype>
<funcdef
>void <function
>renderReport</function
></funcdef>
<void/>
</funcprototype>
<funcsynopsisinfo
>Visar rapporten på skärmen.</funcsynopsisinfo>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef
>void <function
>printReport</function
></funcdef>
<void/>
</funcprototype>
<funcsynopsisinfo
>Anropar utskriftsdialogrutan för att skriva ut rapporten.</funcsynopsisinfo>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef
>void <function
>clearReport</function
></funcdef>
<void/>
</funcprototype>
<funcsynopsisinfo
>Rensar rapporten på skärmen och frigör rapportdata. Anropa detta innan en ny rapport öppnas.</funcsynopsisinfo>
>. För att till exempel direkt hämta en rapportmall från nätverket eller en databas, skapa en härledd klass från TQIODevice och definiera om alla nödvändiga funktioner. </funcsynopsisinfo>