1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

WD iImprimeEtat qui fait planter mon logiciel

Discussion dans 'Windev' créé par C8H10N4O2, Août 3, 2020.

  1. C8H10N4O2

    C8H10N4O2 New Member

    Inscrit:
    Août 3, 2020
    Messages:
    27
    J'aime reçus:
    5
    Bonjour
    je suis nouveau ici et j'espère que vous aurez ma solution

    j'ai un soucis avec wd25
    j'imprime 1000 factures différentes à la suite.
    arrivé vers environ 600/650 factures mon logiciel plante sans erreur affichée, il se ferme tout seul sans rien dire...
    J'ai détaillé mon code dans l'état avec des Trace(), ça s'arrete juste apres le code 'avant impression du bloc haut' de mon état.
    J'ai testé différentes solutions, y compris en killant le spooler d'impression toutes les 100 impressions,
    Est ce que c'est déjà arrivé à quelqu'un d'entre vous et est ce qu'il y a une solution ?
     
    Tags:
  2. kabeda

    kabeda Active Member

    Inscrit:
    Avr 23, 2018
    Messages:
    173
    J'aime reçus:
    63
    Bonjour,
    Est-ce que tu passes par l'aperçu ou directement?
     
  3. C8H10N4O2

    C8H10N4O2 New Member

    Inscrit:
    Août 3, 2020
    Messages:
    27
    J'aime reçus:
    5
    J'imprime directement, je passe pas par l'aperçu.
    ça le fait que ce soit une impression sur papier ou une impression dans un fichier
     
  4. Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    550
    J'aime reçus:
    302
    Bonjour,
    Que renvoie ton CAS EXCEPTION ?
     
  5. C8H10N4O2

    C8H10N4O2 New Member

    Inscrit:
    Août 3, 2020
    Messages:
    27
    J'aime reçus:
    5

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour,
    Que renvoie ton CAS EXCEPTION ?
    Cliquez pour agrandir...
    jsuement c'est le problème, je n'ai aucune 'exception' levée
    ça s’arrête tout seul, sans message, sans rien.
    J'ai testé et fait teste sur d'autres machines et ça plante de la même façon
     
  • channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277
    Bonjour,

    "j'imprime 1000 factures différentes à la suite."


    Est ce qu'on peut savoir comment tu lance l'appel ? via une boucle ? filtre (borne min, borne max) ? filtre (condition) ? requête?...

    L’état en question contient-elle des états internes? des procédures appelées avec passage de paramètres ?

     
    #6 channibal, Août 7, 2020
    Dernière édition: Août 7, 2020
  • Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    550
    J'aime reçus:
    302
    Quel est le code de ton CAS EXCEPTION ?
     
  • channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Quel est le code de ton CAS EXCEPTION ?
    Cliquez pour agrandir...
    Je crois qu'il s'agit pas d'une exception, enfin pas exactement..
    Je dirais plutôt que c'est un problème de saturation de pile quelque part (lors de l'appel des procédures ou l'initialisation des requêtes,...)

    Un passage par un enchainement d’état, par exemple, peut nous donner une idée sur l'origine du problème.

    en attendant je veux avoir une idée sur la nature du code utilisé lors de l'appel de l'état et le code de l’état lui même.
     
  • Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    550
    J'aime reçus:
    302

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Je dirais plutôt que c'est un problème de saturation de pile quelque part
    Cliquez pour agrandir...
    Je pense la même chose, mais cela devrait lever une exception, au mieux une erreur, je pense à la 1508. Seulement, si on ne l'intercepte pas, on ne pourra pas régler le problème.
     
  • C8H10N4O2

    C8H10N4O2 New Member

    Inscrit:
    Août 3, 2020
    Messages:
    27
    J'aime reçus:
    5
    Merci de votre aide
    j'ai simplifié le code pour faire les tests et ça plante au bout de 1600 factures environ

    'Detail_test' est le nom de mon état
    TXT_LIMIT est un champ dans la fenêtre pour saisir le nombre maxi d'impression, au cas où

    BOUCLE
    ind++

    sNomFichier = "c:\test\"+ind+".pdf"
    iDestination(iPDFGénérique,sNomFichier)
    iImprimeEtat(Detail_test, sNomTemp, Faux, 1, Null)

    SI TXT_LIMIT>0 ET ind>TXT_LIMIT ALORS SORTIR
    FIN


    dans mon Detail_test.wde
    j'ai du code dans chaque bloc, avant et après impression
    ce sont des méthode d'une classe déclarée dans l'ouverture de l'état

    -- Ouverture de Detail_Test
    PROCÉDURE Detail_test(_pParam1="", _pParam2="", _pParam3="", _pParam4="")
    GLOBAL
    cloEtat est un CLImpEtatFacture()

    SI cloEtat:Etat_Bloc_Init(_pParam1,_pParam:relievedface: <> Vrai ALORS RENVOYER Annuler


    -- Avant impressions de BLOC_HAUT
    cloEtat:Etat_Bloc_Haut_avant_Imp()


    -- Après impressions de BLOC_HAUT
    cloEtat:Etat_Bloc_Haut_apres_Imp() // note : cette méthode est vide



    la méthode Etat_Bloc_Haut_avant_Imp()
    rempli les libellés, champs calculés et logo dans l'entête de facture


    j’espère que c'est lisible (je n'ai pas trouvé les balises 'code')
    je pense aussi que c'est un pb de mémoire/pile
    j'ai un autre collègue qui se penche dessus aussi
     
  • Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    550
    J'aime reçus:
    302
    Tu n'as ni CAS ERREUR, ni CAS EXCEPTION tu ne peux pas savoir quelle est l'erreur
    Code (Windev):
    BOUCLE
    ind++

    sNomFichier = "c:\test\"+ind+".pdf"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (iPDFGénérique,sNomFichier)

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (Detail_test, sNomTemp, Faux, 1, Null)

    FIN
    CAS ERREUR
         

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Une erreur est survenue"+CRLF+

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ())
    CAS EXCEPTION
         

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Une exception est survenue"+CRLF+

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ())
    En prenant soin de bien cocher les cases Traitement automatique des erreurs
     
    popoy apprécie ceci.
  • faq

    faq Active Member

    Inscrit:
    Fev 13, 2019
    Messages:
    411
    J'aime reçus:
    35
    Bonjour
    Presque j'ai le même soussi

    J'ai créé un ticket de vente dans l'éditeur windev.
    Récemment, l'impression est devenue très lente (se plante), après avoir vérifié que le spouleur d'imprimante contient un ticket de taille 57 Mo, par contre la taille réelle n'est que de 100 Ko
    Je ne sais plus comment la taille de mon ticket a été changé !!!!
    Alors pour résoudre mon problème, je dois redemander l’imprimante
    Mon problème n'arrive pas souvent
    Merci d'avance de me donner une idée.
     
  • Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    550
    J'aime reçus:
    302
    Bonjour,
    Évite de polluer les posts. Ce n'est pas le même problème donc c'est un post différent.
    Que renvoie ton CAS ERREUR/CAS EXCEPTION ? Quel est ton code ?
     
  • C8H10N4O2

    C8H10N4O2 New Member

    Inscrit:
    Août 3, 2020
    Messages:
    27
    J'aime reçus:
    5

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Tu n'as ni CAS ERREUR, ni CAS EXCEPTION tu ne peux pas savoir quelle est l'erreur
    Cliquez pour agrandir...
    SI j'en ai, mais au niveau du projet.
    Et ça ne me renvoie rien du tout, ni en ERREUR ,ni en EXCEPTION ...
     
  • Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    550
    J'aime reçus:
    302

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    SI j'en ai, mais au niveau du projet
    Cliquez pour agrandir...
    Normalement il est valable pour l'ensemble du projet, mais ...
    Le fait d'en mettre un dans ta procédure d'impression affinera le traitement.
    Par ailleurs, essaye de libérer ton cloEtat dans le code de fermeture de l'état. Là encore la fermeture libère l'objet, mais ....

    Enfin, en ce qui concerne l'affichage du code, c'est l'icône +/option code. A l'issue, il faut remplacer la balise windev par code=windev, la balise de fin devenant /code
     
  • faq

    faq Active Member

    Inscrit:
    Fev 13, 2019
    Messages:
    411
    J'aime reçus:
    35
    Merci

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    pour ton retour

    Avant je n'ai plus ce problème

    Voila mon code
    "EtatTicket" est crée dans l'éditeur windev
    Les données imprimées viennent d'une requête intégrée (Fichier Ticket et ligneTicket), le filtre se est sur NumCommandes
    sai_COPIES = 1 (Par défaut)
     
  • C8H10N4O2

    C8H10N4O2 New Member

    Inscrit:
    Août 3, 2020
    Messages:
    27
    J'aime reçus:
    5
    J'ai peut être une piste, en cours det ests pour vérification.
    Dans une méthode j'ai une déclaration d'un objet
    Code (Windev):

    oFact est un cFacture
    ...
    qui normalement devait se libérer automatiquement

    j'ai modifié en
    Code (Windev):

    oFact est un cFacture dynamique
    oFact = allouer un cFacture
    ...
    // à la fin de la méthode
    libére oFact
     
    on a rajouté aussi avant le iImprimetat

    Code (Windev):

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (Faux)
     
    ça évite le 'clignotement' et à priori elle ne rendait pas toute l mémoire utilisée

    Je vous tiens au courant ...
     
    channibal apprécie ceci.
  • Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    550
    J'aime reçus:
    302

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    qui normalement devait se libérer automatiquement
    Cliquez pour agrandir...
    "Normalement" en ce qui concerne la libération de mémoire est souvent synonyme de "Jamais" ou "en partie". Essaye de voir aussi au niveau des libération de requête
     
  • C8H10N4O2

    C8H10N4O2 New Member

    Inscrit:
    Août 3, 2020
    Messages:
    27
    J'aime reçus:
    5
    On a peut être trouvé une solution, c'est en test
    je vous tiens au courant si vous voulez
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,882
    J'aime reçus:
    1,532

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    On a peut être trouvé une solution, c'est en test
    je vous tiens au courant si vous voulez
    Cliquez pour agrandir...
    J'attends ta solution avec impatiente
     
  • Partager cette page

    Chargement...