om een gepersonaliseerde navigatie te krijgen.
om een gepersonaliseerde navigatie te krijgen.
Heeft iemand een script of controle waarmee je kan afdingen dat een ingangsdatum alleen op een maandag start?
Moet je dan ook niet meenemen de test of het een maandag is? Dus nog een toevoeging in de if zijnde
if (e==1){f=0} else anders krijg je volgens een foutmelding als de ingevulde dag echt een maandag is.
/*Bewerking nodig voor een hulprubriek A00001 op positie 10 waarmee een controle op dag ingangsdatum (FS0060) moet maandag zijn mogelijk wordt*/
a=GF_DatumIngang(); b=a.split('-'); c= (b[1] + '-' + b[0] + '-' + b[2]);
d = new Date(c);
e = d.getDay();
if (e==1){f=0} else if(e==2){f=-1} else if (e==3){f=-2} else if (e==4){f=-3} else if (e==5){f=3} else if (e==6){f=2} else if (e==7){f=1};
g=GF_DatumPlusDagen(a, f); if (e==1){h=a} else {h=g}; return(h);
De controle kan dan worden
GF_DagenVerschil(v_FS0060# , v_A00001_10#) == 0
Grote dank heren. Ik ga dit script meteen gebruiken.
Ziet er goed uit !!
Maar nu staat (e==1) er 2x in, dus kan de omleiding via h eruit (denk ik?) en dan wordt de laatste regel: g=GF_DatumPlusDagen(a, f); return(g)
Daarnaast zie ik dat (e==7) veranderd moet worden in (e==0), want de zondag heeft waarde 0 en niet 7 ;-). Dan wordt hetb dus alsvolgt:
a=v_FS0060#; b=a.split('-'); c= (b[1] + '-' + b[0] + '-' + b[2]);
d = new Date(c);
e = d.getDay();
if (e==1){f=0} else if(e==2){f=-1} else if (e==3){f=-2} else if (e==4){f=-3} else if (e==5){f=3} else if (e==6){f=2} else if (e==0){f=1};
g=GF_DatumPlusDagen(a, f); return(g);
Helemaal top Melle groeten Frans
Dit script werkt.
Zodra het een vrijdag wordt dan springt de datum naar de volgende maandag.
a=v_A00001[600]#; b=a.split('-'); c= (b[1] + '-' + b[0] + '-' + b[2]);
d = new Date(c);
e = d.getDay();
if (e==2){f=-1} else if (e==3){f=-2} else if (e==4){f=-3} else if (e==5){f=3} else if (e==6){f=2} else if (e==7){f=1};
g=GF_DatumPlusDagen(a, f); if (e==1){h=a} else {h=g}; return(h);
Bedankt voor het testen. De controlemogelijkheid die hierboven genoemd wordt is ook handig.
Ter verduidelijking voor mezelf en anderen die dit volgen (even e.e.a. nagezocht op w3schools en in de javascript handleiding):
met de functie 'getDay();' wordt de dag van de week opgehaald, waarbij zondag is 0 en zaterdag is 6. Die functie werkt kennelijk alleen met de amerikaanse datumnotering, dus maand - dag - jaar. Vandaar dat via '.split' de datum uit elkaar gehaald wordt en dag, maand en jaar direct in een Array (reeks) gezet wordt. Door een verwijzing met blokhaken kun je de waarde op die positie in de reeks ophalen, waarbij de eerste positie 0 is. En vervolgens wordt hij als Amerikaanse datum gedeclareerd via 'newDate()'.
Dat is inderdaad precies hoe het script werkt, indien de instellingen in bijvoorbeeld Amerika dus op de Amerikaanse datuminstelling staan, dan moet die omzetting er uit, vervallen variabelen b en c, en moet d verwijzen naar a. 😉
Werkt super, nogmaals dank.
Copyright 2019 Visma Community. All right reserved.