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 ?
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
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.
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
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...
Voici l'ensemble du code de mon bouton "enregistrer" si cela peut vous aider
Merci.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
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
une erreur de parenthésage, ton sansespace est toujours vrai car cela transmorme en expression booléenne...
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part SansEspace(COL_Designation[i] + COL_NumBesoin[i] + COL_NumCompte[i] + COL_MarcheLot[i]) <> ""
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
Bonjour et désolé du retard,
Voila ce que j'ai mis d'après tes conseils et un peu de jugeote ^^.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
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 !!!!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager