# Øvelse

Denne gennemgang tjener som en kortfattet indledning til Kugar.

Antag at du vil oprette en skabelon for en eksempelrapport med &kudesigner;, en eksempeldatafil, og til sidst oprette en fuldstændig rapport.

Kildekoden for eksempelskabeloner og datafiler er i `sample1.kut` og `sample1.kud` som kommer med &kugar;.

## Oprettelse af rapportskabelon med &kudesigner;

Kør Kugar Designer ved at skrive `kudesigner` i en terminal.

Efter du har startet designer, vælg Fil | Ny og indstil in sidestørrelsen til Letter og sideorienteringen til Landskab. Indstil in venstre og højre margin til 48, øvre og nedre margin til 40. Alle dimensioner i &kudesigner; (sidemarginer, størrelser, positioner, osv.) angives i millimeter. Dialogen Ny rapport

En ny rapport er nu oprettet, og alle knapper i værktøjslinjerne Objektværktøjslinje og Afsnitsværktøjslinje er nu aktive (de tilsvarende menupunkter i menuerne Objekt og Afsnit er også aktive). Tom rapportdialog

Nu er det tid at tilføje nogle afsnit i rapporten, og afgøre deres størrelser. Vi tilføjer sidehoved og sidefod for rapport, sidehoved og sidefod og et enkelt detalje-afsnit. Sidehoved og sidefod for rapporten udskrives på første og sidste side af rapporten før og efter al anden rapportdata. En sidefod for rapporten er et godt sted at have beregnede felter. Sidehoved og sidefod udskrives ud længst oppe og længst nede på hver side. Vores rapport har et detaljeafsnit med niveau 0. Det betyder at alle datarækker har identiske strukturer (dvs. felter). Hvis datastrukturen er mere kompliceret, eller er organiseret i et mester-detalje forhold, bør flere detaljeniveauer laves. Se `sample3.kut` og `sample3.kud`, for et eksempel på hvordan dette kan gøres. Kig i beskrivelsen af skabelonelement for yderligere information.

Afsnit tilføjes ved at bruge menuen Afsnit eller Afsnitsværktøjslinjen. Tilføj nu hovede for rapport, sidehoved, sidefod og derefter detaljeafsnittet. Når detaljeafsnittet tilføjes, sæt dets niveau til 0, som vist på skærmaftrykket nedenfor. Angiv detaljeniveau

Vor rapport bør nu se ud som den på skærmaftrykket. Rapport med afsnit

Alle vore afsnit har en prædefineret højde - 50 mm. Lad os ændre den. For at gøre dette, højreklikkes på afsnittets sidehoved for rapport, eller klik på knappen Redigér egenskaber og vælg derefter et afsnit. Egenskabsvinduet skulle så vises. Redigér højden af afsnit

Ændr nu højden for rapportens sidehoved til 70. Lad os udføre samme procedure for alle andre afsnit. Ændr sidehovedets højde til 45, og detaljeafsnittene til 30. Rapportens sidefod skal være 32 mm høj.

En rapportskabelon med afsnit som har rigtigt størrelse er klar at blive udfyldt med rapportpunkter. Rapport med afsnit som har rigtig størrelse

Nu kan man tilføje punkter til afsnittene i rapporten. Fem forskellige slags punkter kan tilføjes i rapporten. Etiket er et rektangulært område som kan have kanter, og kan fyldes med hvilke som helst tekstdata. Etikettekst- og baggrundsfarver samt skrifttype kan ændres. Typen af kantlinjen og linjefarver kan også indstilles. Felt kan placeres i et detaljeafsnit. Felt repræsenterer datafelter, deres værdier hentes fra en datafil når en rapport laves. Antal, summer, middelværdier, osv. for feltværdier kan udskrives i rapporten med hjælp af etberegningsfelt. Specialfelter er etiketter med fordefineret tekst, som dagens dato eller sidenummer. Generelt rapportudseende kan forfines med Linjer.

For at tilføje et rapportpunkt, klikkes på tilsvarende punktknap på Punktværktøjslinjen og placér (klik) det i afsnittene. Det valgte punkt vil blive placeret i det markerede afsnit med øvre venstre hjørne på de angivne koordinater. Andre egenskaber sættes til normalværdier, og kan ændres i dialogen Rapportpunktvalg (på samme måde som vi ændrede højde for afsnittene).

Lad os altså tilføje etiketter til rapportens sidehoved, og sidehovedet som vises på skærmaftrykkene nedenfor. Bemærk at etiketten Mutiny Bay Software har sin kantstil og kantbredde angivet til 0 mm, og Inventarrapporten for programmel til 1 mm. Alle farver angives som en kombination af tre værdier (RGB, rød, grøn, blå) afgrænsede med kommategn.

Tilføj også feltpunkter i detaljeafsnittene. Antag at vi kun har fire felter: titel, version, platform og antal kopier. Altså skal fire Felt-punkter placeres, og deres egenskab Felt angives. Bemærk at egenskaben Tekst automatisk er sat til [`felt_navn`].

Vor sidefod er et godt sted at vise dagens dato og sidenummer, så tilføj to specialfelter og angive deres egenskab Type til 0 og 1. Et specialfelt med type = 0 repræsenterer dato, og et med type = 1 sidenummer. Bemærk at specialfeltets egenskab Tekst ændres automatisk.

Det sidste element som skal placeres er et Beregnet felt for antal kopier. For at hente en sum(antal kopier), ændres det beregnede felts egenskab Felt til antal kopier, og Beregningstype til 1 (summeringsfunktion).

Endelig bør vor rapportskabelon se sådan her ud: Fuldstændig rapport

## Opret rapportdatafilen

I almindelighed kan datafiler laves på flere måder. Nogen bruger måske xsl-transformeringstabeller for at oprette en rigtig xml fra et andet xml-dokument (såsom et Kspread beregningsblad), nogle andre bruger et eget program for at hente data i en database og udfylde i datafilen. I denne vejledning laver vi den simpelthen i hånden. Kildekoden for eksemplet er i filen `sample1.kud`, eller kan kopieres fra eksemplet nedenfor.

    <?xml version=1.0 encoding=UTF-8?>

    <!DOCTYPE KugarData [
        <!ELEMENT KugarData (Row* )>
        <!ATTLIST KugarData
            Template CDATA #REQUIRED>

        <!ELEMENT Row EMPTY>
        <!ATTLIST Row
            level CDATA #REQUIRED
            title CDATA #REQUIRED
            version CDATA #REQUIRED
            platform CDATA #REQUIRED
            copies CDATA #REQUIRED>
    ]>

    <KugarData Template="sample1.kut">
        <Row level="0" title="  BRU" version="15.0" platform="x86" copies="1"/>
        <Row level="0" title="  Caldera Open Linux" version="2.2" platform="x86" copies="3"/>
        <Row level="0" title="  K Desktop" version="1.1.1" platform="x86" copies="1"/>
        <Row level="0" title="  Netscape Communicator" version="4.6" platform="x86" copies="10"/>
        <Row level="0" title="  Redhat Linux" version="5.0" platform="x86" copies="11"/>
        <Row level="0" title="  Redhat Linux" version="5.1" platform="x86" copies="12"/>
        <Row level="0" title="  Redhat Linux" version="5.2" platform="x86" copies="14"/>
        <Row level="0" title="  Redhat Linux" version="6.0" platform="x86" copies="15"/>
        <Row level="0" title="  Star Office" version="5.0" platform="x86" copies="1"/>
        <Row level="0" title="  Star Office" version="5.1" platform="x86" copies="3"/>
        <Row level="0" title="  Microsoft Windows NT" version="3.1" platform="x86" copies="1"/>
        <Row level="0" title="  Microsoft Windows NT" version="3.51" platform="x86" copies="1"/>
        <Row level="0" title="  Microsoft Windows NT" version="4.0" platform="x86" copies="1"/>
        <Row level="0" title="  Microsoft Windows NT" version="5.0" platform="x86" copies="1"/>
        <Row level="0" title="  Sun Solaris" version="2.5" platform="Sparc" copies="1"/>
    </KugarData>

## Opret rapporten

På dette tidspunkt har vi en rapportskabelon (`sample1.kut`) og en rapportdatafil (`sample1.kud`).

For at oprette rapporten, skrives følgende kommando i en terminal: `kugar `-r sample1.kut` `-d sample1.kud``

Dette får et &kugar;-skalvindue fre, med den oprettede rapport. Oprettet rapport