select
'Aantal: ' | | count(*)
from vwfrmomgorkestrator_adv
where trim(dvadviesbehandelaar) = trim(:keyaccount)
Deze query geeft het aantal openstaande adviezen, waarvoor de inlogger de behandelaar is.
select
'' | | dvstatus | |'
'
| | '
startdatum: ' | | to_char(ddaanvraag,'dd-mm-yyyy')
| | '
fatale/streefdatum: '
| | to_char(ddfataledatum,'dd-mm-yyyy')
| | case when ddingetrokken is not null
then '
ingetrokken: ' | | to_char(ddingetrokken,'dd-mm-yyyy')
else
'
besluit: ' | | to_char(ddbesluitdatum,'dd-mm-yyyy')
end
from vwfrmomgvergunningen
where dnkeyomgvergunning = {id}
Het resultaat als tegelopschrift is bijvoorbeeld:
{{:openwave:applicatiebeheer:instellen_inrichten:tegel_query_metkleur.png?200|}}
Wanneer een query niet valide SQL-code gebruikt zal het programma - bij gebruik voor tegelopschrift - het resultaat vervangen door 'fout:xml': dat zal dan op de betreffende tegel verschijnen.
SELECT
'Aantal: ' || count(*) from vwfrmomgorkestrator_lopend
where (trim(dvibbcodemw) = trim(:keyaccount)
or trim(dvcodeaccountman) = trim(:keyaccount))
maar onderstaande query geeft eenzelfde soort resultaat, maar dan in een fractie van de tijd
SELECT
CASE
WHEN count(*) < 5 THEN 'Aantal: ' || count(*)
ELSE 'Aantal: 5 of meer'
END opschrift
FROM (select a.dnkey from tbomgvergunning a
inner join tbinbehandelingbij b
on (a.dnkey = b.dnkeyomgvergunningen and b.dlactief = 'T')
where (trim(b.dvcodemedewerker) = trim(:keyaccount) or trim(a.dvcodeaccountman) = trim(:keyaccount))
and a.ddbesluitdatum is null
and a.ddblokkering is null
and a.ddingetrokken is null
limit 5) as c
In het beheerportaal bij de definitie van de portalen (portalnames) staat (sinds versie 1.30.1) onderaan het detailschem van een portaaldefinitie een knop waarmee de duur van het uitvoeren van de dynamische tegelopschriften voor dat portaal kan worden gemeten.
100
40
doorlopend
%query(omgeving_blokhyperlink)%
Zie [[openwave:1.31:applicatiebeheer:instellen_inrichten:schermdefinitie:scherminformatie_voor_detailschermen|Scherminformatie voor detailschermen]].
In de tags van een blok van een detailscherm kan (hoeft dus niet) de tag
select case when (dlmappenhyperlink = 'F') then 1 else 0 end from tbrechten
where dnkey = (select dnkeyrechten from tbmedewerkers where trim(dvcode) = trim(:keyaccount))
Indien wordt verwezen naar een niet bestaande query of het element is leeg of indien error bij evaluatie of uitkomst is <> 1 dan beschouwt het programma de uitkomst van de query als 0 (het blok is wel zichtbaar).
Indien in de aangeroepen query gebruik wordt gemaakt van de variabele {id} dan moet een tweede parameter worden toegevoegd aan de functie query() bestaande uit de string %keypointer%. Zie voorbeeld hieronder bij Query's voor contextafhankelijke attributen.
===== Query's voor contextafhankelijke schermkolommen =====
Vooralsnog wordt een queryaanroep ondersteunt bij de tags label, edit, backcolor, fontcolor, visible en action en filter.
==== Label ====
Een query kan worden gebruikt om de inhoud van de tag label contextgevoelig te maken.
Voorbeeld: wanneer in de schermkolomdefinitie van een detailscherm staat //// zal het programma dynamisch het label samenstellen met de tekst 'Datum ' + daarachter het resultaat van de geëvalueerde query uit de tabel tbqueries met dvcode = //omg_labelbesluit//.
Indien de contextgevoeligheid is gebaseerd op andere informatie uit de kaart die getoond wordt (de query zal dan bestaan uit select x from y where dnkey = {id}) dan moet een tweede parameter %keypointer% meegegeven worden: ////. De variabele {id} uit de query zal vervangen worden met de primary key (dnkey) van de kaart waar je op staat.
Zie de voorbeelden hieronder bij [[openwave:1.31:applicatiebeheer:instellen_inrichten:queries#action|action]].
==== Visible ====
Een query kan worden gebruikt om een kolom contextgevoelig in het scherm op te nemen. In de schermkolomdefinitie (zowel voor kolommen van een lijst- als die voor het detailscherm) kan tag
%query(geefwaarderechtenkolom,'tbomgrechten.dlbomgbevgezedt')%
De query kijkt voor de betreffende inlogger naar de waarde van de kolom tbomgrechten.dlbomgbevgezedt.
==== Edit ====
Een query kan worden gebruikt om de tag //edit// contextgevoelig de waarde true of false te geven.
Voorbeeld: wanneer in de schermkolomdefinitie van een detailscherm staat //
3
20
30
true
false
schermknop
enable
false
true
14
ga naar omgevingsloket
openTabPage(https://www.omgevingsloket.nl/BevoegdGezag/bevoegdgezag/AanvraagTab/Aanvraag/%query(omgeving_olonummer,%keypointer%)%/AanvraagGegevens)
Een action die begint met de functie //openTabPage// laat het programma als het ware de inhoud van //openTabPage()// intikken in de URL-editbox van de browser met als gevolg dat in een nieuw browsertabblad de gevraagde site wordt geopend. In de URL is het OLO-nummer opgenomen door een verwijzing naar een query met dvcode = //omgeving_olonummer//. Die query ziet er als volgt uit:
select dvlvoaanvraagnr from tbomgvergunning where dnkey = {id}
Aangezien in de query de variabele {id} is opgenomen die vervangen moet worden door de dnkey van de betreffende omgevingszaak, is de aanroep naar de query voorzien van een tweede parameter %keypointer% dus: //%query(omgeving_olonummer,%keypointer%)%//.
Stel het OLO-nummer is '123456' dan zal het uiteindelijke resultaat van het indrukken van de schermknop zijn het openen van de URL: https://www.omgevingsloket.nl/BevoegdGezag/bevoegdgezag/AanvraagTab/Aanvraag/123456/AanvraagGegevens
=== Voorbeeld 2: ga naar ruimtelijke plannen op grond van adresgegevens ===
De URL daartoe is: ''http://www.ruimtelijkeplannen.nl/web-roo/roo/bestemmingsplannen?xxxx&yyyy''
Waarbij op de plaats van de xxxx de tekst 'postcode='+ een valide postcode moet worden ingevoerd en op de plaats van de yyyy moet de tekst 'huisnummer=' + een huisnummer en eventueel een huisletter worden ingevoerd.
Dat lossen we op door:
* een knop te definiëren op het detailscherm van het locatie adres met een action waarin bovengenoemde URL wordt gedefinieerd
* in de URL een queryverwijzing te maken teneinde de tekst 'postcode=' + de gewenste postcode op te halen
* in de URL een queryverwijzing te maken teneinde de tekst 'huisnummer=' + een huisnummer en huisletter op te halen
* een query te maken die de gevraagde postcode informatie retourneert
* een query te maken die het gevraagde huisnummerinformatie retourneert.
De knop kan als volgt worden gedefinieerd:
select 'postcode='| | coalesce(dvpostcode,'') from tbperceeladressen where dnkey = {id}
Aangezien in de query de variabele {id} is opgenomen die vervangen moet worden door de dnkey van de betreffende locatie (tbperceeladressen), is de aanroep naar de query voorzien van een tweede parameter %keypointer%, dus: //%query(locatie_postcode,%keypointer%)%//.
In de URL is het huisnummergedeelte opgenomen door een verwijzing naar een query met dvcode = locatie_huisnr. Die query ziet er als volgt uit:
select 'huisnummer=' | | coalesce(trim(dvhuisnummer),'') | | coalesce(dvhuisletter,'') from tbperceeladressen where dnkey = {id}
Aangezien in de query de variabele {id} is opgenomen die vervangen moet worden door de dnkey van de betreffende locatie (tbperceeladressen), is de aanroep naar de query voorzien van een tweede parameter %keypointer%, dus: //%query(locatie_huismummer,%keypointer%)%//.
Stel de postcode van de locatiekaart waarvandaan de knop wordt aangesproken = 1074XK en het huisnummer = 41, dan zal een URL geopend worden met:
http://www.ruimtelijkeplannen.nl/web-roo/roo/bestemmingsplannen?postcode=1074XK&huisnummer=41
=== Voorbeeld 3 Open een PDOK-kaart op basis van een coördinatenpaar ===
De URL van bijvoorbeeld het x, y punt (168875,382535) op een PDOK-kaart is:
https://kaart.pdok.nl/api/api.html?mloc=168875,382535&mt=mt3&loc=168875,382535&zoom=10&tekst=Locatie:%3C/BR%3E168875,382535
De action:
opentabpage(https://kaart.pdok.nl/api/api.html?mloc=%query(coordinaten,%keypointer%)%&mt=mt3&loc=%query(coordinaten,%keypointer%)%&zoom=10&tekst=Locatie:%3C/BR%3E%query(coordinaten,%keypointer%)%)
De query //coördinaten// moet dus als resultaat een x- en een y-coördinaat teruggeven (in rijksdriehoek) gescheiden door een komma.
==== Filter ====
Een query kan worden gebruikt om de inhoud van de tag filter contextgevoelig te maken.
Voorbeeld: wanneer bij een processtap een extra invoerkolom is gedefinieerd van type dropdown, dan wordt de bijbehorende query voor het dropdownlijstje in het beheer bij de definitie van de procestap gedefinieerd. Deze wordt bij het binnenhalen van een proces vervolgens gekopieerd naar de tabel tbtermijnbewstappen om de kolom dvinvoerdropd aldaar met een dropdowwnlijstje te kunnen vullen. Om nu - dynamisch - het juiste dropdownlijstje te krijgen is de kolom dvinvoerdropd in de schermkolomdefinitie van het detailscherm van een processtap als volgt gedefinieerd (inclusief contextgevoelige zichtbaarheid en label):
3
dvinvoerdropd
400
30
true
false
keuzelijst
%query(termijnstappen_mddc_getinvoerquerydropd,%keypointer%)%
false
true
%query(termijnstappen_mddc_isinvoerdropdvsb,%keypointer%)%
==== Nullable ====
Een query kan worden gebruikt om de inhoud van de tag nullable contextgevoelig te maken.
===== Query's voor invoegen tekstblokken bij sjablonen =====
Zie ook kopje **Invoegen tekstblokken op basis van een query-aanroep naar tbqueries** bij [[openwave:1.31:applicatiebeheer:instellen_inrichten:documentsjablonen|Documentsjablonen]].
De query wordt in het documentsjabloon wordt aangeroepen door met de merge-codering//<%query(param1,param2)%>//.
Bijvoorbeeld: //<%query(apvoverig_tkstblk1,:keyvergunning)%>//.
select case when (select dvcodesoortovverg from tbovvergunningen where dnkey = {id}) = 'O'
then 'Volgens artikel X van wet y zal de ontheffing ....'
else ''::text
end
Hetgeen betekent dat indien het zaaktype van de APV/Overige vergunning waar vandaan het document wordt gecreëerd van het soort 'O' is dat alleen dan de tekst //Volgens artikel X van wet y zal de ontheffing ....// zal worden ingevoegd.
==== Voorbeeld 2: invoegen tekst uit de tabel tekstblokken via de query ====
select dvtekstblok from tbtekstblokken where lower(dvcode) =
case when (select dvcodesoortovverg from tbovvergunningen where dnkey = {id}) = 'O'
then 'tkstblk_1'
when (select dvcodesoortovverg from tbovvergunningen where dnkey = {id}) = 'E'
then 'tkstblk_2'
else 'xxx'
end
Hetgeen betekent dat indien het zaaktype van de APV/Overige vergunning waar vandaan het document wordt gecreëerd van het soort 'O' is dat dan de inhoud van de kolom dvtekstblok uit de tabel tbtekstblokken (beheer) met dvcode = //tkstblk_1// wordt afgedrukt.
Indien soort = 'E' wordt de inhoud van de kolom dvtekstblok met dvcode = //tkstblk_2// afgedrukt. En anders niets.
Zie voor invoegen plaatjes op basis van query onder Kopje: //Invoegen plaatjes op basis van een query-aanroep naar tbqueries die verwijst naar tbimages// bij [[openwave:1.31:applicatiebeheer:instellen_inrichten:documentsjablonen|Documentsjablonen]].
===== Query's als vervanging voor formqueries en childqueries bij definitie document- en emailsjablonen =====
De inhoud van de kolommen van de formqueries en childqueries uit de definitie document- en emailsjablonen (beheer) kan ook bestaan uit een verwijzing naar een query in deze tabel tbqueries.\\
Hierdoor hoeft een query die in meerdere sjablonen gebruikt wordt maar eenmalig te worden gedefinieerd. De opmaak van de sjablonen wijzigt hierdoor niet. In tbqueries kan bovendien een select statement ingevoerd worden van onbeperkte grootte.\\
Zie het kopje //formquery en childquery-verwijzingen naar tbqueries// bij [[openwave:1.31:applicatiebeheer:instellen_inrichten:documentsjablonen|]]