openwave:1.32: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.32:applicatiebeheer:instellen_inrichten:standardlist_standarddetail [2024/11/26 06:07] – ↷ Pagina verplaatst van openwave:1.31:applicatiebeheer:instellen_inrichten:standardlist_standarddetail naar openwave:1.32:applicatiebeheer:instellen_inrichten:standardlist_standarddetail Kars Gottschalopenwave:1.32:applicatiebeheer:instellen_inrichten:standardlist_standarddetail [2024/12/11 14:05] (huidige) Kars Gottschal
Regel 1: Regel 1:
 ====== Standaard Lijst- en Detailschermen ====== ====== Standaard Lijst- en Detailschermen ======
-{{tag>openwave:1.31:applicatiebeheer:functionaliteiten:applicatiebouw}}+{{tag>openwave:1.32:applicatiebeheer:functionaliteiten:applicatiebouw}}
 Portal beheerportaal-Nieuw. Tegel //Tabellen standaardAPI//. Portal beheerportaal-Nieuw. Tegel //Tabellen standaardAPI//.
  
Regel 12: Regel 12:
   * tbSysstandardButton   * tbSysstandardButton
  
-Zie ook: [[openwave:1.31:applicatiebeheer:instellen_inrichten:standardlist_standarddetail:utigewerkt_voorbeeld|]]+Zie ook: [[openwave:1.32:applicatiebeheer:instellen_inrichten:standardlist_standarddetail:utigewerkt_voorbeeld]]
  
 ===== Omschrijving ===== ===== Omschrijving =====
Regel 47: Regel 47:
   * **Kolomnaam foreign key uit deze achterliggende tabel** (dvmainbaseforeignkeyname). 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 achterliggende tabel (dvmainbasetablename).   * **Kolomnaam foreign key uit deze achterliggende tabel** (dvmainbaseforeignkeyname). 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 achterliggende tabel (dvmainbasetablename).
   * **Parenttabelnaam** (dvparenttablename). De naam van de tabel (of view) die als parent fungeert voor de hoofdtabel/view.   * **Parenttabelnaam** (dvparenttablename). De naam van de tabel (of view) die als parent fungeert voor de hoofdtabel/view.
-  * **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 verwijderacties 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.
Regel 68: Regel 68:
     * //%keyparent%// met de primary key van de bovenliggende tabel indien de standaardlijst wordt aangeroepen in een blok vanuit een detailscherm.     * //%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.31:applicatiebeheer:instellen_inrichten:actions]].+Zie verder over het gebruik en mogelijkheden van actions: [[openwave:1.32:applicatiebeheer:instellen_inrichten:actions]].\\
  
-==== Voorbeeld gebruik rechtenkolom op basis van query====+===== 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. 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 gebruik rechtenkolom>
 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 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).
  
Regel 86: Regel 87:
 //fn_iscompartimentok// kijkt op grond van de inlogger, de module en de dnkey van de kaart of de compartimentsrechten in de weg zitten. De string //:keyaccount// wordt onder water altijd vervangen door de dvcode van de inlogger. De string //(id)// altijd door de dnkey van de kaart waar de gebruiker op staat in de hoofdtabel (//dvmaintablename//).\\ //fn_iscompartimentok// kijkt op grond van de inlogger, de module en de dnkey van de kaart of de compartimentsrechten in de weg zitten. De string //:keyaccount// wordt onder water altijd vervangen door de dvcode van de inlogger. De string //(id)// altijd door de dnkey van de kaart waar de gebruiker op staat in de hoofdtabel (//dvmaintablename//).\\
 //fn_rechtenkolom// kijkt op grond van de aangegeven rechtenkolom (rechtentabel gevolgd door een punt gevolgd door de kolomnaam) of de inlogger (//:keyaccount//) wijzigrechten heeft volgens die rechtenkolom .\\ //fn_rechtenkolom// kijkt op grond van de aangegeven rechtenkolom (rechtentabel gevolgd door een punt gevolgd door de kolomnaam) of de inlogger (//:keyaccount//) wijzigrechten heeft volgens die rechtenkolom .\\
-Zie ook [[openwave:1.31:applicatiebeheer:instellen_inrichten:openwave_database-functies|]].+Zie ook [[openwave:1.32:applicatiebeheer:instellen_inrichten:openwave_database-functies]].
 </adm> </adm>
  
Regel 95: Regel 96:
  
 ===== Filterdefinitie bij lijstscherm ===== ===== Filterdefinitie bij lijstscherm =====
-Zie: [[openwave:1.31:applicatiebeheer:instellen_inrichten:schermdefinitie:scherminformatie_voor_filterblokken]].+Zie: [[openwave:1.32:applicatiebeheer:instellen_inrichten:schermdefinitie:scherminformatie_voor_filterblokken]].
 Indien er gewenst is dat het lijstscherm gefilterd kan worden zal er een filter xml moeten worden gedefinieerd. De naam van de xml moet beginnen net 'MDFC_' en de rest van de naam moet gelijk zijn als de xml-naam van het lijstscherm (zonder de prefix MDDLC_). Indien er gewenst is dat het lijstscherm gefilterd kan worden zal er een filter xml moeten worden gedefinieerd. De naam van de xml moet beginnen net 'MDFC_' en de rest van de naam moet gelijk zijn als de xml-naam van het lijstscherm (zonder de prefix MDDLC_).
  
Regel 105: Regel 106:
 ===== Knoppen op lijst- en detailschermen ===== ===== Knoppen op lijst- en detailschermen =====
 Knoppen die binnen een detailscherm dat door tbsysstandardtable wordt gedefinieerd- bijv. achter een specifieke kolom - moeten verschijnen, worden in de xml van dat detailscherm gedefinieerd inclusief de actions die aan die knoppen verbonden moeten zijn: dus - in bovenstaand voorbeeld - in de MDFC_getTest_MWPerRechtengroepList.xml. Zie Knoppen die binnen een detailscherm dat door tbsysstandardtable wordt gedefinieerd- bijv. achter een specifieke kolom - moeten verschijnen, worden in de xml van dat detailscherm gedefinieerd inclusief de actions die aan die knoppen verbonden moeten zijn: dus - in bovenstaand voorbeeld - in de MDFC_getTest_MWPerRechtengroepList.xml. Zie
-[[openwave:1.31:applicatiebeheer:instellen_inrichten:schermdefinitie:scherminformatie_voor_detailschermen]].+[[openwave:1.32:applicatiebeheer:instellen_inrichten:schermdefinitie:scherminformatie_voor_detailschermen]].
  
 De knoppen die linksonder op het gedefinieerde lijst- of detailscherm moeten komen, kunnen binnen de detailkaart van tbSysStandardTable in het blok //Knoppen// worden gedefinieerd. Deze informatie wordt in de tabel tbSysstandardButton opgeslagen: een dochtertabel van tbsysstandardtable. De knoppen die linksonder op het gedefinieerde lijst- of detailscherm moeten komen, kunnen binnen de detailkaart van tbSysStandardTable in het blok //Knoppen// worden gedefinieerd. Deze informatie wordt in de tabel tbSysstandardButton opgeslagen: een dochtertabel van tbsysstandardtable.
Regel 116: Regel 117:
     * **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 (Opties-menu) 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.31:applicatiebeheer:instellen_inrichten:schermdefinitie:iconenlijst]].+    * **Icoonnummer**. Alleen van toepassing indien (L)inksonder. Hier moet een nummer komen uit de lijst:[[openwave:1.32: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 138: Regel 139:
   * 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.
  
-<adm example>+<adm example voorbeeld insertsysstandardrow>
 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.\\  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: beheerportaal, onder 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//. \\ 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_vwfrmmwteams//. Het gaat om de knop //Voeg medewerker toe//. \\
Regel 144: Regel 145:
 </adm> </adm>
  
-Voor de opmaak van standaard insertscherm (de xml) zie: [[openwave:1.31:applicatiebeheer:instellen_inrichten:schermdefinitie:scherminfomatie_voor_standaard_insertschermen]].+Voor de opmaak van standaard insertscherm (de xml) zie: [[openwave:1.32:applicatiebeheer:instellen_inrichten:schermdefinitie:scherminfomatie_voor_standaard_insertschermen]].
  
  
Regel 154: Regel 155:
   * 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.
  
-<adm example>+<adm example voorbeeld kopieersysstandardrow>
 Een voorbeeld van de aanroep van kopieerSysStandardRow in de basis uitlevering van OpenWave is de kopieer-knop op het lijstscherm van de zaaktypes.\\  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: beheerportaal, onder 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//. \\ 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_vwfrmsoortomgvergs//. Het gaat om de knop //Kopieer zaaktype//. \\
Regel 160: Regel 161:
 </adm> </adm>
  
-Voor de opmaak van standaard insertscherm (de xml) zie: [[openwave:1.31:applicatiebeheer:instellen_inrichten:schermdefinitie:scherminfomatie_voor_standaard_insertschermen]].+Voor de opmaak van standaard insertscherm (de xml) zie: [[openwave:1.32:applicatiebeheer:instellen_inrichten:schermdefinitie:scherminfomatie_voor_standaard_insertschermen]].
  
 ==== Knop Standaard verwijderen van een kaart ==== ==== Knop Standaard verwijderen van een kaart ====
Regel 169: Regel 170:
   * 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>+<adm example voorbeeld deletesysstandardrow>
 Een voorbeeld van de aanroep van deleteSysStandardRow in de basis uitlevering van OpenWave is de min-knop op het lijstscherm van de adviesinstanties:\\  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//. \\ 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//. \\
Regel 188: Regel 189:
 ==== Knop insert of synchroniseer vanuit een derde codetabel ==== ==== Knop insert of synchroniseer vanuit een derde codetabel ====
  
-{{:openwave:1.31:applicatiebeheer:instellen_inrichten:koppelsysstandardrow.png?500|}}+{{openwave:applicatiebeheer:instellen_inrichten:koppelsysstandardrow.png?500|}}
  
 Toepassingen:  Toepassingen: 
Regel 196: Regel 197:
 In beide gevallen is de sysstandaardtabel in kwestie een dochtertabel van een parent.\\ 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:\\  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// 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. 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)**
Regel 209: Regel 209:
       * 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 (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.       * 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 negen delen gescheiden door een puntkomma: 
-      * de eerste deelparameter is de tabelnaam van de codetabel +      * de eerste deelparameter is de tabelnaam van de codetabel ((mag ook een viewnaam zijn op basis van de code tabel)
       * 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 of view 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 of view 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 of view 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 of view 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 grondslag 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 met kolommen uit de codetabel/view die aan de query die ten grondslag aan de keuzelijst wordt toegevoegd. Bijvoorbeeld //substr(dvcode,1,1) = 'R'// of //dnminwaarde > 40// 
 +      * de negende parameter is optioneel en bevat een verwijzing naar tbqueries (dvcode). Indien gevuld dan zal OpenWave de codetabel tonen volgens die select-query. Die query moet aan een aantal eisen voldoen: 
 +        *  Er moet een kolomnaam zijn met de naam //id//, waarvan de inhoud bij koppelen overgenomen wordt in de kolom aangeduid in de tweede deelparameter van param3 (de veldnaam van de foreign-key kolom uit de koppeltabel naar de codetabel) 
 +        * Er  moet een kolom zijn met de naam //multiselect// waarvan de waarde T of F moet zijn. 
 +        * Er  moet een kolom zijn met de naam //dnkey// waarvan de inhoud een primary key van de codetabel is. 
 +        * Er moet een  kolomnaam zijn met als naam de inhoud van vijfde deelparameter van param3 en deze kolom moet een gevulde waarde hebben. 
 +        * Indien de vierde deelparameter van param3 gevuld is, dan moet er een kolomnaam zijn met als naam de inhoud van vierde deelparameter van param3. 
 +        * De query kan gebruik maken van de variable //{id}// die on the fly wordt gevuld met de waarde van %keyparent% (dus met de primary key van de parenttabel)
     * 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.
  
Regel 228: Regel 235:
   * 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.    * 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.    * 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. 
 +
 +
 +<adm example voorbeeld koppelsysstandardrow zonder query-verwijzing>
 +De knop //Sjabloon koppelen aan sjabloongroepen// is als volgt gedefinieerd bij de sysstandaartabel met //code beheer_vwfrmkopdocaandocsoort//:\\
 +  action = //startwizard//
 +  param1 = //koppelSysStandardRow//
 +  param2 = //%keyparent%;dvomschrijving;dvvantoepop;0//
 +  param3 = //tbdocumentsoorten;dnkeydocsoort;dnkey;;dvomschrijving;dvindelenin;ddvervaldatum;1=1//
 +  param4 = //beheer_vwfrmkopdocaandocsoort//
 +  
 +Op grond hiervan toont OpenWave een lijstje uit tbdocumentssoorten (de sjabloongroepen) die de gebruiker 
 +nog aan aan- en uitvinken. De aangevinkte kaarten van deze codetabel worden overgenomen in tbkopdocaandocsoort. 
 +Tbkopdocaandocsoort is een dochtertabel van TbDocumenten (de sjablonen). Dus:
 +    Tbdocumenten is de parentabel
 +    Tbkopdocaandocsoort is de koppeltabel 
 +    Tbdocumentsoorten is de codetabel 
 +
 +param2
 +  * de eerste deelparameter //%keyparent%// is de waarde van de primary key van tbdocumenten van de kaart waarvanuit de functie koppelsysstandardrow() wordt aangeroepen. Deze wordt in dit voorbeeld on the fly door OpenWave gevuld.
 +  * de tweede deelparameter //dvomschrijving// is een veldnaam uit tbdocumenten waarvan de waarde gebruikt wordt in de koptekst boven de codetabellijst
 +  * de derde deelparameter //dvvantoepop// is een veldnaam uit tbdocumenten die een moduleletter bevat (B,O,W,C,I,E of H) die gebruikt kan worden om de codetabel te filteren
 +  * de vierde deelparameter //0// betrekent dat de aangevinkte kaarten uit de codetabel Tbdocumentsoorten worden overgenomen in tbkopdocaansoort en dat de niet aangevinkte kaarten juist worden verwijderd
 +
 +param3
 +  * de eerste deelparameter //tbdocumentsoorten// geeft de naam van de codetabel 
 +  * de tweede deelparameter //dnkeydocsoort// is de naam van de foreign key-kolom uit tbkopdocaandocsoort richting tbdocumentsoorten
 +  * de derde deelparameter //dnkey// is de naam van de primary key-kolom uit tbdocumentsoorten waar dnkeysocsoort naar verwijst
 +  * de vierde deelparameter is leeg en worfdt dus niet gebruikt.
 +  * de vijfde deelparameter //dvomschrijving// is een kolomnaam uit tbdocumentsoorten die getoond moet worden in de keuzelijst
 +  * de zesde deelparameter //dvindelenin// is een kolomnaam uit tbdocumentsoorten waarop de waarde van de derde deelparameter van param2 wordt gefilterd
 +  * de zevende deelparameter //ddvervaldatum// is een vervaldatumkolomnaam uit tbdocumentsoorten waarop wordt gefilterd (alleen geldige)
 +  * de achtste deelparameter //1=1// is de extra where clausule waarop de lijst uit tbdocumentsoorten wordt gefilterd (in dit geval dus altijd true)
 +  * de negende deelparameter is leeg. Dus Openwave construeerst zelf een lijst uit tbdocumentsoorten op grond van de andere deelparameters.
 +
 +param4 //beheer_vwfrmkopdocaandocsoort// bevat de codering van de betrokken standardtabel (tbstandardtable.dvcode) op grond waarvan Openwave de relatie-gegevens tussen tbkopdocaandocsoort en tbdocumenten ophaalt.\\
 +\\
 +De query die OpenWave construeert ziet er als volgt uit - ervanuitgaande dat %keyparent% de waarde 100 geeft en de module in dvvantoepop de waarde W:\\
 +  select b.dnkey as id, 'T' as multiselect,b.dnkey as dnkey, b.dvomschrijving
 +    from tbkopdocaandocsoort a inner join tbdocumentsoorten b on (a.dnkeydocsoort= b.dnkey) 
 +    where a.dnkeydocument = 100 
 +   UNION 
 +   select dnkey as id, 'F' as multiselect,dnkey as dnkey, dvomschrijving 
 +    from tbdocumentsoorten where dnkey 
 +    not in (select dnkeydocsoort from tbkopdocaandocsoort  where dnkeydocument = 100) 
 +    and (ddvervaldatum is null or ddvervaldatum >= fn_vandaag(0)) 
 +    and 1 = 1 and instr('W',dvindelenin) > 0  order by dvomschrijving
 +
 +Dus eerst een opsomming met multiselect = T van alle documentsoorten die reeds in tbkopdocaandocsoort en vervolgens een opsomming met multiselect = F van alle documentsoorten die NIET in tbkopdocaandocsoort voorkomen (bij document met dnkey = 100).
 +</adm>
 +
 +<adm example voorbeeld koppelsysstandardrow met eigen query-verwijzing>
 +Deze Query die OpenWave zelf construeert bij ontbreken van de negende deelparameter bij param3 mag de gebruiker ook zelf construeren en anders maken. Er moet dan een verwijzing in de negende deelparameter komen naar een query. Stel die query heet //MijnEigenQuery// dan is param3:\\ //tbdocumentsoorten;dnkeydocsoort;dnkey;;dvomschrijving;;;;Mijneigenquery//\\
 +
 +Deze query kan er dan op grond van bovenstaand voorbeeld als volgt uit zien:\\
 +
 +  select b.dnkey as id, 'T' as multiselect, b.dvomschrijving
 +    from tbkopdocaandocsoort a inner join tbdocumentsoorten b on (a.dnkeydocsoort= b.dnkey) 
 +    where a.dnkeydocument = {id}
 +   UNION 
 +   select dnkey as id, 'F' as multiselect,dnkey as dnkey, dvomschrijving 
 +    from tbdocumentsoorten 
 +           where dnkey not in (select dnkeydocsoort from tbkopdocaandocsoort where dnkeydocument = {id}) 
 +    and (ddvervaldatum is null or ddvervaldatum >= fn_vandaag(0))
 +           and dnkey > 1000  
 +Hierbij geldt dus:
 +  * De primary key van tbdocumenten die on the fly wordt vervangen moet weergegegevn worden als {id}
 +  * Er moet een kolom dlmultiselect zijn met waarde T  of F
 +  * Er moet een kolom dnkey zijn met de primary key van de codetabel (tbdocumentsoorten)
 +
 +</adm>
 +
  • openwave/1.32/applicatiebeheer/instellen_inrichten/standardlist_standarddetail.1732597660.txt.gz
  • Laatst gewijzigd: 2024/11/26 06:07
  • door Kars Gottschal