Bonjour
je dois fractionner une ligne en deux colonnes par exemple
Exemple
horaire théorique (9,15 -17) je veux scinder en deux colonne pareil pour horaire réel (9.15,17.30)
comme sur la capture
Bonjour
je dois fractionner une ligne en deux colonnes par exemple
Exemple
horaire théorique (9,15 -17) je veux scinder en deux colonne pareil pour horaire réel (9.15,17.30)
comme sur la capture
Bonjour, à priori, tu es sur un état
Il y a peut-être plus simple, mais ça tourne.
Quand tout a échoué utilisez l'option RTFM
Donc tu veux quelque chose comme cela.
Quelle est ta version de WD?
Il y a peut-être plus simple, mais ça tourne.
Quand tout a échoué utilisez l'option RTFM
J'ai la version WD 22 j'ai oublié de le préciser j'arrive à le faire avec la propriété fusionCelluleSuivante mais ca lui convient pas
il veut ça
Tu n'as pas une maquette plus claire, avec ce qu'il veut. Je ne ne vois que des flèches. Je suis en mode depuis le début
Il y a peut-être plus simple, mais ça tourne.
Quand tout a échoué utilisez l'option RTFM
Bonjour;
Théorique en Haut et le Réel en Bas ?
Bon Dev.
Ca reste de la fusion de cellule, et pas de la division.
Dans ton premier dessin, tu as 1 ligne de titre , et 2 lignes de données (et non une seule ligne de données). Il a donc 2 instructions Tableajouteligne() pour l'individu NOMX PRENOMX.
Et il faut faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 col_nom[1]..fusion = FusionLigneSuivante col_prenom[1]..fusion = FusionLigneSuivante
N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.
Si pour chaque agent , vous ajoutez 2 lignes, alors après affichage de la table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 POUR i=1 _A_ TableOccurrence(MaTable) SI EstPair(i)=Vrai ALORS COL_Nom[i-1]..Fusion = fusionLigneSuivante COL_Prenom[i-1]..Fusion = fusionLigneSuivante FIN FIN
Bonjour,
Je n'avais jamais utilisé le champ tableur, du coup j'ai fait un test et je ne rencontre aucune difficulté au problème. Voici le code que j'ai saisi
et voici le résultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 nNumLigne est un entier = 1 Cadre est un Cadre Cadre.Bords = BordTous Cadre.Trait = TraitContinu Cadre.Couleur = Noir Cadre.Epaisseur = 1 TableurAjouteDonnée(TBLR_SansNom1,1,1,"Nom") TableurAjouteDonnée(TBLR_SansNom1,2,1,"Prénom") TableurAjouteDonnée(TBLR_SansNom1,3,1,"Lundi") TBLR_SansNom1[1,3]..Fusion = fusionCelluleSuivante POUR TOUT stSalarie DE gtabMesSalaries nNumLigne++ TableurAjouteDonnée(TBLR_SansNom1,1,nNumLigne,stSalarie.Nom) TableurAjouteDonnée(TBLR_SansNom1,2,nNumLigne,stSalarie.Prenom) TBLR_SansNom1[nNumLigne,1]..Fusion = fusionLigneSuivante TBLR_SansNom1[nNumLigne,2]..Fusion = fusionLigneSuivante TableurAjouteDonnée(TBLR_SansNom1,3,nNumLigne,stSalarie.DebutTheorique) TableurAjouteDonnée(TBLR_SansNom1,4,nNumLigne,stSalarie.FinTheorique) nNumLigne++ TableurAjouteDonnée(TBLR_SansNom1,3,nNumLigne,stSalarie.DebutReel) TableurAjouteDonnée(TBLR_SansNom1,4,nNumLigne,stSalarie.FinReel) FIN TableurSelectPlus(TBLR_SansNom1,"A1","D"+nNumLigne) TableurCadreSélection(TBLR_SansNom1,Cadre,Vrai) TableurSelectMoins(TBLR_SansNom1)
Philippe,
N'hésitez à lever le pouce si mon aide vous a été utile.
Merci Philou mais c'est pas un tableur que je veux c'est un champs table
je fais le code mais j'y arrive toujours pas
Ou en es-tu. Quelle est la dernière version du code que tu as fait ?
Ou encore, autre façon d'avancer : comment accèdes-tu à tes données, comment fais-tu pour lire la liste des personnes, et les horaires théoriques et réels de début et fin de journée. Et à partir de cette information,on devrait poufoir te fournir les 15/20 lignes de code qu'il te faut.
Précision : Parmi les champs tables, il y a les champs table-fichier et table-mémoire.
Quel type utilises-tu ?
N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.
Les données sont issues d'un fichier CSV que j'importe tous les jours colone date je vais utilise un champ clone pour avoir ts les jours de la semaine
Sinon voici comment je remplis ma table avec cette requte en PHP ça aurait ete plus simple mais en windev je suis nouveau et la contrainte technique le client utilise windev/webdev
et dans affichage d'une ligne j'ai mis ca
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 HExécuteRequête(REQ_POintage,hRequêteDéfaut) HLitPremier(REQ_POintage) TANTQUE PAS HEnDehors(REQ_POintage) TableAjouteLigne(TABLE_Pdapointage,REQ_POintage.Utilisateur,REQ_POintage.Type,REQ_POintage.Debut_Théorique, REQ_POintage.Pause_Théorique, REQ_POintage.Reprise_Théorique, REQ_POintage.Fin_Théorique, ChaîneVersDate(REQ_POintage.Date), REQ_POintage.Debut_Réel, REQ_POintage.Pause_Réel, REQ_POintage.Reprise_Réel, REQ_POintage.Fin_Réel, REQ_POintage.Motif_Abscence) POUR i=1 _A_ TableOccurrence(TABLE_Pdapointage) SI EstPair(i)=Vrai ALORS COL_Utilisateur[i-1]..Fusion = fusionLigneSuivante COL_Type[i-1]..Fusion = fusionLigneSuivante COL_Debut_Théorique[i-1]..Fusion = fusionLigneSuivante FIN FIN HLitSuivant(REQ_POintage) FIN
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TABLE_Pdapointage.COL_Debut_Théorique[i]..Fusion = fusionCelluleSuivante TABLE_Pdapointage.COL_Fin_Théorique[i]..Fusion = fusionCelluleSuivante
En lecture rapide... il y a un truc qui ne colle pas dans ton code.
Essaie ceci... Et surtout, essaie de comprendre la différence entre les 2 codes.
J'ai recopié tel quel, en changeant le minimum de choses, mais je remplacerais SI EstPair(i)=Vrai ALORS vers la fin par SI EstImpair(i)=Vrai ALORS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 HExécuteRequête(REQ_POintage,hRequêteDéfaut) HLitPremier(REQ_POintage) TANTQUE PAS HEnDehors(REQ_POintage) TableAjouteLigne(TABLE_Pdapointage,REQ_POintage.Utilisateur,REQ_POintage.Type,REQ_POintage.Debut_Théorique, REQ_POintage.Pause_Théorique, REQ_POintage.Reprise_Théorique, REQ_POintage.Fin_Théorique, ChaîneVersDate(REQ_POintage.Date), REQ_POintage.Debut_Réel, REQ_POintage.Pause_Réel, REQ_POintage.Reprise_Réel, REQ_POintage.Fin_Réel, REQ_POintage.Motif_Abscence) HLitSuivant(REQ_POintage FIN POUR i=1 _A_ TableOccurrence(TABLE_Pdapointage) trace ( " Vérif fusion ligne " + i) SI EstPair(i)=Vrai ALORS COL_Utilisateur[i-1]..Fusion = fusionLigneSuivante COL_Type[i-1]..Fusion = fusionLigneSuivante COL_Debut_Théorique[i-1]..Fusion = fusionLigneSuivante FIN FIN
et j'ai ajouté une instruction trace(...) ; c'est toujours utile pour comprendre ce que fait le programme.
Sur ta version initiale, ajoute juste une instruction trace() au milieu de la boucle ... tu verras ce qui ne va pas.
Edit après relecture ...
En fait, les changements à effectuer sont plus lourds que ça ... Windev est un outil très bien, mais il ne fait pas de la magie...
Comment veux-tu que Windev devine de mettre les horaires théoriques sur une ligne, et les horaires réels sur une autre ligne, à partir de ce code ?
N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.
Bonjour,
Désolé comme ton exemple était un tableur j'ai cru que c'est ce que tu souhaitais. Voilà la même chose sur un champ table:
Résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 nNumLigne est un entier Cadre est un Cadre Cadre.Bords = BordTous Cadre.Trait = TraitContinu Cadre.Couleur = Noir Cadre.Epaisseur = 1 COL_Debut..Fusion = fusionTitreSuivant POUR TOUT stSalarie DE gtabMesSalaries nNumLigne = TableAjouteLigne(TABLE_SansNom1,stSalarie.Nom,stSalarie.Prenom,stSalarie.DebutTheorique,stSalarie.FinTheorique) TableAjouteLigne(TABLE_SansNom1,"","",stSalarie.DebutReel,stSalarie.FinReel) COL_Nom[nNumLigne]..Fusion = fusionLigneSuivante COL_Prenom[nNumLigne]..Fusion = fusionLigneSuivante POUR i = 1 À 4 TABLE_SansNom1[nNumLigne,i]..Cadre = Cadre TABLE_SansNom1[nNumLigne+1,i]..Cadre = Cadre FIN FIN
Philippe,
N'hésitez à lever le pouce si mon aide vous a été utile.
Tu peux recopier tel ou tel code, mais tu resteras débutant.
Il faut que tu sois autonome.
Ici, il faut que tu fasses une version V0.0 qui affiche ça :
J'ai mis des symboles // mais dans l'interface, ça doit être des cellules différentes.Toto // théorique // 9.00 // 17.00
Toto // réel........ // 9.15 // 17.20
Tata // théorique // 9.00 // 17.00
Tata // réel........ // 9.00 // 17.20
Quand tu auras ceci, tu pourras facilement faire la dernière étape, qui consiste à fusionner les cellules avec les noms.
L'autre problème que je vois apparaître, c'est que tu as proposé des copies d'écran, où on voyait le mot lundi en tête de la colonne avec les horaires. J'imagine que tu vas vouloir en fait plusieurs colonnes, une pour chaque jour ?
N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.
Je suis d'accord avec tbc92, si tu recopies bêtement mon code ça n'a aucun intérêt. Le but était de te donner un exemple pour que tu puisses analyser et comprendre le principe. Je pense également qu'il va y avoir plusieurs jours donc si tu as bien compris le principe, ça devrait être simple.
Philippe,
N'hésitez à lever le pouce si mon aide vous a été utile.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager