Functies in fiscaal rapport
Door functies te gebruiken in een rapport bepaal je bijvoorbeeld wanneer een veld afgedrukt moet worden en of een veld in allemaal hoofdletters, of juist allemaal kleine letters afgedrukt moet worden.
Inhoud |
Functie IF
Met deze functie geef je aan of stukken tekst uit het RTF document wel of niet uitgevoerd moeten worden:
Let op:
Wij raden je aan om de rapportages aan te laten passen door iemand die verstand heeft van VBA script omdat de scripting die gebruikt wordt in de fiscale rapportages daar erg op lijkt.
Verder raden we je aan om elk jaar een nieuw kopie van de standaardrapportage te maken. Nieuwe onderdelen worden alleen toegevoegd in de standaard rapportage.
~IF (P00F001>0)~
De waarde van veld P00F001 is groter dan 0, namelijk : ~P00F001~
~ELSE~
De waarde van veld P00F001 is kleiner of gelijk aan 0, namelijk : ~P00F001~
~END~ Deze tekst wordt niet afgedrukt
Deze tekst wordt wel afgedrukt
Regels voor scripting:
- Wat er op de regel achter ~IF~ ~ELSE~ en ~END~ staat wordt niet meer afgedrukt!
- Na ieder ~IF~ ~ELSE~ en ~END~ statement moet een harde return staan. Dit kun je controleren door de knop in Microsoft Word te activeren.
Voorbeeld: goed statement:
Voorbeeld: fout statement:
- Bij iedere afvraging die te maken heeft met tekst, moet je quotes gebruiken. Dit zijn de quotes op de knop naast de 1 (meestal de knop met de tilde).
- De ~IF~, ~ELSE~ en ~END~ statements kunnen genest worden
Let op:
Het aantal ~IF~ in een document moet altijd gelijk zijn aan het aantal ~END~. Je kunt dit nakijken door in het document te kiezen voor Bewerken / Vervangen; je vervangt dan ~IF door ~IF en krijgt te zien hoe vaak de vervanging heeft plaatsgevonden. Vervolgens vervang je ~END~ door ~END~ en zie je hoe vaak dit is vervangen.
Voorbeeld: 1: Afvragen of een veld niet leeg is.
Als het veld niet leeg is, wordt de regel tussen ~IF~ en ~END~ getoond en anders wordt niets getoond.
~IF P60F013 <> ``~
Activiteiten vennootschap ~P60F013~
~END~Let op:
De quotes die in het IF statement staan (achter het ‘ongelijk aan’ teken) zijn niet de normale quotes, maar de quotes die zich meestal op de toets bevindt naast de 1.
Voorbeeld: 2: Afvragen of een veld nul leeg is.
Als het veld niet nul is, wordt alles tussen ~IF~ en ~END~ getoond en anders wordt niets getoond.
~IF P61F111 <> 0~
Vermeerdering belasting art. 34 Vpb (Ing. herkapitalisatie): ~#E#P61F111~
~END~Voorbeeld: 3: Afvraging met meerdere velden
Als een veld niet nul is of een ander veld is niet nul, wordt alles tussen ~IF~ en ~END~ getoond en anders wordt niets getoond.
~IF P61F096 <> 0 OR P61F112 <> 0~
Vermeerdering belasting art. 23a Vpb (Afk. pensioen/VUT): 52% over ~#E#P61F096~ ~#E#P61F112~
~END~Let op:
Je kunt ook in plaats van OR het statement AND gebruiken. In bovenstaand voorbeeld zouden dan beide velden ongelijk aan nul moeten zijn in plaats van 1 van beide.
Voorbeeld: 4: Afvraging of een specificatie gevuld is.
Als een specificatie gevuld is, wordt alles tussen ~IF~ en ~END~ getoond, anders wordt niets getoond.
~IF P60S056 = `1` Or P60S057 = `1`~
Investeringsaftrek en desinvesteringsbijtelling Ja
~END~Let op:
Het specificatie veld is dezelfde code als het ‘normale’ veld, alleen vervang je dan de ‘F’ (Field) door de ‘S’ (Specification). De waarde `1` geeft aan dat de specificatie gevuld is en de waarde `0` geeft aan dat de specificatie niet gevuld is.
Voorbeeld: 5: Afvraging van een Ja/Nee veld (vinkveld).
Als een vinkveld aangevinkt is, wordt alles tussen ~IF~ en ~END~ getoond, anders wordt niets getoond.
~IF P60F026 = `Ja`~
zo ja, nieuw boekjaar is van ~P60F027~ t/m ~P60F028~
~END~Let op:
De waarde `Ja` geeft aan dat het veld aangevinkt is, de waarde `Nee` geeft aan dat het veld uitgevinkt is. Maak je een rapportage in een andere taal, bijvoorbeeld in het Engels en je hebt de volgende code in de rapportage staan:
~LANGUAGE=EN~
Dan moet je de afvraging ook in het engels doen. Dus dan wordt de afvraging:
~IF P60F026 = `Yes`~
If so, new fiscal year from ~P60F027~ Up/incl. ~P60F028~
~END~
Voorbeeld: 6: Afvraging met een ~ELSE~ statement.
Als een veld aangevinkt is of een ander veld is aangevinkt, wordt alles tussen ~IF~ en ~ELSE~ getoond, anders wordt alles tussen ~ELSE~ en ~END~ getoond.
~IF P60S056 = `1` Or P60S057 = `1`~
Investeringsaftrek en desinvesteringsbijtelling Ja
~ELSE~
Investeringsaftrek en desinvesteringsbijtelling Nee~END~Voorbeeld: 7: Afvraging met meerdere ~IF~ ~END~ statements.
Als een veld niet nul is, alles tussen ~IF~ en ~END~ afdrukken, met geneste ~IF~ ~END~ statements.
~IF P65F020 <> 0~
Kosten (niet zijnde personeelskosten) Dit jaar
~IF P65F018 <> 0~
Kosten van grond- en hulpstoffen, inkoopprijs van de verkopen ~#E#P65F018~
~END~
~IF P65F019 <> 0~
Kosten uitbesteed werk en andere externe kosten ~#E#P65F019~
~END~
Totaal kosten ~#E#P65F020~
~END~
VB-script functies
In principe kun je de volgende VB script functies gebruiken:
- ~UCASE (AFASAddPostWoonplaats)~: dit script zorgt ervoor dat een veld in hoofdletters wordt afgedrukt.
- ~LCASE(AFASAddPostWoonplaats)~: dit script zorgt ervoor dat een veld in kleine letters worden afgedrukt.
- ~ABS(P00F001)~: deze functie zorgt ervoor dat de waarde van veld P00F001 als absoluut getal wordt getoond.
- ~LEN(P00F001)~: deze functie geeft het aantal karakters terug van het veld P00F001, dit zou voor opmaak handig kunnen zijn.
- ~LEFT, MID, RIGHT~: met deze functies is het mogelijk om een gedeelte van de waarde van een veld te tonen.
- ~CCUR~ : deze functie zet een veld met grotere bedragen om naar een numerieke waarde
- ~REPLACE~: deze functie vervangt een teken in een veld door een ander teken
Let op:
Zie VB script handleidingen voor verdere uitleg over het gebruik van deze functies.
Extra functionaliteit specificaties en groepen
De functies 6 en 7 hebben betrekking op de investeringslijst IB.
Nr |
Functionaliteit |
syntax |
1. |
~^<<>>~ |
|
2. |
Rekenen met velden binnen een specificatie of binnen een groep |
~^<< en >>~ (een veld id op de plek van EN plaatsen) |
3. |
~^<<! en >>~ (een veld id op de plek van "en" plaatsen) |
|
4. |
Een veld van een bovenliggend niveau invoegen binnen een specificatie en een groep |
~^<<* en >>~ |
5. |
Een veld van een hoofdtabel invoegen bij een specificatie binnen een groep |
~^<<$ en >>~ |
6. |
~CNum()~ |
|
7. |
Rekenen met variabelen binnen specificatie en groep, met totaaltelling |
~^ SET......~ |
8. |
Meerdere jaren (t.b.v. de fiscale kaart) en het huidige jaar |
~GetAllYears Fci~ en ~AFASCurrentYear~ |
9. |
Omschrijving van de accorderingswijze |
~^<<CtyViAmDs>>~ |
Voorbeelden
In de aangiften heb je bij veel velden de mogelijkheid om een specificatie in te vullen. Deze specificaties kun je afdrukken op het rapport.
Als je wilt weten welke specificatie het is volg je de volgende stappen:
- Open de aangifte.
- Open het juiste onderdeel, bijvoorbeeld Looninkomsten.
- Ga naar: Loonheffing artiesten of beroepssporters.
Hier zie je dat je een specificatie in kunt vullen.
- Hoover met je muis over het pijltje voor het veld.
- Je ziet nu de naam van de specificatie: SP01 , dit resulteert in Z01. Als je SP13 ziet resulteert dat in 13
- Als je een specificatie invult voor dit veld wordt deze afgedrukt door de volgende code:
~SPEC Z01S01F054~ (waarbij P een jaarafhankelijke code is. S is 2019; T is 2020)
~REPSPEC~
~Ds~ ~#A#Am~
~REPSPEC END~
~SPEC END~
1. Autonummering
~SPEC Z10S52F006~
~REPSPEC~
~^<<>>~
~REPSPEC END~
~SPEC END~
2. Rekenen binnen de groep
~GROUP S52~
~^ccur(<<S52F006>>)+ccur(<<S52F007>>)~
~GROUP END~
Rekenen binnen de specificatie
~SPEC Z10S52F006~
~REPSPEC~
~^ccur(<<AmDk>>)+ccur(<<AmIn>>)~
~REPSPEC END~
~SPEC END~
3. Totaal binnen een groep
~GROUP S52~
~^<<!S52F006>>~
~GROUP END~
Totaal binnen een specificatie
~SPEC Z01S02F078~
~REPSPEC~
~REPSPEC END~
~^<<!Am>>~
~SPEC END~
Berekend totaal binnen een specificatie
Er is een functie waarmee je berekende regelbedragen uit een specificatie kunt optellen. Je gebruikt hiervoor de @.
Als je het totaal nog moet afronden pas je de regel als volgt aan: ~^SET VARIB003 = VARIB003 + round(CNum(<<PePa>>) * CCur(<<AmDk>>) / 100)~
4. Tonen van een veld van een hoger niveau bij een groep
~GROUP S52~
~^<<*S00F006>>~
~GROUP END~
Tonen van een veld van een hoger niveau (groep) bij een specificatie binnen een groep
~GROUP S52~
~SPEC Z01S02F078~
~REPSPEC~
~REPSPEC END~
~^<<*PS2F006>>~
~SPEC END~
~GROUP END~
5. Tonen van een veld van het hoogste niveau (groep) bij een specificatie binnen een groep
~GROUP S52~
~SPEC Z01S02F078~
~REPSPEC~
~REPSPEC END~
~^<<$S52F006>>~
~SPEC END~
~GROUP END~
6. Een string omzetten naar en numerieke waarde
~GROUP S52~
~SPEC Z10S52F006~
~REPSPEC~
~PeDk~ * ~AmIn~ = ~^CNum(<<PeDk>>) * <<AmIn>>~
~REPSPEC END~
~SPEC END~
~GROUP END~
7. Rekenen binnen een specificatie, met totaaltelling
~GROUP S52~
~SPEC Z10S52F006~
~^SET VarAmIn = 0~
~REPSPEC~
~^SET VarAmIn = VarAmIn + <<AmIn>>~
~REPSPEC END~
Resultaat optelling: ~VarAmIn~
~SPEC END~
~GROUP END~
Rekenen binnen een groep, met totaaltelling
~SET VarInv = 0~--> initialisatie variabele VarInv (voor opslag van het berekende totaal)
~GROUP S52~
~^SET VarInv = VarInv + <<S52F006>> + 10~ Tel voor iedere regel de waarde van het veld S52F006 plus 10 op bij de variabele VarInv (verhoog het berekende totaal)
~GROUP END~
Totaal investeringsaftrek: ~^VarInv~ --> Toon het berekende totaal (dit is de inhoud van de variabele VarInv)
Totaal van de mogelijkheden:
~^SET VarInv = 0~
~GROUP S52~
~^SET VarInv = VarInv + <<S52F006>>~
~SPEC Z10S52F006~
~^SET VarAmIn = 0~
~REPSPEC~
~^SET VarAmIn = VarAmIn + <<AmIn>>~
~PeDk~ * ~AmIn~ = ~^CNum (<<PeDk>>) * <<AmIn>>~
~REPSPEC END~
Resultaat optelling: ~VarAmIn~
~SPEC END~
~GROUP END~
Totaal investeringsaftrek: ~^VarInv~
8. Ondersteuning van meerdere jaren (voor de fiscale kaart)
Winst uit onderneming: ~^<<FciF305>>~ --> Veld uit tabel Fci -> automatisch wordt herkend dat dit een veld is uit een tabel die meerdere jaren bevat. Standaard wordt het huidige jaar genomen voor de te tonen waarde.
Specificatie winst uit onderneming:
~SPEC Z49FciF305~
Omschrijving Bedrag
~REPSPEC~
~Ds~ ~Am~
~REPSPEC END~
Totaal: ~^<<!Am>>~
~SPEC END~
Winst uit onderneming: ~^<<FciF305:Y0>>~ --> Er staat een : in de tag. Deze geeft een scheiding aan. Na de : staat een Y. Dit geeft aan dat een specifiek jaar voor dit veld gekozen wordt. De 0, achter de Y geeft aan dat het huidige jaar plus 0 gebruikt zal worden
Specificatie winst uit onderneming: ~SPEC Z49FciF305:Y0~ --> Hier dezelfde : met hetzelfde doel. Je geeft voor de hele specificatie aan om welk jaar het gaat.
Omschrijving Bedrag
~REPSPEC~
~Ds~ ~Am~
~REPSPEC END~
Totaal: ~^<<!Am>>~
~SPEC END~
JAAR ~AFASCurrentYear + 1~:
Winst uit onderneming: ~^<<FciF305:Y1>>~ --> Toon de waarde van het veld voor het huidige jaar plus 1
Specificatie winst uit onderneming:
~SPEC Z49FciF305:Y1~ --> Toon de specificatiegegevens voor het huidige jaar plus 1
Omschrijving Bedrag
~REPSPEC~
~Ds~ ~Am~
~REPSPEC END~
Totaal: ~^<<!Am>>~
~SPEC END~
JAAR ~AFASCurrentYear + 1~:
Winst uit onderneming: ~^<<FciF305:Y+1>>~ --> Toon de waarde van het veld voor het huidige jaar plus 1
Specificatie winst uit onderneming:
~SPEC Z49FciF305:Y+1~ --> Toon de specificatiegegevens voor het huidige jaar plus 1
Omschrijving Bedrag
~REPSPEC~
~Ds~ ~Am~
~REPSPEC END~
Totaal: ~^<<!Am>>~
~SPEC END~
JAAR ~AFASCurrentYear - 1~:
Winst uit onderneming: ~^<<FciF305:Y-1>>~ --> Toon de waarde van het veld voor het huidige jaar min 1
Specificatie winst uit onderneming:
~SPEC Z49FciF305:Y-1~ --> Toon de specificatiegegevens voor het huidige jaar min 1
Omschrijving Bedrag
~REPSPEC~
~Ds~ ~Am~
~REPSPEC END~
Totaal: ~^<<!Am>>~
~SPEC END~
Direct naar |