Selectie via _DIAL van _SETFILL met twee voorwaarden

Lees meer

Selectie via _DIAL van _SETFILL met twee voorwaarden

23 sep 2017 12:59
#18865
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" )?]?
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
Kan ik de voorwaarden ( >= en <=) rechtstreeks in de _SETFILL plaatsen?


Alvast bedankt voor de antwoorden

Charlie
Onderwerp is gesloten.
Lees meer

Re: Selectie via _DIAL van _SETFILL met twee voorwaarden

23 sep 2017 14:27 - 23 sep 2017 14:36
#18866
Charlie,
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.
Lees meer

Re: Selectie via _DIAL van _SETFILL met twee voorwaarden

23 sep 2017 17:31 - 23 sep 2017 17:35
#18869
Charlie,
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.
Lees meer

Re: Selectie via _DIAL van _SETFILL met twee voorwaarden

23 sep 2017 19:25
#18871
an

Je code werkt PERFECT !

Bedankt

Charlie
Onderwerp is gesloten.
Lees meer

Re: Selectie via _DIAL van _SETFILL met twee voorwaarden

24 sep 2017 08:37
#18875
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
Onderwerp is gesloten.
Lees meer

Re: Selectie via _DIAL van _SETFILL met twee voorwaarden

27 sep 2017 18:36
#18897
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
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.
Lees meer

Re: Selectie via _DIAL van _SETFILL met twee voorwaarden

27 sep 2017 18:46
#18898
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'.
Onderwerp is gesloten.
Lees meer

Re: Selectie via _DIAL van _SETFILL met twee voorwaarden

27 sep 2017 23:29
#18900
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.
Lees meer

Re: Selectie via _DIAL van _SETFILL met twee voorwaarden

30 sep 2017 17:45
#18924
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
Onderwerp is gesloten.
Lees meer

Re: Selectie via _DIAL van _SETFILL met twee voorwaarden

02 okt 2017 10:25
#18927
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.
Gemaakt door Kunena