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 :

generer un numero de bon automatiquement [WD14]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Par défaut generer un numero de bon automatiquement
    Bonjour à tous
    Je développe une application (qui saisie les bons d'Achats) où les numéros de bon doivent être générés automatiquement de la façon suivante: Année à 4 chiffres suivi du numéro d'enregistrement à 4 chiffre aussi.(Ex:20110001), et le bon suivant 20110002 ainsi de suite.Lors d'une nouvelle année, le numéro d'enregistrement doit revenir à 0001. ===> 20120001
    et cela lorsque je clic sur le Bouton Nouveau
    Mon soucis est comment écrire le code qui va faire tout cela?
    Merci de votre aide précieuse

  2. #2
    Membre Expert
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 393
    Par défaut
    Bonjour

    Pour l'année la fonction AnnéeEnCours ou la propriété ..Année

    Ensuite la fonction NumériqueVerschaîne va t'aider pour formater ton N°

    Ce N° de devra être stocké quelque part et être incrémenté ou être calculé à partir du dernier n° émis

    Ce sujet a été abordé plusieurs fois dans ce forum

    Un exemple : formater-champ-texte

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Par défaut
    Bonjour
    Merci beaucoup Hpascal pour votre reponse
    juste une question
    comment procéder pour stocker le dernier N° numéro de bon

    [ Personnellement pour ce genre de chose je préfère stocker le dernier N° numéro de facture (ou de commande) utilisé dans un fichier de paramètre. C'est plus facile à gérer et ça te permet éventuellement de modifier sa valeur quand tu en as besoin (hpascal) ]

    http://www.developpez.net/forums/d80...r-champ-texte/

    et encour meci .

  4. #4
    Membre Expert
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 393
    Par défaut
    On peut stocker ce chrono dans un fichier de paramètre
    Je l'utilise pour une application mono-utilisateur
    Donc je n'ai pas de conflit d'attribution à régler

    Le N° peut aussi être stocké avec la pièce ce qui permet de faire un max (de année + chrono)
    Mais dans ce cas aussi si l'appli est multi-utilisateurs il faut faire attention, ceci a déjà été abordé dans d'autres messages

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Par défaut
    Merci hpascal
    à ce que tu m'apprendre comment créer un fichier de paramètre à ce que c'est un fichier d'une analyse ou quelque chose d'autre car je suis vraiment bloqué sur ce point
    et encore Merci beaucoup pour tous ce que tu donne avec les autres dans ce forum

  6. #6
    Membre Expert
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 393
    Par défaut
    Un fichier de ta base de données, donc de l'analyse oui
    Ce type de fichier permet de stocker toutes sortes de paramètres liés à ton application, et c'est moins ouvert qu'un .ini ou xml quelconque
    La structure de ce fichier dépend de tes besoins, elle doit d'organiser tes paramètres par catégories.

    Ceci est une façon de faire, chacun a sa méthode pour gérer un incrément "manuel"

    Maintenant tes N° peuvent êtres stockés en numérique vu qu'ils n'incluent pas de caractères alpha (20110001)
    Ceci permet d'obtenir le N° suivant avec un SELECT MAX(...) + 1
    Ensuite si la 1er partie du N° obtenu ne donne pas l'année en cours c'est qu'il y a changement d'année et tu repart du N° 1

    Enfin, il a plein de façons de faire et tout ça est très basique (à part le multi-users où il faut faire plus attention), si tu butes déjà là tu vas avoir d'autres soucis ...

  7. #7
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Par défaut
    Merci pour votre aide.
    Excuser moi mais j'ai pas compris beaucoup de chose (car je suis débutant sous windev) .

    mais j'ai incrémenter sans utiliser un fichier paramètre (car je n'est pas comparai comment faire )

    par le code suivant

    les déclarations: nbon est une chaîne
    dDatebon est une Date

    Code dans le bouton Nouveau
    avant tous j'ai tapé le 1er enregistrement ou N_bon =20110001 ensuite

    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
    32
    33
    34
    35
    HLitDernier(Bon,N_bon)
    TANTQUE PAS HEnDehors(Bon)
    	HLitSuivant(Bon,N_bon)
     
    FIN
     
     
     
    nbon=DateVersChaîne(dDatebon, "AA") 
     
    SI nbon=11 ALORS
    RAZ()
     
    	SAI_N_bon=Facture.N_bon +1
    	FIN
     
    SI nbon=12 ALORS
     
    	RAZ()
     
    	SAI_N_bon=20120001
     
    FIN
     
    SI nbon = 13 ALORS
    	SAI_N_bon=20130001
    FIN
     
    SI nbon=14 ALORS
    	SAI_N_bon=20140001
    FIN
     
    SI nbon=15 ALORS
    	SAI_N_bon=20150001
    FIN
    que pense tu à ce que ce code est correcte

    merci pour tous le temps que tu a consacré pour me réponde
    Amicalement Younes

  8. #8
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Par défaut
    Merci Hpascal
    tes réponse mon permet de comprendre des choses que je ne connaissais pas avant malgré que j'ai pas trouvé une solution pour ce problème il Faut que je m’améliore et pour quoi arriver un jour à ton niveau.
    Merci Beaucoup
    Amicalement Younes

  9. #9
    Membre émérite
    Inscrit en
    Avril 2008
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 132
    Par défaut
    Salut
    @Younes

    J'admire vraiment ton courage et surtout l'ambition!

    As tu seulement une idée du niveau de HPascal ???

    Chapeau!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/07/2007, 09h43
  2. Réponses: 5
    Dernier message: 14/10/2005, 11h39
  3. [Info] Générer des numéros de licence
    Par nico2280 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 24/08/2005, 15h35
  4. Generer et incrementer automatiquement le clé primaire d'un
    Par ravelo dans le forum Bases de données
    Réponses: 3
    Dernier message: 15/06/2004, 20h12
  5. generer un numero auto a chaque insertion
    Par julio84 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 15/07/2003, 12h22

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