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

Forms Oracle Discussion :

9i Webutil Création fichier txt + Impression vide


Sujet :

Forms Oracle

  1. #1
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut 9i Webutil Création fichier txt + Impression vide
    Salut tout le monde. Je suis en plein démarrage depuis début janvier, et j'ai bien sur des bugs foireux :

    Appli en 9i, j'ai un écran qui permet d'imprimer des étiquettes de transport.
    Tout marchait bien sur les site pilotes démarrés depuis plusieurs mois.

    J'explique le code puis les bugs
    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
    23
    24
    25
    26
    27
    28
    WHEN BUTTON PRESSED
    v_tab TABLE OF VARCHAR2(2000); -- Contient 1 ligne par étiquette.
     
    -- nom du fichier dans le rep temporaire du client.
    v_nomfic := Client_Win_Api_Environment.Get_Temp_Directory(FALSE)|| '\imp_etiq.tmp'; 
     
    -- On crée un fichier imp_etiq.tmp sur le poste client
    BEGIN
    	v_file := CLIENT_TEXT_IO.FOPEN(v_nomfic,'w');
    EXCEPTION WHEN OTHERS THEN
    	MONTRER_ALERT_STOP('Fichier '|| v_nomfic || ' non créé');
    	RAISE Form_Trigger_Failure;
    END;
     
    IF CLIENT_TEXT_IO.IS_OPEN(v_file)
    THEN
    	-- On insère les données dans le fichier
    	FOR i IN v_tab.FIRST..v_tab.LAST
    	LOOP
    		CLIENT_TEXT_IO.PUT(v_file, v_tab(i));
    	END LOOP;
     
    	-- Fin d'écriture dans le fichier
    	CLIENT_TEXT_IO.FCLOSE(v_file);
     
    	-- On envoie l'impression du poste client vers l'imprimante Etiquette.
    	WEBUTIL_HOST.nonblocking('cmd /c PRINT /D:' || :imprimante_etiquette || ' ' || v_nomfic); 
    END IF;
    Premier Bug apparu :
    Impression d'un fichier vide
    Juste après le FCLOSE, j'ai mis un Arrêt par message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    message('STOP'); message(' ');
    Le fichier sur le poste client est créé mais vide.

    J'ai trouvé une solution en créant un second fichier (imp.log avec 1 seule ligne) après la fermeture du premier.
    Un message stop après la fermeture du second fichier montre le premier à 1Ko (Ok) et le second à 0 Ko (mais je m'en moque je ne l'imprime pas).

    Bug résolu

    Second bug apparu suite à cette modif sur un des sites :
    Impression de la dernière étiquette
    1/ L'utilisateur choisit un transport, imprime l'etiquette, c'est la dernière imprimée qui ressort.
    2/ Il rappuie sur le bouton, c'est la bonne qui sort

    J'ai remplacé la création du second fichier par un SYNCHRONIZE même résultat.

    Je sais plus quoi faire pour tester
    En plus n'étant pas sur place, c'est super dur de tester et d'être sur de ce qui se passe.
    C'est comme si le fichier était créé après la commande HOST d'impression

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Lorsque vous utilisez CLIENT_TEXT_IO(), il faut toujours placer une instruction avant de fermer le fichier.

  3. #3
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Avant ?

    Merci, je vais tester ça tout de suite.

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Bon, le synchronize avant le FCLOSE ne marche pas :
    On revient au bug n° 1 : Impression d'un fichier vide

    Du coup, j'ai du rajouter la création du 2ème fichier pour les débloquer.
    J'ai pas encore appelé le 2ème site pour le 2ème bug et voir s'il était résolu.

    Le casse tête !!

  5. #5
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    C'est la raison pour laquelle je n'utilise jamais CLIENT_TEXT_IO, mais TEXT_IO et Webutil_File_Transfert.AS_To_Client() pour récupérer le fichier sur le poste client. C'est 10 fois plus rapide!
    http://fdegrelle.over-blog.com/article-1810290.html

  6. #6
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Et moi qui croyais que c'était l'inverse.. tout faux !

    Merci Sheik

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

Discussions similaires

  1. Création fichier .txt
    Par swinia dans le forum Java ME
    Réponses: 0
    Dernier message: 22/05/2009, 12h14
  2. tester si un fichier txt est vide sans l'ouvrir
    Par azamharir dans le forum MFC
    Réponses: 4
    Dernier message: 25/01/2009, 01h41
  3. Date de création fichier ".txt"
    Par TimDe dans le forum LabVIEW
    Réponses: 1
    Dernier message: 02/12/2008, 17h29
  4. Création fichier txt en javascript
    Par xone23 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/07/2007, 00h03
  5. [PL/SQL] Création fichiers txt chez l'utilisateur
    Par NPortmann dans le forum Oracle
    Réponses: 13
    Dernier message: 05/05/2006, 19h46

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