- Berichten: 78
- Bedankjes 1
Selectie via _DIAL van _SETFILL met twee voorwaarden
- Van Hoeck Charlie
- Auteur
- Offline
Lees minder
Lees meer
Selectie via _DIAL van _SETFILL met twee voorwaarden
23 sep 2017 12:59
Aan iedereen
Via _DIALNEDI wil ik een selectie maken van _FAMIFILE door het ingeven van twee getallen ( _CODEINTE):
De selectie bestaat dan uit alle personen tussen deze twee getallen: bv: _CODEINTE >= 10 en _CODEINTE <= 20)
Afzonderlijk werkt het, maar de juiste syntax om beide te combineren heb ik niet gevonden.
[?_CODEINTE <= _DIALEXP(vraag, 1 ,"0" )?]? en
[?_CODEINTE >= _DIALEXP(vraag, 2 ,"0" )?]?
Kan ik de voorwaarden ( >= en <
rechtstreeks in de _SETFILL plaatsen?
Alvast bedankt voor de antwoorden
Charlie
Via _DIALNEDI wil ik een selectie maken van _FAMIFILE door het ingeven van twee getallen ( _CODEINTE):
De selectie bestaat dan uit alle personen tussen deze twee getallen: bv: _CODEINTE >= 10 en _CODEINTE <= 20)
Afzonderlijk werkt het, maar de juiste syntax om beide te combineren heb ik niet gevonden.
[?_CODEINTE <= _DIALEXP(vraag, 1 ,"0" )?]? en
[?_CODEINTE >= _DIALEXP(vraag, 2 ,"0" )?]?
Code:
:. SjaPerPersoonSelectie.asj .:
:. .:
_DIALDEF (vraag, _DIALNEDI, "Nummerfilter", "Geef nummer in")
_DIALADD (vraag, "Kleinste nummer")
_DIALADD (vraag, "Grootste nummer")
_SETDEF (index)
_SETFILL (index, _FAMIFILE,)
_SETBEGI (index)
_s_functie
_SETEND
_FUNCBEGI(_s_functie)
:. [?_CODEINTE >= _DIALEXP(vraag, 2 ,"0" )?]? .:
[?_CODEINTE <= _DIALEXP(vraag, 1 ,"0" )?]?
_BEGI
_SETDEF(S_5_langfilename)
_SETCLR(S_5_langfilename)
_SETADD(S_5_langfilename, [:0000[:_CODEINTE:]:])
_SETEXP(S_5_langfilename, 1 , _SETSTRI )._SUBS(-4,0) :.
_SURN :.
_NAMEPREF?
_BEGI
_NAMEPREF :.
_END
_NAMEFIRS[::]
_END
_FUNCEND
rechtstreeks in de _SETFILL plaatsen?Alvast bedankt voor de antwoorden
Charlie
Onderwerp is gesloten.
- Carel Plantagie
-
- Offline
Re: Selectie via _DIAL van _SETFILL met twee voorwaarden
23 sep 2017 14:27 - 23 sep 2017 14:36
Charlie,
ik bewaar allerlei stukjes code met voorbeelden; ik denk dat de volgende code je kan helpen:
voor een toelichting verwijs ik je naar de Handleiding Sjablonen, Tags en dan speciaal:
- OPEN_TEST.html
- OPEN_AND.html
- OPEN_OR.html
ik bewaar allerlei stukjes code met voorbeelden; ik denk dat de volgende code je kan helpen:
Code:
:. TEST AND versus OR
_VARDEF(A)
_VARDEF(B)
_VARIN(A, 5)
_VARIN(B, 8)
:. Als A>1 of B>9 dan JA anders NEE
[:[?_VAROUT(A,"0")>1?][?_VAROUT(B,"0")>9?]:]?_BEGI[::]JA[::]_ELSE[::]NEE[::]_END
:. geeft: JA (A>1)
:. Als A<4 of B<9 dan JA anders NEE
[:[?_VAROUT(A,"0")<4?][?_VAROUT(B,"0")<9?]:]?_BEGI[::]JA[::]_ELSE[::]NEE[::]_END
:. geeft: JA (B<9)
:. Als A>1 en B>9 dan JA anders NEE
[&[?_VAROUT(A,"0")>1?][?_VAROUT(B,"0")>9?]&]?_BEGI[::]JA[::]_ELSE[::]NEE[::]_END
:. geeft: NEE (A>1, maar B<9)
:. Als A<4 en B<9 dan JA anders NEE
[&[?_VAROUT(A,"0")<4?][?_VAROUT(B,"0")<9?]&]?_BEGI[::]JA[::]_ELSE[::]NEE[::]_END
:. geeft: NEE (B<9, maar A>4)
:. Als A>4 en B<9 dan JA anders NEE
[&[?_VAROUT(A,"0")>4?][?_VAROUT(B,"0")<9?]&]?_BEGI[::]JA[::]_ELSE[::]NEE[::]_END
:. geeft: JA (B<9 en A>4)
voor een toelichting verwijs ik je naar de Handleiding Sjablonen, Tags en dan speciaal:
- OPEN_TEST.html
- OPEN_AND.html
- OPEN_OR.html
Laatst bewerkt 23 sep 2017 14:36 door Carel Plantagie.
De volgende gebruiker (s) zei dank u: Van Hoeck Charlie
Onderwerp is gesloten.
- Han Kortekaas
-
- Offline
Re: Selectie via _DIAL van _SETFILL met twee voorwaarden
23 sep 2017 17:31 - 23 sep 2017 17:35
Charlie,
jouw voorbeeld zou er ook zo uit kunnen zien
en daarnaast om het te vervolmaken moet je bedenken dat er iemand geen getal ingeeft en gewoon het sjabloon draait. Dat is niet de bedoeling en dan zul je een lus moeten maken om de vraagstelling (twee keer 0) weer overnieuw te doen.
jouw voorbeeld zou er ook zo uit kunnen zien
Code:
_DIALDEF (vraag, _DIALNEDI, "Nummerfilter", "Geef nummer in")
_DIALADD (vraag, "Kleinste nummer")
_DIALADD (vraag, "Grootste nummer")
_SETDEF (index)
_SETFILL (index, _FAMIFILE,_s_functie)
_SETBEGI (index)
_CODEINTE._FILL("0",10) :.
_SURN[: _NAMEPREF:] _NAMEFIRS
_SETEND
_FUNCBEGI(_s_functie)
[&[?_CODEINTE>=_DIALEXP(vraag, 1 ,"0" )?][?_CODEINTE<=_DIALEXP(vraag, 2 ,"0" )?]&]?
_BEGI opnemen _END
_FUNCEND
en daarnaast om het te vervolmaken moet je bedenken dat er iemand geen getal ingeeft en gewoon het sjabloon draait. Dat is niet de bedoeling en dan zul je een lus moeten maken om de vraagstelling (twee keer 0) weer overnieuw te doen.
Laatst bewerkt 23 sep 2017 17:35 door Han Kortekaas.
De volgende gebruiker (s) zei dank u: Van Hoeck Charlie
Onderwerp is gesloten.
- Van Hoeck Charlie
- Auteur
- Offline
Lees minder
Lees meer
- Berichten: 78
- Bedankjes 1
Re: Selectie via _DIAL van _SETFILL met twee voorwaarden
23 sep 2017 19:25
an
Je code werkt PERFECT !
Bedankt
Charlie
Je code werkt PERFECT !
Bedankt
Charlie
Onderwerp is gesloten.
- Van Hoeck Charlie
- Auteur
- Offline
Lees minder
Lees meer
- Berichten: 78
- Bedankjes 1
Re: Selectie via _DIAL van _SETFILL met twee voorwaarden
24 sep 2017 08:37
Han
Nu het script werkt zal ik, volgens je suggestie, de voorwaarden inbouwen dat de gebruiker een getaĺ groter dan nul moet invulleñ en dat het getal van de tweede invoer groter of gelijk moet zijn dan de eerste getal.
Ik zal laten weten of dit lukt of niet.
Charlie
Nu het script werkt zal ik, volgens je suggestie, de voorwaarden inbouwen dat de gebruiker een getaĺ groter dan nul moet invulleñ en dat het getal van de tweede invoer groter of gelijk moet zijn dan de eerste getal.
Ik zal laten weten of dit lukt of niet.
Charlie
Onderwerp is gesloten.
- Van Hoeck Charlie
- Auteur
- Offline
Lees minder
Lees meer
- Berichten: 78
- Bedankjes 1
Re: Selectie via _DIAL van _SETFILL met twee voorwaarden
27 sep 2017 18:36
Aan Han
Ik heb het sjabloon vervolmaakt en enkele voorwaarden ingebouwd:
1. Ingevoerde getallen mogen niet negatief zijn
2. De getallen mogen niet gelijk zijn aan nul
3. Het tweede getal mag niet kleiner zijn dan het eerste.
Telkens met hun eigen foutmelding via een functie.
Waarop de gebruiker opnieuw om een invoer gevraagd wordt.
In jouw code staat er in de functie "_s_functie" het woord "opnemen".
Dit begrijp ik niet. Is dit een dummy? Graag wat uitleg hierover
Charlie
Ik heb het sjabloon vervolmaakt en enkele voorwaarden ingebouwd:
1. Ingevoerde getallen mogen niet negatief zijn
2. De getallen mogen niet gelijk zijn aan nul
3. Het tweede getal mag niet kleiner zijn dan het eerste.
Telkens met hun eigen foutmelding via een functie.
Waarop de gebruiker opnieuw om een invoer gevraagd wordt.
In jouw code staat er in de functie "_s_functie" het woord "opnemen".
Dit begrijp ik niet. Is dit een dummy? Graag wat uitleg hierover
Code:
:. ------------------------- ----.:
:. sjaSelectieViaInternNummer.asj.:
:. ------------------------- ----.:
_SETDEF ( index )
_SETDEF ( strFoutMelding)
_DIALDEF ( vraag, _DIALNEDI, "Intern codenummers", "Geef de interne codenummers in" )
_DIALADD ( vraag, "Codenummer 1", 1 )
_DIALADD ( vraag, "Codenummer 2", 1 )
_s_StartDialoog
_FUNCBEGI( _s_StartDialoog)
:. -------------------------.:
:. MAG NIET NEGATIEF ZIJN .:
:. -------------------------.:
[?_DIALEXP( vraag , 1 ,"0" ) < 0?]|[?_DIALEXP( vraag , 2 ,"0" ) < 0?]?
_BEGI
_SETADD ( strFoutMelding , "Getal(len) mag(mogen) niet negatief zijn!" )
_f_FoutMelding
_ELSE
:. ---------------------.:
:. MAG NIET NUL ZIJN .:
:. ---------------------.:
[?_DIALEXP( vraag , 1 ,"0" ) == 0?]|[?_DIALEXP( vraag , 2 ,"0" ) == 0?]?
_BEGI
_SETADD ( strFoutMelding , "Getal(len) mag(mogen) niet nul zijn!" )
_f_FoutMelding
_ELSE
:. -------------------------------------.:
:. 2de MAG NIET KLEINER ZIJN DAN 1ste .:
:. -------------------------------------.:
[?_DIALEXP( vraag , 1 ,"0" ) > _DIALEXP( vraag , 2 ,"0" )?]?
_BEGI
_SETADD ( strFoutMelding , "2de getal mag niet kleiner zijn dan 1ste!" )
_f_FoutMelding
_ELSE
_SETFILL ( index, _FAMIFILE,_s_functie)
_SETBEGI ( index)
_CODEINTE._FILL("0",5) :.
_SURN[: _NAMEPREF:] _NAMEFIRS
_SETEND
_END
_END
_END
_FUNCEND
_FUNCBEGI(_s_functie)
[&[?_CODEINTE>=_DIALEXP(vraag, 1 ,"0" )?][?_CODEINTE<=_DIALEXP(vraag, 2 ,"0" )?]&]?
_BEGI
opnemen
_END
_FUNCEND
_FUNCBEGI (_f_FoutMelding )
_DIALERR([:_SETEXP( strFoutMelding , 1, _SETSTRI ):])
_DIALCLR( vraag )
_SETCLR ( strFoutMelding )
_s_StartDialoog
_FUNCEND
Charlie
Onderwerp is gesloten.
- Han Kortekaas
-
- Offline
Re: Selectie via _DIAL van _SETFILL met twee voorwaarden
27 sep 2017 18:46
Ik kom over het sjabloon later nog terug.
Getallen kunnen nimmer negatief ingevuld worden en hoef je dus niet op te testen. _VARxxxx kan nooit negatief zijn. Als je twee getallen aftrekt moet je zelf controleren of het een negatieve waarde wordt. Staat in de handleiding.
'Opnemen" is om er voor te zorgen dat de functie 'iets' retourneert. Het kan van alles zijn "OK" of 'voldoet' alles is goed. Ik heb vaak 'opnemen' omdat dat in het lezen van het script makkelijker is wat er gebeurt bij een 'true'.
Getallen kunnen nimmer negatief ingevuld worden en hoef je dus niet op te testen. _VARxxxx kan nooit negatief zijn. Als je twee getallen aftrekt moet je zelf controleren of het een negatieve waarde wordt. Staat in de handleiding.
'Opnemen" is om er voor te zorgen dat de functie 'iets' retourneert. Het kan van alles zijn "OK" of 'voldoet' alles is goed. Ik heb vaak 'opnemen' omdat dat in het lezen van het script makkelijker is wat er gebeurt bij een 'true'.
Onderwerp is gesloten.
- Han Kortekaas
-
- Offline
Re: Selectie via _DIAL van _SETFILL met twee voorwaarden
27 sep 2017 23:29
Zonder te zeggen dat het zo moet, maar het kan ook
Code:
_SETDEF ( index )
_LOOPBEGI
_DIALDEF ( vraag, _DIALNEDI, "Intern codenummers", "Geef de interne codenummers in",180 )
_DIALADD ( vraag, "Van codenummer", 1)
_DIALADD ( vraag, "T/m codenummer", 1)
[&[?_DIALEXP( vraag , 1 ,"0" ) >=1?][?_DIALEXP( vraag , 2 ,"0" ) >=_DIALEXP( vraag , 1 ,"0" )?]&]?
_BEGI _BRK
_ELSE
[:[?_DIALEXP( vraag , 1 ,"0" ) < 0?][?_DIALEXP( vraag , 2 ,"0" ) < 0?]:]?
_BEGI
_DIALERR("Getal(len) mag(mogen) niet negatief zijn!" )
_ELSE
[:[?_DIALEXP( vraag , 1 ,"0" ) == 0?][?_DIALEXP( vraag , 2 ,"0" ) == 0?]:]?
_BEGI
_DIALERR( "Getal(len) mag(mogen) niet nul zijn!" )
_ELSE
[?_DIALEXP( vraag , 1 ,"0" ) > _DIALEXP( vraag , 2 ,"0" )?]?
_BEGI
_DIALERR( "2de getal mag niet kleiner zijn dan 1ste!" )
_END[::]_END[::]_END[::]_END[::]
_DIALDEL(vraag)
_LOOPEND
:.
_SETFILL ( index, _FAMIFILE,_s_functie)
_SETBEGI ( index)
_CODEINTE._FILL("0",5) _SURN[: _NAMEPREF:] _NAMEFIRS
_SETEND
:.
_FUNCBEGI(_s_functie)
[&[?_CODEINTE>=_DIALEXP(vraag, 1 ,"0" )?][?_CODEINTE<=_DIALEXP(vraag, 2 ,"0" )?]&]?
_BEGI
opnemen
_END
_FUNCEND
De volgende gebruiker (s) zei dank u: Van Hoeck Charlie
Onderwerp is gesloten.
- Van Hoeck Charlie
- Auteur
- Offline
Lees minder
Lees meer
- Berichten: 78
- Bedankjes 1
Re: Selectie via _DIAL van _SETFILL met twee voorwaarden
30 sep 2017 17:45
Han
Ik heb je code getest en werkt.
Alleen begint de eerste lijn van de resultaten bij mij met een spatie.
Ik ben in de je code gaan zoeken van waar deze blanco op de eerste lijn zou kunnen komen maar heb niets gevonden!
Kan jij me helpen?
Charlie
Ik heb je code getest en werkt.
Alleen begint de eerste lijn van de resultaten bij mij met een spatie.
Ik ben in de je code gaan zoeken van waar deze blanco op de eerste lijn zou kunnen komen maar heb niets gevonden!
Kan jij me helpen?
Charlie
Onderwerp is gesloten.
- Han Kortekaas
-
- Offline
Re: Selectie via _DIAL van _SETFILL met twee voorwaarden
02 okt 2017 10:25
Normaal maak je rapporten in html, waardoor spaties niet worden opgenomen. In dit geval is de oplossing om de tag _BRK strak achter de _BEGI te zetten
Code:
_BEGI[::]_BRK
De volgende gebruiker (s) zei dank u: Van Hoeck Charlie
Onderwerp is gesloten.