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 avec LanceAppli - rien ne se passe mais pas d'erreur [WD25]


Sujet :

WinDev

  1. #21
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    bonjour JeAn-PhI,

    merci pour le bout de code mais lorsque je l'essaye c'est toujours un problème de double quote : cf.message erreur ci-dessous :

    Erreur :Erreur de syntaxe sur la chaîne : peut provenir d'un caractère " à l'intérieur de la chaîne qui doit être doublé ou bien d'une erreur de syntaxe à la suite de la chaîne.
    FEN_TRAITEMENT_COURRIER.BTN_Tamponner, Clic sur FEN_TRAITEMENT_COURRIER.BTN_Tamponner, ligne 10, colonne 67

  2. #22
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 180
    Points : 275
    Points
    275
    Par défaut
    essayez ceci :

    Code WL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    sLigneCmd est chaine = "pdfstamp.exe -i %1 -n "+Caract(34)+"all"+Caract(34)+" -tt "+Caract(34)+"courrier reçu le : \D"+Caract(34)+" -tff "+Caract(34)+"fh"+Caract(34)+" -tfs 10 -tp 8 -tr 90"
     
    POUR TOUTE LIGNE SELECTIONNÉE DE TABLE_courrier
    	sListePDF += [" "] + COL_Libellé_courrier
    FIN
     
    sLigneCmd = ChaineConstruit(sLigneCmd,sListePDF)
    Cordialement JeAn-PhI

  3. #23
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    bonjour tatayo,

    merci pour le retour.
    voilà ce que j'essaye de mettre en place mais je ne supprime que le dernier PDF de ma liste et même celui qui est tamponné est effacé aussi alors qu'il ne fait pas partie de la liste initiale ..
    des trucs doivent m'échapper ^^


    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
    20
    21
    22
    sListePDF est une chaîne
    sLignedecommande est une chaîne
    sListePDFaEffacer est une chaîne
    UnPDF est une chaîne
     
    POUR TOUTE LIGNE DE TABLE_courrier
    	sListePDF += "-i" + " " + COL_chemin + " "
    	sListePDFaEffacer = fListeFichier(TABLE_courrier.COL_chemin,frRécursif)
    FIN
     
    sLignedecommande = ChaîneConstruit("C:\Pdftampon\pdfstamp.exe %1" + " " + "-n" + " "  + """all""" + " " + "-tt" + " " + """courrier reçu le : \D""" + " " + "-tff" + " " + """fh""" + " " + "-tfs" + " " + "10" + " " + "-tp" + " " + "8" + " " + "-tr" + " " + "90",sListePDF)
    ////Trace(sLignedecommande)
     
    SI PAS LanceAppli(sLignedecommande,exeActif,exeNonBloquant) ALORS
    	ErreurInfo(errComplet)
    FIN
     
    LecteurPDFFerme(PDF_SansNom1)
     
    POUR TOUTE CHAÎNE UnPDF DE sListePDFaEffacer
    	fSupprime(UnPDF)
    FIN

  4. #24
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    @JeAn-PhI,

    j'ai fais le test de votre nouveau code : pas d'erreur mais le traitement ne s'exécute pas ce qui veut dire que la commande à envoyer à la console ne doit pas être bon ...
    désolé

  5. #25
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    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 198
    Points : 12 774
    Points
    12 774
    Par défaut
    C'est normal, tu ne spécifies pas de séparateur, et tu remplace à chaque itération le total de la chaine par le résultat de fListeFichier().
    Or je t'avais indiqué d'ajouter LE NOM du fichier traité dans la boucle. Si tu reparcours les répertoires, tu récupères de fait les nouveaux fichiers.
    Enfin j'avais indiqué de mettre le tout dans une LISTE, pas dans une chaine…

    Donc ici je t'invite à faire ceci:
    1. Remplacer ta chaine sListePDFaEffacer, et utiliser une Liste de chaine
    2. AJOUTER le nom du fichier traité dans la liste à chaque itération
    3. Parcourir la liste en fin de traitement pur supprimer le fichier en question


    Dans ce genre de cas je t'encourage vivement à utiliser le débuggeur de Windev: tu places un pont d'arrêt, tu avances pas à pas en surveillant les variables (surtout le contenu de la liste des fichiers à supprimer).
    Dans la plupart des cas tu trouves rapidement ce qui ne va pas.
    Ici tu aurais vu que la construction de ta liste n'est pas bonne.

    Tatayo.

  6. #26
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    @ tatayo :

    merci pour ce retour. mais je ne suis pas très à l'aise avec l'utilisation des listes : j'ai lu et re lu la doc mais j'ai un peu de mal à en comprendre l'utilisation ...
    je vais continuer de chercher et essayer.
    je mettrai mon code pour correction.

  7. #27
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    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 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Pourtant l'aide en ligne de Windev est plutôt complète:
    Pour déclarer une liste: MaListe est une liste de chaine
    Pour ajouter un élément dans une liste: Ajoute()
    Pour parcourir: POUR TOUT MonFichier de MaListe...

    Tout simplement.
    Si tu veux vraiment rester une une chaine, je te suggère vraiment d'ajouter un point d'arrêt en début de procédure, d'avancer pas à pas en surveillant tes variables (surtout ici sListePDFaEffacer).
    Tu vas trouver très rapidement ce qui cloche.
    Le débuguer de Windev est très simple à utiliser, autant s'en servir. Et ça t'aidera plus tard, pour trouver l'origine d'un disfonctionnement.


    Tatayo.

  8. #28
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    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 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Je prends le train en marche, je n'ai pas tout suivi.

    Je vois cette instruction dans un des codes testés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sLignedecommande = ChaîneConstruit("C:\Pdftampon\pdfstamp.exe %1" + " " + "-n" + " "  + """all""" + " " + "-tt" + " " + """courrier reçu le : \D""" + " " + "-tff" + " " + """fh""" + " " + "-tfs" + " " + "10" + " " + "-tp" + " " + "8" + " " + "-tr" + " " + "90",sListePDF)
    C'est beaucoup trop compliqué, impossible maintenir . Normal de se planter en partant comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sLignedecommande = [
    C:\Pdftampon\pdfstamp.exe %1  "all"  -tt "courrier reçu le : \D" -tff "fh" -tfs 10 -tp 8 -tr 90 
    ]
    slignecommande = chaineconstruit ( slignecommande, sListePDF)
    Ce code devrait donner la même chose si je ne me suis pas trompé.
    Et si je me suis trompé, de toutes façon, cette nouvelle version du code est très facile à modifier ... et à ajuster si nécessaire.

    Ceci dit, slistePDF étant une chaine avec des séparateurs , je vois mal comment la chaine qu'on va construire ici pourra être utilisée derrière.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #29
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    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 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    En moyenne, quel est le temps de traitement d'un PDF ?
    Il est fort possible que tu cherches à visualiser un fichier qui est en cours de modif.
    Essaye la 2° syntaxe de LanceAppli
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  10. #30
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    Bonjour à tous,

    Je vous remercie pour tous vos différents retours qui m'ont permis d'arriver au résultat souhaité.
    Je vais tester le bout de code simplifié de tbc92.
    Un grand merci pour votre aide.
    Je mets le sujet en résolu.
    Bonne journée à tous.

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

Discussions similaires

  1. [MySQL] Problème Proc Stockée, s'éxecute sous PhpMyAdmin mais pas avec PHP
    Par toham dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 07/02/2012, 16h55
  2. [WD10] problèmes avec lanceAppli()
    Par elscorpio dans le forum WinDev
    Réponses: 14
    Dernier message: 31/08/2010, 11h05
  3. [WD11] Problème avec LanceAppli()
    Par LeGugusse dans le forum WinDev
    Réponses: 3
    Dernier message: 20/02/2009, 19h53
  4. Raccourcis clavier avec IE: , rien ne se passe
    Par bladerunners dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 10/06/2008, 11h05
  5. [IDHTTP] Problème avec la methode post (login:pass@ww.url)
    Par Rayek dans le forum Web & réseau
    Réponses: 5
    Dernier message: 11/07/2005, 10h03

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