Naar hoofdinhoud springen

Aangepaste Links en Query's

Leer hoe u uw Beancount-ervaring kunt verbeteren door aangepaste zijbalklinks en SQL-query's te implementeren om uw financiële tracking en rapportage te stroomlijnen.

Voeg gedateerde zijbalklink-directieven toe aan standaard Fava en sla vervolgens een query op die negatieve eindstanden vindt na het optellen van alle boekingen. De voorbeelden zijn uitgevoerd met Beancount 3.2.3, beanquery 0.2.0 en Fava 1.30.16. Gebruik de vastgezette lokale opstelling.

Deze URL's zijn gericht op een lokale standaard Fava-server. Het gehoste dashboard van Beancount.io heeft andere rapportpaden en wordt hieronder apart behandeld.

Waarom Fava Aanpassen?

Zijbalk-snelkoppelingen behouden een nuttige gefilterde weergave. Een opgeslagen query kan vervolgens een specifieke boekhoudkundige vraag beantwoorden zonder herhaaldelijk BQL in te voeren.

Pijnpunten die dit oplost:

  • Herhaaldelijk de huidige of vorige maand selecteren.
  • Een opgeslagen rapport opnieuw openen.
  • Een uitgaande stroom onderscheiden van een rekening die daadwerkelijk onder nul eindigt.

Voeg deze directieven toe aan het volledige sidebar-demo.beancount-grootboek in de volgende sectie. Start het met fava sidebar-demo.beancount en open het Journaal-rapport voordat u op een snelkoppeling klikt.

2021-01-01 custom "fava-sidebar-link" "Current Month" "/jump?time=month"
2021-01-01 custom "fava-sidebar-link" "Last Month" "/jump?time=month-1"
2021-01-01 custom "fava-sidebar-link" "Clear All" "/jump?account=&time=&filter="

Wat Ze Doen:

/jump keert terug naar de pagina in de Referer-header van de browser en vervangt de opgegeven queryparameters. Het opent niet altijd het Journaal-rapport. Op de balans blijft het op de balans. Dit gedrag wordt geïmplementeerd door de standaard Fava-omleidingshandler.

  • Huidige Maand: Stelt time=month in op het huidige rapport.
  • Vorige Maand: Stelt time=month-1 in op het huidige rapport.
  • Alles Wissen: Verwijdert account, time en filter. Andere parameters, zoals conversie en interval, blijven behouden.

De 2021-fixture zal geen transacties hebben in de huidige maand; gebruik Alles Wissen voordat u de queryresultaten ervan reproduceert. Een /jump-URL vereist een verwijzer. Voor een bladwijzer die direct wordt geopend, kopieert u in plaats daarvan een complete werkende rapport-URL.

Op de host-root werd /jump?time=month getest vanaf /sidebar-demo/journal/?time=2021&account=Assets: het retourneerde HTTP 302 naar hetzelfde journaal met account=Assets&time=month. Het bestemmingsrapport retourneerde 200.

Als een beheerder de volledige Fava-applicatie op /books monteert, moet elke root-relatieve snelkoppeling dat voorvoegsel bevatten. Dit is een alternatieve configuratie, geen ander directief om naast Huidige Maand hierboven toe te voegen:

2021-01-01 custom "fava-sidebar-link" "Current Month" "/books/jump?time=month"

Een lokale WSGI-mounttest bevestigde dat /books/jump terugleidt naar /books/sidebar-demo/journal/ met het nieuwe filter. Gewone /jump ligt buiten die mount en retourneerde 404. Aangepaste links van Fava behouden de geleverde URL; een leidend / betekent de host-root, niet de grootboekroot.

Gehoste scope, gecontroleerd op 2026-09-07: de bron van het Beancount.io-dashboard gebruikt paden zoals /ledger/OWNER/LEDGER/income-statement en /ledger/OWNER/LEDGER/query. De zijbalk bouwt zijn eigen rapportmenu. De geïnspecteerde bron heeft geen /jump-route of fava-sidebar-link-consument. Dit standaardrecept is daarom niet vastgesteld voor dat dashboard. Op het gehoste product opent u het gewenste rapport en bladwijzert u het werkende adres. De bronsnapshot bewijst niet welke revisie een live-implementatie draait.

🔍 Aangepaste SQL-query's

Sla deze volledige fixture op als sidebar-demo.beancount. Het bevat bewust zowel positieve als negatieve boekingen op elke activarekening:

option "title" "Sidebar Demo"
option "operating_currency" "USD"
2021-01-01 open Assets:BCM:Positive USD
2021-01-01 open Assets:BCM:Negative USD
2021-01-01 open Equity:Opening-Balances USD
 
2021-12-01 * "Opening balances"
  Assets:BCM:Positive        100.00 USD
  Assets:BCM:Negative         20.00 USD
  Equity:Opening-Balances   -120.00 USD
 
2021-12-10 * "Outflows"
  Assets:BCM:Positive        -30.00 USD
  Assets:BCM:Negative        -50.00 USD
  Equity:Opening-Balances     80.00 USD
 
2022-01-05 * "Refund"
  Assets:BCM:Negative         10.00 USD
  Equity:Opening-Balances    -10.00 USD
 
2022-01-09 balance Assets:BCM:Positive 70.00 USD
2022-01-09 balance Assets:BCM:Negative -20.00 USD

bea --file sidebar-demo.beancount check slaagt. Aan het begin van 9 januari heeft Positief 100 - 30 = 70 USD; Negatief heeft 20 - 50 + 10 = -20 USD.

Voer deze query uit op de Query-pagina van standaard Fava met globale filters gewist:

SELECT account, currency, SUM(number) AS ending_balance
FROM postings
WHERE account ~ ':BCM:'
  AND date < 2022-01-09
GROUP BY account, currency
HAVING SUM(number) < 0
ORDER BY account, currency;
RekeningValutaEindstand
Assets:BCM:NegativeUSD-20.00

Uitsplitsing:

WHERE selecteert de boekingen om te aggregeren. Er is geen onderste datumbovengrens: een eindstand heeft alle eerdere historie nodig, inclusief de openingssaldi van 1 december. De exclusieve bovengrens omvat 8 januari en sluit transacties van 9 januari uit.

GROUP BY account, currency houdt verschillende grondstoffen gescheiden. HAVING SUM(number) < 0 filtert na het optellen van de positieve en negatieve hoeveelheden van elke groep. Dit is een eindhoeveelheid per valuta, geen marktwaarde omgerekend naar één valuta. Het rapporteert elke exacte rekening, niet samengevoegde bovenliggende rekeningen.

Ter vergelijking: deze uitvoerbare query beantwoordt een andere vraag: hoeveel is er negatief geboekt tijdens het beoordelingsvenster?

SELECT account, currency, SUM(number) AS negative_postings
FROM postings
WHERE account ~ ':BCM:'
  AND number < 0
  AND date >= 2021-12-09 AND date < 2022-01-09
GROUP BY account, currency
ORDER BY account, currency;
RekeningValutaNegatieve boekingen
Assets:BCM:NegativeUSD-50.00
Assets:BCM:PositiveUSD-30.00

De tweede query laat de terugbetaling en openingssaldi buiten beschouwing. De rij -30.00 USD betekent niet dat Positief rood staat. Het toevoegen van een onderste datumbovengrens aan de eerste query zou in plaats daarvan de netto beweging gedurende een periode opleveren, geen eindstand. Zie de BQL-referentie voor verdere querysyntaxis.

Gebruiksscenario's:

  • Controleer activarekeningen op onverwachte negatieve hoeveelheden.
  • Bekijk negatieve boekingen afzonderlijk bij het onderzoeken van uitgaande stromen of terugboekingen.
  • Reconcileer de gerapporteerde stand met openingshistorie en daaropvolgende activiteit voordat u het als een afwijking behandelt. Een negatieve schuld- of inkomstenstand kan normaal zijn.

Fava ondersteunt links naar query's. Voeg deze opgeslagen query en snelkoppeling toe aan sidebar-demo.beancount:

2021-01-01 query "negative-balances" "SELECT account, currency, SUM(number) AS ending_balance FROM postings WHERE account ~ ':BCM:' AND date < 2022-01-09 GROUP BY account, currency HAVING SUM(number) < 0 ORDER BY account, currency"
2021-01-01 custom "fava-sidebar-link" "Negative Balances" "/sidebar-demo/query/?query_string=.run+%22negative-balances%22"

Het querydirectief verschijnt ook in de opgeslagen-queryzijbalk van Fava, onderhevig aan sidebar-show-queries (standaard 5). De expliciete snelkoppeling is gericht op de sidebar-demo-slug van de fixture en voert de genoemde query uit. De standaard querypagina leest query_string uit de URL; de query-API retourneerde in de lokale test dezelfde enkele rij -20.00 USD. Zie de versiebeheerde Query-component.

Gebruik de werkelijke slug van uw grootboek in een ander boek. Onder de /books-mount wordt de snelkoppeling /books/sidebar-demo/query/?query_string=.run+%22negative-balances%22. Houd globale filters leeg voor een volledige-historische eindstand; een datumfilter kan de openingshistorie verwijderen voordat de opgeslagen query wordt uitgevoerd.

Slotgedachten

Gebruik de maand-snelkoppelingen om door rapporten te navigeren en gebruik de opgeslagen query om een reproduceerbare eindstand te controleren. Bij het beoordelen van uw budget, onderscheid uitgaande stromen, periodebeweging en slotstanden voordat u een negatief getal interpreteert. Voor aanvullende rapporten, zie Fava's extensiedocumentatie en de UI-gids.

Bron: https://beancount.io/nl/docs/Tips/side-bar-link