<!-- 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
>Natalie</firstname
> <surname
>Koning</surname
><affiliation
><address
> <email
>nat@switch.demon.nl</email
></address
></affiliation
> <contrib
>Vertaler</contrib
></othercredit
>
</authorgroup>
</chapterinfo>
<title
>Gids voor programmeurs</title>
<sect1 id="how-to-use-in-progs">
<title
>&kugar; in uw eigen programma's gebruiken</title>
<itemizedlist>
<title
>Er zijn verschillende manieren om &kugar; te gebruiken</title>
<listitem>
<para
>Creëer een tijdelijk bestand met gegevens die volgens de <link linkend="kugardata-dtd"
>KugarData Document Type Definition</link
> georganiseerd zijn. Voer dan het <command
>kugar</command
>-shell-commando uit ( <cmdsynopsis
> <command
>kugar</command
> <group
> <option
>-d <replaceable
>Kugar-gegevensbestand</replaceable
></option
> </group
> <group
> <option
>-r <replaceable
>Kugar-sjabloonbestand</replaceable
></option
> </group
> </cmdsynopsis
> ) om een voorbeeld van het rapport te zien en het af te drukken. U kunt een gedetailleerde beschrijving vinden in het gedeelte <link linkend="prog-using-for-preview"
>&kugar;-shell gebruiken om rapporten te bekijken</link
>. </para>
</listitem>
<listitem>
<para
>Gebruik &kugar; direct in de code van de toepassing. U kunt een gedetailleerde beschrijving vinden in het gedeelte <link linkend="prog-using-widget"
>&kugar;-classes gebruiken voor het rapporteren</link
>. </para>
</listitem>
<listitem>
<para
>Creëer een &Qt;-designer-plugin, gebruik de plugin om de &GUI; van de toepassing in de designer te bouwen en link deze dynamisch aan het programma. U kunt een gedetailleerde beschrijving vinden in het gedeelte <link linkend="prog-designer-plugin"
>Een &Qt;-designer-plugin creëren</link
>. </para>
</listitem>
</itemizedlist>
<para
>De twee laatstgenoemde methoden zijn vooral voor &Qt;- en &kde;-ontwikkelaars; &kugar; is echter ontworpen als rapportengenerator die onafhankelijk is van een programmeertaal en/of <acronym
>IDE</acronym
>. Er wordt gebruik gemaakt van &XML;-opmaak om rapportsjablonen en gegevensbestanden te beschrijven. Andere programma's kunnen ook uitvoer produceren in de opmaak van een &kugar;-gegevensbestand (zoals beschreven is in <link linkend="kugardata-dtd"
>KugarData <acronym
>DTD</acronym
></link
>) of in de opmaak van een rapportsjabloon (zie <link linkend="template-dtd"
>KugarTemplate <acronym
>DTD</acronym
></link
>). Een &kugar;-shell kan gebruikt worden om het gegenereerde rapport te bekijken en af te drukken. </para>
</sect1>
<sect1 id="prog-using-for-preview">
<title
>&kugar;-shell gebruiken om rapporten te bekijken</title>
<orderedlist>
<title
>De methode om een rapport te creëren, te bekijken en af te drukken:</title>
<listitem>
<para
>Creëer een rapportsjabloon met behulp van &kudesigner; </para>
</listitem>
<listitem>
<para
>Creëer een gegevensbestand met kolomwaarden voor de detailgroepen van het rapport. Gebruik <link linkend="kugardata-dtd"
>KugarData <acronym
>DTD</acronym
></link
> om correcte gegevensbestanden te produceren. </para>
</listitem>
<listitem>
<para
>Voer &kugar;-shell uit om het rapport te bekijken en af te drukken. Om dit in bijvoorbeeld C of C++ te doen:</para>
<programlisting
><function
>system(<option
>"kugar -r <replaceable
>template_file.ktf</replaceable
>-d <replaceable
>data_file.kdf</replaceable
>"</option
>)</function
>.
</programlisting>
<para
>Vergeet niet om <filename class="headerfile"
>stdlib.h</filename
> te "include"-en. </para>
</listitem>
</orderedlist>
</sect1>
<sect1 id="prog-using-widget">
<title
>&kugar;-classes gebruiken voor het rapporteren</title>
<para
>In de &kugar;-library zijn twee widgets inbegrepen. </para>
<para
>De <classname
>KReportViewer</classname
>-class is ontworpen voor &kde;-ontwikkelaars. Deze ondersteunt een &kde;-afdruksysteem en &UNIX;-lokalisatie via <function
>i18n()</function
>-calls. </para>
<para
>De <classname
>MReportViewer</classname
>-class is ontworpen voor &Qt;-ontwikkelaars en is geschikt voor meerdere platforms. Deze kan zowel op &UNIX;-platforms als op &Windows; en &MacOS; gebruikt worden. </para>
<para
>Om een programma te maken dat de &kugar;-library gebruikt, moet het gelinkt worden met de shared library <filename
>libkugar.so</filename
>, die inbegrepen is in de &kugar;-distributie voor alle &UNIX;-platforms. </para>
<para
>Include-bestanden zijn <filename
>kugarqt.h</filename
> en <filename
>kugar.h</filename
>, respectievelijk voor &Qt;-en &kde;-programma's. </para>
<para
>Een gedetailleerd voorbeeld van het gebruik van &kugar;-classes kunt u vinden in de map <filename class="directory"
>/shell</filename
> in de &kugar;-broncode. </para>
<para
><classname
>MReportViewer</classname
> (evenals <classname
>KReportViewer</classname
>) bevat verscheidene public methoden die gebruikt kunnen worden. </para>
<funcsynopsis>
<funcprototype>
<funcdef
>void <function
>renderReport</function
></funcdef>
<void/>
</funcprototype>
<funcsynopsisinfo
>Rendert het rapport op een scherm.</funcsynopsisinfo>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef
>void <function
>printReport</function
></funcdef>
<void/>
</funcprototype>
<funcsynopsisinfo
>Opent het dialoogvenster om het rapport af te drukken.</funcsynopsisinfo>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef
>void <function
>clearReport</function
></funcdef>
<void/>
</funcprototype>
<funcsynopsisinfo
>Maakt het scherm schoon en geeft de rapportgegevens vrij. Gebruik deze functie vóór u een nieuw rapport opent.</funcsynopsisinfo>
>-class zijn. Om bijvoorbeeld een rapportsjabloon vanaf een netwerk of uit een database te halen creëert u een TQIODevice-successor en herdefinieert u de benodigde functionaliteit. </funcsynopsisinfo>