Planning Windev
Stagiaire WDF
Inscrit:
28/09/2005 19:26
Post(s): 7
Bonjour

j'ai un besoin super urgent, sur un point très critique : le planning.

L'ex de Windev ne me convient pas.
Voila mes besoins:

en lignes, les tranches horaires (à la 1/2 h près).
Les horaires affichés doivent etre flexibles selon l'utilisateur.

En colonne, x colonnes par Jour avec x < 10.
Affichage sur une semaine, mais possibilité sur deux afin de basculer des taches d'une semaine sur la suivante.

Pouvez vous m'aider?
j'ai vu le projet de KPiTn, mais je n'y comprends rien, et je ne suis pas sur qu'il me convienne.

Pouvez vous m'aider?
merci

et bon dév.

Contribution le : 16/05/2006 14:24
Créer un fichier PDF de la contribution Imprimer


Re: Planning Windev
Utilisateur WDF
Inscrit:
06/02/2003 08:38
De Bourgogne
Post(s): 88
Bonjour,
J'ai développé un planning horaire ,sur la base de l'exemple windev.
Pour y arriver il faut juste se plonger dedans un ou deux
jour, après on fait a peut près ce que l'on veut quand on a compris le principe .
ce qui ma mis sur la voie c'est ce post trouvé sur le newsgroup pcSoft.
(meric à Christian)
Cordialement,
JYM


Citation :
Salut
Je te conseille d'analyser l'exemple fourni par windev, il est très
bien fait.

Pour tracer les heures dans la journée:
Dans la classe :TraceCadres
A la fin de ta classe remplace l'existant par :

// Séparateur demi-journées ou les heures dans la journée
SI :AfficheMidi ALORS
SI :bNoirEtBlanc ALORS dStylo(iNoir, 2) SINON dStylo(:CoulHeures, 2)
// selon (DateVersEntier(au)-DateVersEntier(du))
SELON :NombreColonnes
CAS <=:NombreJourAfficheHeures
//on divise la journée en heures
POUR i=0 A :NombreColonnes-1
// On trace un séparateur en pointillés à moitié de chaque jour
// x = (:LargeurMarge+(i * :LargeurColonne)) + (:LargeurColonne/2)
POUR j=0 A (Val(FinJournée) - Val(DebutJournée))-1
x=:LargeurMarge + :LargeurColonne*i+
(:LargeurColonne*j)/(Val(FinJournée)-Val(DebutJournée))
SI j=0 ALORS
SI i<>0 ALORS
//la première ligne de séparation n'est pas affichée
SI :bNoirEtBlanc ALORS dStylo(iNoir, 2) SINON
dStylo(:CoulHeures, 0)
dLigne( x, (:HauteurEntête*2)/3+1, x, :HauteurChamp )
FIN
SINON
SI :bNoirEtBlanc ALORS dStylo(iNoir, 2) SINON dStylo(:CoulHeures,
2)
dLigne( x, (:HauteurEntête*2)/3+1, x, :HauteurChamp )
FIN

FIN
FIN
AUTRE CAS
POUR i=0 A :NombreColonnes-1
// On trace un séparateur en pointillés à moitié de chaque jour
// x = (:LargeurMarge+(i * :LargeurColonne)) + (:LargeurColonne/2)
x = (:LargeurMarge+(i * :LargeurColonne)) +
(:LargeurColonne*(12-Val(DebutJournée))/(Val(FinJournée)-Val(DebutJournée)))
dLigne( x, :HauteurEntête+1, x, :HauteurChamp )
FIN
FIN


FIN

Explication:
:NombreJourAfficheHeures est un entier. Le principe est que si le
nombre de jours affichés est inférieur à une certiane valeur, on
affiche la séparation des heures
Pour tes tests, tu peux remplacer :NombreJourAfficheHeures avec 3

DébutJournée et FinJournée sont des entiers.
Par exemple DébutJournée peut être à 7 et FinJournée peut être à 20
Ainsi il va afficher les heures entre 7h00 et 20h00

/////////////////////////////////////////////////////////////////////////////
//////
Pour afficher le libellé des heures

C'est la classe TraceJours
Je te l'ai mis en entier, tu peux donc comparer ce qui existe avec ce
qui est nouveau ....


PROCEDURE TraceJours()

// Pour parcourir chaque colonne
i est un entier
sHeureJournée est un entier
sHeureAffichée est un entier
sChaineHeure est une chaîne
// Pour le calcul de la position horizontale
xJour, xMois sont des entiers
yJour, yHeures sont des entiers
xHeure est un entier
// Date à afficher
lDate est un entier
// Pour construire la chaîne affichée
sChaineJour est une chaîne
// Numéro de jour du mois
sJour est une chaîne

//selon (DateVersEntier(au)-DateVersEntier(du))
SELON :NombreColonnes
CAS <=:NombreJourAfficheHeures
yJour= :HauteurEntête-2-(:HauteurEntête/3)
yHeures=:HauteurEntête-2
AUTRE CAS
yJour= :HauteurEntête-2
yHeures=-1
FIN


// On dessine le jour pour chaque colonne
POUR i = 0 A :NombreColonnes
lDate = :DateCourante + i

// Lettre du jour
sChaineJour = Gauche(EntierVersJourEnLettre(lDate),1)

// Numéro de jour
sJour = Droite(EntierVersDate(lDate),2)
sChaineJour += " "+sJour

// Position horizontale en prenant en compte la marge
xJour = :MargeEnteteX + :LargeurMarge+(i * :LargeurColonne)

// On sélectionne la police verticale
dPolice(:NomPoliceJour, :HauteurPoliceJour, :AttrPoliceJour, 90)
SI EntierVersJour(lDate)=6 OU EntierVersJour(lDate)=7 ALORS
// Samedi-Dimanche
SI :bNoirEtBlanc ALORS dTexte( xJour, yJour, sChaineJour, iNoir )
SINON dTexte( xJour, yJour, sChaineJour, :CoulNumJour )
SINON
SI EstFerie(lDate) ALORS
// Jour férié
SI :bNoirEtBlanc ALORS dTexte( xJour, yJour, sChaineJour, iNoir )
SINON dTexte( xJour, yJour, sChaineJour, :CoulNumJour )
SINON
// Autres jour : couleur par défaut
SI :bNoirEtBlanc ALORS dTexte( xJour, yJour, sChaineJour, iNoir )
SINON dTexte( xJour, yJour, sChaineJour, :CoulNumJour )
FIN
FIN

SI yHeures<>-1 ALORS
// On sélectionne la police verticale
dPolice(:NomPoliceJour, :HauteurPoliceJour, :AttrPoliceJour, 90)
//on écrit les heures
xHeure=xJour
POUR sHeureJournée=0 A (Val(FinJournée)-Val(DebutJournée))-1
sHeureAffichée=sHeureJournée+Val(DebutJournée)
sChaineHeure=Droite("0"+sHeureAffichée+":00",5)
xHeure=xJour+(:LargeurColonne)/(Val(FinJournée)-Val(DebutJournée))*sHeureJ
ournée
dTexte( xHeure, yHeures, sChaineHeure, :CoulNumJour )
FIN
FIN


// On change de mois alors on trace une séparation et on affiche le
nom du mois
SI sJour = "01" ALORS
xMois = :LargeurMarge + (i * :LargeurColonne)
SI :bNoirEtBlanc ALORS dLigne( xMois, 0, xMois, :PositionJours, iNoir
) SINON dLigne( xMois, 0, xMois, :PositionJours, :CoulCadres )
// On sélectionne la police horizontale
dPolice(:NomPoliceJour, :HauteurPoliceJour+2, :AttrPoliceJour, 0)
SI :bNoirEtBlanc ALORS dTexte( xMois+:MargeEnteteX, :MargeEnteteY,
EntierVersMoisEnLettre(lDate), iNoir ) SINON dTexte(
xMois+:MargeEnteteX, :MargeEnteteY, EntierVersMoisEnLettre(lDate),
:CoulMois )
FIN
FIN

// On sélectionne la police horizontale
dPolice(:NomPoliceJour, :HauteurPoliceJour+2, :AttrPoliceJour, 0)
// On affiche le mois et l'année
SI :bNoirEtBlanc ALORS
dTexte( :MargeEnteteX, :MargeEnteteY,
Gauche(EntierVersDate(:DateCourante),4), iNoir )
dTexte( :MargeEnteteX+:LargeurMarge, :MargeEnteteY ,
EntierVersMoisEnLettre(:DateCourante), iNoir )
SINON
dTexte( :MargeEnteteX, :MargeEnteteY,
Gauche(EntierVersDate(:DateCourante),4), :CoulMois )
dTexte( :MargeEnteteX+:LargeurMarge, :MargeEnteteY ,
EntierVersMoisEnLettre(:DateCourante), :CoulMois )
FIN


Voilà, j'espère que ca va t'aider.

A+

--
Bon développement à tous
Christian


Contribution le : 16/05/2006 18:30
Créer un fichier PDF de la contribution Imprimer


Re: Planning Windev
Stagiaire WDF
Inscrit:
28/09/2005 19:26
Post(s): 7
Bonjour

J'avais vu ce bout de code,
sur le forum de pcsoft, on m'a indique le lien suivant:
http://www.daussy.org/windev/

qui contient les sources d'un planning horaire qui me convient pas mal.

Merci de votre soutien

Contribution le : 18/05/2006 09:06
Créer un fichier PDF de la contribution Imprimer


Re: Planning Windev
Stagiaire WDF
Inscrit:
22/03/2010 17:35
Post(s): 3
merci JYM
quelques heures à mettre en place est c'est ok
pyd

Contribution le : 19/08/2011 14:01
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2