<!-- 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
>Juan Manuel</firstname
><surname
>García Molina</surname
><affiliation
><address
><email
>juanma@superiodico.net</email
></address
></affiliation
><contrib
>Traductor</contrib
></othercredit
>
</authorgroup>
</chapterinfo>
<title
>Guía del programador</title>
<sect1 id="how-to-use-in-progs">
<title
>Cómo usar &kugar; para hacer informes en sus propios programas</title>
<itemizedlist>
<title
>Hay varias formas de usar &kugar;</title>
<listitem>
<para
>Crear un archivo temporal y rellenarlo con datos, organizados de acuerdo a la <link linkend="kugardata-dtd"
>definición del tipo de documento deKugarData</link
>. Luego llame al shell del comando <command
>kugar</command
> ( <cmdsynopsis
> <command
>kugar</command
> <group
> <option
>-d <replaceable
>archivo de datos de Kugar</replaceable
></option
> </group
> <group
> <option
>-r <replaceable
>archivo de plantilla kugar</replaceable
></option
> </group
> </cmdsynopsis
> ) para ver e imprimir el informe. En <link linkend="prog-using-for-preview"
>Usando el shell de &kugar; para visualizar informes</link
> tiene una descripción detallada. </para>
</listitem>
<listitem>
<para
>Use &kugar; directamente en el código de la aplicación. En <link linkend="prog-using-widget"
>Usar las clases de &kugar; para hacer informes</link
> tiene una descripción detallada. </para>
</listitem>
<listitem>
<para
>Cree un accesorio para &Qt; designer, úselo para construir el &GUI; de la aplicación en el designer y enlácelo con el programa dinámicamente. En <link linkend="prog-designer-plugin"
>Crear un accesorio para &Qt; designer</link
> tiene una descripción detallada. </para>
</listitem>
</itemizedlist>
<para
>Las últimas dos formas son aceptables para desarrolladores de &Qt; y &kde;. Pero &kugar; está diseñado para ser un generador de informes, independientemente de un lenguaje de programación y/o <acronym
>IDE</acronym
>. Usa el formato &XML; para describir plantillas de informes y archivos de datos. Así que cualquier programa puede producir salida en formato de archivo de datos de &kugar; como se describe en <link linkend="kugardata-dtd"
><acronym
>DTD</acronym
> de KugarData</link
> o incluso el formato de archivo de plantilla de informe (vea <link linkend="template-dtd"
><acronym
>DTD</acronym
> de KugarTemplate</link
>). El shell de &kugar; (visor de informes) se puede usar para ver e imprimir los informes generados. </para>
</sect1>
<sect1 id="prog-using-for-preview">
<title
>Usando el shell de &kugar; para visualizar informes</title>
<orderedlist>
<title
>La forma de crear y previsualizar (imprimir) informes es:</title>
<listitem>
<para
>Cree una plantilla de informe con &kudesigner; </para>
</listitem>
<listitem>
<para
>Cree un archivo de datos con valores de columnas para las bandas detalladas del informe. Use el <link linkend="kugardata-dtd"
><acronym
>DTD</acronym
> de KugarData</link
> para producir archivos de datos correctos. </para>
</listitem>
<listitem>
<para
>Lance el shell de &kugar; para visualizar e imprimir el informe. Por ejemplo, haga esto en llamadas de los lengaje C o C++:</para>
<programlisting
><function
>system(<option
>"kugar -r <replaceable
>template_file.ktf</replaceable
>-d <replaceable
>data_file.kdf</replaceable
>"</option
>)</function
>.
</programlisting>
<para
>No olvide incluir <filename class="headerfile"
>stdlib.h</filename
>. </para>
</listitem>
</orderedlist>
</sect1>
<sect1 id="prog-using-widget">
<title
>Usae clases de &kugar; para hacer informes</title>
<para
>La biblioteca de &kugar; incluye dos elementos para que los use. </para>
<para
>La clase <classname
>KReportViewer</classname
> está diseñada para desarrolladores de &kde;. Admite un sistema de impresión de &kde; y localización de &UNIX; vía llamadas a <function
>i18n()</function
>. </para>
<para
>La clase <classname
>MReportViewer</classname
> está diseñada para desarrolladores de &Qt; y proporciona multiplataforma real. No sólo se puede usar en plataformas &UNIX;, sino también en &Windows; y &MacOS;. </para>
<para
>Para construir un programa que utilice la biblioteca kugar, se debe enlazar con la biblioteca compartida <filename
>libkugar.so</filename
>, que se proporciona con la distribución de &kugar; en todas las plataformas &UNIX;. </para>
<para
>Los archivos que hay que incluir son <filename
>kugarqt.h</filename
> y <filename
>kugar.h</filename
> para los programas de &Qt; y &kde; respectivamente. </para>
<para
>Para un ejemplo detallado de cómo se usan las clases de &kugar;, vea la carpeta <filename class="directory"
>/shell</filename
> en las fuentes de &kugar;. </para>
<para
><classname
>MReportViewer</classname
> (y <classname
>KReportViewer</classname
> también) contiene varios métodos públicos que se pueden usar. </para>
<funcsynopsis>
<funcprototype>
<funcdef
>void <function
>renderReport</function
></funcdef>
<void/>
</funcprototype>
<funcsynopsisinfo
>Visualiza el informe en pantalla.</funcsynopsisinfo>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef
>void <function
>printReport</function
></funcdef>
<void/>
</funcprototype>
<funcsynopsisinfo
>LLama al cuadro de diálogo de impresión para imprimir el informe.</funcsynopsisinfo>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef
>void <function
>clearReport</function
></funcdef>
<void/>
</funcprototype>
<funcsynopsisinfo
>Limpia el informe en una pantalla y libera los datos del informe. Llame a esta función antes de abrir el informe nuevo.</funcsynopsisinfo>
>. Por ejemplo, para obtener una plantilla del informe de algún sitio de almacenamiento de la red o una base de datos, cree un heredero de TQIODevice y redefina toda la funcionalidad necesaria. </funcsynopsisinfo>