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 :

Spécifier l'appel Excel sur poste local


Sujet :

Forms Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 11
    Points
    11
    Par défaut Spécifier l'appel Excel sur poste local
    Bonjour,

    j'ai un petit problème avec les fonctionnalités d'export excels (OLE2) pour une application.

    explication :

    Mon application pouvant faire des exports excel était précédemment en oracle 6i. Pour l'export, c'est donc le client Excel sur le poste Local de chaque utilisateur qui était solicité.

    Il a fallu monter de version pour le faire passer l'application en oracle10g et l'héberger sur un serveur (que nous appelerons X).
    Après test + avoir une non-oracle exception au moment de l'export, j'ai cru comprendre que mes fonctions OLE2 cherchaient le client Excel sur mon serveur X. hors excel n'est pas installé sur X.

    pouvez vous m'orienter sur la possibilité de spécifier l'appel de Excel sur le poste local ? j'avoue que je n'ai aucune formation forms, et que je n'ai pas vraiment de repères pour chercher les infos au bon endroit pour l'instant.

    pour plus de détail, voiçi un exemple de code :

    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    PROCEDURE H_LISTE_SANS_MEF(FORMAT IN VARCHAR) IS
     
    -- ************************************************************************/
    -- ** PROCEDURE - H_LISTE_SANS_MEF                                       */
    -- ** Liste des fiches brut sans mise en forme                            */
    -- ************************************************************************/
     
     	FichierDefaut VARCHAR2(256) := 'Liste_Sans_Mef';
     	NomFichier VARCHAR2(256);
     	FichierCSV TEXT_IO.FILE_TYPE;	
     
      /*Application OLE2.OBJ_TYPE;
      Workbooks OLE2.OBJ_TYPE;
      Workbook OLE2.OBJ_TYPE;
      Worksheets OLE2.OBJ_TYPE;
      Worksheet OLE2.OBJ_TYPE;
      Modules OLE2.OBJ_TYPE;
      Module OLE2.OBJ_TYPE;
      ArgList OLE2.LIST_TYPE;*/
     
      Application CLIENT_OLE2.OBJ_TYPE;
      Workbooks CLIENT_OLE2.OBJ_TYPE;
      Workbook CLIENT_OLE2.OBJ_TYPE;
      Worksheets CLIENT_OLE2.OBJ_TYPE;
      Worksheet CLIENT_OLE2.OBJ_TYPE;
      Modules CLIENT_OLE2.OBJ_TYPE;
      Module CLIENT_OLE2.OBJ_TYPE;
      ArgList CLIENT_OLE2.LIST_TYPE;    
     
    BEGIN
     
    	-- Si CSV enregistrement du fichier
    	IF FORMAT IN ('RADIO_CSV','RADIO_EMAIL') THEN
     			NomFichier := GET_FILE_NAME(directory_name=>'',
     									file_name=>FichierDefaut,
                      dialog_type=> SAVE_FILE,
                      File_Filter=> 'Fichiers (c)omma (s)eparated (v)alue (*.csv)|*.csv|',
                      select_file => TRUE);
    		  IF NomFichier IS NULL THEN
    			  	RETURN;
    		  END IF;
     			FichierCSV := TEXT_IO.FOPEN(NomFichier,'W');		  
    	-- Si Excel création d'un classeur
    	ELSIF FORMAT = 'RADIO_EXCEL' THEN
    		  Application := CLIENT_OLE2.create_obj('Excel.Application');
    		  OLE2.set_property(Application, 'Visible', True);	
    		  Workbooks := CLIENT_OLE2.GET_OBJ_PROPERTY(Application, 'Workbooks');
    		  Workbook := CLIENT_OLE2.invoke_obj(WorkBooks, 'Add');
    		  Worksheets := CLIENT_OLE2.GET_OBJ_PROPERTY(Workbook, 'Worksheets');
    		  Worksheet := CLIENT_OLE2.GET_OBJ_PROPERTY(Application,'activesheet');		 
    	END IF;
     
    	SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'BUSY');
      H_LISTE_SANS_MEF_ENTETE(FORMAT, FichierCSV,Worksheet);
      H_LISTE_SANS_MEF_LIGNES(FORMAT, FichierCSV,Worksheet);
     
    	IF FORMAT IN ('RADIO_CSV','RADIO_EMAIL') THEN
          TEXT_IO.FCLOSE(FichierCSV); 
    		  Application := CLIENT_OLE2.create_obj('Excel.Application');
    		  OLE2.set_property(Application, 'Visible', True);	
    		  Workbooks := CLIENT_OLE2.GET_OBJ_PROPERTY(Application, 'Workbooks');
      	  ArgList := CLIENT_OLE2.CREATE_ARGLIST;
    	    CLIENT_OLE2.ADD_ARG(ArgList, NomFichier);
    	    Workbook := CLIENT_OLE2.INVOKE_OBJ(Workbooks, 'Open', ArgList);
    	    CLIENT_OLE2.DESTROY_ARGLIST(ArgList);       
    	END IF;
     
    	-- exécution des macros
     	Modules := CLIENT_OLE2.GET_OBJ_PROPERTY(WorkBook, 'Modules');
     	Module := CLIENT_OLE2.invoke_obj(Modules, 'Add');
     
     	MACRO_EXCEL(Application, Module,:MAIN.TXT_EMPLACEMENT,'Decodage_Classification');
     
     	-- ecriture du fichier au format XLS
     	IF NOT NomFichier IS NULL THEN
    		 MACRO_EXCEL(Application, Module,:MAIN.TXT_EMPLACEMENT,'SauvegardeXLS'); 	
     	END IF;
     
    	IF FORMAT = 'RADIO_EMAIL' THEN
     			CLIENT_OLE2.invoke(Workbook, 'Close');
     			CLIENT_OLE2.invoke(Application, 'Quit');
     			ENVOI_NOTES_MAIL(:MAIN.TXT_SERVEUR,
     											 :MAIN.TXT_POUR,
     											 :MAIN.TXT_SUJET,
     											 :MAIN.TXT_TEXTE,
     											 NOMSANSEXTENSION(NomFichier)||'.xls');
    	END IF;
     
      SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');	 			
     
      IF NOT Application IS NULL THEN
      		CLIENT_OLE2.release_obj(Application);
      END IF;		
      IF NOT Workbooks IS NULL THEN
    		  CLIENT_OLE2.release_obj(Workbooks);
    	END IF;		  
      IF NOT Workbook IS NULL THEN
      		CLIENT_OLE2.release_obj(Workbook);
    	END IF;  		
      IF NOT Worksheets IS NULL THEN
      		CLIENT_OLE2.release_obj(Worksheets);
      END IF;  		
      IF NOT Worksheet IS NULL THEN
      		CLIENT_OLE2.release_obj(Worksheet);
      END IF;  		
      IF NOT Modules IS NULL THEN
    		  CLIENT_OLE2.release_obj(Modules);
    	END IF;		  
      IF NOT Module IS NULL THEN
      		CLIENT_OLE2.release_obj(Module);
      END IF;  		
     
     	exception when NO_DATA_FOUND
    	THEN message('test error H_global (no data found) '||sqlerrm); 
    	when OTHERS
    	THEN message('test error H_global (others) '||sqlerrm);
     
    END H_LISTE_SANS_MEF;


    Merci d'avance,

    Megayaya.

  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
    Il faut configurer la librairie Webutil et transformer les appels OLE2 en CLIENT_OLE2.
    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

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    ok, pour le changement des appel OLE2 en client_OLE2 j'avais déjà trouvé en cherchant et j'ai adapté tout le code.

    Pour le webUtil, j'y connais rien mais je vais essayer de chercher ^^
    merci !

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 11
    Points
    11
    Par défaut je rame....
    hey ! i'm back !

    bon après avoir patassé pas mal de topics et suivi des "guides"

    -->https://forums.oracle.com/forums/thr...readID=1073270
    -->http://www.degenio.com/index_files/c...ebutil_10g.pdf

    je n'ai plus l'erreur. par contre j'ai cette erreur sur ma java console quand je clique sur mon bouton d'export dans mon programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception occurred during event dispatching:
    java.lang.ExceptionInInitializerError: java.security.AccessControlException: access denied (java.lang.RuntimePermission loadLibrary.jacob)
    j'ai a nouveau regardé des topics :

    -->https://forums.oracle.com/forums/thr...hreadID=245670

    qui me disent que c'est un pb de signature de mes .jar

    lorsque j'essaye de signer mes .jar, j'obtenais un message d'erreur du type : paires de clé n'a pas pas être généré , la clé webutil2 existe déjà (j'aurais voulu screen , mais apres avoir utilisé la commande "clear" dans ma console windows pour pouvoir bien screen proprement, le message d'erreur n'apparait plus


    bref je galère.....

Discussions similaires

  1. Connexion VB LDAP OK sur poste local - KO sur serveur
    Par pause_game dans le forum QlikView
    Réponses: 0
    Dernier message: 03/03/2014, 15h25
  2. Problème d'impression Excel sur profil local
    Par guitou65 dans le forum Excel
    Réponses: 0
    Dernier message: 16/10/2012, 09h42
  3. lancer Word sur poste local depuis serveur web
    Par bagheera2506 dans le forum Développement Office System
    Réponses: 4
    Dernier message: 12/07/2012, 09h36
  4. Réponses: 5
    Dernier message: 01/12/2011, 11h23
  5. [Applet] Utilisation sur poste local
    Par stoj dans le forum Applets
    Réponses: 1
    Dernier message: 21/09/2005, 11h58

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