Ouvrir des doc dans une frame
E. Roumegou

 

Sujet

Dans cette WTablette, nous verrons :

- Comment gérer une frame et passer des paramètres
- Afficher en code navigateur une page html, un document word, un fichier PDF

Présentation

Ceci est la page utilisée dans les Wtablettes pour afficher les contributions qui peuvent se présenter sous la forme :

On a donc un frameset principal constitué par deux frames verticales.

A gauche, une partie qui comprendra le logo, la navigation et la description de la page (FrmWT_G)

A droite la frame où sera affichée la page, le document word, le fichier PDF ou le texte et l'on utilisera pour cela le champs HTML (FrmWT_D)

La technique

Dans le traitement du frameset (Frame/Description du Frameset/code) ... je le dis car moi je l'ai cherché un moment

PROCEDURE FrmWT(pTVD_ID,pTVD_TITRE="",pTVD_COMM="",pTVD_ACTION="",aTVD_TYPEACT=2)
fmtHTML est chaîne ="<font color=""#000000"" size=""3""><strong>%1</strong><br><br>%2</font>"
TVD_ACTION est chaîne

SI ContexteExiste(FrmWT_D) ALORS
   ContexteFerme(FrmWT_D)
FIN
SI ContexteExiste(FrmWT_G) ALORS
   ContexteFerme(FrmWT_G)
FIN
SELON aTVD_TYPEACT
  CAS 1,6 // texte, on prépare le libellé HTML
     TVD_ACTION=Relooke(pTVD_COMM)
  CAS 2,3,4,5 //html,word,excel,pdf
     TVD_ACTION=pTVD_ACTION
  CAS 7 //page WebDev
  CAS 8 //URL
  CAS 9 //image
  CAS 10 //Upload
  CAS 11 //Download
  CAS 12 //email

FIN
ContexteOuvre(FrmWT_D,TVD_ACTION,aTVD_TYPEACT)
ContexteOuvre(FrmWT_G,pTVD_ID,pTVD_TITRE,pTVD_COMM,aTVD_TYPEACT)

On teste pour voir si les frames ne sont pas déjà ouvertes, auxquels cas on les ferme car les paramètres sont différents.

On ouvre les pages des frames avec ContexteOuvre

Frame de Gauche : pas grand chose à dire car on va initialiser les différentes zones. Un exemple intéressant tout de mème d'utilisation du mailto en initiant le sujet et le texte. Ceci a déja été expliqué dans la Wtablette n°102.

Frame de droite : on a un champs de saisie page2display et un champs HTML. En code de déclaration globale, on a :

PROCEDURE FrmWT_D(pPagehtml="",pType=2)
GLOBAL
page2display=""
SELON pType
CAS 2,3,4,5,9,11
  SI Gauche(page2display,1)="/" ALORS
     page2display="/"+RépertoireWeb()+pPagehtml
  SINON
     page2display="/"+RépertoireWeb()+"/"+pPagehtml
  FIN

CAS 1,6
  page2display..Visible=Faux
  HTMLTexte..Valeur=pPagehtml
FIN

Selon le type je vais initialiser un champs page2display ou mon champs HTML s'il s'agit de texte.

Chargement (onload) de FrmWT_F (navigateur)
SI page2display<>"" ALORS FichierAffiche(page2display,FrameEnCours)

En code navigateur, on charge la page ou le document dans la frame en cours.