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

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.