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 Mobile Discussion :

création ou incrémentation [WM20]


Sujet :

Windev Mobile

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 16
    Points : 15
    Points
    15
    Par défaut création ou incrémentation
    Bonjour à tous !

    J'ai un petit problème concernant l'incrémentation d'un nombre. Je n'ai jamais effectué cela auparavant, je ne suis pas non plus doué en programmation, et j'ai donc un peu de mal. Après diverses recherches sur le sujet, j'ai essayé de faire un petit bout de code, mais qui ne donne pas grand chose.

    L'idée principale est de chercher dans la base de données le fichier Produit, et de vérifier si cette base est vide. Si elle l'est, on doit créer le premier enregistrement qui sera ajouté par programmation. Une fois cet enregistrement créé, lors de la création du second enregistrement, on verifie si la base est vide, et comme elle ne l'est pas, on incrémente le dernier numéro. Et à chaque enregistrement, on incrémentera le dernier numéro utilisé (code barre).

    Voici mon bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    n est un entier = Produit.CodeBarreInterne
    HLitRecherche(Produit,CodeBarreInterne,"427600001")
    SI HTrouve() ALORS
    	HLitDernier(Produit,CodeBarreInterne)
    	SAI_CodeBarreInterne=n+1
    SINON
    	SAI_CodeBarreInterne=427600001
    FIN
    Ce code ne fonctionnant pas, merci de me proposer des améliorations du code !
    Merci à tous !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 188
    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 188
    Points : 12 744
    Points
    12 744
    Par défaut
    Bonjour,
    Ce que je te propose, c'est plutôt de poser un point d'arrêt sur la première ligne, puis de suivre le code pas à pas dans le débuggeur en surveillant bien le contenu de tes variables.
    Le problème devrait te sauter aux yeux, car il y a tout de même un gros problème de logique dans ton code.

    Tatayo.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Bonjour,
    Ce que je te propose, c'est plutôt de poser un point d'arrêt sur la première ligne, puis de suivre le code pas à pas dans le débuggeur en surveillant bien le contenu de tes variables.
    Le problème devrait te sauter aux yeux, car il y a tout de même un gros problème de logique dans ton code.

    Tatayo.
    Hello et merci de prendre du temps pour t'occuper de mon problème. Je suis désolé, mais en déboguant, je ne trouve pas mon erreur. Je t'avoue ne pas tout comprendre de ce que je fais, je ne maitrise pas bien les différences de fonction entre Henregistre, Hajoute, Hmodifie... donc je suis pas très fute fute sur ce coup la...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 188
    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 188
    Points : 12 744
    Points
    12 744
    Par défaut
    Le problème n'est pas avec les ordres h:
    Code windev : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    n est un entier = Produit.CodeBarreInterne  <= tu notes le code barre interne de l'enregistrement courant dans la variable n. Mais quel enregistrement ? Mystère
    HLitRecherche(Produit,CodeBarreInterne,"427600001") <= tu cherches un enregistrement dont le code barre vaut 427600001
    SI HTrouve() ALORS <= si tu le trouves
    HLitDernier(Produit,CodeBarreInterne) <= tu lis le dernier enregistrement sur le code barre
    SAI_CodeBarreInterne=n+1 => le code barre vaut n+1. Mais que vaut n ? Est-ce le code barre du dernier enregistrement ? Rien ne permet de le savoir
    SINON
    SAI_CodeBarreInterne=427600001 tu prends une valeur par défaut
    FIN
    Ne penses tu pas qu'il y a un problème de logique ici ?

    A quoi bon chercher le produit qui a le code barre 427600001, si tu cherches ensuite le dernier code barre ?
    Quel est l'enregistrement dont tu notes le code barre à la première ligne ? A quoi bon chercher le dernier code barre, vu que tu prends le code barre noté à la première ligne ?

    Tatayo.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Oui effectivement !
    J'arrive donc à ce code qui semble fonctionner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    HLitRecherche(Produit,CodeBarreInterne,"427600001")
    SI HTrouve() ALORS
    	HLitDernier(Produit,CodeBarreInterne)
    	n est un entier = Produit.CodeBarreInterne
    	SAI_CodeBarreInterne=n+1
    SINON
    	SAI_CodeBarreInterne="427600001"
    FIN
    Merci pour ton aide précieuse tatayo !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/07/2008, 15h19
  2. création d'une clé qui s'auto incrémente
    Par saraenim dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/05/2008, 21h20
  3. création clé primaire auto incrémentable SQL ACCESS ?
    Par colorid dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 23/11/2007, 15h25
  4. Création d'un champs auto incrémenté
    Par mullger dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/11/2007, 10h40
  5. création champ incrémenté dans form
    Par nico86 dans le forum IHM
    Réponses: 1
    Dernier message: 26/11/2006, 16h22

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