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 :

Enregistrement des lignes d'une table avec condition [WD15]


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2012
    Messages : 96
    Points : 29
    Points
    29
    Par défaut Enregistrement des lignes d'une table avec condition
    Salut à tous les développeurs,

    Je suis en train de réaliser une application qui me permet de se connecté avec la base sage.
    Dans mon logiciel j’ai une table qui permet d’ajouter une quantité d’un article et une autre colonne pour visualiser le stock réel de cette article, à mon code j’ai réalisé une condition qui me permet de coloré la quantité entré en rouge s’il est supérieur au stock réel et une autre condition pour ajouter les quantités à un bon de livraison si la quantité est coloré en noire (Inferieur au stock réel) et s’il est strictement supérieur à 0 sinon il va passer au ligne suivant.

    Et voilà le code que j’ai met au bouton de validation.

    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
    Sablier(Vrai)
    POUR i=1 A TableOccurrence(TAB)
    	TableSelectPlus(TABL,i)
    	NumArticle=TAB.Column1[i]
    	// Création de l'OM ligne de document
    	PautLigneCDEArticle = PautNVDocDevis>>FactoryDocumentLigne>>Create
    	SI TAB. Column3[i]..Color=LightRed ET TAB.Column3[i]<0 ALORS
     
    		i++
    	SINON
    		// Affectation de l'article, le deuxieme parametre est la quantité	PautLigneCDEArticle>>SetDefaultArticle(autGC>>FactoryArticle>>ReadReference(NumArticle),Column3)	
    	FIN	
     
    	// Ecriture de la ligne
     
    	PautLigneCDEArticle>>WriteDefault
    	Sablier(Faux)
    FIN
    Info("L'enregistrement est bien passé")
    Merci pour votre temps.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 239
    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 239
    Points : 12 866
    Points
    12 866
    Par défaut
    Bonjour,
    Quelle est la question ?

    Tatayo.

  3. #3
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    La question :

    Ai je bien fait?

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2012
    Messages : 96
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Bonjour,
    Quelle est la question ?

    Tatayo.
    Salut,

    Ma question c'est que si j'ai le nombre de quantite est inferieur ou egale a 0 je veux passer à la ligne suivante sinon ajouter l'enregistrement au stock et depuis mon code il ne prend pas en charge mon condition car un message d'erreur me parait (la quantite est superieur au stock).

    voila le probleme.

    J'ai ressayé avec ce code mais le meme probleme que le precedent.

    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
    Sablier(Vrai)
    POUR i=1 A TableOccurrence(TAB)
    	TableSelectPlus(TABL,i)
    	NumArticle=TAB.Column1[i]
    	// Création de l'OM ligne de document
    	PautLigneCDEArticle = PautNVDocDevis>>FactoryDocumentLigne>>Create
    	SI TAB. Column3[i]>TAB. Column4[i] OU TAB.Column3[i]=0 ALORS
     
    		i++
    	SINON
    		// Affectation de l'article, le deuxieme parametre est la quantité	PautLigneCDEArticle>>SetDefaultArticle(autGC>>FactoryArticle>>ReadReference(NumArticle),Column3)	
    	FIN	
     
    	// Ecriture de la ligne
     
    	PautLigneCDEArticle>>WriteDefault
    	Sablier(Faux)
    FIN
    Info("L'enregistrement est bien passé")

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 239
    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 239
    Points : 12 866
    Points
    12 866
    Par défaut
    Est-ce normal que tu crées une ligne quoi qu'il arrive ?
    La ligne 11 est en commentaire, est-ce voulu ?
    Si tu mets un point d'arret et que traces ton code en pas à pas, que valent les colonnes 3 et 4 ?

    Tatayo.

    P.S. sablier(faux) doit sortir de la boucle...

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2012
    Messages : 96
    Points : 29
    Points
    29
    Par défaut
    Salut,
    Merci pour votre attention, j'ai reussi à rsoudre mon probléme et voila le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    POUR i=1 A TableOccurrence(TAB)
    	TableSelectPlus(TABL,i)
    	NumArticle=TAB.Column1[i]
    	// Création de l'OM ligne de document
    	gpautPautLigneCDEArticle = gpautPautNVDocDevis>>FactoryDocumentLigne>>Create
    	SI TAB.Column3[i]>TAB.Column4[i] OU TAB.Column4[i]=0 OU TAB.Column3[i]="" ALORS 		
    		TableSelectPlus(TAB,(TableSelect(TAB)+1))
    	SINON
    		// Affectation de l'article, le deuxieme parametre est la quantité
    		gpautPautLigneCDEArticle>>SetDefaultArticle(autGC>>FactoryArticle>>ReadReference(NumArticle),Column3)   
    		// Ecriture de la ligne
    		gpautPautLigneCDEArticle>>WriteDefault	
    	FIN
    Merci

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 451
    Points
    2 451
    Par défaut
    Bonsoir,

    Citation Envoyé par bestmoroco Voir le message
    [OUR i=1 A TableOccurrence(TAB)
    TableSelectPlus(TABL,i)
    Sans me prononcer sur le reste,
    1. TAB est une constante prédéfinie de Windev et il est donc déconseillé de l'utiliser autrement que comme telle.
    2. D'où vient le TABL ? Sans doute TAB avec une faute de frappe. Si votre code est réellement comme cela, il y a un problème à cet endroit.


    Hemgé

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 239
    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 239
    Points : 12 866
    Points
    12 866
    Par défaut
    J'ajouterai que la ligne 7 ne sert à rien, et va provoquer une erreur si la dernière ligne de la table vérifie la condition de la ligne 6.
    Je pense que la ligne 2 ne sert à rien non plus, vu que de toute façon les lignes sont accédées via leur numéro (i).

    Tatayo.

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

Discussions similaires

  1. [WD17] Supprimer des lignes d'une table sous condition
    Par alex1005 dans le forum WinDev
    Réponses: 7
    Dernier message: 15/10/2012, 14h27
  2. Réponses: 2
    Dernier message: 31/10/2011, 13h48
  3. Réponses: 8
    Dernier message: 24/01/2010, 21h11
  4. Réponses: 1
    Dernier message: 19/11/2009, 10h18
  5. Réponses: 4
    Dernier message: 31/05/2004, 12h26

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