IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

fractioner ligne table windev


Sujet :

WinDev

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut fractioner ligne table windev
    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
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    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

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Bonjour, à priori, tu es sur un état
    Non je ne suis pas sur un état mon client veut que les résultat mon tableau est alimenté par une requête c'est lors de l'affichage de sortie que je eux fusionner les colonnes théorique et les colonnes heures réels et ensuite les divisées comme sur l'image du début
    Images attachées Images attachées  

  4. #4
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Donc tu veux quelque chose comme cela.
    Nom : 2018-01-27_10h54_16.png
Affichages : 892
Taille : 2,6 Ko

    Quelle est ta version de WD?
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    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
    Images attachées Images attachées  

  6. #6
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    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 Nom : BouleCristal.gif
Affichages : 1357
Taille : 1,7 Ko depuis le début
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  7. #7
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 174
    Points : 287
    Points
    287
    Par défaut
    Bonjour;

    Théorique en Haut et le Réel en Bas ?

    Bon Dev.

  8. #8
    Candidat au Club
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    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 Nom : BouleCristal.gif
Affichages : 1357
Taille : 1,7 Ko depuis le début
    Désole voila une maquette
    Images attachées Images attachées  

  9. #9
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    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.

  10. #10
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut
    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

  11. #11
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    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
    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)
    et voici le résultat:
    Nom : 2018-01-28_08h57_26.png
Affichages : 975
Taille : 40,8 Ko
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  12. #12
    Candidat au Club
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    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

  13. #13
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    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.

  14. #14
    Candidat au Club
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    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
    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
    et dans affichage d'une ligne j'ai mis ca
    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

  15. #15
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    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.

    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
    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

    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.

  16. #16
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    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:
    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
    Résultat
    Nom : 2018-01-31_23h17_06.png
Affichages : 948
Taille : 22,5 Ko
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  17. #17
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    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 :
    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
    J'ai mis des symboles // mais dans l'interface, ça doit être des cellules différentes.

    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.

  18. #18
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    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.

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/11/2014, 12h12
  2. [WD17] Dupliquer une ligne dans une table windev 17
    Par lafif50 dans le forum WinDev
    Réponses: 2
    Dernier message: 16/02/2013, 12h08
  3. valeur ligne d'une table windev
    Par law56100 dans le forum WinDev
    Réponses: 4
    Dernier message: 03/04/2008, 16h55
  4. requête extraction dernière ligne table
    Par COLOMBAT dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/06/2006, 09h57
  5. Réponses: 1
    Dernier message: 23/03/2006, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo