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 :

Générer automatiquement code produit


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2019
    Messages : 24
    Points : 15
    Points
    15
    Par défaut Générer automatiquement code produit
    Bonjour !
    J'ai un problème, ça fait des jours que j'essaie de générer et incrémenter le code produit de ma table produit.

    Exemple : Prod-0001
    Quand je clique sur "nouveau" que sa incrémente
    Prod-0002 ainsi de suite.

    J'ai voulu utiliser la clé primaire qui est déjà en auto-incremente mais ça ne marche pas.
    Voici le code que j'ai mis dernière la fenêtre FEN_Fiche_produit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Si Sai_CodeProduit="" alors
        I est un entier
        nom est une chaîne
     
        I=Max(Produit.IDProduit)+1
        nom="Prod"
     
        Sai_CodeProduit=Gauche(nom,4)+"-"+I
     
    Fin

  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,
    Le problème a été moulte fois abordé.
    Regarde du côté de ChaineIncrémente.
    Le code devrait ressembler à ça.
    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
     
    sNouveauCode est chaine
    reqRechercheCode est Requete SQL =
    [
    SELECT 
    	MAX(Produit.CodeProduit) AS DernierCode
    FROM 
    	Produit
    ]
     
    SI HNbEnr(Produit)=0 ALORS //La table Produit est vide
         //On crée le premier Code
         sNouveauCode="Prod-1"
    SINON
         HexecuteRequête(reqRechercheCode)
         sNouveauCode=ChaineIncrémente(reqRecherche.DernierCode)
    FIN
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2019
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    MERCI beaucoup pour la réponse.
    J'ai repris le code mais chez moi.
    Ça met erreur sur le "Max" dans la requête.
    Et sur la requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reqRechercheCode est Requête SQL =[Select Max(Produit.IDProduit) from as DernierCode Produit]
    Ça met le nom de la requête en rouge dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HexecuteRequete(reqRechercheCode)

  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
    Lors de la description d'une variable requête, il faut que la description soit sul plusieurs lignes, comme je l'ai écrit
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 91
    Points : 133
    Points
    133
    Par défaut
    Bonjour

    Sous quelle version WD es tu ?

    @Voroltinquo
    Sous WD20, ce serait exactement la même chose, il reconnait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reqRechercheCode est Requête SQL =[Select Max(Produit.IDProduit) from as DernierCode Produit]
    mais pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HexecuteRequete(reqRechercheCode)

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2019
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    Je suis sur WD20

  7. #7
    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
    Erf,
    WD20 ne reconnait pas les variables requête SQL
    Il faut passer par une chaine et utiliser HexecuteRequeteSQL
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 914
    Points : 1 496
    Points
    1 496
    Par défaut
    Citation Envoyé par mamadoukebe Voir le message
    J'ai voulu utiliser la clé primaire qui est déjà en auto-incremente mais ça ne marche pas.
    [/CODE]
    Bonsoir
    Ça peut répondre à votre besoin :
    http://carnetwindev.blogspot.com/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Cette fois une simple petite fonction qui vous permettra d'affecter un matricule unique au format  incrémental du type :
    AAA000, AAA001, ..., AAA999 BAA000, BAA001, ..., BAA999 ... ZZZ999
    ... à partir du numéro unique d'identifiant de votre enregistrement de fichier de données.

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/07/2015, 15h05
  2. générer automatiquement du code à partir d'un model
    Par sarah2323 dans le forum Simulink
    Réponses: 0
    Dernier message: 05/02/2014, 14h32
  3. Générer du code automatiquement
    Par Martin_77 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/10/2009, 14h58
  4. Réponses: 4
    Dernier message: 30/06/2009, 22h47
  5. Réponses: 5
    Dernier message: 19/06/2009, 11h29

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