Beide kanten vorige revisie Vorige revisie Volgende revisie | Vorige revisie |
openwave:1.32:applicatiebeheer:instellen_inrichten:openwave_database-functies [2024/11/26 06:07] – ↷ Pagina verplaatst van openwave:1.31:applicatiebeheer:instellen_inrichten:openwave_database-functies naar openwave:1.32:applicatiebeheer:instellen_inrichten:openwave_database-functies Kars Gottschal | openwave:1.32:applicatiebeheer:instellen_inrichten:openwave_database-functies [2025/04/01 13:45] (huidige) – Konstant Obdeijn |
---|
====== Database functies ====== | ====== Database functies ====== |
{{tag>openwave:1.31:applicatiebeheer:functionaliteiten:applicatiebouw}} | {{tag>openwave:1.32:applicatiebeheer:functionaliteiten:applicatiebouw}} |
Op veel plekken in OpenWave kan de applicatiebeheerder SQL-statements definiëren. Bijvoorbeeld in [[openwave:1.31:applicatiebeheer:instellen_inrichten:rapportages|rapportages]], [[openwave:1.31:applicatiebeheer:instellen_inrichten:queries|query's]] op tegels en [[openwave:1.31:applicatiebeheer:instellen_inrichten:documentsjablonen|documentsjablonen]]. Om ingewikkelde statements te vermijden heeft OpenWave zelf een aantal functies op de database gedefinieerd om veel voorkomende problemen op te lossen. Deze functies kunnen opgenomen worden in de query's op dezelfde manier als de inheemse Postgres functies. | Op veel plekken in OpenWave kan de applicatiebeheerder SQL-statements definiëren. Bijvoorbeeld in [[openwave:1.32:applicatiebeheer:instellen_inrichten:rapportages|rapportages]], [[openwave:1.32:applicatiebeheer:instellen_inrichten:queries|query's]] op tegels en [[openwave:1.32:applicatiebeheer:instellen_inrichten:documentsjablonen|documentsjablonen]]. Om ingewikkelde statements te vermijden heeft OpenWave zelf een aantal functies op de database gedefinieerd om veel voorkomende problemen op te lossen. Deze functies kunnen opgenomen worden in de query's op dezelfde manier als de inheemse Postgres functies. |
| |
* **fn_bedrag(p_bedrag)** retourneert een string waarbij p_bedrag (een float) is omgezet in een string met een komma voor de decimale punt en een punt voor de duizendtallen. Voorbeeld: fn_bedrag(1234.56) retourneert '1.234,56' (indien fn_bedrag(0) dan retourneert deze functie 'null' of te wel een lege waarde) | * **fn_bedrag(p_bedrag)** retourneert een string waarbij p_bedrag (een float) is omgezet in een string met een komma voor de decimale punt en een punt voor de duizendtallen. Voorbeeld: fn_bedrag(1234.56) retourneert '1.234,56' (indien fn_bedrag(0) dan retourneert deze functie 'null' of te wel een lege waarde) |
* dan is fn_tijdstip(5,'H')= 2021-11-30 14:10:52.307227 | * dan is fn_tijdstip(5,'H')= 2021-11-30 14:10:52.307227 |
* dan is fn_tijdstip(-1,'D')= 2021-11-29 14:10:52.307227\\ LET OP: fn_tijdstip(-24,'H') kan een ander resultaat geven als fn_tijdstip(-1,'D'). Bij uren wordt rekening gehouden met overgang winter/zomertijd. Bij dagen niet | * dan is fn_tijdstip(-1,'D')= 2021-11-29 14:10:52.307227\\ LET OP: fn_tijdstip(-24,'H') kan een ander resultaat geven als fn_tijdstip(-1,'D'). Bij uren wordt rekening gehouden met overgang winter/zomertijd. Bij dagen niet |
* **fn_rechtenkolom(p_column text,p_keyrechten integer)** retourneert 'T' of 'F' als char(1). Het resultaat is de achterliggende waarde van de parameter p_column die doorgegeven moet worden als rechtentabelnaam + '.' + rechtenkolomnaam bijvoorbeeld //tbomgrechten.dlcadvins//. De parameter p_keyrechten moet de waarde hebben van dnkeyrechten uit de medewerkerstabel bij de kaart van de betreffende inlogger. Er is een systeemquery (dvcode = //geefWaardeRechtenkolom//) die deze aanroep gebruikt; deze query geeft true of false terug en kan gebruikt worden in bijv. de schermkolomdefinitie bij tags visible of edit | * **fn_rechtenkolom(p_column text,p_keyrechten integer)** retourneert 'T' of 'F' als char(1). Het resultaat is de achterliggende waarde van de parameter p_column die doorgegeven moet worden als rechtentabelnaam + '.' + rechtenkolomnaam bijvoorbeeld //tbomgrechten.dlcadvins//. De parameter p_keyrechten moet de waarde hebben van dnkeyrechten uit de medewerkerstabel bij de kaart van de betreffende inlogger. Er is een systeemquery (dvcode = //geefWaardeRechtenkolom//) die deze aanroep gebruikt; deze query geeft true of false terug en kan gebruikt worden in bijv. de schermkolomdefinitie bij tags visible of edit. Voorbeeld van hoe deze aanroep er uit zou moeten zien: //fn_rechtenkolom('tbomgrechten.dlcomgadvvsb', 1)// |
* **fn_rechtenkolom(p_column text,p_mwcode char(5))** retourneert 'T' of 'F' als char(1). Het resultaat is de achterliggende waarde van de parameter p_column die doorgegeven moet worden als rechtentabelnaam + '.' + rechtenkolomnaam bijvoorbeeld //tbomgrechten.dlcadvins//. De parameter p_mwcode moet de waarde hebben van een dvcode uit de medewerkerstabel bij de kaart van de betreffende inlogger. Wanneer deze functie aangeroepen wordt vanuit een opgeslagen query in tbqueries, dan kan daartoe de systeemvariable //:keyaccount// voor worden gebruikt) | * **fn_rechtenkolom(p_column text,p_mwcode char(5))** retourneert 'T' of 'F' als char(1). Het resultaat is de achterliggende waarde van de parameter p_column die doorgegeven moet worden als rechtentabelnaam + '.' + rechtenkolomnaam bijvoorbeeld //tbomgrechten.dlcadvins//. De parameter p_mwcode moet de waarde hebben van een dvcode uit de medewerkerstabel bij de kaart van de betreffende inlogger. Wanneer deze functie aangeroepen wordt vanuit een opgeslagen query in tbqueries, dan kan daartoe de systeemvariable //:keyaccount// voor worden gebruikt). Voorbeeld van hoe deze aanroep er uit zou moeten zien: //fn_rechtenkolom('tbomgrechten.dlcomgadvvsb','SYS')// |
* **fn_iscompartimentok(p_mwcode char(5),p_module char(1), p_dnkey integer)** retourneert 0 of 1 als integer. 0 indien de compartimentcheck niet klopt en 1 indien de compartimentscheck wel klopt. \\ In //p_mwcode// moet de medewerkerscode van de inlogger doorgegeven worden (wanneer deze functie aangeroepen wordt vanuit een opgeslagen query in tbqueries, dan kan daartoe de systeemvariabele //:keyaccount// voor worden gebruikt). \\ De parameter //p_module// één letter namelijk (B)ouw/sloop, hore(C)a, mili(E)/gebruik, (H)andhavimg, (I(infoaanvragen, apv/(O)verig, (V)inrichtingen of (W ) omgevingzaken. \\ In de parameter //p_dnkey// dient de primary key doorgegeven te worden van de hoofdtabel die hoort bij de module en die verwijst naar een rij waarvoor de compartimentcheck moet worden gedaan. OpenWave zoekt de dnkeywaarde op in vwfrmomgvergunningen c.q. vwfrmhandhavingen et cetera en evalueert daar of de kolom dnkeycompartiment overeenkomt met die van de medewerker. | * **fn_iscompartimentok(p_mwcode char(5),p_module char(1), p_dnkey integer)** retourneert 0 of 1 als integer. 0 indien de compartimentcheck niet klopt en 1 indien de compartimentscheck wel klopt. \\ In //p_mwcode// moet de medewerkerscode van de inlogger doorgegeven worden (wanneer deze functie aangeroepen wordt vanuit een opgeslagen query in tbqueries, dan kan daartoe de systeemvariabele //:keyaccount// voor worden gebruikt). \\ De parameter //p_module// één letter namelijk (B)ouw/sloop, hore(C)a, mili(E)/gebruik, (H)andhavimg, (I(infoaanvragen, apv/(O)verig, (V)inrichtingen of (W ) omgevingzaken. \\ In de parameter //p_dnkey// dient de primary key doorgegeven te worden van de hoofdtabel die hoort bij de module en die verwijst naar een rij waarvoor de compartimentcheck moet worden gedaan. OpenWave zoekt de dnkeywaarde op in vwfrmomgvergunningen c.q. vwfrmhandhavingen et cetera en evalueert daar of de kolom dnkeycompartiment overeenkomt met die van de medewerker. |
| * **fn_isLineString(p_string)** Retourneert 0 of 1 als integer. 0 indien de p_string geen LineString is vanwege onvoldoende lengte of rare coordinaten. Retourneert 1 indien p_string bestaat uit paren coordinaten gescheiden door een spatie, waarbij de x en y coordinaten binnen een paar gescheiden zijn door een komma EN waarbij het eerste paar ongelijk is aan het laatste paar. Bijvoorbeeld //167321,454597 167344,454619 167346,454613 167359,454617 167380,454606 167373,454592 167354,454576//\\ Of een string een valide polygoon is, met het laatste paar gelijk aan eerste paar kan dus gecontroleerd worden met twee uitkomsten: fn_isposintlijnofpolygoon (p_string) = 1 EN de uitkomst fn_isLineString(p_string) = 0 |
| |
Zie voor voorbeeld met betrekking tot gebruik van de functies //fn_rechtenkolom en fn_iscompartimentok//: onder kopje //De kolommen van de tabel tbsysstandardtable// bij [[openwave:1.31:applicatiebeheer:instellen_inrichten:standardlist_standarddetail|]]. | Zie voor voorbeeld met betrekking tot gebruik van de functies //fn_rechtenkolom en fn_iscompartimentok//: onder kopje //De kolommen van de tabel tbsysstandardtable// bij [[openwave:1.32:applicatiebeheer:instellen_inrichten:standardlist_standarddetail]]. |
| |
| |
| |