GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEV
,
WEBDEV
e
WINDEV Mobile
Inicio
|
Mensagens recentes
|
Conecte-se...
|
Disconnect
|
Português
Inicio
→
WINDEV 2024
→
Position dans un digramme de Gantt
Position dans un digramme de Gantt
Iniciado por Jeremy ZUCCARELLI, ago., 21 2020 10:04 AM - 3 respostas
Conecte-se…
Jeremy ZUCCARELLI
#1
Membro registado
3 mensagems
Popularité : +1 (1 vote)
Publicado em agosto, 21 2020 - 10:04 AM
Bonjour,
Je souhaite crée un planning de taches avec des liens entre elles. J'ai créer une table hiérarchique avec une colonne de Gantt. J'ai une liste de tâches à effectuer sur le coté et je voudrai pouvoir faire un glisser déposer sur le diagramme de Gantt pour près remplir la tâches. J'arrive à trouver le numéro de la ligne avec un TableInfoXY(), mais je n'arrive pas à trouver la fonction pour savoir sur quel jour le glisser déposé à été lâché.
Existe t'il une fonction pour trouver ce jour?
Denunciar
0
0
Benjamin
#2
Membro registado
395 mensagems
Popularité : +13 (13 votes)
Publicado em agosto, 21 2020 - 8:29 PM
Bonsoir Jérémy,
Il n'existe pas de fonction pour savoir à quel jour/heure se trouve le curseur actuel. Il faut donc le calculer, en partant de la date de début affichée, qui peut être connue avec PlanningPositionDateHeure(CHAMP_GANTT, plnDateDébut).
En pseudo code cela ressemble un peu à ça :
// Soient :
// CHAMP_GANTT : le champ "table hiérarchique avec colonne Gantt"
// COL_RESSOURCE : la première colonne du champ table
// COL_GANTT : la seconde colonne du champ table, qui contient le diagramme de gantt
// On calcule la position "réelle de la souris" par rapport à la partie affichage des dates : on soustrait la largeur des colonnes fixes du tableau (ici juste la colonne COL_RESSOURCE)
n
PositionReelleX
est un entier
= (
_DND.SourisPosX
) -
CO
L_RESSOURCE
..
Largeur
// On part de la date d'origine affichée dans le champ
dh
DebutTache
est une
dateheure
=
PlanningPositionDateHeure
(
C
HAMP_GANTT
,
plnDateDébut
) +
"000000"
// On rajoute le nombre de jours correspondant à l'écart entre le début de la colonne gantt divisé par la largeur du jour du champ gantt
dh
DebutTache
..
Jours
+
= (
n
PositionReelleX
/
C
HAMP_GANTT.COL_GANTT
..
LargeurJour
)
J'ai volontairement dit "pseudo-code" car il peut y avoir un certain nombre d'adaptations à faire :
- Si vous avez défilé le champ gantt à la molette, il faudra prendre en compte la position de l'ascenseur pour avoir une nPositionReelleX correcte.
- Si votre amplitude horaire affichée n'est pas de 24h, il faudra adapter la dernière ligne pour prendre en compte ce fait
- Si vous déposez votre tâche sur une ressource en congé, la date de début de la tâche ne sera pas celle réellement précisée, mais démarrera après le congé.
J'espère que cela vous donnera une première piste, bon courage pour la suite
Denunciar
1
0
Jeremy ZUCCARELLI
#3
Membro registado
3 mensagems
Popularité : +1 (1 vote)
Publicado em setembro, 07 2020 - 2:51 PM
Bonjour,
Merci je vais voir pour tester ceci.
Denunciar
0
0
Jeremy ZUCCARELLI
#4
Membro registado
3 mensagems
Popularité : +1 (1 vote)
Publicado em setembro, 25 2020 - 11:08 AM
Bonjour,
J'ai enfin réussi à tester votre solution.
J'ai simplifier le code à cause d'un soucie de WINDEV (si je tente de fixer une ou plusieurs colonne par programmation la colonne de Gantt viens se superposer sur les colonne fixe quand j'utilise l'ascenseur horizontal.), J'ai donc deux tableaux lier avec les traitements et j'utilise ce code pour avoir le jour au niveau du pointeur de la souris.
Procedure
lpGanttInfoXY
(
pTable
est un
C
hamp
) :
DateHeure
pX
est un entier
=
SourisPosX
(
spChamp
)
dh
DebutTache
est une
DateHeure
=
PlanningPositionDateHeure
(
pTable.COL_Gantt
,
plnDateDébut
) +
"000000"
dh
DebutTache
..
Jour
+
=
ArrondiInférieur
(
(
pX
+
AscenseurPosition
(
pTable
,
ascHorz
)
) /
pTable.COL_Gantt
..
LargeurJour
)
RENVOYER
dh
DebutTache
Denunciar
1
0
→ Voltar para WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (versões anteriores)
WEBDEV (versões anteriores)
WINDEV Mobile (versões anteriores)
Reports & Queries
Off-topic
Ferramentas
Français
English
Español
Portuguesa
Fermer cette fenêtre
Tipo de Pesquisa
Apenas tópicos
Todas as mensagens
Período de pesquisa
Qualquer momento
Última hora
Últimas 24 horas
Semana passada
Mês passado
Ano passado
Cancelar
Pré-visualização da sua mensagem
Adicionar imagem
Importar uma imagem de uma URL
Enviar uma imagem a partir do seu disco
Deixe um ficheiro ou clique em "Procurar ..."
ou
Cancelar
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Texto