Salut à tous
Dans un état, je voulais mettre un calendrier paramétrable comme suit:
Je n'ai pas trouve de code alors je l'ai fait Voila le résultat pour décembre 2004
Je crée une table calend qui s'écrase à chaque fois.Un seul enregistrement
Dans l'état il faut placer 42 champs correspondant aux 42 champs de la table calend
Voila voila
Bonne prog à tous
Cordialement
Eric
Source / Exemple :
- !* code à mettre dans la méthole beforeopentable du dataenvironment de l'état
PUBLIC MOISEDITION,quelannee,rea,an
if vartype(m.moisedition)#"C"
local rep
do form chmois with "M" TO m.moisedition
- !* le form chmois renvoi le numéro du mois choisi en alpha "11" pour novembre
m.moisedition=val( m.moisedition)
an=year(date())
if moisedition=1
m.rep=messagebox("Voulez vous traiter le mois de janvier de cette année"+alltrim(str(year(date()))),36)
if m.rep=6
an=year(date())
else
an=year(date())+1
endif
endif
private jourch
STORE SET('FDOW') TO gnPjds && Enregistre la valeur courante
SET FDOW TO 2 && Définit dimanche comme le premier jour de la semaine, ce qui est la valeur par défaut
select 0
CREATE TABLE .\temp\calend FREE;
(calend1 c(2),;
calend2 c(2),;
calend3 c(2),;
calend4 c(2),;
calend5 c(2),;
calend6 c(2),;
calend7 c(2),;
calend8 c(2),;
calend9 c(2),;
calend10 c(2),;
calend11 c(2),;
calend12 c(2),;
calend13 c(2),;
calend14 c(2),;
calend15 c(2),;
calend16 c(2),;
calend17 c(2),;
calend18 c(2),;
calend19 c(2),;
calend20 c(2),;
calend21 c(2),;
calend22 c(2),;
calend23 c(2),;
calend24 c(2),;
calend25 c(2),;
calend26 c(2),;
calend27 c(2),;
calend28 c(2),;
calend29 c(2),;
calend30 c(2),;
calend31 c(2),;
calend32 c(2),;
calend33 c(2),;
calend34 c(2),;
calend35 c(2),;
calend36 c(2),;
calend37 c(2),;
calend38 c(2),;
calend39 c(2),;
calend40 c(2),;
calend41 c(2),;
calend42 c(2))
append blank
m.dateencours=ctod("01/"+alltrim(str(m.moisedition))+"/"+alltrim(str(m.an)))
m.finmois=ctod("01/"+alltrim(str(iif(m.moisedition=12,0,m.moisedition)+1))+"/"+alltrim(str(iif(m.moisedition=12,an+1,an ))))
m.jourch=dow(m.dateencours,2)
for m.i=1 to m.finmois-m.dateencours
if i=43
exit
endif
cmd="replace calend"+alltrim(str((m.jourch-1)+m.i))+ " with "+'"'+alltrim(str(m.i))+'"'
&cmd
next m.I
SET FDOW TO &gnPjds && Restaure le jour d'origine
M.moisedition=alltrim(str(m.moisedition))
m.rea=alltrim(str(iif(val(m.moisedition)>1,val(m.moisedition)-1,12)))
select 0
endif
- !* code à mettre dans la propriété destroy de l'environnement de donnée de l'état
release m.moisedition,m.quelannee,m.rea
select calend
use
Conclusion :
Voir les trois captures d'écran dans le zip joint
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.