<!-- 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
>Federico</firstname
><surname
>Zenith</surname
><affiliation
><address
><email
>zenith@chemeng.ntnu.no</email
></address
></affiliation
><contrib
>Traduzione della documentazione in italiano</contrib
></othercredit
>
</authorgroup>
</chapterinfo>
<title
>Guida del programmatore</title>
<sect1 id="how-to-use-in-progs">
<title
>Come usare &kugar; per fare rapporti nei tuoi programmi</title>
<itemizedlist>
<title
>Ci sono diversi modi di usare &kugar;</title>
<listitem>
<para
>Crea un file temporaneo e riempilo di dati, organizzati secondo la <link linkend="kugardata-dtd"
>Definizione del tipo di dati KugarData</link
>. Quindi chiama il comando di shell <command
>kugar</command
> (<cmdsynopsis
><command
>kugar</command
> <group
><option
>-d <replaceable
>file KugarData</replaceable
></option
></group
> <group
><option
>-r <replaceable
>file modello Kugar</replaceable
></option
></group
></cmdsynopsis
>) per fare un'anteprima e stampare il rapporto. Vedi <link linkend="prog-using-for-preview"
>Uso della shell &kugar; per fare anteprime dei rapporti</link
> per una descrizione dettagliata. </para>
</listitem>
<listitem>
<para
>Usa &kugar; direttamente nel codice dell'applicazione. Vedi <link linkend="prog-using-widget"
>Usare le classi di &kugar; per fare rapporti</link
> per una descrizione dettagliata. </para>
</listitem>
<listitem>
<para
>Crea un plugin di &Qt; Designer, usalo per costruire la &GUI; dell'applicazione nel Designer e collegalo dinamicamente al programma. Vedi <link linkend="prog-designer-plugin"
>Creare un plugin di &Qt; Designer</link
> per una descrizione dettagliata. </para>
</listitem>
</itemizedlist>
<para
>Gli ultimi due modi sono accettabili per gli sviluppatori di &Qt; e &kde;; ma &kugar; è progettato per essere un generatore di rapporti, indipendente da ogni linguaggio di programmazione ovvero <acronym
>IDE</acronym
>. Usa il formato &XML; per descrivere i modelli di rapporto e i file dati. Quindi ogni programma può produrre output nel formato file di &kugar; come descritto in <link linkend="kugardata-dtd"
><acronym
>DTD</acronym
> di KugarData</link
> o anche un formato file di modello di rapporto (vedi <link linkend="template-dtd"
><acronym
>DTD</acronym
> di KugarTemplate</link
>). Una shell di &kugar; (visualizzatore di rapporti) può essere usata per fare anteprime e stampare il rapporto generato. </para>
</sect1>
<sect1 id="prog-using-for-preview">
<title
>Uso della shell &kugar; per fare anteprime dei rapporti</title>
<orderedlist>
<title
>Il modo di creare e fare un'anteprima (o stampare) un rapporto è:</title>
<listitem>
<para
>Crea un file modello di rapporto con &kudesigner; </para>
</listitem>
<listitem>
<para
>Crea un file dati con valori di colonna per le righe di dettaglio del rapporto. Usa la <link linkend="kugardata-dtd"
><acronym
>DTD</acronym
> KugarData</link
> per produrre file dati corretti. </para>
</listitem>
<listitem>
<para
>Esegui la shell &kugar; per fare un'anteprima e stampare un rapporto. Per esempio, per farlo, nei linguaggi C o C++ chiama:</para>
<programlisting
><function
>system(<option
>"kugar -r <replaceable
>file_modello.ktf</replaceable
>-d <replaceable
>file_dati.kdf</replaceable
>"</option
>)</function
>.
</programlisting>
<para
>Non dimenticarti di includere <filename class="headerfile"
>stdlib.h</filename
>. </para>
</listitem>
</orderedlist>
</sect1>
<sect1 id="prog-using-widget">
<title
>Usare le classi di &kugar; per fare rapporti</title>
<para
>La libreria di &kugar; include due oggetti utilizzabili. </para>
<para
>La classe <classname
>KReportViewer</classname
> è progettata per gli sviluppatori di &kde;. Supporta un sistema di stampa &kde; e la localizzazione &UNIX; attraverso le chiamate a <function
>i18n()</function
>. </para>
<para
>La classe <classname
>MReportViewer</classname
> è progettata per gli sviluppatori &Qt; e fornisce un autentico supporto multipiattaforma. Si può usare non solo su piattaforme &UNIX;, ma anche su &Windows; e &MacOS;. </para>
<para
>Per costruire un programma che usi la libreria &kugar;, esso dovrebbe essere collegato alla libreria condivisa <filename
>libkugar.so</filename
>, che è fornita con la distribuzione di &kugar; su tutte le piattaforme &UNIX;. </para>
<para
>I file da includere sono rispettivamente <filename
>kugarqt.h</filename
> e <filename
>kugar.h</filename
> per i programmi &Qt; e &kde;. </para>
<para
>Per un esempio dettagliato di come si usano le classi di &kugar;, guarda nella cartella <filename class="directory"
>/shell</filename
> nel sorgente di &kugar;. </para>
<para
><classname
>MReportViewer</classname
> (e anche il <classname
>KReportViewer</classname
>) contiene più metodi pubblici che possono essere usati. </para>
<funcsynopsis>
<funcprototype>
<funcdef
>void <function
>renderReport</function
></funcdef>
<void/>
</funcprototype>
<funcsynopsisinfo
>Visualizza il rapporto su schermo.</funcsynopsisinfo>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef
>void <function
>printReport</function
></funcdef>
<void/>
</funcprototype>
<funcsynopsisinfo
>Chiama la finestra di dialogo di stampa per stampare il rapporto.</funcsynopsisinfo>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef
>void <function
>clearReport</function
></funcdef>
<void/>
</funcprototype>
<funcsynopsisinfo
>Pulisce il rapporto su schermo e libera i dati del rapporto. Chiamalo prima di aprire un nuovo rapporto.</funcsynopsisinfo>