AlexanderDymocloudtemple@mksat.netPhilThompsonphil@river-bank.demon.co.ukFedericoZenithzenith@chemeng.ntnu.noTraduzione della documentazione in italianoGuida del programmatoreCome usare &kugar; per fare rapporti nei tuoi programmiCi sono diversi modi di usare &kugar;Crea un file temporaneo e riempilo di dati, organizzati secondo la Definizione del tipo di dati KugarData. Quindi chiama il comando di shell kugar (kugar) per fare un'anteprima e stampare il rapporto. Vedi Uso della shell &kugar; per fare anteprime dei rapporti per una descrizione dettagliata. Usa &kugar; direttamente nel codice dell'applicazione. Vedi Usare le classi di &kugar; per fare rapporti per una descrizione dettagliata. Crea un plugin di &TQt; Designer, usalo per costruire la &GUI; dell'applicazione nel Designer e collegalo dinamicamente al programma. Vedi Creare un plugin di &TQt; Designer per una descrizione dettagliata. Gli ultimi due modi sono accettabili per gli sviluppatori di &TQt; e &tde;; ma &kugar; è progettato per essere un generatore di rapporti, indipendente da ogni linguaggio di programmazione ovvero IDE. 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 DTD di KugarData o anche un formato file di modello di rapporto (vedi DTD di KugarTemplate). Una shell di &kugar; (visualizzatore di rapporti) può essere usata per fare anteprime e stampare il rapporto generato. Uso della shell &kugar; per fare anteprime dei rapportiIl modo di creare e fare un'anteprima (o stampare) un rapporto è:Crea un file modello di rapporto con &kudesigner; Crea un file dati con valori di colonna per le righe di dettaglio del rapporto. Usa la DTD KugarData per produrre file dati corretti. Esegui la shell &kugar; per fare un'anteprima e stampare un rapporto. Per esempio, per farlo, nei linguaggi C o C++ chiama:system().
Non dimenticarti di includere stdlib.h. Usare le classi di &kugar; per fare rapportiLa libreria di &kugar; include due oggetti utilizzabili. La classe KReportViewer è progettata per gli sviluppatori di &kde;. Supporta un sistema di stampa &kde; e la localizzazione &UNIX; attraverso le chiamate a i18n(). La classe MReportViewer è progettata per gli sviluppatori &TQt; e fornisce un autentico supporto multipiattaforma. Si può usare non solo su piattaforme &UNIX;, ma anche su &Windows; e &MacOS;. Per costruire un programma che usi la libreria &kugar;, esso dovrebbe essere collegato alla libreria condivisa libkugar.so, che è fornita con la distribuzione di &kugar; su tutte le piattaforme &UNIX;. I file da includere sono rispettivamente kugarqt.h e kugar.h per i programmi &TQt; e &tde;. Per un esempio dettagliato di come si usano le classi di &kugar;, guarda nella cartella /shell nel sorgente di &kugar;. MReportViewer (e anche il KReportViewer) contiene più metodi pubblici che possono essere usati. void renderReportVisualizza il rapporto su schermo.void printReportChiama la finestra di dialogo di stampa per stampare il rapporto.void clearReportPulisce il rapporto su schermo e libera i dati del rapporto. Chiamalo prima di aprire un nuovo rapporto.bool setReportDataconst TQString &name_file_datiImposta i dati del rapporto dal file nome_file_dati.bool setReportDataconst TQIODevice &dispositivo_io_datiImposta i dati di rapporto dal file dispositivo_io_dati. Il dispositivo IO può essere qualsiasi discendente della classe TQIODevice. Per esempio, per prendere dati direttamente dalla banca dati, crea un discendente diTQIODevice e ridefiniscine tutte le funzionalità necessarie. bool setReportTemplateconst TQString &nome_file_modelloImposta il modello di rapporto dal file nome_file_modello.bool setReportTemplateconst TQIODevice &dispositivo_io_modelloImposta il modello di rapporto dal file dispositivo_io_modello. Il dispositivo IO può essere qualsiasi discendente della classe TQIODevice. Per esempio, per ottenere un modello di rapporto dalla rete o da una banca dati, crea un discendente diTQIODevice e ridefiniscine tutte le funzionalità necessarie. Creare un plugin di &TQt; DesignerQuesto è il codice esemplificativo di come si crea un plugin per Designer. Il codice sotto crea un plugin per l'oggetto KReportViewer di &kde;. Se si desidera un oggetto &TQt;, sostituisci KReportViewer con MReportViewer e kugar.h con kugarqt.h nel codice del plugin. Uso del pluginIl plugin di Designer permetterà l'uso di &TQt; Designer per posizionare un oggetto KReportViewer su una finestra e farne correttamente l'anteprima. I programmi che usano questo plugin devono esserci collegati dinamicamente. La libreria corrispondente è chiamata libkugar_plugin.so. Gli oggetti o le finestre di dialogo che includono l'oggetto KReportViewer devono includere <kugar.h> nell'implementazione e avere una dichiarazione anticipata di class KReportViewer. Le inclusioni possono essere fatte con l'esploratore di oggetti di &TQt; Designer (scheda Sorgente). Per costruire il plugin esegui: qmakekugar_plugin.promakeCodice del pluginIl codice del plugin consiste di tre file:kugar_plugin.hkugar_plugin.cppkugar_plugin.proUn file d'intestazione per KugarWidgetPlugin, successore di QWidgetPlugin;Un file sorgente per KugarWidgetPlugin, successore di QWidgetPlugin;Un file di progetto per l'applicazione QMake.kugar_plugin.h#include <qwidgetplugin.h>
class KugarWidgetPlugin:public QWidgetPlugin
{
public:
KugarWidgetPlugin ();
QStringList keys () const;
TQWidget *create (const TQString & classname, TQWidget * parent =
0, const char *name = 0);
TQString group (const TQString &) const;
QIconSet iconSet (const TQString &) const;
TQString includeFile (const TQString &) const;
TQString toolTip (const TQString &) const;
TQString whatsThis (const TQString &) const;
bool isContainer (const TQString &) const;
};
kugar_plugin.cpp#include "kugar_plugin.h"
#include <kugar.h>
static const char *kugar_pixmap[] = {
"22 22 127 2",
".d c #000000",
".c c #131313",
".b c #282828",
".a c #434241",
".e c #4e463a",
".# c #595551",
".G c #66553b",
"#F c #68635f",
"#R c #6b4f23",
"#q c #6e6862",
"#M c #6f5229",
".n c #6f6146",
".w c #735310",
".V c #755c2a",
".I c #775f34",
".0 c #77694a",
"#n c #7e6434",
".o c #806f50",
"#C c #835d2d",
".P c #837c75",
"#B c #85653a",
"#k c #85827e",
".x c #866d46",
".U c #877967",
".X c #888888",
".F c #89724d",
"#x c #8b6d2a",
".S c #8d7759",
".z c #8e733b",
"#L c #906e49",
"#Q c #947b56",
".r c #948058",
".J c #957844",
".4 c #987736",
".q c #998969",
".k c #999897",
".R c #9a8a75",
"#i c #9f8348",
"#I c #a37c4b",
".u c #a38d66",
".E c #a58558",
"#A c #a8834b",
".s c #a9967a",
".t c #aa9467",
".C c #ae9f8d",
"#6 c #afa49d",
"#5 c #afa9a4",
"#W c #b18e4d",
".K c #b1935a",
".B c #b39660",
"#V c #b49866",
"#a c #b49d6c",
"## c #b49d72",
".j c #b5b4b4",
"#0 c #b7a597",
".O c #b9b1a9",
".L c #bb9c61",
".M c #bb9e6b",
".A c #bca778",
"#j c #bea46b",
".T c #bfb37d",
".v c #c0b391",
".W c #c3a262",
".i c #c4c4c4",
"#m c #c5b7aa",
"#8 c #c69f80",
".D c #c6b79b",
"#3 c #c7a589",
".7 c #c7a76c",
"#u c #c7bbaf",
".6 c #c8ad74",
"#7 c #c8b7a9",
"#r c #c8beb5",
".m c #c8c8c8",
"#U c #cbad96",
"#f c #ccb681",
"#h c #cdac6c",
"#P c #cdb49f",
"#X c #cdb8a6",
"#H c #ceb7a4",
".y c #ceb892",
".N c #cecac3",
"#Z c #cfb16f",
"#O c #cfbdad",
".Z c #cfc7c0",
"#w c #d0bcab",
".5 c #d1ad6b",
"#s c #d1bfb1",
".h c #d5d5d5",
"#l c #d6cdc6",
"#D c #d8b36e",
".H c #dac592",
"#t c #dbb977",
".g c #dcdcdc",
".1 c #e0dcc1",
".f c #e0e0df",
"#1 c #e3c8b1",
"#S c #e4cdb9",
".3 c #e4d9a3",
"#4 c #e6c1a1",
"#2 c #e7c4a5",
"#K c #e9c179",
"#g c #e9c47e",
"#Y c #e9c8ac",
".2 c #eae6c0",
"#T c #ebcdb3",
".Q c #ebd4b9",
"#E c #ecca87",
"#z c #ecd799",
".l c #ececeb",
"#G c #efd7c2",
"#e c #efe3ab",
".8 c #efe8e3",
"#v c #f1dcca",
"#. c #f2e2d4",
".p c #f4f4f4",
"#y c #f5daa0",
"#J c #f6cf7f",
".9 c #f7ede4",
"#p c #f9d995",
".Y c #fcf9f6",
"#d c #fefcc5",
"#c c #fefdda",
"#b c #fefee1",
"#N c #ffd685",
"#o c #fff0a9",
"Qt c #ffffff",
"QtQtQtQtQtQt.#.a.a.a.b.b.b.c.c.d.d.dQtQtQtQt",
"QtQtQtQtQtQt.e.f.g.g.f.g.g.h.i.j.d.k.dQtQtQt",
"QtQtQtQtQtQt.a.gQtQtQtQtQtQt.l.f.c.m.k.dQtQt",
"QtQtQtQtQt.n.n.n.n.n.o.g.pQtQt.l.bQt.m.k.dQt",
"QtQtQt.q.q.r.q.s.t.r.q.u.u.g.pQt.a.fQt.m.k.d",
"QtQt.s.s.v.w.x.y.y.t.z.A.t.B.i.p.#.a.b.c.d.d",
"Qt.C.C.D.E.F.G.A.H.F.I.J.K.L.M.i.p.l.N.O.P.d",
"Qt.s.v.Q.q.R.S.T.A.R.U.V.L.W.W.X.g.Y.f.Z.k.d",
".0.s.t.Q.1.U.R.2.3.S.U.4.5.6.6.7.j.8.9#..O.d",
".G##.V#a#b.1#c#c#d#e#f#g#h#i#j.W#k#l.9#.#m.d",
".G.4.F#n#c#c#c#d#d#o#p#g.x.w#i.L#q#r#.#.#s.d",
".e.J.J.I.3#d.H#j.6#f#p#t#n.w.E.L#q#u#.#v#w.d",
".G.A#x.z#y#z#A#B#B#C#D#E.4.4.6#h#F#m#v#G#H.d",
".o.s.A#j#E#t#I#I#I#C#A#J#p#p#K#t#F#m#v#G#H.d",
"Qt##.A.6.7#I#I#A.E#L#M.W#N#J#K.a.U#O#G.Q#P.d",
"Qt#a.M.L.J#A#I.4.E#Q.x#R#D#J#g.#.C#S.Q#T#U.d",
"QtQt#V.K.z#Q.s.S.x.S#B#M#W#E.a.U#X.Q#T#Y#U.d",
"QtQtQt.M#i#B.r#Q#Q.r#Q.z#Z.a#q#0#1#T#Y#2#3.d",
"QtQtQtQtQt#j.L.L.W.5#t.a.#.U#0#1#T#Y#2#4#3.d",
"QtQtQtQtQtQt.d#F#q#q#q.P.C#O#S.Q#T#Y#2#4#3.d",
"QtQtQtQtQtQt.d#5#5#6#6#0#7#w#H#P#U#U#3#3#8.d",
"QtQtQtQtQtQt.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d"
};
KugarWidgetPlugin::KugarWidgetPlugin ()
{
}
QStringList KugarWidgetPlugin::keys () const
{
QStringList list;
list << "KReportViewer";
return list;
}
TQWidget* KugarWidgetPlugin::create (const TQString & key, TQWidget * parent,
const char *name)
{
if (key == "KReportViewer")
return new KReportViewer (parent, name);
return 0;
}
TQString KugarWidgetPlugin::group (const TQString & feature) const
{
if (feature == "KReportViewer")
return "Display";
return TQString::null;
}
QIconSet KugarWidgetPlugin::iconSet (const TQString &) const
{
return QIconSet (QPixmap (kugar_pixmap));
}
TQString KugarWidgetPlugin::includeFile (const TQString & feature) const
{
if (feature == "KReportViewer")
return "kugar.h";
return TQString::null;
}
TQString KugarWidgetPlugin::toolTip (const TQString & feature) const
{
if (feature == "KReportViewer")
return "Kugar report viewer widget";
return TQString::null;
}
TQString KugarWidgetPlugin::whatsThis (const TQString & feature) const
{
if (feature == "KReportViewer")
return "A widget to view xml reports";
return TQString::null;
}
bool KugarWidgetPlugin::isContainer (const TQString &) const
{
return FALSE;
}
TQ_EXPORT_PLUGIN( KugarWidgetPlugin )
kugar_plugin.proSOURCES += kugar_plugin.cpp
HEADERS += kugar_plugin.h
DESTDIR = $(TQTDIR)/plugins/designer
TARGET = kugar_plugin
target.path=$$plugins.path
isEmpty(target.path):target.path=$$QT_PREFIX/plugins
PROJECTNAME = KugarPlugin
TEMPLATE = lib
CONFIG += qt warn_on release plugin
unix:LIBS += -lkugar
LANGUAGE = C++