Limite dans l'affichage d'une vue HTML

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Limite dans l'affichage d'une vue HTML

Messagepar jcvaillant » 04 Déc 2013 à 09:59

J'utilise une vue de type $$SearchTemplate pour afficher les images rattachées à chaque document.
Pour chaque document, je génère donc une chaine de caractères qui est sensée afficher toutes les images de ce document.
J'utilise pour cela une formule dans la vue en formula language.
Le champ ChpNomImageGallerie contient tous les noms des images stockées dans le champ Texte Riche de chaque document.
Au delà de 30 images, le code généré est tronqué pour les documents qui ont plus de 30 images.
Je pensais que cela était due à la limite de la chaine de caractère ChaineImage dans laquelle je stockais une partie du code.
J'ai donc essayé de découper le code en plusieurs chaines de caractères (chaineImage1, chaineImage2, ...) mais avec exactement le même résultat !
Il semble qu'il y a une limite pour la totalité du code généré par document ?

Qu'en pensez-vous ?

Voici le code
Code : Tout sélectionner
TabImages:=@Explode(ChpNomImageGallerie;":");
ChaineImage1:="";
ChaineImage2:="";
ChaineImage3:="";
ChaineImage4:="";
ChaineImage5:="";
MaxImage:=30;
@For(n := 1;
n <= @Elements(TabImages);
n := n + 1;
@If(n<MaxImage & TabImages[n]!="";
ChaineImage1:=ChaineImage1+"<a id=\""+@LeftBack(TabImages[n];".")+"\""
+" data-tooltip=\"<img src='"+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"'>\""
+" rel=\"Gallerie\" href=\""+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"?OpenElement\" >"
+"<Img class=\"ImageGallerie\"  src=\""+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"?OpenElement\" alt=\"\""
+" id=\""+TabImages[n]+"\""+"></a>";"");
@If(n>=MaxImage & n<2*MaxImage & TabImages[n]!="";
ChaineImage2:=ChaineImage2+"<a id=\""+@LeftBack(TabImages[n];".")+"\""
+" data-tooltip=\"<img src='"+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"'>\""
+" rel=\"Gallerie\" href=\""+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"?OpenElement\" >"
+"<Img class=\"ImageGallerie\"  src=\""+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"?OpenElement\" alt=\"\""
+" id=\""+TabImages[n]+"\""+"></a>";"");
@If(n>=MaxImage*2 & n<MaxImage*3 & TabImages[n]!="";
ChaineImage3:=ChaineImage3+"<a id=\""+@LeftBack(TabImages[n];".")+"\""
+" data-tooltip=\"<img src='"+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"'>\""
+" rel=\"Gallerie\" href=\""+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"?OpenElement\" >"
+"<Img class=\"ImageGallerie\"  src=\""+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"?OpenElement\" alt=\"\""
+" id=\""+TabImages[n]+"\""+"></a>";"");
@If(n>=MaxImage*3 & n<MaxImage*4 & TabImages[n]!="";
ChaineImage4:=ChaineImage4+"<a id=\""+@LeftBack(TabImages[n];".")+"\""
+" data-tooltip=\"<img src='"+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"'>\""
+" rel=\"Gallerie\" href=\""+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"?OpenElement\" >"
+"<Img class=\"ImageGallerie\"  src=\""+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"?OpenElement\" alt=\"\""
+" id=\""+TabImages[n]+"\""+"></a>";"");
@If(n>=MaxImage*4 & n<MaxImage*5 & TabImages[n]!="";
ChaineImage5:=ChaineImage5+"<a id=\""+@LeftBack(TabImages[n];".")+"\""
+" data-tooltip=\"<img src='"+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"'>\""
+" rel=\"Gallerie\" href=\""+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"?OpenElement\" >"
+"<Img class=\"ImageGallerie\"  src=\""+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"?OpenElement\" alt=\"\""
+" id=\""+TabImages[n]+"\""+"></a>";"")
);

"<div style=\"clear:both;margin-top:0px;margin-bottom:50px;\">"
+"<h2><a href=\""+@Text(@DocumentUniqueID)+"\"  title=\"Cliquez sur ce titre pour basculer sur la page\">"+chpTitrePage+"</a></h2>"+
"<div class=\"ImageGallerie\" style=\"margin:0;\">"
+ChaineImage1
+"<br /><span class=\"datepublication\">Publié le "+@Text(@Day(@If(Form="msqActualite";chpDateInformation;chpDerniereMaj)))+" " +@Text(@Select(@Month(@If(Form="msqActualite";chpDateInformation;chpDerniereMaj)); "janvier"; "février"; "mars"; "avril"; "mai"; "juin"; "juillet"; "août"; "septembre"; "octobre"; "novembre"; "décembre"))  + " " + @Text(@Year(@If(Form="msqActualite";chpDateInformation;chpDerniereMaj)))
+"</span>"
+"</div>"
+"</div>"
jcvaillant
Premier posts
Premier posts
 
Message(s) : 28
Inscrit(e) le : 20 Jan 2010 à 15:14

Re: Limite dans l'affichage d'une vue HTML

Messagepar Michael DELIQUE » 04 Déc 2013 à 16:16

Salut

tu as vérifié que ton texte ne dépassais pas les 32ko ? sinon regarde en passant par une vue intégré qui affiche tous les document de ton champs (un doc par ligne)
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Limite dans l'affichage d'une vue HTML

Messagepar jcvaillant » 04 Déc 2013 à 17:08

Michael DELIQUE a écrit:Salut

tu as vérifié que ton texte ne dépassais pas les 32ko ? sinon regarde en passant par une vue intégré qui affiche tous les document de ton champs (un doc par ligne)


Quand tu parles de 32 Ko, tu parles de la totalité du texte généré par document ou de 32 Ko par variable ?
jcvaillant
Premier posts
Premier posts
 
Message(s) : 28
Inscrit(e) le : 20 Jan 2010 à 15:14

Re: Limite dans l'affichage d'une vue HTML

Messagepar roubech » 04 Déc 2013 à 21:26

$$SearchTemplate, c'est pour mettre en forme la vue résultat d'une recherche

ce code est dans une colonne de vue ou dans un champ calculé ?
Les 32K, c'est bien la longueur de la chaine résultante de cette formule.

Au passage, je ne vois pas trop l'interêt du @For avec les @If dedans, mais bon, ça changera pas la longueur de la chaine finale, sauf à jouer sur la valeur de MaxImage

Code : Tout sélectionner
MaxImage:=30;
tLstMonth:="janvier" : "février" : "mars" : "avril" : "mai" : "juin" : "juillet" : "août" : "septembre" : "octobre" : "novembre" : "décembre";
tLstImages:=@Subset(@Explode(ChpNomImageGallerie;":"); MaxImage);
tPath := @Text(@DocumentUniqueID) + "/$file/";
tDate:=@If(Form="msqActualite";chpDateInformation;chpDerniereMaj);

tLstHtml := "<a id=\"" + @LeftBack(tLstImages;".") + "\"" + " data-tooltip=\"<img src='" + tPath + tLstImages + "'>\""
+ " rel=\"Gallerie\" href=\"" + tPath + tLstImages + "?OpenElement\" >"
+ "<Img class=\"ImageGallerie\"  src=\"" + tPath + tLstImages + "?OpenElement\" alt=\"\""
+ " id=\"" + tLstImages + "\"></a>"

"<div style=\"clear:both;margin-top:0px;margin-bottom:50px;\">"
+ "<h2><a href=\"" + @Text(@DocumentUniqueID) + "\"  title=\"Cliquez sur ce titre pour basculer sur la page\">" + chpTitrePage + "</a></h2>"
+ "<div class=\"ImageGallerie\" style=\"margin:0;\">"
+ @Implode(tLstHtml; " ")
+ "<br /><span class=\"datepublication\">Publié le " + @Text(@Day(tDate)) + " " + @Text(@Select(@Month(tDate); tLstMonth))  + " " + @Text(@Year(tDate))
+ "</span>"
+ "</div>"
+ "</div>"
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Re: Limite dans l'affichage d'une vue HTML

Messagepar Jérôme Deniau » 05 Déc 2013 à 11:01

Je vois pas non plus trop l'intérêt, mais
1. définir la vue en vue html (propriété de l'affichage dans la vue intégrée
2. faire une colonne par image, avec le code html
3. ajouter les colonnes supplémentaires toujours avec du html sans les crochets, prévoir ou non un <br/> en dernière colonne ou non
4. Sachant qu el'admin a par défaut limité l'affichage de la vue à 30 lignes, modifier l'url pour ajouter &count=XXXX (remplacer xxxx par une valeur importante (du style 5000) puisque c'est un $searchtemplate, adapter 2500 ou 5000 pour le retour
Avatar de l’utilisateur
Jérôme Deniau
Maître-posteur
Maître-posteur
 
Message(s) : 497
Inscrit(e) le : 08 Mars 2013 à 09:52
Localisation : Rennes (Bretagne à l'Ouest de la France)

Re: Limite dans l'affichage d'une vue HTML

Messagepar jcvaillant » 06 Déc 2013 à 09:35

roubech a écrit:$$SearchTemplate, c'est pour mettre en forme la vue résultat d'une recherche

ce code est dans une colonne de vue ou dans un champ calculé ?
Les 32K, c'est bien la longueur de la chaine résultante de cette formule.

Au passage, je ne vois pas trop l'interêt du @For avec les @If dedans, mais bon, ça changera pas la longueur de la chaine finale, sauf à jouer sur la valeur de MaxImage


Le code est dans une colonne de vue.
En effet, les @if n'ont aucun intérêt si le problème de limite vient de la chaine totale de la formule.
Je pensais que le problème venait du stockage dans chaque variable, d'où les @if pour changer de variable.

Je vous rappelle mon besoin :
Rechercher des documents à partir de mots clefs que je ne connais pas à priori
Afficher dans une page html, tous les photos rattachées à chaque document trouvés.

En fait j'ai résolu le problème maintenant que je sais d'où il venait !
J'ai découpé mon code en 7 colonnes :
Colonne 1 : En tête du formatage des photos pour chaque document
Code : Tout sélectionner
"<div style=\"clear:both;margin-top:0px;margin-bottom:50px;\">"
+"<h2><a href=\""+@Text(@DocumentUniqueID)+"\"  title=\"Cliquez sur ce titre pour basculer sur la page\">"+chpTitrePage+"</a></h2>"+
"<div class=\"ImageGallerie\" style=\"margin:0;\">"


Colonne 2 : Les 30 premières photos du document courant
Code : Tout sélectionner
TabImages:=@Explode(ChpNomImageGallerie;":");
ChaineImage1:="";
MaxImage:=30;
@For(n := 1;
n <= @Elements(TabImages);
n := n + 1;
@If(n<MaxImage & TabImages[n]!="";
ChaineImage1:=ChaineImage1+"<a id=\""+@LeftBack(TabImages[n];".")+"\""
+" data-tooltip=\"<img src='"+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"'>\""
+" rel=\"Gallerie\" href=\""+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"?OpenElement\" >"
+"<Img class=\"ImageGallerie\"  src=\""+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"?OpenElement\" alt=\"\""
+" id=\""+TabImages[n]+"\""+"></a>";"")
);
ChaineImage1


Colonne 3 : Photo allant de 30 à 59 du document courant
Code : Tout sélectionner
TabImages:=@Explode(ChpNomImageGallerie;":");
ChaineImage2:="";
MaxImage:=30;
@For(n := 1;
n <= @Elements(TabImages);
n := n + 1;
@If(n>=MaxImage & n<2*MaxImage & TabImages[n]!="";
ChaineImage2:=ChaineImage2+"<a id=\""+@LeftBack(TabImages[n];".")+"\""
+" data-tooltip=\"<img src='"+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"'>\""
+" rel=\"Gallerie\" href=\""+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"?OpenElement\" >"
+"<Img class=\"ImageGallerie\"  src=\""+@Text(@DocumentUniqueID)+"/$file/"+TabImages[n]+"?OpenElement\" alt=\"\""
+" id=\""+TabImages[n]+"\""+"></a>";"")
);

ChaineImage2


Colonne 4 à 6 : Idem colonne 2 par pas de 30 photos (en fait MaxImages)
Colonne 7 : Pied de formatage des photos pour le document courant

Merci à tous pour votre aide.
jcvaillant
Premier posts
Premier posts
 
Message(s) : 28
Inscrit(e) le : 20 Jan 2010 à 15:14

Re: Limite dans l'affichage d'une vue HTML

Messagepar roubech » 06 Déc 2013 à 11:57

Pourquoi un explode , ton champ chpnomimagegallery n'est pas multivalue ?

Pourquoi encore un for et des if , la technique avec le subset ne marche pas ?
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Re: Limite dans l'affichage d'une vue HTML

Messagepar jcvaillant » 10 Déc 2013 à 08:41

roubech a écrit:Pourquoi un explode , ton champ chpnomimagegallery n'est pas multivalue ?
Pourquoi encore un for et des if , la technique avec le subset ne marche pas ?


En effet mon champ chpnomimagegallery n'est pas multivalue.
Comment aurais tu fait avec subset ?
jcvaillant
Premier posts
Premier posts
 
Message(s) : 28
Inscrit(e) le : 20 Jan 2010 à 15:14

Re: Limite dans l'affichage d'une vue HTML

Messagepar Jérôme Deniau » 10 Déc 2013 à 11:50

Comme le tabimage est devenue une liste avec @explode on peut utiliser les fonctions de calcul de Domino/Notes
Exemple si liste contient 3 éléments
chaine + liste + chaine

donnera
chaine +liste(1) + chaine + chaine + liste(2) +chaine +chaine +liste(3) +chaine

Donc ton code pourrait être réécrit

chaineImage2 := "<a id=\""+@LeftBack(TabImages;".")+"\""
+(" data-tooltip=\"<img src='"+
+@Text(@DocumentUniqueID)+"/$file/")+TabImages+"'>\""
+(" rel=\"Gallerie\" href=\""+@Text(@DocumentUniqueID)+"/$file/")+TabImages+("?OpenElement\" >"
+"<Img class=\"ImageGallerie\" src=\""+@Text(@DocumentUniqueID)+"/$file/")+TabImages+("?OpenElement\" alt=\"\""
+" id=\")"+TabImages+("\""+"></a>")
Avatar de l’utilisateur
Jérôme Deniau
Maître-posteur
Maître-posteur
 
Message(s) : 497
Inscrit(e) le : 08 Mars 2013 à 09:52
Localisation : Rennes (Bretagne à l'Ouest de la France)

Re: Limite dans l'affichage d'une vue HTML

Messagepar roubech » 10 Déc 2013 à 20:19

Voir le code de ma première réponse
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Re: Limite dans l'affichage d'une vue HTML

Messagepar jcvaillant » 11 Déc 2013 à 08:05

Jérôme Deniau a écrit:Comme le tabimage est devenue une liste avec @explode on peut utiliser les fonctions de calcul de Domino/Notes
Exemple si liste contient 3 éléments
chaine + liste + chaine

donnera
chaine +liste(1) + chaine + chaine + liste(2) +chaine +chaine +liste(3) +chaine

Donc ton code pourrait être réécrit

chaineImage2 := "<a id=\""+@LeftBack(TabImages;".")+"\""
+(" data-tooltip=\"<img src='"+
+@Text(@DocumentUniqueID)+"/$file/")+TabImages+"'>\""
+(" rel=\"Gallerie\" href=\""+@Text(@DocumentUniqueID)+"/$file/")+TabImages+("?OpenElement\" >"
+"<Img class=\"ImageGallerie\" src=\""+@Text(@DocumentUniqueID)+"/$file/")+TabImages+("?OpenElement\" alt=\"\""
+" id=\")"+TabImages+("\""+"></a>")


Ok mais dans ce cas, la chaine générée dépassera les 32Ko car ta formule prends en compte tous les éléments rattachés et on retombe sur le problème initial.
jcvaillant
Premier posts
Premier posts
 
Message(s) : 28
Inscrit(e) le : 20 Jan 2010 à 15:14

Re: Limite dans l'affichage d'une vue HTML

Messagepar Michael DELIQUE » 11 Déc 2013 à 08:26

salut

passe par une vue intégré qui affiche le meme document mais avec une ligne par image.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Limite dans l'affichage d'une vue HTML

Messagepar roubech » 11 Déc 2013 à 20:31

d'où mon subset sur la liste des images avant de commencer à concaténer le reste du code HTML
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille


Retour vers Développement

cron