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 :

[Forms][debutant] progress bar & Forms


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Par défaut [Forms][debutant] progress bar & Forms
    Bonjour à tous

    voilà, je travaille avec oracle 9i et Forms 5 , j'ai developpé une petite application qui telecharge un fichier donné

    Voici le code de mon application
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    Declare
       lv_sqlcode number;
       lv_sqlerrm varchar2(240);
       lv_constr varchar2(41);
       alert_button number ;
       cd_agc varchar2(6);
       nb_ag number;
       nbr number;
       ip varchar2(20);
       user varchar2(15);
       pwd varchar2(15);
       fichier varchar2(40);
       fichier1 varchar2(40);
       chemin varchar2(100);
       date_ses varchar2(8);
       date1 date;
       l_conn utl_tcp.connection;
     
    BEGIN
      cd_agc :='00'|| :num_agc;
      select count(*) into nb_ag from agence t where t.code_agc=cd_agc;
      if (nb_ag=0 )then
          Alert_button:= Show_Alert('AGC');
            else
          select t.ip_agc into ip from agence t where t.code_agc = cd_agc;
       user :=mon_user;
       pwd :=mon_pwd ;
       fichier := 'fichier'|| :num_agc;
       select date_c_jc into date1 from session_cpte where date_o_jc = :dat_ses;
       date_ses := to_char(date1,'ddmmyyyy');
       fichier1:= fichier ||date_ses ||'.txt';
       nbr :=length(fichier1);
       if (nbr=27) then
            fichier1 := fichier ||'0'||date_ses||'.txt';
       else
               fichier1 :=fichier1;
       end if;  
       chemin :='/out/'||fichier1;
       l_conn :=ftp.login(ip,'21',user,pwd); 
       ftp.ascii(p_conn => l_conn);
       ftp.get(p_conn =>l_conn,
               p_from_file =>chemin,
               p_to_dir =>'MY_DOCS',
               p_to_file => fichier1 );
       ftp.logout(l_conn);
       utl_tcp.close_all_connections;
       Alert_button:= Show_Alert('FIN');
       exit_form;
       end if;
     exception
       when others then
         lv_sqlcode :=SQLCODE;
         lv_sqlerrm :=SQLERRM;
    END;
    L'application marche tres bien, seulement voilà apres les testes effectués le temps du chargement est un peu long, du coup je dois mettre une progress bar pour faire attendre le user, leproblème c'est que je ne sais pas comment faire ça,
    mon second problème, c'est qu'a la fin du telechargement lorsque l'alerte FIN s'affiche , je dois mettre un bouton pour visiualiser le fichier, comment je procède a ça ????

    Merci du coup de main

  2. #2
    Expert confirmé
    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
    Par défaut
    Bonjour,

    Vous n'avez pas la main pendant l'exécution de la commande get, donc une barre de progression sera parfaitement inutile.
    Pour visualiser le fichier, utilisez l'instruction Host() en conjonction avec la commande Windows start()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Host( 'cmd /c start "" "c:\...\fichier.truc"' ) ;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Par défaut
    Bonjour
    en premier lieu, merci pour votre reponse.
    Pour le problème d’affichage du répertoire, j’ai réussi a régler le problème et ceci en utilisant la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Win_api_shell.winExec ('explorer.exe E :\teste', win_api_sw_shownormal, false) ;
    Mais avant cela, il faut d’abord importer la bibliothèque D2KWUTIL
    Du coup quand je clique sur visualiser il ouvre directement le répertoire demandé.

    En revanche pour le problème du progresse bar, j’ai trouvé le code suivant que j’essaye d’appliquer (j’ai trouvé ça sur le help de Forms)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Declare
      X NUMBER := Set_Item_property (‘PROGRESS.PLAIN’,WIDTH) ;
    Begin
      If X < 120 then 
         Set_Item_property ('PROGRESS.PLAIN', WIDTH,  X+5 );
     Else
         Delete_Timer ('PROGRESS');
     End if;
    END;
    Et dans la forme TESTE lors de la connexion ftp, je fais appel a cette form et je fais un SYNCHRONISE

    Mais lors de la compilation, il m’affiche l’erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ERREUR 306 Ligne2,colonne16
      Numero ou type d’arguemnts erronés dans appel à 'Set_Item_Property'
    Le problème c'est que l'utilisateur doit avoir quelque chose a l'ecran durant le transfert, que faire dans ce cas

  4. #4
    Expert confirmé
    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
    Par défaut
    Ondéfinit les valeurs avec Set_Item_Property() mais on les récupère avec Get_Item_Property().

    Encore une fois, laissez tomber la barre de progression. Avec ou sans Timer, vous n'avez pas la main dès que vous exécutez une boucle, une procédure ou une fonction externe. Vous n'aurez donc jamais la possibilité de faire progresser votre barre, en dehors de 0% avant l'appel et 100% au retour de la fonction.

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

Discussions similaires

  1. [Débutant] BackgroundWorker pour un Progress Bar et les contrôls d'une autre form
    Par abd75web dans le forum VB.NET
    Réponses: 13
    Dernier message: 16/06/2014, 12h28
  2. [RichFaces] Progress bar sous forme d'image
    Par FrenchFrogger dans le forum JSF
    Réponses: 0
    Dernier message: 22/07/2009, 16h48
  3. [Forms] Progress Bar
    Par kikouu dans le forum Forms
    Réponses: 10
    Dernier message: 10/07/2007, 18h14
  4. [FORMS] PJC Progress Bar
    Par MxPx_23 dans le forum Oracle
    Réponses: 6
    Dernier message: 14/12/2005, 21h06

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