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 :

Problème Table Fichier [WD11]


Sujet :

WinDev

  1. #21
    Membre confirmé Avatar de mnw.william
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Janvier 2011
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 311
    Points : 459
    Points
    459
    Par défaut
    Au fait Julien, est ce que tu peux être plus explicites quand à l'énumération de ton problème ? Qu'est ce tu veux réellement ?
    Le vrai problème n’est pas de savoir si les machines pensent, mais de savoir si les hommes pensent

  2. #22
    Nouveau membre du Club
    Inscrit en
    Janvier 2012
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 171
    Points : 37
    Points
    37
    Par défaut
    Donc comme je viens de le dire j'ai un soucis au niveau d'une boucle qui me permet d'enregistrer des choses saisie dans un tableau dans mon fichier ligne.fic

    Mon tableau est composé de 99 lignes.

    Chaque ligne est composé de différente colonne permettant en autre de saisir le prix le numéro etc etc...

    Je veux pouvoir enregistrer les lignes qui ont été renseignées même si certaines colonnes n'ont pas été remplie : par exemple une personne dans la ligne a saisie le nom le prix mais pas le numéro et bien c'est pas grave on enregistre quand même la ligne par contre si une ligne est complètement vide tout simplement on ne sans est pas servie et bien on l'enregistre pas.

    Certaines colonnes sont des numeriques et d'autres des textes.

    voici mon code actuel :

    POUR i = 1 A 99

    TableOccurrence(TABLE_TableLSCPcopie)

    SI COL_UF[i] <> 0 OU COL_Produit[i] <> 0 OU COL_Designation[i] <> "" OU COL_NumBesoin[i] <> "" OU COL_NumCompte[i] <> "" OU COL_MarcheLot[i] <> "" OU COL_Qte[i] <> 0 OU COL_MonTTC[i] <> 0 OU COL_TauxTVA[i] >= 0 ALORS

    Ligne.UF = COL_UF[i]
    Ligne.Produit = COL_Produit[i]
    Ligne.Designation = COL_Designation[i]
    Ligne.NumBesoin = COL_NumBesoin[i]
    Ligne.NumCompte = COL_NumCompte[i]
    Ligne.MarcheLot = COL_MarcheLot[i]
    Ligne.Qte = COL_Qte[i]
    Ligne.MonTTC = COL_MonTTC[i]
    Ligne.TauxTVA = COL_TauxTVA[i]

    EcranVersFichier()
    HAjoute(Ligne)
    HRAZ(Ligne)

    FIN
    FIN


    EcranVersFichier()
    HAjoute(Entête)
    HRAZ(Entête)

    Le problème de ce code est le suivant est que il permet d'enregistrer les lignes remplies et les lignes remplies a moitié mais enregistre aussi les lignes complètement vide ou que je n'ai pas utilisé et sa je ne veux pas.

    Voila j’espère avoir été assez clair.

    Merci.

  3. #23
    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
    il faut dans ce cas que tu fasses qqchose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SI (COL_UF[i] + COL_Produit[i] + COL_Qte[i] + COL_MonTTC[i] + COL_TauxTVA[i] > 0) ou ...
    (SansEspace(COL_Designation[i] + COL_NumBesoin[i] + COL_NumCompte[i] + COL_MarcheLot[i]) <> ""  ALORS
    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

  4. #24
    Nouveau membre du Club
    Inscrit en
    Janvier 2012
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 171
    Points : 37
    Points
    37
    Par défaut
    Voila le nouveau code :

    POUR i = 1 A 99

    TableOccurrence(TABLE_TableLSCPcopie)

    SI (COL_UF[i] + COL_Produit[i] + COL_Qte[i] + COL_MonTTC[i] > 0) OU (COL_TauxTVA[i] >= 0) OU (SansEspace(COL_Designation[i] + COL_NumBesoin[i] + COL_NumCompte[i] + COL_MarcheLot[i] <> "")) ALORS

    Ligne.UF = COL_UF[i]
    Ligne.Produit = COL_Produit[i]
    Ligne.Designation = COL_Designation[i]
    Ligne.NumBesoin = COL_NumBesoin[i]
    Ligne.NumCompte = COL_NumCompte[i]
    Ligne.MarcheLot = COL_MarcheLot[i]
    Ligne.Qte = COL_Qte[i]
    Ligne.MonTTC = COL_MonTTC[i]
    Ligne.TauxTVA = COL_TauxTVA[i]

    EcranVersFichier()
    HAjoute(Ligne)
    HRAZ(Ligne)

    FIN
    FIN

    Malheureusement toujours le même problème qu'avant il m'a enreigstré 99 lignes alors que j'en ai renseigné juste 3...

  5. #25
    Nouveau membre du Club
    Inscrit en
    Janvier 2012
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 171
    Points : 37
    Points
    37
    Par défaut
    Voici l'ensemble du code de mon bouton "enregistrer" si cela peut vous aider

    SI SAI_SaisieExercice = 0 ALORS
    Erreur("Vous n'avez pas remplie l'année exercice.")
    RepriseSaisie(SAI_SaisieExercice)
    FIN

    SI SAI_SaisieGestCommande = "" ALORS
    Erreur("Vous n'avez pas remplie la gestion commande.")
    RepriseSaisie(SAI_SaisieGestCommande)
    FIN

    SI INT_InterrupteurNonRegroup = Faux ET INT_InterrupteurURG = Faux ALORS
    Erreur("Vous n'avez pas cochez une des deux cases.")
    RepriseSaisie(INT_InterrupteurURG)
    FIN

    SI SAI_SaisieIniExpedi = "" ALORS
    Erreur("Vous n'avez pas remplie les initiales de l'expéditeur.")
    RepriseSaisie(SAI_SaisieIniExpedi)
    FIN

    SI SAI_SaisieObjetDepense = "" ALORS
    Erreur("Vous n'avez pas remplie l'objet de dépense.")
    RepriseSaisie(SAI_SaisieObjetDepense)
    FIN

    SI SAI_SaisieNomFournisseur = "" ALORS
    Erreur("Vous n'avez pas remplie le nom du fournisseur.")
    RepriseSaisie(SAI_SaisieNomFournisseur)
    FIN

    SI SAI_SaisieN°Fournisseur = 0 ALORS
    Erreur("Vous n'avez pas remplie le N° de fournisseur.")
    RepriseSaisie(SAI_SaisieN°Fournisseur)
    FIN

    SI SAI_SaisieDateRecep = "" ALORS
    Erreur("Veuillez saisir une date de réception.")
    RepriseSaisie(SAI_SaisieDateRecep)
    FIN

    SI SAI_SaisieDateFacture = "" ALORS
    Erreur("Veuillez saisir une date de facture.")
    RepriseSaisie(SAI_SaisieDateFacture)
    FIN

    SI SAI_SaisieDateArrivé = "" ALORS
    Erreur("Veuillez saisir une date d'arrivée.")
    RepriseSaisie(SAI_SaisieDateArrivé)
    FIN

    SI SAI_SaisieDateRecep > DateSys() ALORS
    Erreur("La date de récepetion est incorrecte car elle est supérieure à la date du jour.")
    RepriseSaisie(SAI_SaisieDateRecep)
    FIN

    SI SAI_SaisieDateFacture > DateSys() ALORS
    Erreur("La date de facture est incorrecte car elle est supérieure à la date du jour.")
    RepriseSaisie(SAI_SaisieDateFacture)
    FIN

    SI SAI_SaisieDateArrivé > DateSys() ALORS
    Erreur("La date d'arrivée est incorrecte car elle est supérieure à la date du jour.")
    RepriseSaisie(SAI_SaisieDateArrivé)
    FIN

    SI SAI_SaisieDateRecep > SAI_SaisieDateFacture ALORS
    Erreur("La date de réception précède la date de facture.")
    RepriseSaisie(SAI_SaisieDateRecep)
    FIN

    SI SAI_SaisieDateFacture > SAI_SaisieDateArrivé ALORS
    Erreur("La date de facture précède la date de d'arrivé.")
    RepriseSaisie(SAI_SaisieDateFacture)
    FIN

    SI SAI_SaisieRattachement = "" ALORS
    Erreur("Vous n'avez pas remplie le rattachement.")
    RepriseSaisie(SAI_SaisieRattachement)
    FIN

    SI SAI_SaisieN°Liquidation = "" ALORS
    Erreur("Vous n'avez pas remplie le N° de liquidation.")
    RepriseSaisie(SAI_SaisieN°Liquidation)
    FIN

    SI SAI_SaisieN°DeCommande = "" ALORS
    Erreur("Vous n'avez pas remplie le N° de commande.")
    RepriseSaisie(SAI_SaisieN°DeCommande)
    FIN

    SI SAI_SaisieRefFacture = 0 ALORS
    Erreur("Vous n'avez pas remplie la référence de la facture.")
    RepriseSaisie(SAI_SaisieRefFacture)
    FIN


    POUR i = 1 A 99

    TableOccurrence(TABLE_TableLSCPcopie)

    SI (COL_UF[i] + COL_Produit[i] + COL_Qte[i] + COL_MonTTC[i] > 0) OU (COL_TauxTVA[i] >= 0) OU (SansEspace(COL_Designation[i] + COL_NumBesoin[i] + COL_NumCompte[i] + COL_MarcheLot[i] <> "")) ALORS

    Ligne.UF = COL_UF[i]
    Ligne.Produit = COL_Produit[i]
    Ligne.Designation = COL_Designation[i]
    Ligne.NumBesoin = COL_NumBesoin[i]
    Ligne.NumCompte = COL_NumCompte[i]
    Ligne.MarcheLot = COL_MarcheLot[i]
    Ligne.Qte = COL_Qte[i]
    Ligne.MonTTC = COL_MonTTC[i]
    Ligne.TauxTVA = COL_TauxTVA[i]

    EcranVersFichier()
    HAjoute(Ligne)
    HRAZ(Ligne)

    FIN
    FIN

    EcranVersFichier()
    HAjoute(Entête)
    HRAZ(Entête)

    Info("Votre liquidation à bien été enregistrée")

    SAI_SaisieExercice = ""
    SAI_SaisieDateArrivé = ""
    SAI_SaisieDateFacture = ""
    SAI_SaisieDateRecep = ""
    SAI_SaisieGestCommande = ""
    SAI_SaisieIniExpedi = ""
    SAI_SaisieN°DeCommande = ""
    SAI_SaisieN°Fournisseur = ""
    SAI_SaisieN°Liquidation = ""
    SAI_SaisieNomFournisseur = ""
    SAI_SaisieObjetDepense = ""
    SAI_SaisieRattachement = ""
    SAI_SaisieRefFacture = ""
    SAI_SaisieTotalTTC = ""
    INT_InterrupteurNonRegroup = ""
    INT_InterrupteurURG = ""

    TableSupprimeTout(TABLE_TableTVA)

    POUR i = 1 A 3
    TableAjouteLigne(TABLE_TableTVA,"","","","","","")
    FIN

    TableSupprimeTout(TABLE_TableLSCPcopie)

    POUR i = 1 A 99
    TableAjouteLigne(TABLE_TableLSCPcopie,"","","","","","","","","")
    FIN
    Merci.

  6. #26
    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
    Tu mets un point d'arrêt sur la condition et tu fais une exécution pas à pas.

    lorsque i > 3, regarde bien ce que te donne, une par une, la valeur de tes colonnes.
    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

  7. #27
    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
    une erreur de parenthésage, ton sansespace est toujours vrai car cela transmorme en expression booléenne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SansEspace(COL_Designation[i] + COL_NumBesoin[i] + COL_NumCompte[i] + COL_MarcheLot[i] <> "")
    renvoie sansespace(1) ou sansespace(0)...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SansEspace(COL_Designation[i] + COL_NumBesoin[i] + COL_NumCompte[i] + COL_MarcheLot[i]) <> ""
    devrait mieux fonctionner...
    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

  8. #28
    Nouveau membre du Club
    Inscrit en
    Janvier 2012
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 171
    Points : 37
    Points
    37
    Par défaut
    Bonjour et désolé du retard,

    SI (COL_UF[i] + COL_Produit[i] + COL_Qte[i] + COL_MonTTC[i] > 0) OU SansEspace(COL_Designation[i] + COL_NumBesoin[i] + COL_NumCompte[i] + COL_MarcheLot[i]) <> "" ET (COL_TauxTVA[i] >= 0) ALORS
    Voila ce que j'ai mis d'après tes conseils et un peu de jugeote ^^.

    Et et et et et et sa MARCHE !!! J'ai fais plusieurs tests concluant !

    Apparemment ma colonne taux de TVA avec une valeur par défaut à 0 posait problème !

    Un grand merci à toi Frenchsting qui m'a vraiment aidé sur ce coup !!!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/08/2011, 11h03
  2. [AC-2000] Problème Import fichier .txt dans une table Access
    Par sylviobarca dans le forum VBA Access
    Réponses: 3
    Dernier message: 30/12/2010, 17h17
  3. [WD15] Problème de dédoublement de ligne dans des tables fichiers
    Par lololebricoleur dans le forum WinDev
    Réponses: 14
    Dernier message: 20/09/2010, 10h53
  4. Problèmes table de données MySQL et fichiers associés!
    Par sofien dans le forum Administration
    Réponses: 6
    Dernier message: 04/12/2008, 08h37
  5. Problème Table fichier
    Par orditosh dans le forum WinDev
    Réponses: 7
    Dernier message: 25/02/2008, 10h55

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