Hoe maak je UDF’s voor je lay-out in Power BI

Hoe maak je UDF’s voor je lay-out in Power BI

Als Power BI‑developer herken je het vast, steeds opnieuw hetzelfde trucje uitvoeren, dezelfde kleuren hard‑coden, dezelfde SWITCH‑constructies kopiëren, dezelfde lay-out logica herhalen in elke measure.

Dat werkt… maar het kost tijd, vergroot de kans op fouten en maakt je model onnodig complex.

User Defined Functions (UDF’s) in DAX is hier de gamechanger!

In deze blog laat ik zien hoe UDF’s je helpen om slimmer te werken in Power BI en meer controle geven over je lay-out. Het resultaat is minder herhaling, meer consistentie en een rapport dat eenvoudiger te onderhouden is.

 

Maar eerst, wat is een UDF in Power BI?

Een User-Defined Function (UDF) in DAX is een functie die je zelf definieert.

 

UDF’s in de DAX Query View helpen je om:

  • DAX‑logica één keer te definiëren en overal te hergebruiken
  • je code overzichtelijk en modulair te houden
  • dynamische visuals en calculated tables aan te sturen

 

Bijvoorbeeld:  je hebt een tax% van 10%, deze definieer je zoals in onderstaande UDF

 

 

Om het tax% toe te passen maak je een measure.

 

Verandert de tax dan hoef je alleen maar de UDF aan te passen en in alle measures waarin je de AddTax functie gebruikt wordt dit dan automatisch ook toegepast.

 

Let op! UDF’s zijn nog in preview, je zet deze aan in bij Opties>Instellingen>Preview Features
Zie ook: Door de gebruiker gedefinieerde DAX-functies gebruiken (preview) – Power BI | Microsoft Learn

 

 

UDF’s maken voor je lay-out, hoe pak je dat aan:

 

  • Stap 1. Exporteer je Theme.json

Exporteer eerst je Power BI-thema (via Beeld → Huidig thema → Exporteren).
Hierin vind je de hex-kleuren die Power BI in visuals gebruikt.

Voor dit voorbeeld gebruik ik de eerste acht kleuren uit het thema.

Heb je nog geen Theme gedefinieerd? Kijk dan eens op Power BI Theme Generator – BIBB hier kan je met een paar klikken een PBI JSON Theme maken en downloaden.

 

  • Stap 2. Maak een ThemeColor-UDF

In DAX Query View kun je onderstaande functie maken.
Deze vertaalt een getal (1–8) naar een hex-kleur uit jouw thema.

 

Met deze functie kun je straks vanuit elke measure of calculated table een consistente kleur ophalen via pbi.ThemeColor(1) t/m pbi.ThemeColor(8).

 

  • Stap 3. Maak een ThemePalette-functie

De volgende functie bouwt automatisch een kleine tabel met jouw kleurenpalet.

 

 

Hiermee kun je in Power BI eenvoudig een calculated table maken:

Kleurkaart = pbi.ThemePalette()

Deze tabel bevat twee kolommen:

  • Value (1–8)
  • Hex (de kleurcode)

 

  • Stap 4. Maak een kleurblokje

Om de kleuren als afbeelding te tonen, maken we een derde functie: pbi.ColorSwatch.
Deze bouwt een kleine SVG-rechthoek op basis van de kleurcode.

 

 

Vervolgens maak je in je model de measure:

 

 

  •  Stap 5. Toon de kleurblokjes in een visual

            1. Voeg een buttonslicer toe in Power BI Desktop
            2. Kleurkaart[Value]op Value, Kleurkaart[Hex] op highlight label
            3. Ga naar Image>Image en sleep in ‘select from data’ de kleurblokjes measure en dan krijg je dit te zien:

 

Hoe pas je dit toe:

Bijvoorbeeld in combinatie met het Iconpack van Edward Charles
How to create your FIRST Power BI Icon Pack using DAX User Defined Functions (UDFs)!

Of pas toe als Field value in conditional formatting:

 

Tips:

  • Voeg een pagina toe aan je rapport waarin je kleuren en opmaakkeuzes toont. Zo kun je in één oogopslag zien welke kleuren in je thema zitten en ze dynamisch gebruiken in andere visuals.
  • Export deze opzet als een TMDL file en pas het in 1x (inclusief je measures) toe op je volgende rapport!

 

Meer lezen:

Nog meer lezen?:

 

 

Elise van Veenendaal