Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/11/2006, 20h05   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 41
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2006
Messages : 41
Points : 13
Points : 13
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 :
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
Lust14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2006, 10h12   #2
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
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 :
Host( 'cmd /c start "" "c:\...\fichier.truc"' ) ;
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2006, 18h54   #3
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 41
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2006
Messages : 41
Points : 13
Points : 13
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 :
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 :
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 :
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
Lust14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2006, 19h19   #4
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
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édacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h30.


 
 
 
 
Partenaires

Hébergement Web