Skip navigation links
Het krachtige en veelzijdige tijdregistratie systeem
Menu
TimeTraces
Het krachtige en veelzijdige tijdregistratie systeem

Rapportsjabloon specificatie

Inleiding

TimeTrace wordt standaard geleverd met enkele voorgeinstalleerde rapportsjablonen.  De beschikbare sjablonen worden besproken op de Rapportopmaak en lay-out pagina.  U kunt zelf deze bestaande rapportsjablonen aanpassen of nieuwe rapportsjablonen maken.  De rapportsjablonen zijn geïnstalleerd in de "Report templates" map in de TimeTraces applicatiemap (meestal te vinden op "C:\Program Files\TimeTraces\Report templates").  De rapportsjablonen zijn vertaald in alle ondersteunde talen; de sjablonen voor elke taal staan in een aparte subfolder voor die taal.  Wanneer u extra rapportsjablonen wilt gebruiken moet u deze in deze mappen zetten.

Rapportsjablonen bestaan uit twee bestanden; een instellingenbestand en een inhoudsbestand.  Het instellingenbestand moet de uitgang ".ttr" hebben; u bent echter vrij in de naamgeving van het inhoudsbestand.

De sjablonen die in de rapportsjablonen map staan worden als mogelijke keuzes getoond in het "Rapport aanmaken" venster.  Bij de helppagina's worden ook enkele voorbeeldsjablonen meegeleverd waarop u uw eigen sjablonen kunt baseren.  U kunt deze vinden in uw TimeTraces applicatie installatiefolder in de subfolder "Help\NL\Report samples".  Ze laten u zien hoe u met de verschillende bestandsformaten moet werken, maar ze moeten waarschijnlijk wel aan uw behoefte aangepast worden.

Rapportsjabloon instellingenbestand

Het rapportsjabloon instellingenbestand is een normaal Windows INI bestand.  Het moet een sectie genaamd "[Settings]" hebben, waarin alle instellingen worden genoemd.  Alle instellingen moeten gespecificeerd worden.  De beschikbare instellingen zijn:

Categorization De lijst met (sub)categorieën waaronder het sjabloon wordt vermeld in de sjabloonkeuzeboom in het "Rapport aanmaken" venster.  De (sub)categorieën in de categorisatie moeten worden gescheiden met een enkele backslash (\).  Er is geen limiet aan het aantal subcategorieën.  U bent vrij om bestaande (sub)categorienamen te hergebruiken, maar u kunt ook nieuwe namen gebruiken.
Description Een omschrijving van het sjabloon welke getoond wordt wanneer het sjabloon wordt geselecteerd in het "Rapport aanmaken" venster.
Format Het formaat waarin de gegevens uitgeschreven moeten worden.  Gebruik de goede instelling voor het bedoelde uitvoerformaat.
FileNameType De te gebruiken bestandstype naam in het "Rapport aanmaken" venster; deze naam wordt gebruikt wanneer er naar een bestemmingsbestand wordt gebladerd.
DefaultExtension De standaard uitgang voor het type bestand dat dit sjabloon aanmaakt.  Deze uitgang wordt gebruikt wanneer er naar een bestemmingsbestand wordt gebladerd in het "Rapport aanmaken" venster.
ContentFile De naam van het bestand waarin de inhoud van het sjabloon is opgenomen.  Er zijn geen beperkingen op deze bestandsnaam.

Het gebruikte rapportformaat bepaald hoe de gegevens worden uitgeschreven.  Wanneer nodig worden de gegevens verwerkt en/of gecodeerd om geldig te zijn voor het gewenste uitvoerformaat.  De beschikbare formaten zijn:

csv Kommagescheiden waarden
tab Tabgescheiden waarden
html HTML
xml XML
txt Onopgemaakte tekst
rtf Rich text (opgemaakte tekst) formaat

Rapportsjabloon inhoudbestand

De inhoud van het rapport wordt dynamisch opgebouwd door tags en tag secties in het rapportsjabloon inhoudbestand in te vullen.  Alle tags worden opgegeven tussen een "[#" en """ markering, zoals "tagnaam#].  Tags zijn hoofdlettergevoelig en spaties, tabs en regelafbrekingen zijn er niet in toegestaan.  Er zijn een aantal groepen tags die u kunt gebruiken.

Enkele tags vormen tag secties.  Deze worden gebruikt om alle activiteiten, periodes en tijdswaarden in het rapport uit te schrijven.  Deze secties worden gebruikt om een blok inhoud te markeren dat herhaaldelijk in moet worden gevuld voor elk element in de collectie die de sectie representeert; ze stellen u dus bijvoorbeeld in staat om alle gebruikte activiteiten uit te schrijven en alle tijdswaardes als een tabel uit te schrijven.  Sectie tagnamen eindigen met "startsection" en "endsection" en moeten in paren worden gebruikt.

Er zijn verschillende manieren waarop activiteiten- en periodesecties hun elementen kunnen uitschrijven.  Dit wordt genoteerd door de manier achter de sectie startnaam tussen "(" en ")" karakters te schrijven, zoals [#activity_startsection(user)#].  De beschikbare opties worden per tag in de documentatie voor de tag opgenoemd door alle opties tussen "(" en ")" te noemen, zoals "(all, user, used)".  De volgende opties worden herkend:

all Neem alle elementen in de sectie op.
used Neem alleen de elementen op waarop tijd is geboekt.
user Neem alleen de elementen op waarop tijd is geboekt of wanneer de gebruiker ook lege elementen wil zien.
used_insection Neem alleen de elementen op waarop tijd is geboekt in het huidige hoofdsectie element (gebruikt voor geneste secties).
user_insection Neem alleen de elementen op waarop tijd is geboekt in het huidige hoofdsectie element of wanneer de gebruiker ook lege elementen wil zien (gebruikt voor geneste secties).

De "user" en "user_insection" versies reflecteren de keuze van de gebruiker; hij kan er in het "Rapport aanmaken" venster voor kiezen om lege activiteiten en/of lege periodes niet op te nemen (de inhoudsopties "Lege activiteiten opnemen" en "Lege periodes opnemen").

Er bestaat ook een verschil tussen de "(roundsum)" en "(sumround)" tag opties; dit wordt weergegeven door "(roundsum, sumround)".  Er is een verschil in het eindresultaat tussen waarden afronden en ze daarna optellen versus waarden optellen en daarna het resultaat afronden.  Beide versies zijn bruikbaar in rapporten.  De "(roundsum)" optie geeft als resultaat de som van alle afgeronde waarden, en de "(sumround)" optie geeft als resultaat de afgeronde waarde van het resultaat van de som van alle waarden.

Een tag of tagpaar kan meer dan een keer voorkomen in een inhoudsjabloon.  De tags worden onafhankelijk van elkaar ingevuld, waardoor je bijvoorbeeld zowel een kop- en voetregel kan maken door hetzelfde "activities" sectie tagpaar te gebruiken.

Rapportinstellingen tags

De beschikbare rapportinstellingen tags zijn:

[#reportoption_statisticsper#] De "statistieken per" optie in de "Gegevensverwerking" sectie in het "Rapport aanmaken" venster.  De mogelijke waarden zijn: "uur", "dag", "week", "maand", "jaar" en "totale project".
[#reportoption_roundingby#] De "Afronden op" optie in de "Gegevensverwerking" sectie in het "Rapport aanmaken" venster.  De mogelijke waarden zijn: "seconde", "minuut", "6 minuten", "kwartier", "half uur" en "uur".
[#reportoption_dataformat#] De "Formaat" optie in de "Gegevensverwerking" sectie in het "Rapport aanmaken" venster.  De mogelijke waarden zijn: "numeriek uren", "numeriek dagen" en "tijd".

Projectdetails tags

Beschikbare projectdetails tags zijn:

[#project_name#] De naam van het project.
[#project_filename#] De bestandsnaam van het project.
[#project_filepath#] Het totale bestandsnaam en -pad van het project.

Periode details tags

De gekozen periode voor het rapport wordt opgedeeld in aparte sub periodes volgens de rapportageoptie "Statistieken per".  De tags voor de details van deze sub periodes zijn:

[#timeperiod_firststart(all, used, user)#] De start van de eerste sub periode in de rapportage periode.
[#timeperiod_lastend(all, used, user)#] Het eind van de laatste sub periode in de rapportage periode.

Rapport totaaltijd tags

De totale geregistreerde tijd in het rapport is beschikbaar via de tags:

[#report_totaltime(roundsum, sumround)#] De totale cumulatieve tijd geregistreerd in het rapport.

Rapport activiteiten tags

De collectie met activiteiten kan worden uitgeschreven met een tagpaar.  Het tagpaar is:

[#activity_startsection(all, used, user)#] De start van de activiteitsectie.
[#activity_endsection#] Het eind van de activiteitsectie.

In een activiteitsectie kunt u de karakteristieken van een activiteit uitschrijven met de volgende tags:

[#activity_name#] De naam van de activiteit.
[#activity_path#] Het totale pad van de activiteit.
[#activity_nr#] Het volgnummer van de activiteit in de collectie.
[#activity_id#] Het unieke ID van de activiteit in dit rapport.
[#activity_totaltime(roundsum, sumround)#] De totale tijd die op de activiteit is geregistreerd.

In een activiteitsectie kunt u ook de details van elke periode uitschrijven via het volgende tagpaar:

[#activity_timeperiod_startsection(all, used, used_insection, user, user_insection)#] De start van periode sectie.
[#activity_timeperiod_endsection#] Het eind van de periode sectie.

In een activiteit periode sectie kunt u de details van die periode en de tijd die op die activiteit is geboekt in die periode uitschrijven via de volgende tags:

[#activity_timeperiod_time#] De tijd per activiteit per periode.
[#activity_timeperiod_start#] De start datum/tijd van de periode.
[#activity_timeperiod_end#] De eind datum/tijd van de periode.
[#activity_timeperiod_nr#] Het volgnummer van de periode in de collectie.
[#activity_timeperiod_id#] Het unieke ID van de periode in dit rapport.
[#activity_timeperiod_totaltime(roundsum, sumround)#] De totale tijd die in de periode is geboekt.

Rapport periode tags

De collectie met periodes kan uitgeschreven worden met een tagpaar.  Het tagpaar is:

[#timeperiod_startsection(all, used, user)#] De start van de periode sectie.
[#timeperiod_endsection#] Het eind van de periode sectie.

In een periode sectie kunt u de karakteristieken van de periode uitschrijven via de volgende tags:

[#timeperiod_start#] De start datum/tijd van de periode.
[#timeperiod_end#] De eind datum/tijd van de periode.
[#timeperiod_nr#] Het volgnummer van de periode in de collectie.
[#timeperiod_id#] Het unieke ID de periode in dit rapport.
[#timeperiod_totaltime(roundsum, sumround)#] De totale tijd die in de periode is geregistreerd.

In een periode sectie kunt u ook de details van elke activiteit uitschrijven via het volgende tagpaar:

[#timeperiod_activity_startsection(all, used, used_insection, user, user_insection)#] De start van de activiteitsectie.
[#timeperiod_activity_endsection#] Het eind van de activiteitsectie.

In een periode activiteitsectie kunt u de details van die activiteit en de geregistreerde tijd in die periode op die activiteit uitschrijven via de volgende tags:

[#timeperiod_activity_time#] De tijd per periode per activiteit.
[#timeperiod_activity_name#] De naam van de activiteit.
[#timeperiod_activity_path#] Het totale pad van de activiteit.
[#timeperiod_activity_nr#] Het volgnummer van de activiteit in de collectie.
[#timeperiod_activity_id#] Het unieke ID van de activiteit in dit rapport.
[#timeperiod_activity_totaltime(roundsum, sumround)#] De totale tijd die op de activiteit is geregistreerd.

Rapportinhoud taggebruik voorbeelden

De bovenstaande informatie is een beetje abstract, dus volgt hier een voorbeeld om u op weg te helpen.  Het onderstaande sjabloon schrijft een kommagescheiden databestand uit.

Regel 1 Start,Eind[#activity_startsection(user)","activity_path""activity_endsection",Totale tijd"timeperiod_startsection(user)#]
Regel 2 [#timeperiod_start","timeperiod_end""timeperiod_activity_startsection(user)","timeperiod_activity_time""timeperiod_activity_endsection","timeperiod_totaltime(roundsum)""timeperiod_endsection#]
  • We moeten zowel een kopregel met de kolomkoppen van activiteiten en de regels met tijdsgegevens voor elke periode uitschrijven.  Het eerste doel wordt bereikt door het gebruik van de [#activity_startsection(user) tag, en het tweede doel via de timeperiod_startsection(user)#] tag.
  • De "Start,Eind" aan het begin van het sjabloon vormt de kolomkoppen voor de start- en eind datum/tijd van de periodes op de rijen.
  • Meteen hierna komt het [#activity_startsection(user) en activity_endsection#] tagpaar die alle activiteiten in het rapport uitschrijft.  Dit vormt het gedeelte van de kolomkoppen met de activiteitdetails.
    • Merk op dat er een komma voor de details in deze sectie staat; op deze manier wordt elk element gescheiden met een komma (zoals vereist door het kommagescheiden formaat).
    • Sinds elke activiteit vooraf wordt gegaan door een komma hoeft u niet expliciet de "Eind" kolomkop te scheiden van de eerste activiteit.
    • Elke activiteit wordt gerepresenteerd door zijn pad via de [#activity_path#] tag.
  • Nadat de activiteit kolomkoppen opgebouwd zijn nemen we de laatste "Totale tijd" kolomkop op, voorafgegaan door een komma om deze te scheiden van de laatste activiteit.
  • Omdat elke rij in een kommagescheiden bestand op zijn eigen regel moet staan, en omdat lege regels niet gewenst zijn in kommagescheiden bestanden, moet u precies een regeleinde opnemen tussen de [#timeperiod_startsection(user) en [#timeperiod_endsection#] tags.  Omdat de eerste datarij in ieder geval van de kolomkoprij gescheiden moet worden is het het beste om de regeleinde aan het einde van de kolomkopregel op te nemen.  Op dezelfde regel als de kolomkoppen volgt dus op het eind de [#timeperiod_startsection(user)#] tag met niets erna dan de regeleinde.
  • Elke dataregel wordt voorafgegaan door de start- en eind datum/tijd van de periode die de rij representeert.  Dit wordt bereikt via de [#timeperiod_start#] en [#timeperiod_end#] tags.  Deze moeten gescheiden worden met een komma.
  • Na de kolomkopregel volgt de tijdgegevens.  Dit wordt op dezelfde manier gedaan als dat de kolomkopregel werd opgebouwd, nu gebruik makend van de [#timeperiod_activity_startsection(user)#] en timeperiod_activity_endsection#] tagpaar.  Elke tijdswaarde wordt uitgeschreven door de timeperiod_activity_time(roundsum)#] tag.

Algemene opmerkingen

  • Omdat u precies op de plek waar u een rapportsectie wilt uitschrijven de start- en eindtag van een tagsectie op moet nemen, is het soms niet mogelijk bepaalde sjablonen in alle editors te bewerken.  Een voorbeeld is HTML-geformatteerd rapport waarin u een tabel op wilt bouwen met de periodes op de rijen.  In dit geval moeten de start- en eindtags die de rijen uitschrijven om de HTML rijtags (<tr> en </tr>) heen worden geplaatst, maar binnen de <table> tag.  Dit is echter niet geldig in HTML; willekeurige tekst tussen deze tags is niet toegestaan.  U kunt echter nog steeds een HTML editor gebruiken om de algemene opbouw van het sjabloon op te zetten, maar u moet een teksteditor zoals Kladblok gebruiken om uiteindelijk de sectie start- en eindtags in te voegen.
  • De tagnamen zijn hoofdlettergevoelig en u kunt geen spaties, tabs en regeleindes in ze opnemen.  Niet herkende tags worden niet verwerkt.
  • Wanneer u een bestaand rapportsjabloon bewerkt wordt deze overschreven als u een nieuwere versie van TimeTraces installeert.  Om uw wijzigingen te bewaren is het verstandig om een kopie te maken van het sjabloon dat u aan wilt passen en deze kopie vervolgens te gebruiken.  Vergeet niet een nieuwe naam voor deze kopie op te geven, anders kunt u de kopie en het origineel niet meer van elkaar onderscheiden in de "Rapportsjabloon" selectie.
  • Wanneer u een draagbare installatie maakt van TimeTraces die de rapportsjablonen bevat, worden alle bestanden in de "Report templates" submap gekopieerd.
  • Het tabellay-out formaat dat in de RTF specificatie wordt gebruikt is moeilijk te combineren met het dynamisch opbouwen van tabellen via sjabloonsubstitutie.  De reden hiervoor is dat u de absolute positie van de rechterkant van elke tabelcel individueel op moet geven (via het \cellx commando).  Wanneer u tabellen in RTF gebruikt kunt u de dynamische expansie het beste beperken tot de rijen, en een vast aantal voorgedefinieerde kolommen gebruiken.  De kolommen kunnen natuurlijk nog steeds sjabloonparameters bevatten.  Als u dynamisch kolommen toe wilt voegen via het sjabloon, kunt u het beste de "activity_nr" of "timeperiod_nr" tags gebruiken om oplopende kolom eindposities te genereren (bijvoorbeeld in veelvouden van 100 door gebruik te maken van "\cellx[#activity_nr#]00").
  • Als u van plan bent om RTF sjablonen te maken kunt u dit (in ieder geval initieel) het beste via Wordpad doen en niet via Microsoft Word.  Wordpad gebruikt een veel kleinere subset van de RTF specificatie waardoor de omvang en de complexiteit van de gegenereerde RTF sterk wordt gereduceerd.  De op deze manier gemaakte sjablonen zijn nog steeds volledig compatibel met Microsoft Word.