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 :

Organiser mes articles dans un fichier csv par commande [WD24]


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2022
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2022
    Messages : 21
    Points : 6
    Points
    6
    Par défaut Organiser mes articles dans un fichier csv par commande
    Bonjour à tous,

    j'ai exécuté une requête pour m'afficher les commandes à condition le NumERP=0
    J'aimerais afficher le résultat de cette requête dans un fichier csv, càd, afficher les commandes ayant le même NUM dans un fichier csv avec un nom de fichier comme: COMMANDE_NUM_DATESYS()_HEURESYS().csv .
    voici le résultat de la requête:
    Nom : test.PNG
Affichages : 250
Taille : 11,0 Ko
    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
     
    sFileName est une chaîne
    numFichier est un entier 
    ResEcrit est un booléen = Vrai
     
    SI HExécuteRequête(RQ_CDEP,hRequêteDéfaut) ALORS 			
    	POUR TOUT RQ_CDEP  
    		sFileName=pDossierFromAgix+"COMMANDE_"+ RQ_CDEP.NUM +"_"+DateSys()+"_"+HeureSys+".csv"
    		numFichier = fOuvre(sFileName,foLectureEcriture+foCréationSiInexistant)
    		ResEcrit = fEcritLigne(numFichier,"NUM_CDE"+";"+"Partenaire"+";" +"CODECLIENT"+";"+"DATEC"+";"+"REMISE"+";"+"CODEARTICLE"+";"+"SOUS-REF1"+";"+"SOUS-REF2"+";"+"QTE"+";"+"UV"+";"+"NUM-SERIES"+";"+"NUM-COLIS")
    					SI numFichier = -1 ALORS 
    						Erreur(ErreurInfo(errMessage))
    					SINON
    						ResEcrit = fEcritLigne(numFichier,RQ_CDEP.NUM +";"+ RQ_CDEP.Partenaire +";"+ RQ_CDEP.CODECLIENT+";"+ RQ_CDEP.DATEC+";"+RQ_CDEP.REMISE+";"+RQ_CDEP.CODEARTICLE+";"+" "+";"+" "+";"+RQ_CDEP.QTE+";"+RQ_CDEP.UM)		
    						SI ResEcrit = Faux ALORS Erreur(ErreurInfo(errMessage))       					       
    				 	FIN		
    	FIN   
    FIN

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 854
    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 854
    Points : 5 391
    Points
    5 391
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Pourquoi ne pas tout bêtement utiliser HExporteCSV ?

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 120
    Points : 9 533
    Points
    9 533
    Par défaut
    La solution de Voroltinquo : Tu identifies dans un premier temps tous les fichiers que tu devras créer, puis pour chaque fichier, tu exécutes une requête, et tu exportes le résultat dans un CSV.

    L'autre solution, c'est ce que tu as tenté d'implémenter, tu exécutes une requête, tu lis ligne à ligne le résultat de cette requête, et tant que c'est le même identifiant, tu écris dans le même fichier.

    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
    hexecuterequete(...)
    hlitpremier(...)
    Tantque pas hendehors
       oldCle = marequete.cle
       sfichier = ... + oldcle + '.CSV'
       nf = fcree( sfichier)
       trace ( " ouverture de " + sFichier ) 
       tantque pas hendehors et marequete.cle = oldcle
          sLigne = ... 
          trace ( "écriture de "+sLigne)
          fecritLigne(nf, sLigne)
          hLitSuivant()
       fin
       fferme(nf)
       trace ( " fermeture de " + sFichier ) 
    fin
    Avec Pour Tout, tu vas galérer pour construire une boucle de ce type.
    J'ai même mis des instructions 'Trace' pour que tu puisses voir tout ce qui se passe, dans quel ordre.

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2022
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2022
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Je vous remercie pour votre réponse tbc92, mais que voulez-vous dire par cette ligne oldCle = marequete.cle ?

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 120
    Points : 9 533
    Points
    9 533
    Par défaut
    Pour adapter à tes notations : OldCle = RQ_CDEP.NUM.

    Ici, je pars du principe que la lecture des enregistrements est triée sur cette colonne RQ_CDEP.NUM : on reçoit toutes les lignes concernant un certain fichier csv, puis toutes les lignes d'un autre CSV.

    En relisant ton code, je pense que tu peux corriger ainsi :
    Remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    numFichier = fOuvre(sFileName,foLectureEcriture+foCréationSiInexistant)
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    numFichier = fOuvre(sFileName,foLectureEcriture+foCréationSiInexistant+foAjout)
    ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    numFichier = fOuvre(sFileName,foEcriture+foCréationSiInexistant+foAjout)

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2022
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2022
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Problème résolu. je vous remercie pour vos aide.

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

Discussions similaires

  1. [XL-2007] masquer des lignes dans un fichier Excel par commande VBA
    Par line78 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 02/12/2016, 17h57
  2. [Débutant] Générer et organiser mes données dans un fichier txt
    Par Matwix dans le forum MATLAB
    Réponses: 2
    Dernier message: 05/08/2014, 11h36
  3. Réponses: 0
    Dernier message: 30/01/2014, 10h13
  4. Nombre de" ; "par ligne dans un fichier CSV
    Par delilou dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 25/07/2011, 15h01

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