Inleiding tot ioi Pivot Expert #
ioi Pivot Expert is een draaitabeltool geïntegreerd in Silicon ioi. Het stelt u in staat om gegevens op een flexibele, interactieve en visuele manier te verkennen en te analyseren. Gebruikers kunnen hun eigen dynamische rapporten bouwen door gegevens te groeperen, te filteren en te aggregeren volgens aangepaste assen.
Het stelt u in staat om gegevens samen te vatten en te analyseren door informatie te groeperen langs verschillende assen (rijen, kolommen) en berekeningen uit te voeren (sommen, gemiddelden, tellingen, enz.).
Het transformeert ruwe gegevenstabellen in synthetische en leesbare weergaven, met krachtige sorteer-, filter- en groepeermogelijkheden.
Deze tool is bijzonder nuttig voor het snel verkrijgen van samenvattende resultaten per klant, agent, product, periode, enz.
Belangrijkste kenmerken:
- Transformatie van ruwe gegevens in synthetische en leesbare weergaven.
- Groepering van informatie per klant, agent, product, periode, enz.
- Geavanceerde berekeningen (som, gemiddelde, telling, enz.).
- Interactiviteit: dynamische aanpassing van assen en filters.
Voordelen:
- Tijdsbesparing: snelle analyse zonder complexe formules.
- Flexibiliteit: test meerdere analysehoeken in real-time.
- Toegankelijkheid: direct beschikbaar vanuit de lijst met weergaven in een module.
Ioi Pivot Expert is toegankelijk vanuit de lijst met beschikbare weergaven in een module:

Algemene interfacestructuur #
De ioi Pivot Expert interface is verdeeld in verschillende functionele gebieden, die we samen zullen doornemen om hun eigenschappen te begrijpen.

Refresh #
Knop gewijd aan het vernieuwen van de gegevensbron, zodat de analyse de laatste wijzigingen weerspiegelt.


Query profiles #
In deze sectie kunt u:
- Een nieuwe analyse selecteren, wijzigen of maken.
- Profielen beheren (aanmaken, verwijderen, importeren).

Lijst met beschikbare analyses:

Om een nieuw query profile te maken/het profiel te verwijderen/het profiel te wijzigen of oude profielen te importeren:

Query Profile Settings #



Een profiel maken op basis van DocType-structuur. #

Weergave van het nieuwe profielconfiguratievenster:


Profielbeschrijving:

Veld zoeken:

Weergave van het label dat in het DocType wordt weergegeven en veldnaam in de tabel.
Om een veld aan de analyse toe te voegen, dubbelklik op het veld of druk op de knop “Add field”.

Een profiel maken op basis van ioi List Expert. #


Let op, het analyseprofiel behoudt de veldlijst van de Expert view op het moment dat het werd aangemaakt.
Het kan onafhankelijk van het Expert view profiel worden gewijzigd en vice versa, de Expert view kan worden gewijzigd zonder een ioi Pivot Expert profiel te wijzigen.
Een profiel maken op basis van een query. #

Het DocType selecteren, velden selecteren en de SQL-query genereren.

Let op, deze actie van het genereren van een SQL-query zal de huidige query verwijderen.

Optie om standaard te filteren op de site van de gebruiker.

Dit benadrukt het gebruik van systeemvariabelen in het SQL-script.

Deze variabelen zijn dezelfde als die in rapportage.
De testknop om ervoor te zorgen dat de query geldig is.

Optie om het queryresultaat weer te geven en dit resultaat in XLSX-formaat te exporteren.


U kunt een SQL-query plakken van een andere SQL-creatietool zoals Adminer, een SQL-gegevensbron van een rapport of een SQL-query van een BI-toolanalyse zoals Insights.
Syntaxistesten wordt automatisch uitgevoerd bij het opslaan met een foutmelding als er een probleem is.

“Limit to roles” stelt u in staat om de toegang tot analyses voor bepaalde rollen te beperken.

Het memoveld stelt u in staat om de analyse te voorzien van opmerkingen over het ontwerp en het gebruik ervan.

Het selectievakje “Is public” moet worden aangevinkt om de analyse beschikbaar te maken voor andere gebruikers; zonder dit vakje aangevinkt, is de analyse alleen beschikbaar voor de maker ervan.

Het selectievakje “Is standard” geeft aan of de analyse deel uitmaakt van het standaard analysepakket of dat het een specifieke analyse is.

Standaardpakketanalyses zijn niet aanpasbaar; als u wijzigingen wilt aanbrengen, is het noodzakelijk om de analyse te dupliceren en deze kopie te wijzigen.
De lijst met analyses kan worden geraadpleegd in de module “ioi Pivot Query Definition”.

Gebruik de actie “Duplicate” op een rij als u een analyse wilt kopiëren en aanpassen.
Display profiles #
Hiermee kunt u meerdere presentaties voor dezelfde analyse definiëren.

Lijst met beschikbare profielen:

Om een bestaand profiel te wijzigen, door op de knop “Save display profile” te drukken, slaat u de presentatie op van de elementen die worden weergegeven in het momenteel geselecteerde profiel.

Om een profiel toe te voegen en te verwijderen:

Om profielopties te bewerken:

U kunt de identificatie en beschrijving van het profiel bewerken.

Beschikbare opties:


Om de weergave van rijen met afwisselende grijze of witte celachtergronden mogelijk te maken.


Om de kolombreedte aan te passen aan de inhoud.


Deze optie verwijdert duplicaten uit de weergave van waarden.


Om kolomkoppen samen te vouwen of uit te vouwen.


Om rijen samen te vouwen of uit te vouwen.


Hiermee kunt u linkerkolommen bevriezen


Om een eindtotaalkolom voor rijen weer te geven en deze kolom aan de rechterkant van de tabel te bevriezen.


Weergave van een rij voor het eindtotaal van kolommen.


Hiermee kunt u de toegang tot de tabelopmaakconfiguratie (waarden, kolommen en rijen) verwijderen.


Om kolomkoptekst verticaal weer te geven.

De verschillende zoek-, formaat- en exporttools voor een tabel:

Zoeken naar een waarde in de tabel:

Waardeopmaak:

Tabelexport:



De snelkoppeling om tabelconfiguratietools weer te geven/te verbergen: 
Parameters gebruiken om gegevens in de SQL-query te filteren (optimalisatie).
Parameters toevoegen vanuit ioi Pivot Query Definition.

Enabled: om de parameter te activeren.
Param ID: parameteridentificatie om te gebruiken in de SQL-query.
Prompt: tekst die boven de parameter wordt weergegeven.
FieldType:
- Data: teksttype
- Date: datumtype
- Datetime: datum-tijdtype
- Float: numeriek type
- Link: linktype naar een doctype
Default value: standaardwaarde om weer te geven in de parameter.
Last value: laatste waarde die voor de analyse is gebruikt.
Remark: informatie over de parameter.
Voorbeeld voor het gebruik van start- en einddatumparameters:



Voorbeeld voor het gebruik van een itemparameter:


Het gebruik van “System”, “Company” en “User” variabelen in de SQL-query.

De knop “Evaluate Query” stelt u in staat om de query uit te voeren en het resultaat weer te geven.
De knop “Clear” om de waarden van de laatste uitvoering te verwijderen.
Tabelstructuur #
De gebruikersinterface bestaat uit twee hoofdelementen: het configuratiepaneel en de gegevenstabel.

Configuratiepaneel
Het configuratiepaneel stelt u in staat om kolommen en rijen aan de tabel toe te voegen, evenals waardevelden die gegevensaggregatiem ethoden definiëren. U kunt elk element toevoegen via de volgende gebieden van het paneel:

Values: u kunt waarden toevoegen die definiëren hoe gegevens worden geaggregeerd (zoals som, minimum- en maximumwaarden).

Columns: u kunt tabelkolommen configureren (definiëren welke velden als kolommen zullen worden gebruikt).

Rows: u kunt configureren welke velden als tabelrijen moeten worden toegepast.
Values #
In dit gebied kunt u aggregatiemethoden definiëren (zoals min, max, count) die op draaitabelcellen worden toegepast. U kunt vervolgens de volgende bewerkingen uitvoeren:
- velden toevoegen en verwijderen uit het waardengebied
- de volgorde en prioriteit van waarden in de tabel wijzigen
- gegevens filteren
- bewerkingen definiëren die op tabelvelden worden toegepast
Columns #
In dit gebied kunt u de volgende bewerkingen uitvoeren:
- kolommen toevoegen en verwijderen (d.w.z. velden die als kolommen worden toegepast, toevoegen/verwijderen)
- de volgorde en prioriteit van tabelkolommen wijzigen
- gegevens filteren
Rows #
In het configuratiepaneel in het rijen-gebied kunt u de volgende bewerkingen uitvoeren:
- rijen toevoegen en verwijderen (d.w.z. velden die als rijen worden toegepast, toevoegen/verwijderen)
- de volgorde en prioriteit van tabelrijen wijzigen
- gegevens filteren
Bewerkingen in de gebieden
In alle drie de secties van het configuratiepaneel kunt u velden aan de tabel toevoegen of verwijderen. Om een veld als rij of kolom toe te passen, selecteert u het in de juiste sectie (kolommen of rijen).
Om een nieuw veld toe te voegen, klik in het vereiste gebied op de knop “+” en selecteer de naam uit de vervolgkeuzelijst.
Om een item te verwijderen, klik op de knop Verwijderen (“x”).

Om de volgorde van waarden/rijen/kolommen in de tabel te wijzigen, sleep een element naar de gewenste positie.
Om bewerkingen te definiëren die op alle gegevens in de tabelkolom worden toegepast, klik in het Values-gebied op de waardebewerking die overeenkomt met het vereiste veld in de vervolgkeuzelijst en selecteer vervolgens de gewenste optie uit de lijst.

Sum: Berekent de som van alle waarden.
Min: Retourneert de minimumwaarde.
Max: Retourneert de maximumwaarde.
Count: Telt het totale aantal waarden (inclusief duplicaten en nulwaarden).
CountA: Telt het aantal niet-nulwaarden in de gegevens.
CountUnique: Telt het aantal unieke waarden (zonder duplicaten).
Average: Berekent het rekenkundig gemiddelde van waarden.
Median: Retourneert de mediaanwaarde (de middelste waarde wanneer gegevens zijn gesorteerd).
Product: Berekent het product van alle waarden (opeenvolgende vermenigvuldiging).
StDev: Schat de standaarddeviatie van een steekproef (maat voor gegevensspreiding).
StDevP: Berekent de standaarddeviatie van een hele populatie (nauwkeuriger als alle gegevens beschikbaar zijn).
Var: Schat de variantie van een steekproef (kwadraat van de standaarddeviatie).
VarP: Berekent de variantie van een hele populatie.
Wanneer elk aggregaat te gebruiken?
- Sum/Count/CountUnique: Voor kwantitatieve analyses (totalen, frequenties).
- Min/Max/Average/Median: Voor beschrijvende analyses (centrale tendensen, extremen).
- StDev/Var: Om gegevensspreiding of stabiliteit te evalueren.
- Product: Specifieke gevallen (bijv. financiële of wetenschappelijke berekeningen).
CountA en CountUnique zijn nuttig om te voorkomen dat resultaten worden verstoord door nulwaarden of duplicaten.
Filters
Filters verschijnen als vervolgkeuzelijsten voor elk veld in alle gebieden. De draaitabel biedt de volgende typen filtervoorwaarden:
- voor tekstwaarden: gelijk aan, niet gelijk aan, bevat, bevat niet, begint met, begint niet met, eindigt met, eindigt niet met
- Voor numerieke waarden: groter dan, kleiner dan, groter dan of gelijk aan, kleiner dan of gelijk aan, gelijk aan, niet gelijk aan, bevat, bevat niet, begint met, begint niet met, eindigt met, eindigt niet met
- Voor datumtypes: groter dan, kleiner dan, groter dan of gelijk aan, kleiner dan of gelijk aan, gelijk aan, niet gelijk aan, tussen, niet tussen
Om tabelgegevens te filteren, klik op het filterpictogram van een van de elementen in het gewenste gebied, selecteer vervolgens de operator en definieer de filterwaarde, en klik ten slotte op Toepassen. Velden waarop het filter is toegepast, worden gemarkeerd met een specifiek filtersymbool.

Tabel
Tabelgegevens worden weergegeven volgens de configuratie die is gedefinieerd in het configuratiepaneel. Kolomsortering wordt ingeschakeld door op de kolomkop te klikken.

Mogelijkheid om op een documentreferentie te klikken om naar het document te worden omgeleid.

Een nieuw tabblad openen en naar het document gaan.

Om de oorspronkelijke lay-out van de analyse op te halen, positioneer op “_Default”.
De lijst met weergaveprofielen kan worden geraadpleegd in de module “ioi Pivot Expert Display Profile”.

Gebruikte component #
De ioi Pivot Expert interface is gebaseerd op de DHTMLX Pivot JavaScript-bibliotheek.
https://docs.dhtmlx.com/pivot/
Adminer #
Adminer is een lichtgewicht en krachtige databasebeheertool waarmee u kunt communiceren met Silicon ioi SQL-databases.
https://github.com/vrana/adminer
Adminer stelt u in staat om verbinding te maken met uw database en rechtstreeks SQL-query’s uit te voeren. Dit is bijzonder nuttig voor het voorbereiden van specifieke gegevens die u wilt gebruiken in ioi Pivot Expert.
Silicon ioi databases gebruiken het Mariadb databasebeheersysteem.
Toegang tot Adminer:
https://db.jouw_omgeving.ioi.online/adminer.php
Gebruikersnaam en wachtwoord.

Lijst met databases die op de server worden gehost.

Een database selecteren:

Lijst met databasetabellen:

Tabelgegevens weergeven:


Om de query te wijzigen:


Queryresultaat:

De SQL-functies die u kunt gebruiken in MariaDB om gegevens te extraheren, manipuleren en opmaken zijn zeer vergelijkbaar met die van andere SQL-databases.
Ze stellen u in staat om informatie te extraheren zoals jaar, maand, perioden te creëren als tekenreeksen, tekenreeksen te manipuleren (bijvoorbeeld de eerste of laatste tekens nemen), datumverschillen te berekenen, numerieke waarden af te ronden en resultaten te conditioneren op basis van bepaalde regels.
Deze functies zijn bijzonder nuttig voor het voorbereiden van uw gegevens voordat u ze analyseert in een tool zoals IOI Pivot Expert.
Voorbeeld van een query die is voorbereid voor gebruik in ioi Pivot Expert:


Nuttige SQL-functies:
CONCAT()
Twee of meer tekenreeksen samenvoegen
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;
SUBSTRING()
Een substring extraheren vanaf een specifieke positie
SELECT SUBSTRING(id_number, 1, 5) AS short_id FROM orders;
LENGTH()
De lengte van een tekenreeks retourneren
SELECT LENGTH(id_number) FROM orders;
REPLACE()
Een deel van een tekenreeks vervangen door een ander
SELECT REPLACE(prefix_id, 'ABC', 'XYZ') FROM orders;
TRIM()
Witruimte aan het begin en einde van een tekenreeks verwijderen
SELECT TRIM(id_number) FROM orders;
UPPER()
Een tekenreeks converteren naar hoofdletters
SELECT UPPER(customer_name) FROM orders;
LOWER()
Een tekenreeks converteren naar kleine letters
SELECT LOWER(customer_name) FROM orders;
LPAD() Spaties of tekens aan de linkerkant van een tekenreeks toevoegen
SELECT LPAD(id_number, 10, '0') FROM orders;
RPAD()
Spaties of tekens aan de rechterkant van een tekenreeks toevoegen
SELECT RPAD(id_number, 10, '0') FROM orders;
INSTR() De positie van een teken in een tekenreeks vinden
SELECT INSTR(id_number, '123') FROM orders;
SOUNDEX()
De fonetische waarde van een tekenreeks retourneren (voor vergelijking)
SELECT SOUNDEX(customer_name) FROM orders;
NOW()
De huidige datum en tijd retourneren
SELECT NOW();
CURDATE()
De huidige datum retourneren zonder tijd
SELECT CURDATE();
CURTIME()
De huidige tijd retourneren zonder datum
SELECT CURTIME();
DATE()
De datum (zonder tijd) extraheren uit een DATETIME- of TIMESTAMP-waarde
SELECT DATE(document_date) FROM orders;
YEAR()
Het jaar uit een datum extraheren
SELECT YEAR(document_date) FROM orders;
MONTH()
De maand uit een datum extraheren
SELECT MONTH(document_date) FROM orders;
DAY()
De dag uit een datum extraheren
SELECT DAY(document_date) FROM orders;
WEEK()
Het weeknummer van het jaar extraheren
SELECT WEEK(document_date) FROM orders;
DAYNAME()
De naam van de dag van de week extraheren
SELECT DAYNAME(document_date) FROM orders;
DAYOFWEEK()
Het dagnummer van de week extraheren (1 = zondag, 7 = zaterdag)
SELECT DAYOFWEEK(document_date) FROM orders;
DATE_ADD()
Een tijdsinterval aan een datum toevoegen
SELECT DATE_ADD(document_date, INTERVAL 1 MONTH) FROM orders;
DATE_SUB()
Een tijdsinterval van een datum aftrekken
SELECT DATE_SUB(document_date, INTERVAL 1 WEEK) FROM orders;
DATEDIFF()
Het aantal dagen tussen twee datums retourneren
SELECT DATEDIFF(CURDATE(), document_date) FROM orders;
ADDDATE()
Een datum aan een andere toevoegen
SELECT ADDDATE(document_date, INTERVAL 2 DAY) FROM orders;
LAST_DAY()
De laatste dag van de maand van een bepaalde datum retourneren
SELECT LAST_DAY(document_date) FROM orders;
ABS()
De absolute waarde van een getal retourneren
SELECT ABS(total_htva) FROM orders;
CEIL()
Het kleinste geheel getal groter dan of gelijk aan een getal retourneren
SELECT CEIL(total_htva) FROM orders;
FLOOR()
Het grootste geheel getal kleiner dan of gelijk aan een getal retourneren
SELECT FLOOR(total_htva) FROM orders;
ROUND()
Een getal afronden op een bepaald aantal decimalen
SELECT ROUND(total_htva, 2) FROM orders;
POWER()
Een getal tot een macht berekenen
SELECT POWER(total_htva, 2) FROM orders;
RAND()
Een willekeurig getal tussen 0 en 1 retourneren
SELECT RAND() FROM orders;
MOD()
De rest van de deling tussen twee getallen berekenen
SELECT MOD(total_htva, 100) FROM orders;
SIGN()
Het teken van een getal retourneren (1 voor positief, -1 voor negatief, 0 voor nul)
SELECT SIGN(total_htva) FROM orders;
COUNT()
Het aantal rijen in een groep tellen
SELECT COUNT(*) FROM orders;
SUM()
De som van waarden in een kolom berekenen
SELECT SUM(total_htva) FROM orders;
AVG()
Het gemiddelde van waarden in een kolom berekenen
SELECT AVG(total_htva) FROM orders;
MIN()
De minimumwaarde in een kolom vinden
SELECT MIN(total_htva) FROM orders;
MAX()
De maximumwaarde in een kolom vinden
SELECT MAX(total_htva) FROM orders;
GROUP_CONCAT()
Waarden uit een groep samenvoegen
SELECT GROUP_CONCAT(customer_name) FROM orders GROUP BY customer_family_1_id;
IF()
Een voorwaarde uitvoeren in SELECT (vergelijkbaar met CASE)
SELECT IF(total_htva > 1000, 'High', 'Low') FROM orders;
CASE
Meerdere voorwaarden in een enkele kolom
SELECT CASE WHEN total_htva > 1000 THEN 'High' ELSE 'Low' END FROM orders;
NULLIF()
NULL retourneren als twee waarden gelijk zijn, anders de eerste
SELECT NULLIF(total_htva, 0) FROM orders;
COALESCE()
Het eerste niet-NULL-argument retourneren
SELECT COALESCE(payment_term_id, 'No Term') FROM orders;
System Console #
De System Console-module in Silicon ioi is een geïntegreerde tool waarmee gebruikers SQL-query’s kunnen uitvoeren. Dit kan erg nuttig zijn voor het testen van query’s voor gebruik in ioi Pivot Expert.

Lijst met tabellen #
Niet-exhaustieve lijst van de meest gebruikte tabellen:
Ioi Accounting:
`tabioi Account Balance`
`tabioi Account Transaction`
`tabioi Accounting Journal`
`tabioi Customer`
`tabioi Customer Balance`
`tabioi Customer Transaction`
`tabioi Financial Calculation`
`tabioi Financial Calculation Line`
`tabioi General Account`
`tabioi Payment Reminder Campaign`
`tabioi Supplier`
`tabioi Supplier Balance`
`tabioi Supplier Transaction`
`tabioi Period`
Ioi Sales:
`tabioi Sales Quote`
`tabioi Sales Quote Detail`
`tabioi Sales Order`
`tabioi Sales Order Detail`
`tabioi Sales Delivery`
`tabioi Sales Delivery Detail`
`tabioi Sales Invoice`
`tabioi Sales Invoice Detail`
`tabioi Customer`
`tabioi Customer Contact`
`tabioi Sales Price`
`tabioi Sales Journal`
Ioi Purchases:
`tabioi Purchases Price Request`
`tabioi Purchases Price Request Detail`
`tabioi Purchases Order`
`tabioi Purchases Order Detail`
`tabioi Purchases Receipt`
`tabioi Purchases Receipt Detail`
`tabioi Purchases Invoice`
`tabioi Purchases Invoice Detail`
`tabioi Supplier`
`tabioi Supplier Contact`
`tabioi Purchases Price`
`tabioi Purchases Journal`
Ioi Items:
`tabioi Item`
`tabioi Stock Entry`
`tabioi Stock Entry Detail`
`tabioi Stock Output`
`tabioi Stock Output Detail`
`tabioi Warehouse`
`tabioi Warehouse Stock`
`tabioi Warehouse Stock Detail`