Un calendrier dans un état

Description

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

Codes Sources

A voir également