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

Oracle Discussion :

[OLE] Lancer la mise à jour des champs automatiquement


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Par défaut [OLE] Lancer la mise à jour des champs automatiquement
    Salut tout le monde.

    Je voudrais savoir si quelqu'un saurait où trouver la liste de toutes les méthodes disponibles pour OLE.

    En fait, je cherche à lancer automatiquement sur un document word la "mise à jour des champs" (en particulier j'ai un champ formule qui, une fois que j'ai placé la bonne valeur dans les signets qui servent d'opérandes doit être mis à jour).

    J'espère avoir été clair.

    Merci par avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 35
    Par défaut
    Salut,

    Comment comptes-tu utiliser les méthodes OLE ?
    Sinon, un lien qui pourra peut être servir :
    http://lfe.developpez.com/Word/

    Phig

  3. #3
    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
    J'ai également cherché la liste des fonctions OLE reconnues par MSWord, et même Microsoft France n'a pu (voulu ?) me fournir cette information...

    Réponse automatique : allez chercher sur le site Microsoft ou achetez un contrat de maintenance...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Par défaut
    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
     
    PROCEDURE PR_REPLACE(MaSelection OLE2.OBJ_TYPE,TexteIn IN VARCHAR2,TexteOut IN VARCHAR2) IS
     
    MonFind	OLE2.OBJ_TYPE;
    Args	OLE2.LIST_TYPE;
    booleen	NUMBER;
     
    BEGIN
       MonFind := OLE2.GET_OBJ_PROPERTY(MaSelection,'Find');
       args:=OLE2.CREATE_ARGLIST;
       OLE2.ADD_ARG(args, TexteIn); --- FindText
       OLE2.ADD_ARG(args, 1);       --- MatchCase
       OLE2.ADD_ARG(args, 1);       --- MatchWholeWord
       OLE2.ADD_ARG(args, 0);       --- MatchWildcards
       OLE2.ADD_ARG(args, 0);       --- MatchSoundsLike
       OLE2.ADD_ARG(args, 0);       --- MatchAllWordForms
       OLE2.ADD_ARG(args, 1);       --- Forward
       OLE2.ADD_ARG(args, 1);	--- wrap = 1 wdFindContinue
                                    --- La recherche se poursuit si le début ou la fin de la sélection est atteint.
       OLE2.ADD_ARG(args, 0);       --- Format
       OLE2.ADD_ARG(args, TexteOut);--- ReplaceWith
       OLE2.ADD_ARG(args, 2);       --- Replace
       booleen := OLE2.INVOKE_NUM(MonFind, 'execute', args);
       OLE2.DESTROY_ARGLIST(args);
    END;
    Voici par exemple la procédure qui me permet de remplacer TextIn par TextOut dans mon document. Dans le même état d'esprit, après tous mes remplacements, je voudrai mettre à jour les champs calculés.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Par défaut
    J'ai trouvé une solution... un peu bidouille , mais bon :

    1) Créer une macro dans le document de base (macro qui sélectionne tout le document et fait "Mise à jour des champs")

    2) Exécuter la macro depuis l'application Forms via OLE2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    declare
         Args   OLE2.LIST_TYPE;
    begin
       -- Exécute la macro appelée TOTO
       args:=OLE2.CREATE_ARGLIST;
       OLE2.ADD_ARG(args, 'TOTO');
       OLE2.INVOKE(UneApplication,'Run',args);
       OLE2.DESTROY_ARGLIST(args);
    end;
    J'ai encore un problème en suspend, mais c'est spécifique WORD.

    Je mets le tag résolu, mais je ne serais pas contre une solution plus propre, c'est à dire qui pourrait s'effectuer sans modifier le document WORD.

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    j'ai pas bien compris le rapport avec Oracle

  7. #7
    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
    Connaissez-vous le mot-clé OLE Word à mettre dans la fonction INVOKE ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Par défaut
    Citation Envoyé par orafrance
    j'ai pas bien compris le rapport avec Oracle
    Désolé c'est de ma faute, je n'ai pour l'instant à proprement parler que fait du développement Forms et Report sous Oracle, alors j'ai tendance à trop facilement faire l'amalgame entre SGBD et outils de développement.

    Citation Envoyé par SheikYerbouti
    Connaissez-vous le mot-clé OLE Word à mettre dans la fonction INVOKE ?
    Pas compris la question... Tu veux faire quoi exactement ?

  9. #9
    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
    Et bien quelque chose du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ole2.INVOKE(MyDocument,'UpdateFields');
    Bref, le mot clé OLE qui demande à Word de faire la mise à jour des champs.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Par défaut
    Ahhhh, j'ai compris

    Ben non, je connais pas , et comme dit plus haut : j'arrive pas à mettre la main sur la liste des fonctions OLE qu'on peut invoquer.. affaire à suivre

  11. #11
    Membre averti Avatar de benicourt
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Août 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 41
    Par défaut
    C'est la commande OLE : ActiveDocument.Fields.Update()
    Plus d'infos sur : http://msdn.microsoft.com/en-us/libr...ffice.11).aspx

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

Discussions similaires

  1. [VBA-W] Désactivé la mise à jour des champs
    Par Mut dans le forum VBA Word
    Réponses: 4
    Dernier message: 04/12/2006, 11h04
  2. mise à jour des champs incréméntés
    Par ph_anrys dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 26/07/2006, 11h36
  3. Réponses: 6
    Dernier message: 13/07/2006, 12h33
  4. Module de mise à jour des champs d'une table
    Par kikaillo dans le forum Access
    Réponses: 14
    Dernier message: 18/04/2006, 09h42
  5. Réponses: 6
    Dernier message: 07/02/2006, 14h44

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