Een rapport maken
Het ontwerp van een rapport — banden, papier en marges, gegevenssets, parameters, elementen en regels, en de uitvoer in PDF of Excel.
Een rapport is een document dat vanuit de gegevens van de app wordt afgedrukt: een lijst, een factuur, een maandafsluitingsoverzicht. Het komt eruit als PDF — gepagineerd, met koppen die zich herhalen en totalen aan het einde — of als Excel, en het kan met de hand worden gegenereerd, door een knop op een scherm, door een script, door een workflow, of door een planning die het per e-mail verstuurt.
Het model is dat van banden: een rapport is geen scherm dat naar beneden groeit, het is een reeks stroken die de motor herhaalt volgens de regel van elke strook — één keer, per pagina, per rij, per groep. Dat is wat de paginering mogelijk maakt.
De eenheid is de millimeter, overal. Het is de eenheid van het papier en zij overleeft de overgang van A4 naar Letter.
Op deze pagina ontwerpen we het rapport Oportunidades por conta van de app Klantenbeheer: de commerciële pipeline gegroepeerd per account, met de contacten van elke account, het totaal per account en een grafiek aan het einde.
Waar de rapporten leven
De rapporten staan in de minitab Gegevens van de boomstructuur van de app, onder de gegevensbronnen. Klikken op de naam opent het ontwerp in een tabblad.

Een app zonder rapporten toont "Geen rapporten — maak er een om het te ontwerpen.".
Een rapport maken
- Ga met de muis over de regel van de groep Rapporten en klik op Nieuw rapport.
- Typ de Naam — bijvoorbeeld
Facturen van de maand. - Klik op Aanmaken.

"Maakt een rapport in de hoofdmap. U kunt het daarna naar een map verplaatsen." Het rapport wordt geboren op A4 staand, met de vijf vaste banden en zonder gekoppelde gegevens, en het ontwerp opent meteen.
Het ontwerp

Het tabblad heeft drie kolommen en een balk bovenaan:
| Zone | Wat het is |
|---|---|
| Bovenste balk | De naam, de identificatie van het rapport (rpt_…, wat de code gebruikt om het aan te roepen), de staat van het opslaan, ongedaan maken/opnieuw, de maten van het papier en de knoppen Excel en Voorbeeld. |
| Linkerkolom | Het palet Elementen, de Gegevens, de Groeperingen, de Parameters en de Planningen. |
| Midden | Het ontwerpvlak: een liniaal in millimeters en de banden, boven elkaar in de volgorde waarin ze op papier verschijnen. |
| Rechts | De eigenschappen — van het rapport, van de geselecteerde band of van het geselecteerde element. |
Zoals in de rest van het platform is er geen knop om op te slaan: het ontwerp slaat zichzelf op.
De banden
De banden vormen een vaste verzameling — u voegt niet naar believen stroken toe, omdat elke strook een eigen herhalingsregel heeft die de motor aan de naam herkent.

| Band | Wanneer die verschijnt |
|---|---|
| Koptekst van het rapport | "Komt één enkele keer, aan het begin van de eerste pagina." Logo, titel, datum van uitgifte. |
| Koptekst van de pagina | "Herhaalt zich boven aan elke pagina — logo, kolomtitels." |
| Detail | "Komt één keer per gegevensrij. Deze band vult het rapport." |
| Voettekst van de pagina | "Herhaalt zich onder aan elke pagina — paginanummer, datum." |
| Voettekst van het rapport | "Komt één enkele keer, aan het einde — algemene totalen." Wordt uitgeschakeld geboren. |
Daar komen, wanneer er groeperingen zijn, een koptekst en een voettekst per niveau bij — zie Grafieken en subrapporten.
Klikken op de titel van een band selecteert haar; het paneel rechts toont dan haar eigenschappen.
| Eigenschap | Wat die doet |
|---|---|
| Hoogte (mm) | De hoogte van de strook. U kunt ook de scheidingslijn op het ontwerpvlak slepen. |
| Actief | "Uitgeschakeld komt de band niet in het rapport en neemt hij geen ruimte in." |
| Regels van de band | De band onderdrukken afhankelijk van de gegevens. |
Over de regels: "de band onderdrukken afhankelijk van de gegevens. Onderdrukt komt hij er niet en neemt hij geen ruimte in — dat is wat het hebben van meerdere detailbanden vervangt". In plaats van drie detailstroken met verschillende voorwaarden: één strook en regels die haar verbergen wanneer zij niet van toepassing is.
Het papier
Met niets geselecteerd toont het paneel rechts de eigenschappen van het rapport en van de pagina:

| Veld | Opties |
|---|---|
| Naam / Beschrijving | Identificatie, voor wie bouwt. |
| Formaat | A4, A3, A5, Letter, Legal of Aangepast (breedte en hoogte in mm). |
| Oriëntatie | Staand of Liggend. |
| Marges (mm) | Boven, Onder, Links, Rechts. |
"De ruimte tussen het papier en de inhoud. Wat aan bruikbare breedte overblijft, is die van het ontwerpvlak" — de marges wijzigen verandert de breedte waarin u ontwerpt, en de liniaal gaat mee.
De sectie Weergave, onderaan het paneel, bevat de Zoom van het ontwerpvlak. Die heeft geen invloed op het document; het is alleen het vergrootglas van wie ontwerpt.
De gegevens
Een rapport zonder gekoppelde gegevens heeft geen velden om te slepen. Open Gegevenssets via de + van de sectie Gegevens:

Elke set heeft:
| Veld | Opmerkingen |
|---|---|
| Naam van de gegevensset | Hoe de elementen haar noemen (oportunidades, contactos). |
| Rol | hoofd, gekoppeld of losstaand — zie de tabel hieronder. |
| Tabel-API | De API van de app waar de rijen vandaan komen. |
| Filters (where) | Dezelfde filtergrammatica als in de rest van het platform. Kan vergelijken met parameters van het rapport. |
| Laden / Per pagina | Hoe de rijen worden gelezen. |
De drie rollen:
| Rol | Wat die betekent |
|---|---|
| hoofd | "De detailband loopt haar door, met één afgedrukte rij per rij ervan." Er is er maar één. |
| gekoppeld | "Hoort bij een rij van een andere set via het veld dat u aangeeft — de factuur en haar regels." |
| losstaand | "Niet doorlopen en niet gekoppeld, dient voor de koptekst of voor een algemeen totaal." |
Een gekoppelde set vraagt om drie velden meer: de Bovenliggende gegevensset, het Veld in de bovenliggende set ("het veld dat de bovenliggende rij aanduidt — meestal de sleutel") en het Veld in deze gegevensset ("het veld dat terugwijst naar de bovenliggende set").
Nota
De koppeling is een declaratie, en dat is wat haar snel maakt: de motor laadt alles in één keer en groepeert in het geheugen, in plaats van één query per rij van de hoofdgegevensset uit te voeren.
In de linkerkolom verschijnt elke set met het aantal velden en klapt zij uit met de pijl. Een veld naar een band slepen maakt een element Veld aan dat al gekoppeld is — dat is de snelste manier om de detailband te vullen.
De parameters
Parameters zijn "waarden die het rapport krijgt van wie het laat lopen" — de maand, de fase, de klant. U gebruikt ze in de filters van de gegevenssets.
| Veld | Opmerkingen |
|---|---|
| Naam | Hoe het filter en de code haar noemen. |
| Label | Wat er te lezen staat wanneer om de waarde wordt gevraagd. |
| Type | Tekst, Getal, Datum of Ja/Nee. |
| Verplicht | Zonder waarde weigert het rapport te lopen. |
| Standaardwaarde | Gebruikt wanneer wie het aanroept er geen meegeeft. |
De elementen
Het palet Elementen bevat alles wat u op een band zet. U sleept het naar de band; u laat het los waar het moet komen.

| Element | Waarvoor het dient |
|---|---|
| Tekst | Vaste tekst — titels, labels, voetteksten. |
| Veld | De waarde van een veld van de set. Dat is wat er uit het slepen van een veld komt. |
| Aggregaat | Een berekening over een set: Som, Gemiddelde, Aantal, Minimum, Maximum. |
| Systeemveld | Paginanummer, Totaal aantal pagina's, Pagina X van Y, Datum van uitgifte, Naam van het rapport. |
| Lijn | Scheidingen en omlijstingen. |
| Rechthoek | Achtergronden en kaders, met vulling, rand en hoeken. |
| Afbeelding | Een bestand van de app, een adres, of de inhoud van een veld. |
| Grafiek | Negen soorten, met dezelfde gegevens als de schermen. |
| Subrapport | Een ander rapport, binnen dit rapport ontworpen. |
| Streepjescode | Code 128, EAN-13 of QR. |
De laatste drie hebben een eigen pagina: Grafieken en subrapporten.
De eigenschappen van een element
Klik op een element op het ontwerpvlak:

| Sectie | Wat die bevat |
|---|---|
| Positie en grootte | X (mm), Y (mm), Breedte (mm), Hoogte (mm). De y telt vanaf de bovenkant van de band. |
| Uiterlijk | Lettertype, Grootte (pt), vet/cursief/onderstreept, uitlijning, Verticale uitlijning, kleur, Vulling, Rand (mm) en Kleur van de rand, Regel afbreken. |
| Notatie (velden en aggregaten) | Weergavemasker, met dezelfde grammatica als de kolommen van de tabel. |
| Export | Naam van de kolom in Excel. "Leeg gebruikt de naam van het veld. Op papier verschijnt hij niet — daar is de koptekst een tekst die u zet waar u wilt." |
| Opmaakregels | Zie hieronder. |
Over Regel afbreken: "uitgeschakeld wordt tekst die niet past afgekapt in plaats van naar de volgende regel te gaan" — dat is wat u wilt in een tabelkolom, zodat één lange regel niet de hele pagina opschuift.
Wanneer u meerdere elementen selecteert (met het selectiekader of met
Shift), zegt het paneel hoeveel het er zijn en verplaatst het ze samen, met
de muis of met de pijltoetsen.
Opmaakregels
Elk element kan regels hebben die "het uiterlijk wijzigen afhankelijk van de gegevens van de rij: een achterstallige waarde kleuren, een label verbergen, een totaal vet zetten wanneer het negatief is". Het zijn dezelfde motor en dezelfde editor als bij de regels van de widgets.
De laatste regel die opgaat, is de regel die geldt — orden ze van de meest algemene naar de meest specifieke.
Het resultaat bekijken
Twee knoppen, rechtsboven:
- Voorbeeld genereert de PDF met de echte gegevens van de app en opent hem ter plekke, gepagineerd. Zo controleert u het ontwerp: wat op het ontwerpvlak past, past niet altijd op de pagina.
- Excel genereert het rekenblad en downloadt het. Hier zijn er geen banden en geen pagina's: er komt een tabel uit, met één kolom per element van de detailband, en de koppen komen van de Naam van de kolom van elk element.
Heeft het rapport verplichte parameters, dan wordt er vóór het genereren om gevraagd.
Dica
Ontwerp voor de PDF en controleer in Excel, niet andersom. De PDF is het veeleisende formaat — marges, pagina-einden, banden die niet passen. Excel vergeeft bijna alles.
Veelgestelde vragen
De detailband komt er leeg uit. Er is geen hoofdgegevensset, of het filter ervan geeft geen rijen terug. Open Gegevenssets en controleer of er een set met de rol hoofd is, en of de parameters die het filter gebruikt een waarde hebben.
Een veld in een koptekstband komt er leeg uit. Dat is te verwachten buiten de groepsbanden. In de Koptekst van het rapport en de Voettekst van het rapport is er geen "huidige rij" — de allereerste tonen zou een waarde verzinnen zijn. In een koptekst van een groep leest het veld de eerste rij van de groep, en dat is precies wat u wilt.
Het rapport duurt lang of het kapt af. Elke set heeft een plafond aan rijen per leesbeurt. Filter meer — op datum, op status — in plaats van de hele tabel af te drukken. Een rapport van 4.000 pagina's wordt door niemand gelezen.
Ik heb meer nodig dan een planning kan.
Schrijf een Python-script en roep reports.render(...) aan — zie
Inplannen en versturen.


