Inleiding Swing Viewer beschikt over een module voor het maken van dynamische en vaste rapporten. Met deze rapportenmodule is het mogelijk om tabellen, grafische presentaties en teksten samen te voegen in een dynamisch gegenereerde (document) weergave. De gebruiker kan vervolgens door het opgeven van perioden en/of gebieden het gewenste rapport aanmaken. Beheerders van Swing kunnen deze dynamische rapporten opzetten in Swing Studio. Daarnaast is het mogelijk om vaste rapporten te maken. Dit kunnen html of pdf bestanden zijn en zijn verder niet aanpasbaar. Hoe het maken van rapporten in zijn werk gaat, staat in deze handleiding beschreven. Het hoofdstuk ‘Opzetten dynamisch rapport’ legt uit hoe in enkele stappen een eenvoudig dynamisch rapport is op te zetten. Dit rapport is eventueel verder aan te vullen met dynamisch waarden en/of tekst. Het hoofdstuk ‘Opzetten vast rapport’ beschrijft hoe een vast rapport gemaakt kan worden. Het hoofdstuk ‘Geavanceerd rapport’ beschrijft de overige mogelijkheden en functies van de rapportenmodule voor het verder dynamiseren van het rapport. Heeft u vragen en/of opmerkingen over de rapportenmodule van Swing Viewer, dan kunt u contact opnemen met de Swing Helpdesk op telefoonnummer 015 – 2799 399 of stuurt u een bericht naar helpdesk@swing.eu.
Opzetten dynamisch rapport In de volgende paragrafen is in 6 stappen beschreven hoe een eenvoudig dynamisch rapport in Swing te maken is. Voor het maken van een rapport dient men te zijn ingelogd in Studio. Rapport aanmaken in Studio Ga in het menu via ‘Weergave’ naar ‘Rapporten’. De pagina ‘Rapporten’ opent zich in hetzelfde scherm. Klik onderaan de pagina ‘Rapporten’ op de button ‘Item toevoegen’ om een nieuw rapport aan te maken. Een pop-up met de rapportinstellingen opent zich. Hierin zijn de volgende kenmerken van het rapport in te stellen: Rapportcode: unieke code die is opgebouwd uit uitsluitend letters, cijfers en/of een underscore (standaard staat hier een willekeurige code, die te wijzigen is) Naam: de naam van het rapport is zichtbaar in de themaboom en bovenin het weergavescherm Vast rapport: voor een vast rapport (bijvoorbeeld een pdf) moet deze optie zijn aangevinkt Type: de meest gebruikte typen zijn pdf voor vaste rapporten en html (nodig voor dit rapport) voor dynamische rapporten Bestandsnaam: bij een vast rapport wordt hier een bestand (pdf) gekoppeld, dat is opgenomen bij de rapportbestanden WordTemplate: voor de download van het rapport in Word wordt hier een Wordsjabloon opgegeven, dat is opgenomen bij de rapportbestanden (optioneel) PowerPointTemplate:voor de download van het rapport in Powerpoint wordt hier een Powerpointsjabloon opgegeven, dat is opgenomen bij de rapportbestanden (optioneel) Beschrijving: mogelijkheid om een korte beschrijving voor bij het rapport op te geven (optioneel) Meer informatie: mogelijkheid om link naar een informatiebestand of andere website op te geven (optioneel) Openen in een nieuw venster: optie om het rapport te openen in een nieuw venster (standaard uit) Pdf export toegestaan: optie om het rapport te kunnen downloaden in pdf (standaard aan) Word export toegestaan: optie om het rapport te kunnen downloaden in Word (standaard aan) Powerpoint export toegestaan: optie om het rapport te kunnen downloaden in Word (standaard aan) UseUserLayout: indien deze optie is ingeschakeld dan wordt de opmaak gebruikt welke is gedefinieerd bij de gebruikersgroep Zoektermen: vul hier algemene zoektermen in voor dit rapport, gebruik aanhalingsteken om zoektermen van elkaar te scheiden. De zoektermen worden door Swing gebruikt om het zoekresultaat te optimaliseren Gebruik Base href: deze instelling zorgt ervoor dat er een base element toegevoegd wordt aan de pagina. Daarin staat een verwijzing naar de rapportbestanden map waar bijvoorbeeld stylesheets en scripts in staan. Als deze instelling uit staat moet ervoor gezorgd worden dat de link naar een stylesheet of script rechtstreeks gelinkt wordt dus met de hele url in de verwijzing. Het grote nadeel van het uitzetten van deze instelling is dat de links steeds moeten worden aangepast bij het wisselen tussen de live en studio omgeving. Gebruik Scroll script: als "Gebruik Base href" aanstaat werken interne links niet meer goed, bijvoorbeeld bij een inhoudsopgave. Een oplossing hiervoor is het aanzetten van de instelling "Gebruik Scroll script", hiermee wordt javascript toegevoegd aan het rapport dat ervoor zorgt dat de links weer goed werken. Klik na het invullen van de velden op ‘Ok’ om de kenmerken op te slaan en het rapport aan te maken. Het rapport is toegevoegd in een nieuwe regel. Door te klikken op het veld ‘Inhoud’ opent zich een pop-up waarin het mogelijk is de inhoud van het rapport aan te passen. Standaard is het rapport voorzien van enkele noodzakelijke regels html, waaronder de ‘title’ en de verwijzing naar het stijlbestand (css). Vul de titel in tussen de elementen
Opzetten vast rapport Naast het maken van een dynamisch rapport is het ook mogelijk om een vast rapport te maken. Dit rapport is verder niet aan te passen en is niet dynamisch. Het kunnen bijvoorbeeld pdf bestanden zijn die binnen de Swing Viewer geopend kunnen worden. Zowel pdf bestanden als (statische) html bestanden kunnen als vast rapport worden opgenomen. Deze bestanden moeten eerst in de rapporten map van Studio geplaatst worden, waarna deze bestanden als vast rapport kunnen worden opgenomen. Dit kan middels de button ‘Rapport bestanden’ links onder binnen het rapporten menu (Weergave > Rapporten): Vervolgens opent het menu waar de bestanden in de rapportenmap geplaatst kunnen worden. Door met de rechtermuisknop op de map ‘Rapporten’ te klikken en vervolgens te kiezen voor ‘Bestand toevoegen’ kan het gewenste pdf of html bestand toegevoegd worden. Nu de bestanden toegevoegd zijn, kunnen ze als vast rapport worden opgenomen. In het vorige hoofdstuk is beschreven hoe een rapport aangemaakt kan worden. Om een vast rapport aan te maken is het hierbij van belang om dit bij de rapportinstellingen aan te geven middels het aanvinken van de optie ‘Vast rapport’. Als type dient pdf of html geselecteerd te worden. Via de setting ‘Bestandnaam’ dient dit bestand via het drop down menu geselecteerd te worden. Nadat het rapport is aangemaakt kan deze aan de themaboom worden toegevoegd.
Geavanceerd rapport Naast het feit dat we presentaties en teksten kunnen dynamiseren aan de hand van de selectie van de gebruiker, kunnen we het rapport nog op andere manieren dynamisch maken. Dit kan met behulp van conditionele statements. Deze statements kunnen gebaseerd zijn op waardes uit presentaties, maar ook uit andere gedefinieerde variabelen. De basis van een conditionele statement is ‘if’. Een eenvoudig statement kan zijn: If onderwerpcode > waarde then Write(“tekst1”) else Write(“tekst2”) end if Bijvoorbeeld: #if data_inw > 100000 then Write(“veel”) else Write(“weinig”) end if# Bovenstaand statement zorgt ervoor dat het woord “veel” wordt geschreven als het betreffende gebied meer dan 100.000 inwoners heeft en dat er “weinig” wordt geschreven indien het er 100.000 of minder zijn. Met behulp van dit type statement zijn dus woorden en zinnen aan te passen aan de selectie van de gebruiker. Condities Condities op basis van waarden Er zijn meerdere en andere condities mogelijk bij het samenstelen van een if statement. Met de 3 onderstaande condities wordt het aantal mogelijkheden sterk vergroot: And: If onderwerpcode > waarde and onderwerpcode2 > waarde2 then Write (“tekst”) else Write (“tekst2”) end if Bijvoorbeeld: #if data_inw > 100000 and data_opp > 100 then Write(“relatief groot”) else Write(“vrij klein”) end if# Bovenstaand statement zorgt ervoor dat de woorden “relatief groot” worden geschreven als het betreffende gebied zowel meer dan 100.000 inwoners als een oppervlakte groter dan 100 km² heeft, en dat er “vrij klein” wordt geschreven indien 1 of beide condities minder zijn. Dit statement kan rekening houden met een groot aantal condities. Or: If onderwerpcode > waarde or onderwerpcode2 > waarde2 then Write (“tekst”) else Write (“tekst2”) end if Bijvoorbeeld: #if data_inw > 100000 or data_opp > 100 then Write(“relatief groot”) else Write(“vrij klein”) end if# Bovenstaand statement zorgt ervoor dat de woorden “relatief groot” worden geschreven als het betreffende gebied óf meer dan 100.000 inwoners óf een oppervlakte groter dan 100 km² heeft en dat er “vrij klein” wordt geschreven indien een van de twee minder is. Dit statement kan rekening houden met een groot aantal condities. Equal: If equal (onderwerpcode, “waarde”) then Write (“tekst”) else Write (“tekst2”) end if Bijvoorbeeld: #if equal(data_inw, “-99998”) then Write(“n.v.t.”) end if# Bovenstaand statement zorgt ervoor dat de tekst “n.v.t.” verschijnt als de data van de variabele onbekend (-99998) is. Andere toepassingen: If statements hoeven niet alleen afhankelijk te zijn van de waarden van opgegeven data. Ook op basis van de gebieds- of periodekeuze is het mogelijk om de tekst te bepalen. Gebied: If equal(code(inp_geo, “gebiedsniveaucode_gebiedscode”) then Write (“tekst”) end if Bijvoorbeeld: #if Equal(code(inp_geo), "gemeente_363") then Write(“hoofdstad”) end if# Bovenstaand statement bepaalt dat er “hoofdstad” wordt geschreven indien Amsterdam (gemeentecode=363) wordt geselecteerd door de gebruiker. Periode: If equal(code(inp_period, “jaartal”) then Write(“tekst”) end if Bijvoorbeeld: #if Equal(code(inp_period), "2016") then Write("In 2016") end if# Bovenstaand statement toont de tekst “In 2016” mits de gebruiker het jaar 2016 als input geselecteerd heeft. We hebben nu steeds aan de hand van een conditie bepaalt dat er al dan niet iets geschreven moet worden. Echter, niet alleen tekst kan afhankelijk gemaakt worden. Het tonen van elk onderdeel van een rapport kan afhankelijk gemaakt worden van een if statement. Hieronder twee voorbeelden: Presentaties: Bijvoorbeeld: #if data_inw > 100000 or data_opp > 100 then# #show(pres_1)# #end if# Met behulp van bovenstaand if statement wordt Presentatie 1 alleen getoond als het inwoneraantal van een gebied hoger is dan 100.000 of de oppervlakte meer dan 100 km². Indien er niet voldaan wordt aan een van deze condities zal Presentatie 1 niet getoond worden. Tekst (Html): Bijvoorbeeld: #if equal(data_inw, “-99998”) then# De data van deze gemeente is niet beschikbaar. #else# Inwoners #show(pres_1)# Bovenstaande tabel toont het aantal inwoners in de gekozen gemeente. #end if# In bovenstaand if statement is het tonen van de html code inclusief presentatie en tekst afhankelijk van de data van het onderwerp data_inw. Indien dit een onbekende is, wordt verteld dat de data niet beschikbaar is. Indien data_inw geen -99998 is, zal de html inclusief presentatie en tekst gewoon getoond worden. Functies Onderstaande opsomming dient als overzicht van alle functies binnen rapporten in Swing 5. We leggen voor elke functie uit waar deze toe dient en vervolgens wordt er een voorbeeld van een toepassing van de functie gearceerd weergegeven. Let er op dat we in het voorbeeld slechts één enkele toepassing tonen. Dit doen we meestal met behulp van de functie #Show#. Vaak heeft een functie meerdere toepassingen en is het mogelijk om een beschreven functie met bijvoorbeeld een “if statement” combineren. De functies zijn ingedeeld in diverse categorieën, namelijk algemeen, onderwerpen, tabellen, perioden, gebieden, Javascript en tenslotte opmaak en overige. Algemeen Show Show(context) Elk type content dat met srl bovenaan het rapport gedefinieerd is kan worden getoond met Show. #Show(pres_1)# Presentatie 1 wordt getoond. Item Item(context,dim_period/dim_variable/dim_geo, x) Het opvragen van het x-ste element (periode, onderwerp of gebied) van een presentatie of onderwerp. #Show(Item(pres_1, dim_variable, 3))# Het 4e onderwerp waaruit pres_1 bestaat wordt getoond. Shortname Shortname(Item(context, dim_period|dim_geo,x)) Het opvragen van de korte naam van een periode of gebied. #Shortname(Item(pres_1, dim_period, 0))# De korte naam van de 1e periode uit de presentatie wordt getoond. Code Code(context) Onderliggende code(s) van verschillende type variabelen. #Code(input_geo)# De code(s) van de gekozen input(s) wordt getoond. SubCode SubCode(context) Deel van onderliggende code van verschillende type variabelen. #SubCode(input_geo)# Deel van de code van de gekozen input wordt getoond (alleen het gebiedsnummer). Date Date(context) Datum. #Date(input_geo)# Datum en tijd worden weergegeven. Als er tussen de haakjes niets wordt ingevuld, wordt alleen de datum weergegeven, exclusief de tijd. ListCount ListCount(Items(presentatie, dim_period/dim_geo/dim_variable)) Tellen van het aantal periodes/gebieden/onderwerpen binnen een presentatie. #Write(ListCount(Items(pres_1, dim_geo)))# Het aantal gebieden waarop de presentatie gebaseerd is wordt getoond. Onderwerpen Abs(onderwerpcode) Absolute waarde van een onderwerp. #Write(Abs(inw3112))# De absolute waarde van onderwerp ‘inw3112’ wordt getoond. Description Description(Ind.onderwerpcode) De beschrijving van een onderwerp. #Description(Ind. inw3112)# De beschrijving van het onderwerp met code ‘inw3112’ wordt getoond. DataSource DataSource(Ind.onderwerpcode) De bron van een onderwerp. #DataSource(Ind.inw3112)# De bron van het onderwerp met code ‘inw3112’ wordt getoond. DataSource attributen DataSource(Ind.onderwerpcode,"attribuut") Het attribuut van de bron van een onderwerp. Overeenkomstig met de kolommen in de bronnentabel van Studio. #DataSource(Ind.inw3112,"actuality")# Het attribuut "actuality" van het onderwerp met code ‘inw3112’ wordt getoond. Dus wat opgegeven is in de kolom actuality van de bronnentabel. De volgende attributen zijn mogelijk: actuality datasourcetype description sourcedataowner sourcedatafiles metadatamodified contactdetails dataprocessingmethod freetextfield1 freetextfield2 freetextfield3 frequency infourl name referencedate scalelevel keywords shortname termsofuse De attributen komen overeen met de gelijknamige kolommen in de bronnentabel van Studio. IsEmpty IsEmpty(Tekstonderwerp) De functie geeft terug of de opgegeven tekstvariabele leeg is. De functie is alleen te gebruiken in een ‘if statement’. #if IsEmpty(opena6_) then write(“Niet ingevuld”) end if# Het rapport toont de tekst “Niet ingevuld” op het moment dat de tekstvariabele leeg is. Tabellen Data Data(presentatie, index van dimensie 1, index van dimensie 2) Data uit een cel van een tabel. #Data(pres_1, 5, 4)# De celwaarde van de 6e rij en de 5e kolom van de desbetreffende tabel wordt opgeroepen. CellColor CellColor(presentatie, index van dimensie 1, index van dimensie 2) Kleurcode van de opgeroepen cel uit een kleurentabel. #CellColor(pres_1, 1, 2)# De kleurcode van de cel van de 2e rij en 3e kolom van de desbetreffende kleurentabel wordt opgeroepen. CellCountValue CellCountValue(presentatie) Opvragen van het aantal cellen met een waarde binnen een presentatie. Alle -99998 en -99999 worden niet meegeteld. #Show(CellCountValue(pres_1))# Het aantal bekende waarden in de presentatie wordt getoond. Minimum Min(presentatie,kolomindex) Opvragen van het minimum uit een geselecteerde tabelkolom. #Show(Min(pres_1,2))# Het getal uit de cel met de laagste waarde wordt getoond. Maximum Max(presentatie,kolomindex) Opvragen van het maximum uit een geselecteerde tabelkolom. #Show(Max(pres_1,2))# Het getal uit de cel met de hoogste waarde wordt getoond. Som Sum(presentatie,kolomindex) Opvragen van de som uit een geselecteerde tabelkolom. #Show(Sum(pres_1,2))# De som van de opgegeven kolom wordt getoond. Gemiddelde Mean(presentatie,kolomindex) Opvragen van het gemiddelde uit een geselecteerde tabelkolom. #Show(Mean(pres_1,2))# Het gemiddelde van de opgegeven kolom wordt getoond. Standaarddeviatie Stddev(presentatie,kolomindex) Opvragen van de standaarddeviatie uit een geselecteerde tabelkolom. #Show(Mean(pres_1,2))# De standaarddeviatie van de opgegeven kolom wordt getoond. Mediaan Median(presentatie,kolomindex) Opvragen van de mediaan uit een geselecteerde tabelkolom. #Show(Median(pres_1,2))# De mediaan van de opgegeven kolom wordt getoond. Perioden Period Period(presentatie, x) Een periode uit een presentatie. #Show(Period(pres_1, 0))# De 1e periode waaruit presentatie 1 is opgebouwd wordt getoond. MostRecentPeriods MostRecentPeriods(onderwerpcode, periodetype,x),y Toont een y aantal van de x meest recente gebieden van een onderwerp. #Write(MostRecentPeriods(inw3112,year,6),5)# 2015, 2014, 2013, 2012, 2011. First First(Periods(context), aantal) Toont de eerste x aantal periodes waarop voor een onderwerp of preselectie data is ingelezen. #Show(First(Periods(inw3112), 3))# 2000, 2001, 2002. Last Last(Periods(context), aantal) Toont de laatste x aantal periodes waarop voor een onderwerp of preselectie data is ingelezen. Eventuele prognosedata wordt hierin ook meegenomen, in tegenstelling tot bij MostRecentPeriods. #Show(Last(Periods(pres_1), 2))# 2016, 2015. Range Range(_jaartal1, _jaartal2) Alle periodes tussen de opgegeven periodes. #Show(Range(_2004, _2010))# 2004, 2005, …, 2010. Previous Previous(input_period) De periode x-1. #Write(Previous(input_period))# Als het gekozen jaartal 2015 is, zal 2014 getoond worden. Next Next(input_period) De periode x+1. #Write(Next(input_period))# Als het gekozen jaartal 2015 is, zal 2016 getoond worden. Gebieden GeoItem GeoItem(presentatie, x) Een gebied uit een presentatie. #Show(GeoItem(pres_1, 2))# Het 3e gebied waaruit presentatie 1 is opgebouwd wordt getoond. Parent Parent(input_geo, gebiedsniveau) Oudergebied van gekozen gebied. #Show(Parent(input_geo, provincie))# Het oudergebied van het gekozen gebied wordt getoond. In het geval dat gemeente Aa en Hunze wordt gekozen, wordt ‘Drenthe’ getoond. Descendants Descendants(input_geo, gebiedsniveau) Kindergebieden van gekozen gebied. #Show(Descendants(input_geo, wijk15))# De kindergebieden van het gekozen gebied worden getoond. In het geval dat gemeente Aa en Hunze wordt gekozen, worden alle wijken binnen Aa en Hunze getoond. Siblings Siblings(input_geo) Alle gebieden van hetzelfde gebiedsniveau als het gekozen gebied. #Show(Siblings(input_geo))# Alle gebieden van hetzelfde gebiedsniveau als het gekozen gebied worden getoond. In het geval dat gemeente Aa en Hunze wordt gekozen, worden alle andere gemeenten getoond. ListJoin ListJoin(Gebiedsniveau x, Gebiedsniveau y) Het combineren van gebieden van 2 verschillende gebiedsniveaus in 1 lijst. # Input_compare = input {Type: Geoitem; Caption: “Kies 3 vergelijkingsgebieden”; Subset: ListJoin(Parents(input_geo), Siblings(input_geo)); Min: 1; Max: 3;} # Het combineren van gebieden kan toegepast worden op een input voor de keuze van een vergelijkingsgebied (input_compare). Op deze manier worden zowel de hogere gebiedsniveaus van de input_geo en de gebieden binnen het gebiedsniveau van de input_geo selecteerbaar. ParentsOnLevel ParentsOnLevel(input_geo, gebiedsniveau) Oudergebied van gekozen gebieden (als input_geo uit meerdere gekozen gebieden bestaat). #Show(ParentsOnLevel(input_geo, provincie))# De oudergebieden van meerdere gekozen gebieden worden getoond. In het geval dat Aa en Hunze en Alkmaar worden gekozen, worden Drenthe en Noord-Holland getoond. LevelAndName LevelAndName(input_geo) Naam van gebiedsniveau en gebied. #LevelAndName(input_geo)# Gemeente Aa en Hunze. Plural name Pluralname(level(item(input_geo,0))) Naam (meervoud) van gebiedsniveau. #Write(pluralname(level(item(input_geo,0))))# Provincies. Javascript ToJson WriteJsonScript(pres_1) Toont de presentatie in de vorm van een binnen het rapport gedefinieerde Json script. #WriteJsonScript(pres_1)# Toont de presentatie in de vorm van een binnen het rapport gedefinieerde Json script. Opmaak en overige Grootte van het figuur (presentatie, pixels breedte, pixels hoogte) Past de standaard breedte en hoogte van het getoonde figuur aan. #show(pres_1,900,500)# Presentatie 1 wordt niet in de standaardgrootte gepresenteerd maar met 900 pixels breed en 500 pixels hoog. SetPDFMargins SetPDFMargins(Boven, Onder, Links, Rechts) Past de marges aan van de randen van het rapport bij export naar PDF. Alle 4 de waarden moeten worden ingevuld en zijn uitgedrukt in cm. #SetPDFMargins(0.95, 0.95, 1, 1)# De marges van het rapport in PDF zijn hiermee aangepast. PDFPageNumbers Setting_PdfPageNumbers = (true/false) Voegt pagina nummers toe aan de PDF export van een rapport, default = false. #Setting_PdfPageNumbers = true# Er worden pagina nummers toegevoegd indien het rapport als PDF wordt geëxporteerd. PDFLandscape Setting_PdfLandscape = (true/false) Exporteert de PDF in landscape (horizontale paginaweergave), default = false. #Setting_PdfLandscape = true# Het rapport wordt als PDF in landscape geëxporteerd. SetEditButtonText SetEditButtonText(“tekst”) Past de tekst aan van de -knop linksboven in het scherm. #SetEditButtonText(“Kies regio”)# HideEditButton HideEditButton() Schakelt de -knop linksboven in het scherm uit. #HideEditButton()# De -knop is niet meer zichtbaar. SetNoPrinting SetNoPrinting() Schakelt de -knop rechtsboven in het scherm uit. # SetNoPrinting()# De -knop is niet meer zichtbaar. HideReportHeader Setting_HideReportHeader = (true/false) Verwijdert de naam van het rapport uit de titelbalk. #Setting_HideReportHeader = true# De naam van het rapport is niet meer zichtbaar in de titelbalk.
Tips & tricks Zoeken en vervangen Binnen de rapporteneditor kan je de zoekfunctie oproepen door control + F in te drukken, een blanco zoekvenster verschijnt vervolgens rechtsbovenin. Als je iets selecteert en vervolgens op control + F drukt, wordt de geselecteerde tekst automatisch overgenomen in het zoekvenster. Met de pijltjes kan je er doorheen lopen, in de tekst zie je dat alle items met een randje gearceerd zijn. Als je vervolgens op ‘all’ klikt, wordt alles duidelijker zichtbaar en verdwijnt het zoekscherm. Makkelijk als je even door het rapport heen wil scrollen en kijken waar bepaalde woorden of teksten voorkomen. Als je iets selecteert en control + H indrukt, verschijnt een zoek en vervang scherm om tekst te vervangen. Binnen dit venster kan je met 'Replace' een gevonden item vervangen, met 'all' kunnen alle gevonden items in het rapport tegelijkertijd vervangen worden. Sneltoetsen Er zijn een aantal sneltoetsen die binnen de rapporten editor te gebruiken zijn: Control + K: Indien een stuk tekst is geselecteerd kan je met deze sneltoets de cursor naar de volgende locatie verplaatsen waar deze tekst voorkomt. Control + L: Hiermee kan je opgeven naar welke regel in het rapport je wilt gaan. Bijvoorbeeld als het rapport zelf begint op regel 200, kan je makkelijk hierheen navigeren. Control + P: Binnen een element kan je hiermee naar de boven- en onderkant navigeren. Control + [: Elementen kan je naar links laten verspringen. Control + ]: Elementen kan je naar rechts laten verspringen. Control + /: Hiermee kan je een regel uitcommentariëren.