J'ai besoin dans un traitement d'afficher un fichier Excel que
l'utilisateur sélectionne. Pour cela j'utilisais un champs HTML, c'est
super pratique avec juste un
HTML1=SC_SelecteurFichier.SAI_FIC
J'ai juste besoin que l'utilisateur voit son fichier et ses colonnes;
je le travaille ensuite (le fichier pas l'utilisateur) avec les fns XLS
de WD.
Fort bien! j'ai mis ça au point sur mon portable et je reviens sur ma
machine de dev (Vista et Office 2007).
Et là je m'aperçois qu'il ouvre ça dans une nouvelle fenêtre et pas
dans mon champs HTML :-[
Je ne sais pas qui de Vista ou la vs Office 2007 est responsable de cet
état de fait mais ...
Comment le forcer à m'ouvrir ce fichier ds le champs HTML ?
Merci de vos réponses.
--
Eric Roumégou
Webmaster des Wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour m'écrire)
Cela vient de ie7 ou de office 2007...
Fait l'essai : ouvrer ie7, puis ouvrer un fichier word ou excel dedans
et vous aurai une nouvelle fenêtre avec le document ouvert sic ...
Je n'ai pas déterminé si cela venez de ie7 ou de office 2007.
Bien que je penche plus pour un pbm venant de office 2007.
Je n'ai pas trouver de contournement et je n'ai pas eut de réponse à ma
demande d'assistance ici même sur ce forum...
J.B.D.
>
> Fait l'essai : ouvrer ie7, puis ouvrer un fichier word ou excel dedans et
> vous aurai une nouvelle fenêtre avec le document ouvert sic ...
>
> Je n'ai pas déterminé si cela venez de ie7 ou de office 2007.
> Bien que je penche plus pour un pbm venant de office 2007.
>
> Je n'ai pas trouver de contournement et je n'ai pas eut de réponse à ma
> demande d'assistance ici même sur ce forum...
Aie !
cet office 2007 en plus d'être déroutant (pas facile de retrouver ses
menus) est vraiment chiant !
>
> J.B.D.
Je ne pense pas que le pb vienne de Office 2007.
A mon avis, c'est IE7 qui est en cause, sachant que c'est le composant
activex d'ie qui est utilisé par les contrôles HTML. Et ils héritent des
options de config de IE7 sur le système.
Je sais que IE7 ouvre les nouvelles pages dans de nouveaux onglets par
défaut. Donc, il semble assez logique de désactiver cette fonctionnalité
dans les options de IE.
Sinon, s'il est possible de modifier les propriétés de ton composant
sous Windev, tu peux éventuellement voir si tu peux lui adjoindre le tag
target=_self pour que cela s'affiche dans le contrôle html et non dans
une nouvelle instance de fenêtre.
J'espère t'avoir aidé.
Jacques
>
> Je ne pense pas que le pb vienne de Office 2007.
>
> A mon avis, c'est IE7 qui est en cause, sachant que c'est le composant
> activex d'ie qui est utilisé par les contrôles HTML. Et ils héritent des
> options de config de IE7 sur le système.
>
> Je sais que IE7 ouvre les nouvelles pages dans de nouveaux onglets par
> défaut. Donc, il semble assez logique de désactiver cette fonctionnalité
> dans les options de IE.
>
> Sinon, s'il est possible de modifier les propriétés de ton composant
> sous Windev, tu peux éventuellement voir si tu peux lui adjoindre le tag
> target=_self pour que cela s'affiche dans le contrôle html et non dans
> une nouvelle instance de fenêtre.
>
> J'espère t'avoir aidé.
>
> Jacques
Merci de vos réponses.
Je commence à mieux cerner le pb.
En fait ce n'est pas IE7 qu'il ouvre, mais bien Excel 2007.
Meme chose si je fais Ouvrir ds IE7 un fichier Excel.(mais ça fait
aussi comme ça avec XP + office 2003)
Pour le target=self, on ne peut hélas lui spécifier ce genre de chose.
Bon vu que je dois reformater ma machine qui me pose trop de pb, cela
va faire partie des choses que je vais tester à partir des vs 2003,
puis 2007.
Voir sur le forum en face le post ActiveX et Office 2007 ouvert le 02/08/07, tu devrais trouver la réponse, ainsi que dans les
FAQ de l'éditeur.
--
Pascal
N0.pasc...@efpe.biz
Ne garder que le prénom pour me joindre
Il y a effectivement une solution dans la FAQ. Mais ils faut aller
bidouiller le paramétrage du windows de chaque client. Ce qui n'est pas
vraiment envisageable ...
Merci quand même.
J.B.D.
Voici la FAQ
Que faire si les documents Word ou Excel 2007 visualisés dans vos
applications s'ouvrent dans une nouvelle fenêtre au lieu de la fenêtre
en cours ?
Vous pouvez avec l'ActiveX de Internet Explorer visualiser dans vos
applications des documents Word ou des classeurs Excel. Après
l'installation de Word ou Excel 2007, l'ouverture de ces documents peut
se faire non plus dans votre application, mais dans une nouvelle
fenêtre de Word, ou de Excel.
Pour retrouver la visualisation dans votre application, effectuez le
réglage suivant sous Windows :
- menu "Outils ... Options des dossiers" de l'Explorateur sous XP, ou
"control folders" dans "Démarrer ... Exécuter" sous Vista,
- volet "Types de fichiers",
- sélectionner l'option "DOC", ou "XLS",
- cliquer sur le bouton "Avancé",
- décocher "Confirmer l'ouverture après téléchargement",
- cocher "Parcourir dans une même fenêtre".
le pb c'est que tout cela sous Vista, cela fait 1h que je le cherche et
l'onglet type fichier, bouton avancé cela n'existe pas.
et aux vues de mes rech google, je ne suis pas le seul à le rechercher.
JMF
elle a l'avantage (eventuellement par le passage mode admin) de pouvoir être incluse dans un programme WD, ou bien directement
dans l'installateur (ce qui permet de ne pas avoir une nouvelle demande de confirmation de l'UAC) avec Inno Setup/Istool, pour
WDSetup je ne sais pas.
En complément, je me rends compte que les clés indiquées sont pour Word, je n'ai pas office 2007 d'installé, mais je suppose
qu'il y a le pendant pour Excel
Si tu ajoutes ce code dans l'initialisation de ton appli:
----
SI RegistreExiste("HKEY_CLASSES_ROOT\Excel.Sheet.8", "EditFlags") ALORS
gbBRetVal est un booléen
gbBRetVal = RegistreEcrit("HKEY_CLASSES_ROOT\Excel.Sheet.8",
"EditFlags", 0x10000)
SINON
Erreur("Problème avec le registre")
FIN
----
cela va écrire la bonne valeur dans la clé EditFlags (ie 0x10000). Ainsi
ton fichier Excel se chargera directement dans ton composant HTML.
Remplace Excel.Sheet.8 par la chaine correspondant à Office 2007 si
besoin. Ici ça correspond à du Excel 2002 (XP).
A plus
Jacques
SI RegistreExiste("HKEY_CLASSES_ROOT\Excel.Sheet.8", "EditFlags") ALORS
gbBRetVal est un booléen
gbBRetVal = RegistreEcrit("HKEY_CLASSES_ROOT\Excel.Sheet.8",
"EditFlags", 0x10000)
SI PAS gbBRetVal ALORS
Erreur ("Impossible d'écrire la valeur dans HKCR\Excel.Sheet.8\EditFlags")
FIN
SINON
Erreur("Impossible de lire la valeur
HKEY_CLASSES_ROOT\Excel.Sheet.8\EditFlags")
FIN
C'est mieux au cas où la valeur EditFlags n'existait pas (je ne sais pas
comment c'est sous Vista).
Voici celle-ci détaillée.
On déclare des variables globales
GLOBAL
gnCurrKeyVal,gnCurrKeyVal2 sont des entiers
gbR1,gbR2 sont des booléens
Dans l'init de la fenêtre, il faut taper dans "EditFlags" et
"BrowserFlags"
gbRetVal est booléen
// on force les valeurs de registres pour pouvoir charger le fichier
Excel dans un champs HTML
gbR1=Faux;gbR2=Faux
SI RegistreExiste("HKEY_CLASSES_ROOT\Excel.Sheet.8", "EditFlags") ALORS
// on sauvegarde la valeur initiale
gnCurrKeyVal = RegistreLit("HKEY_CLASSES_ROOT\Excel.Sheet.8",
"EditFlags")
SI gnCurrKeyVal <> 0x10000 ALORS
gbRetVal = RegistreEcrit("HKEY_CLASSES_ROOT\Excel.Sheet.8",
"EditFlags", 0x10000)
SI PAS gbRetVal ALORS
Erreur ("Impossible d'écrire la valeur dans
HKCR\Excel.Sheet.8\EditFlags")
SINON
gbR1=Vrai // j'ai changé
FIN
FIN
SINON
Erreur("Impossible de lire la valeur
HKEY_CLASSES_ROOT\Excel.Sheet.8\EditFlags")
FIN
SI RegistreExiste("HKEY_CLASSES_ROOT\Excel.Sheet.8", "BrowserFlags")
ALORS
// on sauvegarde la valeur initiale
gnCurrKeyVal2 = RegistreLit("HKEY_CLASSES_ROOT\Excel.Sheet.8",
"BrowserFlags")
SI gnCurrKeyVal2 <> 0 ALORS
gbRetVal = RegistreEcrit("HKEY_CLASSES_ROOT\Excel.Sheet.8",
"BrowserFlags", 0)
SI PAS gbRetVal ALORS
Erreur ("Impossible d'écrire la valeur dans
HKCR\Excel.Sheet.8\BrowserFlags")
SINON
gbR2=Vrai // j'ai changé
FIN
FIN
FIN
// -- fin gestion des valeurs de registre Excel
Et à la fermeture de la fenêtre
// je restaure les valeurs de registre modifiées
RetVal est un booléen
SI gbR1 ALORS
RetVal = RegistreEcrit("HKEY_CLASSES_ROOT\Excel.Sheet.8", "EditFlags",
gnCurrKeyVal)
SI PAS RetVal ALORS
Erreur ("Impossible de restaurer la clé
HKEY_CLASSES_ROOT\Excel.Sheet.8\EditFlags")
FIN
FIN
SI gbR2 ALORS
RetVal = RegistreEcrit("HKEY_CLASSES_ROOT\Excel.Sheet.8",
"BrowserFlags", gnCurrKeyVal2)
SI PAS RetVal ALORS
Erreur ("Impossible de restaurer la clé
HKEY_CLASSES_ROOT\Excel.Sheet.8\BrowserFlags")
FIN
FIN
Ceci dit, autre phénomène que je n'ais qu'avec l'office 2007; ma
fenêtre fonctionne avec des plans, donc j'affichait le fichier Excel
dans un chp html sur un premier plan, puis je le réaffichais ds un
autre chp html sur le plan suivant. Et bien cela n'est pas autorisé par
Excel !!
Bon j'ai supprimé ce 2eme champs qui n'était pas vraiment obligatoire.