openwave:1.30:applicatiebeheer:instellen_inrichten:standardlist_standarddetail

Verschillen

Dit geeft de verschillen weer tussen de geselecteerde revisie en de huidige revisie van de pagina.

Link naar deze vergelijking

Beide kanten vorige revisie Vorige revisie
Volgende revisie
Vorige revisie
openwave:1.30:applicatiebeheer:instellen_inrichten:standardlist_standarddetail [2024/02/07 16:06] Ton Pullensopenwave:1.30:applicatiebeheer:instellen_inrichten:standardlist_standarddetail [2024/12/11 11:49] (huidige) Kars Gottschal
Regel 1: Regel 1:
 ====== Standaard Lijst- en Detailschermen ====== ====== Standaard Lijst- en Detailschermen ======
 +{{tag>openwave:1.30:applicatiebeheer:functionaliteiten:applicatiebouw}}
 Portal beheerportaal-Nieuw. Tegel //Tabellen standaardAPI//. Portal beheerportaal-Nieuw. Tegel //Tabellen standaardAPI//.
  
Regel 10: Regel 11:
   * tbSysStandardTable/VwfrmSysstandardTable   * tbSysStandardTable/VwfrmSysstandardTable
   * tbSysstandardButton   * tbSysstandardButton
 +
 +Zie ook: [[openwave:1.30:applicatiebeheer:instellen_inrichten:standardlist_standarddetail:utigewerkt_voorbeeld|]]
  
 ===== Omschrijving ===== ===== Omschrijving =====
Regel 28: Regel 31:
     * de vijfde parameter, met hier de waarde //DitIsDeUniekeCodering//, geeft aan in welke kaart van tbSysStandardTable de gewenste informatie staat: tbSysStandardTable.dvcode = //DitIsDeUniekeCodering// of //beheer_kopcompgem//     * de vijfde parameter, met hier de waarde //DitIsDeUniekeCodering//, geeft aan in welke kaart van tbSysStandardTable de gewenste informatie staat: tbSysStandardTable.dvcode = //DitIsDeUniekeCodering// of //beheer_kopcompgem//
     * optioneel kan nog aangevuld worden tot de negende parameter: paramtype. Dit is alleen van toepassing als er bij het lijstscherm een filter xml gedefinieerd is EN gebruik wordt gemaakt van een query afweging bij een van de tags <visible> in het filter xml. De waarde van parameter 9 mag leeg zijn indien <visible> true is of gevuld met waarde '1' indien <visible> waarde false moet krijgen.     * optioneel kan nog aangevuld worden tot de negende parameter: paramtype. Dit is alleen van toepassing als er bij het lijstscherm een filter xml gedefinieerd is EN gebruik wordt gemaakt van een query afweging bij een van de tags <visible> in het filter xml. De waarde van parameter 9 mag leeg zijn indien <visible> true is of gevuld met waarde '1' indien <visible> waarde false moet krijgen.
-  * Aanroep voor het tonen van een **detailscherm** op basis van de informatie van een kaart in tbSysStandardTable (dus bijvoorbeeld een action op een tegel of knop) : //getFlexdetail(SysStandardDetail,1234,DitIsDeUniekeCodering)// waarbij:+  * Aanroep voor het tonen van een **detailscherm** op basis van de informatie van een kaart in tbSysStandardTable (dus bijvoorbeeld een action op een tegel of knop): //getFlexdetail(SysStandardDetail,1234,DitIsDeUniekeCodering)// waarbij:
     * de methode getFlexDetail() aangeeft dat het resultaat van de aanroep een detailscherm is     * de methode getFlexDetail() aangeeft dat het resultaat van de aanroep een detailscherm is
     * de eerste parameter //SysStandardDetail// aangeeft dat alle informatie verder op te halen is in tabel tbSysStandardTable op basis van dvcode = param 3     * de eerste parameter //SysStandardDetail// aangeeft dat alle informatie verder op te halen is in tabel tbSysStandardTable op basis van dvcode = param 3
Regel 36: Regel 39:
 ===== De kolommen van de tabel tbsysstandardtable ===== ===== De kolommen van de tabel tbsysstandardtable =====
   * **Identifier** (dnkey). Primary key van de tabel.   * **Identifier** (dnkey). Primary key van de tabel.
-  * ** Unieke codering voor tabel ** (dvcode). De unieke codering van de kaart die bij de action-aanroep getfexlist(sysStandardList,,,,code) als vijfde parameter moet worden meegegeven en bij de aanroep getfexdetail(sysStandardDetail,,code) als derde parameter.+  * ** Unieke codering voor tabel ** (dvcode). De unieke codering van de kaart die bij de action-aanroep getFlexList(sysStandardList,,,,code) als vijfde parameter moet worden meegegeven en bij de aanroep getFlexDetail(sysStandardDetail,,code) als derde parameter.
   * ** Systeem-categorie** (dnkeysysstandardcat). Foreign key naar de tabel tbsysstandaardcategorie om de standaardapi's beter in te delen. Niet verplicht.   * ** Systeem-categorie** (dnkeysysstandardcat). Foreign key naar de tabel tbsysstandaardcategorie om de standaardapi's beter in te delen. Niet verplicht.
   * ** Systeemkaart** (dlsystem). Niet muteerbaar. T of F. Indien T dan is de betreffende kaart voor de OpenWave-applicatie onmisbaar en mag de kaart niet verwijderd worden.   * ** Systeemkaart** (dlsystem). Niet muteerbaar. T of F. Indien T dan is de betreffende kaart voor de OpenWave-applicatie onmisbaar en mag de kaart niet verwijderd worden.
Regel 46: Regel 49:
   * **Kolomnaam foreign key (uit hoofdtabel/view)** ((dvmainforeignkeyname). Ook deze kolom alleen invullen indien ook de kolom //parenttabelnaam// wordt gevuld. Het gaat in dat geval om het weergeven van een lijst op basis van Hoofdtabel- of viewnaam waarbij deze lijst gelimiteerd is door een foreign key naar de parenttabel (bijv. de medewerkers van een rechtengroep). Hier dus de kolomnaam van de foreign key invullen uit de hoofdtabel/view (dvmaintablename).   * **Kolomnaam foreign key (uit hoofdtabel/view)** ((dvmainforeignkeyname). Ook deze kolom alleen invullen indien ook de kolom //parenttabelnaam// wordt gevuld. Het gaat in dat geval om het weergeven van een lijst op basis van Hoofdtabel- of viewnaam waarbij deze lijst gelimiteerd is door een foreign key naar de parenttabel (bijv. de medewerkers van een rechtengroep). Hier dus de kolomnaam van de foreign key invullen uit de hoofdtabel/view (dvmaintablename).
   * **Kolomnaam blokkering uit parenttabel**(dvparentblokkeringfieldname). Betekent dat indien de achterliggende waarde van deze kolom gevuld is - en parenttable is van toepassing- , dat dan geen wijzigingen en inserts en deletes bij deze tabel kunnen plaatsvinden.   * **Kolomnaam blokkering uit parenttabel**(dvparentblokkeringfieldname). Betekent dat indien de achterliggende waarde van deze kolom gevuld is - en parenttable is van toepassing- , dat dan geen wijzigingen en inserts en deletes bij deze tabel kunnen plaatsvinden.
-  * **Kolomnaam blokkering (uit hoofdtabel/view)**(dvblokkeringfieldname ). Betekent dat indien de achterliggende waarde van deze kolom gevuld is, dat dan geen wijzigingen en deletes bij deze kaart kunnen plaatsvinden.+  * **Kolomnaam blokkering (uit hoofdtabel/view)**(dvblokkeringfieldname). Betekent dat indien de achterliggende waarde van deze kolom gevuld is, dat dan geen wijzigingen en verwijderacties bij deze kaart kunnen plaatsvinden.
   * **Schermidentifier voor lijst** (dvlistscreenfilename). De unieke naam met de schermkolominformatie die verwijst naar tbscreencolumns.dvscreenfilename (beheertegel //Schermkolomdefinitie tabellen standaard-api//). **LET OP:** de conventie in OpenWave voor lijsten is MDLC_getXXXXXXXXList.xml. Met de knop achter deze kolomnaam wordt naar de betreffende schermkaart in tbscreencolumns genavigeerd. Indien er nog geen kaart bestaat wordt deze automatisch aangemaakt.   * **Schermidentifier voor lijst** (dvlistscreenfilename). De unieke naam met de schermkolominformatie die verwijst naar tbscreencolumns.dvscreenfilename (beheertegel //Schermkolomdefinitie tabellen standaard-api//). **LET OP:** de conventie in OpenWave voor lijsten is MDLC_getXXXXXXXXList.xml. Met de knop achter deze kolomnaam wordt naar de betreffende schermkaart in tbscreencolumns genavigeerd. Indien er nog geen kaart bestaat wordt deze automatisch aangemaakt.
   * **Schermidentifier voor detail** (dvdetailscreenfilename). De unieke naam met de schermkolominformatie die verwijst naar tbscreencolumns.dvscreenfilename (beheertegel //Schermkolomdefinitie tabellen standaard-api//). **LET OP:** de conventie in OpenWave voor lijsten is MDDC_getXXXXXXXXDetail.xml. Met de knop achter deze kolomnaam wordt naar de betreffende schermkaart in tbscreencolumns genavigeerd. Indien er nog geen kaart bestaat wordt deze automatisch aangemaakt.   * **Schermidentifier voor detail** (dvdetailscreenfilename). De unieke naam met de schermkolominformatie die verwijst naar tbscreencolumns.dvscreenfilename (beheertegel //Schermkolomdefinitie tabellen standaard-api//). **LET OP:** de conventie in OpenWave voor lijsten is MDDC_getXXXXXXXXDetail.xml. Met de knop achter deze kolomnaam wordt naar de betreffende schermkaart in tbscreencolumns genavigeerd. Indien er nog geen kaart bestaat wordt deze automatisch aangemaakt.
Regel 54: Regel 57:
   * **tbqueries.dvcode kijkrechten (result = true)** (dvauthvisiblequerycode). Een verwijzing naar tbqueries.dvcode alwaar de SQL-statement een true of een false moet geven, hetgeen aangeeft of de inlogger de gevraagde lijst of detailpagina mag bekijken. Indien echter de kolom //Kijkrechtenkolom (bijv. tbomgrechten.dlcomgadvvsb)// is gevuld dan wordt deze querykolom genegeerd.   * **tbqueries.dvcode kijkrechten (result = true)** (dvauthvisiblequerycode). Een verwijzing naar tbqueries.dvcode alwaar de SQL-statement een true of een false moet geven, hetgeen aangeeft of de inlogger de gevraagde lijst of detailpagina mag bekijken. Indien echter de kolom //Kijkrechtenkolom (bijv. tbomgrechten.dlcomgadvvsb)// is gevuld dan wordt deze querykolom genegeerd.
   * **tbqueries.dvcode wijzigrechten (result = true)** (dvautheditquerycode). Een verwijzing naar tbqueries.dvcode alwaar de SQL-statement een true of een false moet geven, hetgeen aangeeft of de inlogger de gevraagde lijst of detailpagina in beginsel mag muteren (in de schermkolomdefinitie wordt daar per cel/kolom geautoriseerd). Indien echter de kolom //Muteerrechtenkolom (bijv. tbomgrechten.dlcomgadvedt)// is gevuld dan wordt deze querykolom genegeerd.   * **tbqueries.dvcode wijzigrechten (result = true)** (dvautheditquerycode). Een verwijzing naar tbqueries.dvcode alwaar de SQL-statement een true of een false moet geven, hetgeen aangeeft of de inlogger de gevraagde lijst of detailpagina in beginsel mag muteren (in de schermkolomdefinitie wordt daar per cel/kolom geautoriseerd). Indien echter de kolom //Muteerrechtenkolom (bijv. tbomgrechten.dlcomgadvedt)// is gevuld dan wordt deze querykolom genegeerd.
 +  * **Module/schermgroepcode** (dvmodulescreengroup). Vrij te gebruiken. Alleen indien een vervolgaction van een standaardapi-lijst of detail een interne OW-API aanroept, met een verplichte parameter dvmodule, dan is een waarde in deze kolom ook verplicht (dvmodulescreengroup is dan  B,C,E,H,I,O,V of W). Dit is bijvoorbeeld het geval bij een wijziging op een kolom (met de interne API-aanroep setcolumnvalue) op een detail of lijstscherm van een (dochter)tabel van tbomgvergunning (W), tbhandhavingen (H), tbinfoaanvragen (I), tbovvergunningen (O) en tbmilinrichtingen (V)en tbmilvergunnngen (E) en tbhorecavergunningen (C) en tbbouwvergunningen (B), Bij beheertabellen kan deze kolom dus leeg blijven.
 +  * **Datumkolomnaam box vervallen** (dvvervallenboxfieldname). Indien gevuld met een datumkolomnaam van de hoofdtabelview dan zal onderaan in de lijstweergave van die tabel/view een aanvinkbox //vervallen kaarten onzichtbaar// zijn. Indien onzichtbaar aangevinkt dan zal de lijst gefilterd worden op deze kolom is null. 
 +  * **Zoekbox?** (dlzoekbox). Indien aangevinkt dan zal een zoekbox onderaan de lijstweergave zichtbaar zijn.
 +  * **Action;bij dubbel klik; op lijstregel** (dvactionselectlineinlist). De action die wordt aangeroepen wanneer de inlogger in de lijstweergave dubbelklikt op een regel. De phrase //{id}// zal daarbij door OpenWave automatisch vervangen worden door de waarde van de primary key (kolom dvmainprimkeyname) uit de hoofdtabel/view. Voorbeeld: //getFlexdetail(SysStandardDetail,{id},beheer_rechtsvorm)// zal door OpenWave doorgezet worden als bijv. //getFlexdetail(SysStandardDetail,1234,beheer_rechtsvorm)//.
 +  * **Detailvenster openen na insert met sysStandardRow?** (dldetailopenennainsert). Indien 'T' dan wordt na een insert met insertSysStandardRow (zie hieronder bij sysstandardbuttons) de action getFlexdetail(SysStandardDetail,{id},dvcode) uitgevoerd, waarbij dvcode wordt vervangen met de waarde van dvcode van de betreffende sysstandardtablekaart en {id} met de nieuwe dnkey aangemaakt met de insert.
 +  * **Where clausule;bij lijst** (dvwhere). Indien het gaat om een lijst dan kan hier een extra where clausule worden opgegeven waaraan de hoofdtabel/view moet voldoen. Bijvoorbeeld bij een medewerkerslijst kan hier staan: where dvgeslacht = 'M'. De phrases:
 +    * //:keyaccount// zal door OpenWave automatisch worden vervangen door tbmedewerkers.dvcode van de inlogger
 +    * //%keyaccount%// idem
 +    * //%inlogger%// idem
 +    * //%keyparent%// met de primary key van de bovenliggende tabel indien de standaardlijst wordt aangeroepen in een blok vanuit een detailscherm.
 +
 +Zie verder over het gebruik en mogelijkheden van actions: [[openwave:1.30:applicatiebeheer:instellen_inrichten:actions]].
 +
 +==== Voorbeeld gebruik rechtenkolom op basis van query====
 +Het gaat hier om het vullen van de kolom //tbqueries.dvcode wijzigrechten (dvautheditquerycode)// of tbqueries.dvcode kijkrechten (dvauthvisiblequerycode) waarbij de uitkomst true of false bepalend is voor het kijk- of wijzigrecht van het scherm. Ook bij de knoppen (zie hieronder) wordt van deze systematiek uitgegaan.
 <adm example> <adm example>
-Voorbeeld met gebruik //fn_rechtenkolom en fn_iscompartimentok//\\+wanneer het inzien of wijzigen van een scherm voorbehouden moet zijn aan een functioneel beheerder is er een verwijzing naar de systeemquery met dvcode = //sysstandaard_isbeheerder// het makkelijkst. Deze standaard uitgeleverde query retourneert true indien de medewerker beheerniveau 99 heeft.(tbmedewerkers.dnbeheerniveau). 
 + 
 +Wanneer het inzien of wijzigen van een scherm gekoppeld moet zijn aan de autorisaties van een medewerker rekening houdend met compartiment is het volgende voorbeeld met gebruik functies //fn_rechtenkolom en fn_iscompartimentok//\\ van toepassing.\\
 In de kolom dvauthvisiblequerycode wordt naar een query uit tbqueries verwezen bijv. met de code //omgeving_milalertmuteren//\\ In de kolom dvauthvisiblequerycode wordt naar een query uit tbqueries verwezen bijv. met de code //omgeving_milalertmuteren//\\
 De query met dvcode = //omgeving_milalertmuteren// kan dan als volgt gedefinieerd zijn: De query met dvcode = //omgeving_milalertmuteren// kan dan als volgt gedefinieerd zijn:
Regel 68: Regel 88:
 Zie ook [[openwave:1.30:applicatiebeheer:instellen_inrichten:openwave_database-functies|]] Zie ook [[openwave:1.30:applicatiebeheer:instellen_inrichten:openwave_database-functies|]]
 </adm> </adm>
-  * **Module/schermgroepcode** (dvmodulescreengroup). Vrij te gebruiken. Alleen indien een vervolgaction van een standaardapi-lijst of detail een interne OW-API aanroept, met een verplichte parameter dvmodule, dan is een waarde in deze kolom ook verplicht (dvmodulescreengroup is dan  B,C,E,H,I,O,V of W). Dit is bijvoorbeeld het geval bij een wijziging op een kolom (met de interne API-aanroep setcolumnvalue) op een detail of lijstscherm van een (dochter)tabel van tbomgvergunning (W), tbhandhavingen (H), tbinfoaanvragen (I), tbovvergunningen (O) en tbmilinrichtingen (V)en tbmilvergunnngen (E) en tbhorecavergunningen (C) en tbbouwvergunningen (B), Bij beheertabellen kan deze kolom dus leeg blijven. 
-  * **Datumkolomnaam box vervallen** (dvvervallenboxfieldname). Indien gevuld met een datumkolomnaam van de hoofdtabelview dan zal onderaan in de lijstweergave van die tabel/view een aanvinkbox //vervallen kaarten onzichtbaar// zijn. Indien onzichtbaar aangevinkt dan zal de lijst gefilterd worden op deze kolom is null.  
-  * **Zoekbox?** (dlzoekbox). Indien aangevinkt dan zal een zoekbox onderaan de lijstweergave zichtbaar zijn. 
-  * **Action;bij dubbel klik; op lijstregel** (dvactionselectlineinlist). De action die wordt aangeroepen wanneer de inlogger in de lijstweergave dubbelklikt op een regel. De phrase //{id}// zal daarbij door OpenWave automatisch vervangen worden door de waarde van de primary key (kolom dvmainprimkeyname) uit de hoofdtabel/view. Voorbeeld: //getFlexdetail(SysStandardDetail,{id},beheer_rechtsvorm)// zal door OpenWave doorgezet worden als bijv. //getFlexdetail(SysStandardDetail,1234,beheer_rechtsvorm)//. 
-  * **Detailvenster openen na insert met sysStandardRow?** (dldetailopenennainsert). Indien 'T' dan wordt na een insert met insertSysStandardRow (zie hieronder bij sysstandardbuttons) de action getFlexdetail(SysStandardDetail,{id},dvcode) uitgevoerd, waarbij dvcode wordt vervangen met de waarde van dvcode van de betreffende sysstandardtablekaart en {id} met de nieuwe dnkey aangemaakt met de insert. 
-  * **Where clausule;bij lijst** (dvwhere). Indien het gaat om een lijst dan kan hier een extra where clausule worden opgegeven waaraan de hoofdtabel/view moet voldoen. Bijvoorbeeld bij een medewerkerslijst kan hier staan: where dvgeslacht = 'M'. De phrases: 
-    * //:keyaccount// zal door OpenWave automatisch worden vervangen door tbmedewerkers.dvcode van de inlogger. 
-    * //%keyaccount%// idem 
-    * //%inlogger%// idem 
-    * //%keyparent%// met de primary key van de bovenliggende tabel indien de standaardlijst wordt aangeroepen in een blok vanuit een detailscherm 
- 
-===== Uitgewerkt voorbeeld ===== 
-Een tegel in het beheerportaal waarmee een lijst van rechtengroepen kan worden opgeroepen, waarbij doorgeklikt kan worden naar een detailscherm van een rechtengroep en waarbij in dat detailscherm weer een lijst is opgenomen van de actieve medewerkers die onder die rechtengroep vallen. Geen muteermogelijkheden. 
- 
-==== 1. Maak tegel ==== 
-  - Maak tegel met opschrift //Test_Rechtengroepen// onder een kolom van beheerportaal-Nieuw. 
-  - Als action: //getFlexList(SysStandardList,nil,nil,nil,Test_Rechtengroepen)//. 
-  - Ken de tegel toe aan u zelf. 
- 
-==== 2. Maak sysstandardtable kaart voor de lijst- en detailgegevens met code //Test_Rechtengroepen// ==== 
-Maak een nieuwe kaart in tbsysstandardtable (beheertegel //Tabellen standaardAPI//): 
-  * **Code**: Test_Rechtengroepen 
-  * **Hoofdtabel of viewnaam**: tbrechten 
-  * **Kolomnaam van de primary key**: dnkey 
-  * **Tabelnaam waarop hoofdtabel/view is gebaseerd**: tbrechten 
-  * **Schermidentifier voor lijst**: MDLC_getTest_RechtengroepenList.xml   
-  * **Schermidentifier voor detail**: MDDC_getTest_RechtengroepenDetail.xml   
-  * **Tbqueries.dvcode voor kijkrechten**: sysstandaard_isbeheerder 
-  * **Action;bij dubbel klik; op lijstregel**: getFlexdetail(SysStandardDetail,{id},Test_Rechtengroepen) 
-De overige kolommen van deze kaart kunnen leeg blijven. 
- 
-De API getflexlist zal alle data van de kaart ophalen uit tbrechten. 
-Maar eerst wordt een rechtencheck gedaan door het statement uit tbqueries (beheerportaal) met dvcode = //sysstandaard_isbeheerder// te evalueren. Die behoort tot de systeemqueries van OpenWave en bestaat dus. Het SQL-statement: 
- 
-<code sql> 
-  select case when dnbeheerniveau = 99 then 'true' else 'false' end  
-         from tbmedewerkers where trim(dvcode) = trim(:keyaccount) 
-</code> 
- 
-==== 3. Maak lijstschermkolomdefinitie voor MDLC_getTest_RechtengroepenList.xml ==== 
-Maak een nieuwe kaart in tbscreencolumns via de beheertegel //Schermkolomdefinitie tabellen standaard-api//:  
-  * **Schermidentifier**: xml-filename : MDLC_getTest_RechtengroepenList.xml   
-  * **klasse**: sysStandard 
-  * **api**: getSysStandardList 
-  * **view/tabel**: tbrechten 
- 
-Na opslaan en edit: 
-  * **in de kolom SQL kopregel1** : select 'Test_Rechtengroepen' from tbportalnames where dlisbegin = 'T' 
-In de kolom **Kolominformatie Toggle F11** moet vervolgens de layout van het lijstscherm gedefinieerd worden in xml-formaat met een of meer kolommen uit tbrechten. 
- 
-<code xml> 
-  <document> 
-    <!--tagnaam slaat op een kolom uit tbrechten--> 
-    <column tagnaam="dvgroep"> 
-        <label>Groep</label> 
-        <index>1</index> 
-        <length>200</length> 
-        <wavetype>string</wavetype> 
-        <icoon/> 
-        <showhint>false</showhint> 
-    </column> 
-    <column tagnaam="dvgroepoms"> 
-        <label>Omschrijving</label> 
-        <index>2</index> 
-        <length>400</length> 
-        <wavetype>string</wavetype> 
-        <icoon/> 
-        <showhint>false</showhint> 
-      </column> 
-      <column tagnaam="ddvervaldatum"> 
-        <label>Niet meer geldig sinds</label> 
-        <index>5</index> 
-        <length>100</length> 
-        <wavetype>datum</wavetype> 
-        <icoon/> 
-        <showhint>false</showhint> 
-    </column> 
-   </document> 
-</code> 
- 
-==== 4. Maak detailschermkolomdefinitie voor MDDC_getTest_RechtengroepenDetail.xml ==== 
-Maak een nieuwe kaart in tbscreencolumns via de beheertegel //Schermkolomdefinitie tabellen standaard-api//:  
-  * **identifier scherm**: xml-filename: MDDC_getTest_RechtengroepenDetail.xml 
-  * **klasse**: sysStandard 
-  * **api**: getSysStandardDetail 
-  * **view/tabel**: tbrechten 
- 
-Na Opslaan: 
-  * **in de kolom SQL kopregel1**: select 'Test_Rechtengroep' from tbportalnames where dlbegin = 'T' 
-In de kolom **Kolominformatie Toggle F11** moet vervolgens de layout van het detailscherm gedefinieerd worden in xml-formaat met een of meer kolommen uit tbrechten. 
- 
-<code xml> 
-  <?xml version="1.0" encoding="UTF-8"?> 
-  <document> 
-    <!--schermdata voor sysstandardapi met code Test_Rechtengroepen--> 
-    <!--element tagnaam verwijst naar de kolomnamen van tbrechten --> 
-    <screenwidth>900</screenwidth> 
-    <columns> 
-          <blok> 
-            <label>Rechtengroep</label> 
-            <width>100</width> 
-            <height>130</height> 
-            <type>doorlopend</type> 
-            <column> 
-                <regel>1</regel> 
-                <tagnaam>dvgroep</tagnaam> 
-                <label>Groepsnaam</label> 
-                <divwidth>200</divwidth> 
-                <divheight>30</divheight> 
-                <edit>false</edit> 
-                <showhint>false</showhint> 
-                <wavetype>string</wavetype> 
-                <source/> 
-                <filter/> 
-                <refresh>false</refresh> 
-                <backcolor/> 
-                <fontcolor/> 
-                <nullable>false</nullable> 
-                <icoon/> 
-            </column> 
-            <column> 
-                <regel>1</regel> 
-                <tagnaam>ddvervaldatum</tagnaam> 
-                <label>Niet meer geldig sinds</label> 
-                <divwidth>100</divwidth> 
-                <divheight>30</divheight> 
-                <edit>false</edit> 
-                <showhint>false</showhint> 
-                <wavetype>datum</wavetype> 
-                <source/> 
-                <filter/> 
-                <refresh>true</refresh> 
-                <backcolor/> 
-                <fontcolor/> 
-                <nullable>true</nullable> 
-                <icoon/> 
-            </column> 
-            <column> 
-                <regel>2</regel> 
-                <tagnaam>dvgroepoms</tagnaam> 
-                <label>Omschrijving</label> 
-                <divwidth>500</divwidth> 
-                <divheight>30</divheight> 
-                <edit>false</edit> 
-                <showhint>false</showhint> 
-                <wavetype>string</wavetype> 
-                <source/> 
-                <filter/> 
-                <refresh>false</refresh> 
-                <backcolor/> 
-                <fontcolor/> 
-                <nullable>true</nullable> 
-                <icoon/> 
-            </column> 
-          </blok> 
-          <blok> 
-            <label>Medewerkers</label> 
-            <width>100</width> 
-            <height>150</height> 
-            <type>getFlexList(SysStandardList,,%keypointer%,,Test_MWPerRechtengroep)</type> 
-        </blok> 
-      </columns> 
-  </document> 
-</code> 
- 
-In het blok met label //Medewerkers// wordt met de action //getFlexList(SysStandardList,,%keypointer%,,Test_MWPerRechtengroeplabel)// verwezen naar een lijst (die alhier dus als //een lijst in een detail// zal worden getoond) waarvan de gegevens staan in een andere kaart van tbsysstandardtable namelijk die met dvcode = 'Test_MWPerRechtengroeplabel'. 
- 
-De phrase //%keypointer%// in de schermlayout van een detailscherm zal daarbij door OpenWave automatisch vervangen worden door de waarde van de primary key van de detailkaart. In dit voorbeeld de dnkey van de rechtenkaart. Deze wordt dus doorgegeven als derde parameter aan getFlexList() zodat OpenWave weet dat alleen die medewerkers getoond moeten worden met een dnkeyrechtengroep gelijk aan die dnkey. 
- 
-==== 5. Maak sysstandardtable kaart voor de lijst- en detailgegevens met code Test_MWPerRechtengroep ==== 
-Maak een nieuwe kaart in tbsysstandardtable (beheertegel //Tabellen standaardAPI//): 
-  * **Code**: Test_MWPerRechtengroep 
-  * **Hoofdtabel of viewnaam**: vwfrmmedewerkers 
-  * **Kolomnaam van de primary key**: dvcode 
-  * **Tabelnaam waarop hoofdtabel/view is gebaseerd**: tbmedewerkers 
-  * **Kolomnaam foreign key uit deze achterliggende tabel**: dnkeyrechten 
-  * **Parenttabelnaam**: tbrechten 
-  * **Kolomnaam foreign key (uit hoofdtabel/view)**: dnkeyrechten 
-  * **Schermidentifier voor lijst**: MDLC_getTest_MWPerRechtengroepList.xml   
-  * **Tbqueries.dvcode voor kijkrechten**: sysstandaard_isbeheerder 
-De overige kolommen van deze kaart kunnen leeg blijven (dus geen detailscherm voor de medewerkers). 
- 
-==== 6. Maak lijstschermkolomdefinitie voor MDLC_getTest_MWPerRechtengroepList.xml ==== 
-Maak een nieuwe kaart in tbscreencolumns via de beheertegel //Schermkolomdefinitie tabellen standaard-api//: 
-  * **Schermidentifier**: xml-filename: MDLC_getTest_MWPerRechtengroepList.xml 
-  * **klasse**: sysStandard 
-  * **api**: getSysStandardList 
-  * **view/tabel**: vwfrmmedewerkers 
- 
-Na Opslaan en edit: 
-In de kolom **Kolominformatie Toggle F11** moet vervolgens de layout van het lijstscherm gedefinieerd worden in xml-formaat met een of meer kolommen uit vwfrmmedewerkers. 
- 
-<code xml> 
-  <document> 
-    <!--tagnaam slaat op een kolom uit vwfrmmedewerkers--> 
-    <column tagnaam="dvcode"> 
-        <label>Codering</label> 
-        <index>1</index> 
-        <length>100</length> 
-        <wavetype>string</wavetype> 
-        <icoon/> 
-        <showhint>false</showhint> 
-    </column> 
-    <column tagnaam="dvmedewvoluit"> 
-        <label>Naam</label> 
-        <index>2</index> 
-        <length>400</length> 
-        <wavetype>string</wavetype> 
-        <icoon/> 
-        <showhint>false</showhint> 
-      </column> 
-      <column tagnaam="ddvervaldatum"> 
-        <label>Niet meer in dienst sind</label> 
-        <index>5</index> 
-        <length>100</length> 
-        <wavetype>datum</wavetype> 
-        <icoon/> 
-        <showhint>false</showhint> 
-    </column> 
-   </document> 
-</code> 
  
 ===== Controle op valide schermverwijzingen ===== ===== Controle op valide schermverwijzingen =====
-In het servicecentrumportaal onder de kolom notificaties is een tegel //Ontbrekende sysstandardschermen in AAR// gedefinieerd. Met deze tegel wordt een lijst gegenereerd van schermaanroepen (lijstschermen of detailschermen of filterschermen of insertstandardrowschermen) in tbsystandardtable en/of tbsysstandardbutton (dus in de tabel achter de tegel //tabellen standaardapi// van het de nieuwe beheerportaal onder de kolom scherm- en tegelbeheer) die niet zijn opgenomen in de AAR. +In het servicecentrum portaal onder de kolom Notificaties is een tegel //Ontbrekende sysstandardschermen in AAR// gedefinieerd. Met deze tegel wordt een lijst gegenereerd van schermaanroepen (lijstschermen of detailschermen of filterschermen of insertstandardrowschermen) in tbsystandardtable en/of tbsysstandardbutton (dus in de tabel achter de tegel //tabellen standaardapi// van het nieuwe beheerportaal onder de kolom Scherm- en tegelbeheer) die niet zijn opgenomen in de AAR. 
  
 Dit zijn schermen die niet met implementatie en updates van OpenWave zijn aangeleverd. Dat kan zijn omdat de schermen door een functioneel beheerder zelf zijn gedefinieerd: in de tabel tbscreencolumns (tegel //Schermkolomdefinitie tabellen standaard-api//) is de kolom dvscreenxml in dat geval gevuld met de eigen opmaak. In bovengenoemde controlelijst is dat zichtbaar indien de kolom **Afwijkend scherm** aangevinkt is. Er gaat dus pas iets mis indien een regel in deze lijst is opgenomen zonder dat de kolom //Afwijkend scherm// is gevuld. Een reden is vaak dat de verwijzing en benaming van de feitelijke opmaakxml-file in de AAR van elkaar verschillen in kamelennotatie. Dit zijn schermen die niet met implementatie en updates van OpenWave zijn aangeleverd. Dat kan zijn omdat de schermen door een functioneel beheerder zelf zijn gedefinieerd: in de tabel tbscreencolumns (tegel //Schermkolomdefinitie tabellen standaard-api//) is de kolom dvscreenxml in dat geval gevuld met de eigen opmaak. In bovengenoemde controlelijst is dat zichtbaar indien de kolom **Afwijkend scherm** aangevinkt is. Er gaat dus pas iets mis indien een regel in deze lijst is opgenomen zonder dat de kolom //Afwijkend scherm// is gevuld. Een reden is vaak dat de verwijzing en benaming van de feitelijke opmaakxml-file in de AAR van elkaar verschillen in kamelennotatie.
Regel 316: Regel 115:
     * **Hint**. Deze tekst verschijnt als hint bij de knop, of als omschrijving van de knop indien onderdeel van itemlist.     * **Hint**. Deze tekst verschijnt als hint bij de knop, of als omschrijving van de knop indien onderdeel van itemlist.
     * **Lijst of Detail**. Een L of een D. Indien L dan is de knop zichtbaar op het gedefinieerde lijstscherm. Bij D dus alleen op het detailscherm.     * **Lijst of Detail**. Een L of een D. Indien L dan is de knop zichtbaar op het gedefinieerde lijstscherm. Bij D dus alleen op het detailscherm.
-    * **Linksonder of Itemlijst**. Een L of een I. Indien L dan verschijnt de knop met een icoon linksonder aan de pagina. Indien I dan verschijnt de knop als item met als omschrijving de Hint in een itemlijst rechtsboven aan de pagina. +    * **Linksonder of Itemlijst**. Een L of een I. Indien L dan verschijnt de knop met een icoon linksonder aan de pagina. Indien I dan verschijnt de knop als item met als omschrijving de Hint in een itemlijst (Opties-menu) rechtsboven aan de pagina. 
-    * **Icoonnummer** Alleen van toepassing indien (L)inksonder. Hier moet een nummer komen uit de lijst:[[openwave:1.30:applicatiebeheer:instellen_inrichten:schermdefinitie:iconenlijst]].+    * **Icoonnummer**Alleen van toepassing indien (L)inksonder. Hier moet een nummer komen uit de lijst:[[openwave:1.30:applicatiebeheer:instellen_inrichten:schermdefinitie:iconenlijst]].
     * **Volgorde**. Met deze numerieke waarde kan de volgorde van de knoppen van links naar rechts of - indien itemlist- van boven naar beneden bepaald worden.     * **Volgorde**. Met deze numerieke waarde kan de volgorde van de knoppen van links naar rechts of - indien itemlist- van boven naar beneden bepaald worden.
     * **Refresh**. Indien aangevinkt dan zal het scherm na het uitvoeren van de action bij de knop opnieuw worden uitgeschreven.     * **Refresh**. Indien aangevinkt dan zal het scherm na het uitvoeren van de action bij de knop opnieuw worden uitgeschreven.
Regel 332: Regel 131:
     * { + kolomnaam uit hoofdview/tabel + } wordt vervangen door de achterliggende waarde van die kolomnaam voor de actieve rij (zowel detail als lijstscherm). Dus stel dat de hoofdview/tabel = tbomgvergunning en een van de parameters heeft de waarde {dvzaakcode} dan zal die parameter vervangen worden met de achterliggende waarde van dvzaakcode voor de actieve rij.     * { + kolomnaam uit hoofdview/tabel + } wordt vervangen door de achterliggende waarde van die kolomnaam voor de actieve rij (zowel detail als lijstscherm). Dus stel dat de hoofdview/tabel = tbomgvergunning en een van de parameters heeft de waarde {dvzaakcode} dan zal die parameter vervangen worden met de achterliggende waarde van dvzaakcode voor de actieve rij.
  
-==== Voorbeeld knop Standaard insertscherm ====+==== Knop Standaard insertscherm ====
 Om een knop te maken met als doel een standaard insert op een tabel moet bij de knopdefinitie de action startWizard aangeroepen worden met: Om een knop te maken met als doel een standaard insert op een tabel moet bij de knopdefinitie de action startWizard aangeroepen worden met:
   * als eerste parameter de tekst //insertSysStandardRow//    * als eerste parameter de tekst //insertSysStandardRow// 
Regel 339: Regel 138:
   * als vierde parameter een verwijzing naar de unieke codering van de kaart uit tbsysstandardtabel waar deze knopdefinitie bij hoort.   * als vierde parameter een verwijzing naar de unieke codering van de kaart uit tbsysstandardtabel waar deze knopdefinitie bij hoort.
  
-Een voorbeeld van de insertknop in de standaarduitlevering van OpenWave is te vinden in de beheerportaal onder tegel //tabellen standaardapi// met codering //beheer_vwfrmsoortomgverg//\\ +<adm example> 
-Voor de opmaak van het insertscherm (de xml) zie: [[openwave:1.30:applicatiebeheer:instellen_inrichten:schermdefinitie:scherminfomatie_voor_standaard_insertschermen]].+Een voorbeeld van de aanroep van insertSysStandardRow in de basis uitlevering van OpenWave is de insert-knop op het lijstscherm van medewerkers verbonden aan een team.\\  
 +Zie voor de definitie hiervan: beheerportaalonder de kolom //Scherm-en tegelbeheer// de tegel //Tabellen Standaardapi// en vervolgens de rij in tbsysstandardtable met dvcode = //beheer_vwfrmmwteams//. Het gaat om de knop //Voeg medewerker toe//\\ 
 +Het resultaat is te gebruiken in het beheerportaal onder de kolom //Gebruikers// de tegel //Teams//. Op het detailscherm van een team staat de lijst met medewerkers bij dat teamAan de insert-knop is dus de InsertSysStandardRow-functie verbonden. 
 +</adm>
  
-==== Voorbeeld knop Standaard kopieerscherm ====+Voor de opmaak van standaard insertscherm (de xml) zie: [[openwave:1.30:applicatiebeheer:instellen_inrichten:schermdefinitie:scherminfomatie_voor_standaard_insertschermen]]. 
 + 
 + 
 +==== Knop Standaard kopieerscherm ====
 Om een knop te maken met als doel een standaard insert op een tabel te doen als kopie van de kaart waar de gebruiker  op staat moet bij de knopdefinitie de action startWizard aangeroepen worden met: Om een knop te maken met als doel een standaard insert op een tabel te doen als kopie van de kaart waar de gebruiker  op staat moet bij de knopdefinitie de action startWizard aangeroepen worden met:
   * als eerste parameter de tekst //kopieerSysStandardRow//    * als eerste parameter de tekst //kopieerSysStandardRow// 
   * als tweede parameter de schermnaam van een xml waarin het insertscherm is gedefinieerd. Bijv. MDWC_insertTbKopCompGem.xml. Deze naam moet beginnen met 'MDWC_' en eindigen op '.xml'. De xml met daarin de scherminformatie moet opgenomen worden in de tabel tbscreencolumns. OpenWave maakt zelf een kaart aan in deze tabel als deze niet bestaat. Indien (kopieerSysStandardRow) zal het programma op het detailscherm van de knop achter de tweede parameter een verwijsknop naar deze screencolumns kaart plaatsen   * als tweede parameter de schermnaam van een xml waarin het insertscherm is gedefinieerd. Bijv. MDWC_insertTbKopCompGem.xml. Deze naam moet beginnen met 'MDWC_' en eindigen op '.xml'. De xml met daarin de scherminformatie moet opgenomen worden in de tabel tbscreencolumns. OpenWave maakt zelf een kaart aan in deze tabel als deze niet bestaat. Indien (kopieerSysStandardRow) zal het programma op het detailscherm van de knop achter de tweede parameter een verwijsknop naar deze screencolumns kaart plaatsen
-  * de derde parameter is bevat de primary key van de kaart waarop de gebruiker staat. Hier in te geven met de tekst //{id}//. Die tekst %idwordt door OpenWave 'on the fly' vervangen met de primary key van de te kopieren kaart +  * de derde parameter is bevat de primary key van de kaart waarop de gebruiker staat. Hier in te geven met de tekst //{id}//. Die tekst //id// wordt door OpenWave 'on the fly' vervangen met de primary key van de te kopiëren kaart 
   * als vierde parameter een verwijzing naar de unieke codering van de kaart uit tbsysstandardtabel waar deze knopdefinitie bij hoort.   * als vierde parameter een verwijzing naar de unieke codering van de kaart uit tbsysstandardtabel waar deze knopdefinitie bij hoort.
  
-Een voorbeeld van de kopieerknop in de standaarduitlevering van OpenWave is te vinden in de beheerportaal onder tegel //tabellen standaardapi// met codering //beheer_vwfrmsoortomgverg//\\ +<adm example> 
-Voor de opmaak van het insertscherm (de xml) zie: [[openwave:1.30:applicatiebeheer:instellen_inrichten:schermdefinitie:scherminfomatie_voor_standaard_insertschermen]].+Een voorbeeld van de aanroep van kopieerSysStandardRow in de basis uitlevering van OpenWave is de kopieer-knop op het lijstscherm van de zaaktypes.\\  
 +Zie voor de definitie hiervan: beheerportaalonder de kolom //Scherm-en tegelbeheer// de tegel //Tabellen Standaardapi// en vervolgens de rij in tbsysstandardtable met dvcode = //beheer_vwfrmsoortomgvergs//. Het gaat om de knop //Kopieer zaaktype//\\ 
 +Het resultaat is te gebruiken in het portaal Zaakbeheer onder de kolom //Zaaktypes// de tegel //Zaaktypes//. Op het lijstscherm van de omgevingzaaktypes staat de kopieer-knop waar dus de kopieerSysStandardRow-functie aan verbonden is. 
 +</adm> 
 + 
 +Voor de opmaak van standaard insertscherm (de xml) zie: [[openwave:1.30:applicatiebeheer:instellen_inrichten:schermdefinitie:scherminfomatie_voor_standaard_insertschermen]].
  
-==== Voorbeeld knop Standaard verwijderen van een kaart ====+==== Knop Standaard verwijderen van een kaart ====
 Om een knop te maken met als doel een standaard verwijderactie op een kaart van een tabel moet bij de knopdefinitie de action startWizard aangeroepen worden met: Om een knop te maken met als doel een standaard verwijderactie op een kaart van een tabel moet bij de knopdefinitie de action startWizard aangeroepen worden met:
   * als eerste parameter de tekst //deleteSysStandardRow//   * als eerste parameter de tekst //deleteSysStandardRow//
Regel 358: Regel 168:
   * als derde parameter een kolomnaam uit de view of tabel die aan de lijst ten grondslag ligt, waarvan de achterliggende waarde  gebruikt wordt voor de //weet u zeker// tekst   * als derde parameter een kolomnaam uit de view of tabel die aan de lijst ten grondslag ligt, waarvan de achterliggende waarde  gebruikt wordt voor de //weet u zeker// tekst
   * als vierde parameter de code uit tbsysstandardtable die verwijst naar de kaart waar de betreffende standaardlijst in is gedefinieerd.   * als vierde parameter de code uit tbsysstandardtable die verwijst naar de kaart waar de betreffende standaardlijst in is gedefinieerd.
 +
 +<adm example>
 +Een voorbeeld van de aanroep van deleteSysStandardRow in de basis uitlevering van OpenWave is de min-knop op het lijstscherm van de adviesinstanties:\\ 
 +Zie voor de definitie hiervan: beheerportaal, onder de kolom //Scherm-en tegelbeheer// de tegel //Tabellen Standaardapi// en vervolgens de rij in tbsysstandardtable met dvcode = //beheer_tbadviesinstanties//. Het gaat om de knop //Verwijder adviesinstantie//. \\
 +Het resultaat is te gebruiken in het beheerportaal onder de kolom //Gebruikers// de tegel //Adviesinstanties//. Op het lijstscherm is de min-knop  hier dus verbonden aan de deletesysstandardrow-functie.
 +</adm>
  
 Deze methode deleteSysStandardRow kijkt naar de voorwaarden gedefinieerd in de kaart uit tbsysstandardtable met dvcode = de vierde parameter. Deze methode deleteSysStandardRow kijkt naar de voorwaarden gedefinieerd in de kaart uit tbsysstandardtable met dvcode = de vierde parameter.
Regel 370: Regel 186:
 OpenWave waarschuwt ook met naam en toenaam dat een verwijderactie niet plaats kan vinden indien er een foreign key in de weg zit. OpenWave waarschuwt ook met naam en toenaam dat een verwijderactie niet plaats kan vinden indien er een foreign key in de weg zit.
  
-==== Voorbeeld knop insert meerdere kaarten vanuit een derde codetabel ====+==== Knop insert of synchroniseer vanuit een derde codetabel ====
  
 +{{:openwave:applicatiebeheer:instellen_inrichten:koppelsysstandardrow.png?500|}}
 +
 +Toepassingen: 
 +    * Inserten in een sysstandaardtabel van meerdere kaarten op basis van een selectie uit een derde codetabel 
 +    * Of synchroniseren van de rijen in een sysstandaardtabel op basis van een selectie uit een derde codetabel
 +
 +In beide gevallen is de sysstandaardtabel in kwestie een dochtertabel van een parent.\\
 +
 +<adm example>
 +Een voorbeeld van synchronisatiegebruik in de basis uitlevering van OpenWave is de koppeling van documentsjablonen aan een of meer groepen:\\ 
 +Zie voor de definitie hiervan: beheerportaal, onder de kolom //Scherm-en tegelbeheer// de tegel //Tabellen Standaardapi// en vervolgens de rij in tbsysstandardtable met dvcode = //beheer_vwfrmkopdocaandocsoort//. Het gaat om de knop //Sjabloon koppelen aan sjabloongroepen//
 +Het resultaat is te gebruiken in het beheerportaal onder de kolom //Werkbeheer// de tegel //Documentsjablonen//. Op het detailscherm van een willekeurig sjabloon is een lijst opgenomen van de groepen waaraan dat sjabloon is verbonden. De plusknop is hier dus verbonden aan de koppelsysstandardrow-functie.
 +</adm>
  
   * **startwizard(koppelSysStandardRow,param2,param3,param4)**   * **startwizard(koppelSysStandardRow,param2,param3,param4)**
-    * Voorbeeld: startwizard(koppelSysStandardRow,%keyparent%;dvomschrijving;;0, tbdocumentsoorten;dnkeydocsoort;dnkey;;dvomschrijving;;ddvervaldatum;1=1, beheer_vwfrmkopdocaandocsoort ) 
-    * Aanroep van een meerdere inserts tegelijk op een koppeltabel die gedefinieerd is in tbsysstandardtabel (beheertegel //Tabellen Standaardapi//) als dochtertabel (dus voorzien van een parentkey). Deze action kan bijv. aan een insertknop onder aan een lijst gekoppeld worden. De gebruiker kan uit een derde tabel rijen aanvinken op grond waarvan nieuwe kaarten worden toegevoegd en/of verwijderd in de standaardtabel. De functie houdt rekening met de in de tbsysstandardbutton gedefinieerde rechten bij die knop en met het al of niet gevuld zijn van de in de tbsysstandardtable gedefinieerde blokkeringsvelden 
     * param1: koppelSysStandardRow     * param1: koppelSysStandardRow
-    * param2: Bestaat uit vier delen gescheiden door een puntkomma +    * param2: Bestaat uit vier delen gescheiden door een puntkomma 
-      * Eerste deelparameter is de waarde van de parentkey naar de parenttabel (in te geven als %parentkey% en wordt on the fly vervangen met de echte waarde) +      * de eerste deelparameter is de waarde van de parentkey naar de parenttabel (in te geven als %keyparent% en wordt on the fly vervangen met de echte waarde) 
-      * Twee deelparameter is een veldnaam uit de parenttabel waarvan de waarde gebruikt wordt in de koptekst +      * de twee deelparameter is een veldnaam uit de parenttabel waarvan de waarde gebruikt wordt in de koptekst 
-      * De derde deelparameter is optioneel en bevat - indien gevuld - een veldnaam uit de parenttabel die een moduleletter bevat. Mag dus leeg zijn +      * de derde deelparameter is optioneel en bevat - indien gevuld - een veldnaam uit de parenttabel die een moduleletter bevat. Mag dus leeg zijn  
-      * De vierde deelparameter is leeg of 0 of 1. Indien 0 of leeg dan worden de rijen in de standaardtabel (de koppeltabel) gelijkgemaakt met de aangevinkte rijen van de codetabel. Sommige worden dus verwijderd, sommige worden toegevoegd. Indien de waarde 1 dan worden alle aangevinkte rijen altijd toegevoegd aan de standaardtabel. +      * de vierde deelparameter is leeg of 0 of 1. Indien 0 of leeg dan worden de rijen in de standaardtabel (de koppeltabel) gelijkgemaakt (gesynchroniseerd) met de aangevinkte rijen van de codetabel. Sommige worden dus verwijderd, sommige worden toegevoegd. Indien de waarde 1 dan worden alle aangevinkte rijen altijd toegevoegd aan de standaardtabel. 
-    * param3: Bestaat uit acht delen gescheiden door een puntkomma. +    * param3: Bestaat uit acht delen gescheiden door een puntkomma: 
-      * De eerste deelparameter is de tabelnaam van de codetabel  +      * de eerste deelparameter is de tabelnaam van de codetabel  
-      * De tweede deelparameter is de veldnaam van de foreign-key kolom uit de koppeltabel naar de codetabel  +      * de tweede deelparameter is de veldnaam van de foreign-key kolom uit de koppeltabel naar de codetabel  
-      * De derde deelparameter is de veldnaam van de primary key van  de codetabel  +      * de derde deelparameter is de veldnaam van de primary key van  de codetabel  
-      * De vierde deelparameter is een veldnaam uit de codetabel die getoond kan worden in het aanvinkscherm. Mag leeg zijn. +      * de vierde deelparameter is een veldnaam uit de codetabel die getoond kan worden in het aanvinkscherm. Mag leeg zijn 
-      * De vijfde deelparameter is een veldnaam uit de codetabel die getoond moet worden in het aanvinkscherm. Mag NIET leeg zijn. +      * de vijfde deelparameter is een veldnaam uit de codetabel die getoond moet worden in het aanvinkscherm. Mag NIET leeg zijn 
-      * De zesde deelparameter is optioneel en bevat - indien gevuld - een veldnaam uit de codetabel die een moduleletter bevat. Mag dus leeg zijn.  +      * de zesde deelparameter is optioneel en bevat - indien gevuld - een veldnaam uit de codetabel die een moduleletter bevat. Mag dus leeg zijn. 
-      * De zevende deelparameter is optioneel en bevat - indien gevuld - een veldnaam uit de codetabel die gevuld kan zijn met een vervaldatum. Indien gevuld dan zijn de vervallen items niet zichtbaar in het keuzelijstscherm. +      * de zevende deelparameter is optioneel en bevat - indien gevuld - een veldnaam uit de codetabel die gevuld kan zijn met een vervaldatum. Indien gevuld dan zijn de vervallen items niet zichtbaar in het keuzelijstscherm 
-      * De achtste deelparameter is optioneel en bevat een extra where clausule die aan de query die ten grondsdlag aan de keuzelijst wordt toegevoegd. Bijvoorbeeld //substr(dvcode,1,1) = 'R'// of //dnminwaarde > 40//+      * de achtste deelparameter is optioneel en bevat een extra where clausule die aan de query die ten grondslag aan de keuzelijst wordt toegevoegd. Bijvoorbeeld //substr(dvcode,1,1) = 'R'// of //dnminwaarde > 40//
     * param4: de code uit tbsysstandardtable die verwijst naar de kaart waar de betreffende tabel in is gedefinieerd.     * param4: de code uit tbsysstandardtable die verwijst naar de kaart waar de betreffende tabel in is gedefinieerd.
  
-Zie verder over het gebruik en mogelijkheden van actions: [[openwave:1.30:applicatiebeheer:instellen_inrichten:actions]].+In beide toepassingsgevallen kan de gebruiker één of meer rijen aan- of uitvinken van de codetabel in een wizardscherm. \\ De selectie van rijen op die codetabel wordt beïnvloed door: 
 +  * Indien de zevende deelparameter van param3 is gevuld met de kolomnaam van een datumveld dan gaat OpenWave er van uit dat het hier gaat om een vervaldatum en worden alleen die kaarten uit de codetabel getoond die niet vervallen zijn.\\ 
 +  * De moduleletter (de derde deelparameter van param2 die verwijst naar kolomnaam van de parenttabel, en de zesde deelparameter van param3 die verwijst naar kolomnaam van de codetabel) wordt - indien beide deelparameters gevuld - om de rijen van de codetabel te filteren op de moduleletter van de parenttabelMogen dus leeg zijn. Let op de inhoud van de modulekolom van de parenttabel moet in dat geval gevuld zijn met één letter namelijkW,A,O,I,H of E).\\ 
 +  * De rijen van de codetabel kunnen aan nog een voorwaarde moeten voldoen indien de achtste deelparameter van param3 gevuld is met een statement dat gebruikt kan worden in de where clausule van de SQL die ten grondslag ligt aan het oproepen van de codetabelrijen.\\
  
 +De  vierde deelparameter van param2 (met de waarde 0, leeg of 1) is bepalend voor wat OpenWave met de selectie van rijen uit de codetabel gaat doen: Indien
 +  * leeg of de waarde 0 dan zal OpenWave synchroniseren. Dat betekent dat op basis van de NIET aangevinkte rijen OpenWave kijkt of er rijen met foreign keys bestaan in de sysstandaardtabel (de koppeltabel) met een verwijzing naar zo'n niet aangevinkte rij. Zo ja dan worden deze verwijderd uit de koppeltabel. Vervolgens wordt gekeken of er aangevinkte rijen zijn in de codetabel die nog geen verwijzing hebben vanuit de standaardtabel. Zo ja worden op basis daarvan nieuwe kaarten aangemaakt in de syststandaardtabel (de koppeltabel) met gevulde foreign key naar de parenttabel en gevulde foreign key naar de codetabel. 
 +  * de waarde 1 dan zal OpenWave op basis van elk van de aangevinkte rijen een kaart aanmaken in de sysstandaardtabel (de koppeltabel) met gevulde foreign key naar de parenttabel en gevulde foreign key naar de codetabel. 
  • openwave/1.30/applicatiebeheer/instellen_inrichten/standardlist_standarddetail.1707318398.txt.gz
  • Laatst gewijzigd: 2024/02/07 16:06
  • door Ton Pullens