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 :

Remettre les numéros à 1 chaque jour


Sujet :

WinDev

  1. #1
    Futur Membre du Club Avatar de titanium23
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Août 2016
    Messages : 39
    Points : 7
    Points
    7
    Par défaut Remettre les numéros à 1 chaque jour
    Bonjour, je déjà poster une question similaire mais je suis un peu a court d’idée. Je voudrai juste vous demander si quelqu’un peut m’aider a crée une petite syntaxe ou requête qui choisi la date du jour (date du system) comme date MAX pour remettre les numéros à 1 sans effacer la base de donner. C’est à dire que si aujourd’hui on distribue des numéros 1 à 50 par exemple au client, le lendemain le premier numéro est toujours 1.
    On ma conseiller de créer un fichier .INI pour stocker les numéros temporaire, mais je ne sais quoi faire.


    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Tu peux créer une table dans la base de données, avec le prochain numéro disponible et la date de modification.
    Quand tu veux un numéro, tu bloques la table, et tu lis les deux colonnes. Si la date lue est inférieure à la date du jour, tu pars à 1, sinon tu prends le numéro lu.
    Ensuite tu mets à jour la table, avec le numéro lu + 1 et la date du jour.
    Le blocage n'est indispensable qu'en cas d'utilisation simultanée par plusieurs personnes, pour éviter que 2 utilisateurs ne récupèrent le même numéro.

    Tatayo.

  3. #3
    Futur Membre du Club Avatar de titanium23
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Août 2016
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Pardon je suis encore très novice, est ce que tu peu expliciter un peut sur « Quand tu veux un numéro, tu bloques la table…»

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Comme j'imagine que tu utilises des fichiers HF, regarde l'aide de hLit(), c'est clairement expliqué.

    Tatayo.

  5. #5
    Futur Membre du Club Avatar de titanium23
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Août 2016
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    mon BDD est oracle

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 056
    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 056
    Points : 9 394
    Points
    9 394
    Par défaut
    Actuellement, si tu as un client à 10heures et un autre à 11heures, comment tu fait pour passer du n° N à N +1 entre 10 et 11 heures ?

    Tu as une table oracle avec une seule ligne qui est le n° N ? Ou tu passes par une autre solution ?

    Décris ta solution actuelle, et on pourra te dire quoi changer.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  7. #7
    Futur Membre du Club Avatar de titanium23
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Août 2016
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Afin de faire une analyse rapide j’ai essaie tout d’abord de le réaliser avec un fichier HPF, pour comprendre ce que Tatayo voulais dire avec ce code, si la date du jour est égale ou supérieur a la date du dernière enregistrement il commence toujours par 1 ,2….

    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
    HLit(Numero)
    	SI Numero.dernier<DateDuJour()  ALORS
     
    		Numero.dernier=1
    		Numero.Date_de_modification=SAI_dt
     
     
     
    		HAjoute(Numero)
    	SINON
     
     
        	Numero.dernier=	Numero.dernier+1
    		Numero.Date_de_modification=DateDuJour()
     
     
     
    		HAjoute(Numero)
     
     
    	FIN
    C'est un peut en désordre mais c'est juste un essaie,une petite amelioration ou critique de votre cote est le bienvenue

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par titanium23 Voir le message
    On ma conseiller de créer un fichier .INI pour stocker les numéros temporaire, mais je ne sais quoi faire.
    Justement, j'aurai éviter de me servir du fichier INI, tu pourrais attribuer un même numéro à 2 personnes qui veulent prendre un ticket en même temps.
    Ce que je verrais : tu gardes ta table où tu stockes tes données avec numéro de ticket, date, client, ...
    Et je verrais une autre table TICKET_ATTRIBUES_JOURNEE qui contiendra toutes les données de ta table mère, mis à part du numéro de ticket qui devra être un champ compteur automatique, où tu stockeras les tickets attribués dans la journée.

    Objectif : dans la table TICKET_ATTRIBUES_JOURNEE, je regarde si elle n'est pas vide, dans ce cas, je regarde si elle contient des enregistrements ton champ date correspondra à la date du jour. Si tu trouves aucun enregistrement, tu exportes les données de ce cette table vers la table mère, un drop de la table TICKET_ATTRIBUES_JOURNEE, puis, tu la crées de nouveau. Ainsi, ton compteur recommencera à 1 tu n'auras aucun problème pour attribuer 2 numéros de ticket différents à 2 personnes

  9. #9
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 056
    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 056
    Points : 9 394
    Points
    9 394
    Par défaut
    Dans le code que tu proposes , en ligne 2, tu compares numero.dernier avec datedujour()

    Autrement dit, tu compares un n° de client avec une date. Si tu étais un tout petit peu appliqué, tu verrais ce genre d'erreur en 3 minutes, au lieu d'attendre 3 heures qu'une bonne âme regarde à ta place.

    Je m'arrête là , mais sur les 4 autres lignes , il y a autant d'erreurs tout aussi énormes.

    Tu es développeur web, ou tu es un collégien de 13-14 ans ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  10. #10
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Je suis assez d'accord avec Romulus001, sauf que :
    - je n'utiliserais pas de table journée
    - Je n'utiliserais pas de table numéro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Si pas hlitrecherchedernier(tickets,DateTicket,DateDuJour()) alors
    Ticket.ordre =1
    sinon
    Ticket.ordre ++
    fin
    hraz(tickets)
    tickets.nom =...
    ...
    hahoute(tickets)
    En vérifiant que le dernier enregistré est bien le dernier "ordre", quitte à créer une clé composée, ou passer par une vue ou une requête SQL (select ordre from tickets where DateTicket = param order by ordre)...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Je dirai aussi qu'il est inutile d'ajouter des enregistrements dans ce fichier, un seul suffit largement.

    Tatayo.

Discussions similaires

  1. Un script pour compresser les fichiers chaque jour automatiquemement
    Par 20132014 dans le forum Shell et commandes GNU
    Réponses: 18
    Dernier message: 15/04/2013, 14h49
  2. remise à zero d'un numéro "auto" chaque jour
    Par sylchat69 dans le forum Access
    Réponses: 3
    Dernier message: 13/09/2007, 20h16
  3. Rajouter les numéros de ligne dans une colone d'une requete
    Par AntiSAL dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 02/11/2005, 19h07
  4. Réponses: 2
    Dernier message: 27/10/2005, 19h26
  5. Decaler les dates d'un jour en jours ouvrables
    Par beurnoir dans le forum Access
    Réponses: 4
    Dernier message: 06/10/2005, 10h13

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