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 :

Addition du nombre de colonne voulu


Sujet :

WinDev

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Addition du nombre de colonne voulu
    Nom : Screenshot.png
Affichages : 400
Taille : 115,3 KoNom : Screenshot - Copie.png
Affichages : 335
Taille : 76,2 Ko
    Salut à toutes et tous,
    Je travaille sur les plans.
    J'ai un problème sur le plan ABSENCES/CONGES

    J'ai 2 tables, une table personnel et une table congé.
    Normalement lorsque je clicque sur une ligne de la table personnel,la liste des congés s'affiche dans la table congé.
    C'est à dire, pour chaque personne on a une liste.
    Ce qui fonctionne déjà à la perfection.

    Mon problème se situe au niveau de la table congé.
    J'aimerais que le calcul se fasse en fonction de l'état de la colonne soustraire.

    NB: si l'interrupteur soustraire est coché, alors la colonne soustraire prend la valeur OUI dans le cas contraire elle prend la valeur NON.

    Comme je l'avais dis, j'aimerais que le calcul se fasse en fonction de l'état de la colonne soustraire.
    c'est à dire faire la SOMME de toutes les lignes dans de la colonne nombre de jours dont la colonne soustraire est égale à OUI.
    -Une fois le total obtenu, il faut faire la diference(soustraction) entre le mois(30jours) et le total obtenu.




    Voici mon code.
    J'ai inséré ce code sous la table personnel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #Selection d'une ligne de table personnel
    
    POUR TOUTE LIGNE DE TABLE_CONGE
    	SI TABLE_CONGE.COL_Soustraire="OUI" ALORS
    	
    	COL_Nbr_jours[ligneTotal]=COL_Nbr_jours[ligneTotal]+1
    	
    	FIN
    FIN
    LIB_Libellé82=COL_Nbr_jours[ligneTotal]..Valeur-30


    J'ai vraiment besoin de votre aide.
    Merci à vous

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 051
    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 051
    Points : 9 386
    Points
    9 386
    Par défaut
    Je vais être désagréable, mais tant pis.

    On a l'impression que tu mets un morceau de code au hasard.
    Dans ton code, tu ne te sers pas des données de la colonne Nombre-de-jours. Ni des colonnes date_début et date_fin. Donc c'est mal parti.

    Tu te sers d'une constante qui s'appelle ligneTotal. Bon pourquoi pas, mais recherche LigneTotal dans l'aide, et tu vas voir que ta configuration n'est pas adaptée.

    Et enfin, là ce n'est pas de la programmation mais de la comptabilité, je pense que si un individu est en congés du 21 au 22 août, ça fait 2 jours et pas 1. Et s'il est en vacances du 11 au 25 août, ça fait 2 semaines plus une journée, et a priori, ce qui t'intéresse, c'est le nombre de jours ouvrés, et donc, ça fait probablement 2 semaines de 5 jours, plus 1 jour, soit 11 jours.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 804
    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 804
    Points : 5 251
    Points
    5 251
    Billets dans le blog
    1
    Par défaut
    Comme le soulignait tbc92 ta question soulève 2 problèmes :
    -La manière de calculer le nombre total de jours à décompter (ta question initiale.)
    -Le mode de calcul de ces jours.

    Prenons les choses dans l'ordre.
    1-Récapitulation du total de jours à décompter
    Une requête devrait suffire nous l'appelerons REQ_DuréeCongés.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT 
      VACANCES.Décompter AS Décompter,  
      SUM(VACANCES.DuréeVacances) AS CongésADécompter
    FROM 
      VACANCES
    WHERE 
      wl.Majuscule(VACANCES.Décompter) "OUI"
    GROUP BY 
      VACANCES.Décompter
    Il te reste alors à soustraire REQ_DuréeCongés.CongésADécompter au "capital congé" initial de l'employé.

    Remarque
    Plutôt que d'utiliser une chaîne pour ta rubrique soustraire (la chaîne est sensible à la casse d'où l'utilisation de la fonction Majuscule)

    2-La mode de calcul des jours à décompter
    Si le calcul doit se faire automatiquement il y a plusieurs choses à prendre en compte (cf remarque de tbc92)
    2.1 DateFin
    Dans ton cas, DateFin correspond plutôt à la date de retour
    2.2 Nombre de jours
    Je ne sais pas comment fonctionne la législation en Côte d'Ivoire
    - tous les jours sont-il décomptés
    - seul les jours ouvrables sont-ils décomptés ...
    - vérification des chevauchements de vacances. Dans ton exemple, ton employé est en congé 2 fois pendant la même période, avec une partie à décompter (14j) une autre non, (5j) donc dans ce cas, seuls 9j devraient être décomptés. Si les 2 congés devaient être décomptés, on lui aurait décompté 5 jours de plus.

    Par exemple en France il y a quelques années (moins de 30 ans,) tous les jours étaient décomptés, sauf le premier et le dernier week end.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    941
    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 : 941
    Points : 1 931
    Points
    1 931
    Par défaut
    Bonjour,

    Il manque également la prise en compte des jours fériés au milieu de la semaine de vacance.

    Juste pour info, il est préférable d'utiliser UPPER à wl.Majuscule, c'est ainsi plus facile de porter la requête sur un autre SGBD.
    Philippe,


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

  5. #5
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 804
    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 804
    Points : 5 251
    Points
    5 251
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par philouZ Voir le message
    Il manque également la prise en compte des jours fériés au milieu de la semaine de vacance.
    C'était pour moi sous-entendu dans : "seul les jours ouvrables sont-ils décomptés"

    Je vais reprendre mon exemple sur mon décompte de jours au début des années 1990 :
    "tous les jours étaient décomptés, sauf le premier et le dernier week end"
    ce qui signifiait que pour un congé pris entre le samedi 8 juillet et le dimanche 23 juillet inclus (total 16 jours) on décomptait 16j moins le WE de début et celui de fin (4j au total) soit 12j le 14 Juillet, (férié en France) n'était pas pas pris en compte.
    Il faut voir ensuite avec la législation en vigueur en Côte d'Ivoire.

    Citation Envoyé par philouZ Voir le message
    Juste pour info, il est préférable d'utiliser UPPER à wl.Majuscule, c'est ainsi plus facile de porter la requête sur un autre SGBD.
    En effet, j'étais en manque de caféïne lors de la rédaction de mon poste
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    941
    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 : 941
    Points : 1 931
    Points
    1 931
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    C'était pour moi sous-entendu dans : "seul les jours ouvrables sont-ils décomptés"
    J'avais pas non plus tout lu, faut peut-être que je me mette à la caféine...
    Philippe,


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

  7. #7
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 804
    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 804
    Points : 5 251
    Points
    5 251
    Billets dans le blog
    1
    Par défaut
    Il est vrai que parfois "ça va sans le dire mais a va mieux en le disant."
    Maintenant que la caféine a agit, je compléterais mes "..." par la gestion ou non des ponts.

    Dans un autre registre, le "capital congé" est de 30 dans le cas évoqué. Il faut aussi penser au report éventuel d'une année sur l'autre et dans ce cas éviter de le mettre "en dur".
    Que de problèmes soulevés pour une requête ......
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour, avant de vous lancer dans le code en wlangage, avez-vous réalisé un algorithme?

  9. #9
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 804
    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 804
    Points : 5 251
    Points
    5 251
    Billets dans le blog
    1
    Par défaut
    Quelques fonctions utiles pour gérer les week-end, et jours fériés :
    JourFériéAjoute
    JourFérié
    DateVersJours
    Paques().
    L'ascension est 40 jours après Pâques et la Pentecôte 10 jours après l'Ascension.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour vos réponses, je prendrai tous ces details afin de resoudre ce problème.
    Qaund j'aurai fini, je vais vous faire un feedback.

  11. #11
    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
    Citation Envoyé par x-kerensky Voir le message
    Comme je l'avais dis, j'aimerais que le calcul se fasse en fonction de l'état de la colonne soustraire.
    c'est à dire faire la SOMME de toutes les lignes dans de la colonne nombre de jours dont la colonne soustraire est égale à OUI.
    -Une fois le total obtenu, il faut faire la diference(soustraction) entre le mois(30jours) et le total obtenu.

    Merci à vous
    Bonjour,

    Dans le problème posé, vous partez avec un nombre de 30 jours.
    1. Vous n'avez pas prévu les reliquats de congé
    2. Vous attribuez un droit de congé identique de 30 jours, pour tout le personnel, sans tenir compte :
    - de la réglementation propre à votre pays
    - date de recrutement de l'agent (mois travaillés)
    - la notion de période de référence

    Par exemple, en Algérie, la réglementation prévoit à ce sujet :
    - un droit de congé de 2.5 jours par mois travaillé
    - la période de référence qui s'étend du 01/07/n-1 au 30/06/n
    - le congé avec une durée de 30 jours calendaires maximum par année de travail.

    Comme vous pouvez le constater, dans mon cas, la période de référence chevauche sur 2 exercices.
    Dans mon programme, j'ai prévu une rubrique qui peut contenir, selon le cycle, des valeurs 2015/2016,
    2016/2017 etc...

    Il se pourrait que dans la vôtre, cette période coïncide avec l'année civile.
    Dans ce cas, les valeurs seront par exemple 2015, 2016, 2017 etc...

    Dans votre programme, raisonnez par cycle : droits, sorties, reliquat.

    Le nombre de jours restant est :
    - soit égal au total des différents reliquats par cycle
    - ou bien égal au résultat de (Total des droits - Total des sorties) tous cycles confondus

    Pour conclure, le programme doit être en mesure de ressortir :
    1. l'historique des droits de congé
    2. l'historique des sorties en congé
    3. une synthèse par cycle soit :
    - droits de congé
    - sorties en congé
    - reliquat de congé

    Le voyage est long, revenez avec quelque chose qui puisse tenir la route.

Discussions similaires

  1. [T-SQL] Connaître le nombre de colonnes retourner par une PS
    Par NeoMan dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/12/2005, 11h30
  2. Nombre de colonnes avec le nom de la table
    Par benji41 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/07/2005, 20h17
  3. [débutant] nombre de colonne dan sun fichier csv
    Par mandagor dans le forum C++
    Réponses: 18
    Dernier message: 15/06/2005, 15h42
  4. [JTextArea]changer dynamiquement le nombre de colonnes
    Par MrDuChnok dans le forum Composants
    Réponses: 9
    Dernier message: 27/04/2004, 13h31
  5. [RDB$PRIMARY] Nombre de colonnes
    Par Lucien dans le forum InterBase
    Réponses: 4
    Dernier message: 17/01/2004, 12h55

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