RE: How to make the user selecting a view in a XSL stylesheet from a button

Subject: RE: How to make the user selecting a view in a XSL stylesheet from a button
From: Stéphane Mamdy <smamdy@xxxxxxxxxxxxx>
Date: Fri, 11 Aug 2000 16:12:33 +0100
Yes. Here are the 2 files needed.
It works with IE5 and MSXML 3.0.

But it's not perfect !
I would l like to put in the subject (GRAIN of advise) selection list only
the advise 's subjects (= CONSEIL/SUJET)whitch exist for the selected date
(actually, i list all the subjects without checking if the advise exists at
that date). I don't find how to do that yet.

Your remarks to improve the processing are wellcome...

Maybye this files will give some ideas...

Stéphane Mamdy.


************ conseil.xml ******************
<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml:stylesheet type="text/xsl" href="liste_conseils.xsl" ?>
<LISTE_CONSEIL>
<LISTE_DATE>
<DATE_CONSEIL SELECTION="2000/08/01">01/08/2000</DATE_CONSEIL>
<DATE_CONSEIL SELECTION="2000/07/04">04/07/2000</DATE_CONSEIL>
</LISTE_DATE>
<LISTE_GRAIN>
<GRAIN>Blé tendre</GRAIN>
<GRAIN>Maïs</GRAIN>
<GRAIN>Orge de mouture</GRAIN>
<GRAIN>soja</GRAIN>
</LISTE_GRAIN>
<CONSEIL ID="123">
	<DATE>2000/08/01</DATE> <DATEC>01/08/2000</DATEC>
	<CATEGORIE>Céréales</CATEGORIE>
	<SUJET>Blé tendre</SUJET>
	<ID>Blé tendre</ID>
	<COMMENTAIRE>La récolte bat son plein avec quelques jours sans
pluie.....</COMMENTAIRE>
</CONSEIL>
<CONSEIL ID="125">
	<DATE>2000/08/01</DATE> <DATEC>01/08/2000</DATEC>
	<CATEGORIE>Céréales</CATEGORIE>
	<SUJET>Maïs</SUJET>
	<ID>Maïs</ID>
	<COMMENTAIRE>Peut-on encore parler d'ancienne campagne, tant les
disponibilités sont maigres. ...</COMMENTAIRE>
</CONSEIL>
<CONSEIL ID="124">
	<DATE>2000/08/01</DATE>	<DATEC>01/08/2000</DATEC>
	<CATEGORIE>Céréales</CATEGORIE>
	<SUJET>Orge de mouture</SUJET>
	<ID>Orge de mouture</ID>
	<COMMENTAIRE>Petite vitesse de croisière car la demande est
réduite....</COMMENTAIRE>
</CONSEIL>
<CONSEIL ID="81">
	<DATE>2000/07/04</DATE> <DATEC>04/07/2000</DATEC>
	<CATEGORIE>Céréale</CATEGORIE>
	<SUJET>Blé tendre</SUJET>
	<ID>Blé tendre</ID>
	<COMMENTAIRE>La situation ne s'est pas sensiblement améliorée depuis
mardi.....</COMMENTAIRE>
</CONSEIL>
<CONSEIL ID="83">
	<DATE>2000/07/04</DATE> <DATEC>04/07/2000</DATEC>
	<CATEGORIE>Céréale</CATEGORIE>
	<SUJET>Maïs</SUJET>
	<ID>Maïs</ID>
	<COMMENTAIRE>Toujours l'article fort.....</COMMENTAIRE>
</CONSEIL>
<CONSEIL ID="82">
	<DATE>2000/07/04</DATE> <DATEC>04/07/2000</DATEC>
	<CATEGORIE>Céréale</CATEGORIE>
	<SUJET>Orge de mouture</SUJET>
	<ID>Orge de mouture</ID>
	<COMMENTAIRE>Petit courant d'affaires sur le rapproché pour quelques
utilisateurs métropolitains.....</COMMENTAIRE>
</CONSEIL>
<CONSEIL ID="13">
	<DATE>2000/07/04</DATE> <DATEC>04/07/2000</DATEC>
	<CATEGORIE>Oléoprotéagineux</CATEGORIE>
	<SUJET>Graines de colza</SUJET>
	<ID>Graines de colza</ID>
	<COMMENTAIRE>Le retrait mesuré du dollar depuis la fin de la semaine
dernière a calmé le marché...</COMMENTAIRE>
</CONSEIL>
</LISTE_CONSEIL>

************ liste_conseils.xsl ******************

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="mynamespace"
version="1.0">
<xsl:output method="html" version="4.0"/>

<xsl:param name="param" />
<xsl:param name="param_date" />
   <xsl:template match="/">
<HTML>
<HEAD>
	<title>Cotations des cereales</title>
	<style type="text/css">
	.SSTITRE {
		font-weight:bold;
		text-decoration:none;
		};

	.DATE {
		font: 8pt verdana, arial, helvetica, sans-serif; };
	.TJ {
		text-align:justify; };
	</style>

<SCRIPT><xsl:comment><![CDATA[
function Selection_grain(e){

	var tem = new ActiveXObject("MSXML2.XSLTemplate");
	tem.stylesheet = stylesheet;
	var proc = tem.createProcessor();
	proc.addParameter("param",e.grain.options[e.grain.selectedIndex].value);

proc.addParameter("param_date",e.date_rapport.options[e.date_rapport.selecte
dIndex].value);
	proc.input = source;
	proc.transform();
	document.body.innerHTML = proc.output;

}
function Selection_date(e) {
	var tem = new ActiveXObject("MSXML2.XSLTemplate");
	tem.stylesheet = stylesheet;
	var proc = tem.createProcessor();
	proc.addParameter("param",e.grain.options[e.grain.selectedIndex].value);

proc.addParameter("param_date",e.date_rapport.options[e.date_rapport.selecte
dIndex].value);
	proc.input = source;
	proc.transform();
	document.body.innerHTML = proc.output;

}
]]></xsl:comment></SCRIPT>

<SCRIPT for="window" event="onload"><xsl:comment><![CDATA[

//        stylesheet=document.XSLDocument;
	stylesheet = new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
	stylesheet .async = false;
	stylesheet .load("http://agritest:81/cotation/xsl/liste_conseils.xsl";);

        source=document.XMLDocument;

]]></xsl:comment></SCRIPT>
	</HEAD>
	<BODY>
	<CENTER>
	<H1>Conseils <xsl:value-of select="$param" />   </H1>
	<xsl:call-template name="CONSTRUCTION-FORMULAIRE" />
	<p/>
	<table>
	<xsl:choose>
		<xsl:when test="$param='' and $param_date=''">
			<xsl:call-template name="AFFICHE-DERNIER" />
		</xsl:when>
		<xsl:when test="$param=''">
			<xsl:apply-templates select="/LISTE_CONSEIL/CONSEIL[DATE=$param_date]" />
		</xsl:when>
		<xsl:when test="$param_date=''">
			<xsl:apply-templates select="/LISTE_CONSEIL/CONSEIL[SUJET=$param]" />
		</xsl:when>
		<xsl:otherwise>
			<xsl:apply-templates select="/LISTE_CONSEIL/CONSEIL[DATE=$param_date and
SUJET=$param]" />
		</xsl:otherwise>
	</xsl:choose>
	</table>

	</CENTER>
	</BODY>
	</HTML>
   </xsl:template>

<xsl:template match="CONSEIL">
	<tr><td> </td><td> </td></tr>
	<tr><td><xsl:value-of select="SUJET"/></td><td align="right"><div
class="DATE"><span class="DATE"><xsl:value-of
select="DATE"/></span></div></td></tr>
	<tr><td> </td><td> </td></tr>
	<tr><td colspan = "2">	<div class="tj"><span class="tj"><xsl:value-of
select="COMMENTAIRE"/> <br/><center><hr
width="200"/></center></span></div></td></tr>
	<tr><td></td><td></td></tr>
</xsl:template>

<xsl:template name="AFFICHE-DERNIER">
<tr><td><p>Sélectionnez une date et un sujet dans la liste...</p></td></tr>
</xsl:template>

<xsl:template name="AFFICHE-CHOISI">
<p>CHOISI  <xsl:value-of select="$param" /></p>
</xsl:template>


<xsl:template name="CONSTRUCTION-FORMULAIRE">
	<center>
	<form name="formulaire">
	<table CELLPADDING="5" CELLSPACING="0" border="1" bordercolor="#A8D000" >
	<tr>
	<td>
	<table CELLPADDING="0" CELLSPACING="0" width="650">
	<tr>
	<td>Selectionner une date </td>
	<td>	<select name="date_rapport" id="date_rapport"
onchange="Selection_date(document.forms[0])" >
	        <option value=""></option>
		<xsl:apply-templates select="LISTE_CONSEIL/LISTE_DATE/*" >
		<xsl:sort data-type="text" order="descending" select="DATE" />
		</xsl:apply-templates>
		</select>
	</td>
	</tr>
	<tr>
	<td>Selectionner un sujet </td>
	<td>	<select name="grain" id="grain"
onchange="Selection_grain(document.forms[0])">
	        <option value=""></option>
		<xsl:apply-templates select="LISTE_CONSEIL/LISTE_GRAIN/*" >
		<xsl:sort data-type="text" order="ascending" select="." />
		</xsl:apply-templates>
		</select></td></tr>
	<tr><td colspan="2">
<!--		<input type="button" onclick="Selection_grain(document.forms[0])"
value="Selectionner" /> -->
	</td></tr>
	</table>
	</td></tr></table>
	</form>
	</center>
</xsl:template>

<xsl:template match="DATE_CONSEIL">
	<OPTION value="{@SELECTION}"><xsl:if test="@SELECTION =
$param_date"><xsl:attribute
name="SELECTED">1</xsl:attribute></xsl:if><xsl:value-of select="."
/></OPTION>
</xsl:template>

<xsl:template match="GRAIN">
	<OPTION value="{.}"><xsl:if test=". = $param"><xsl:attribute
name="SELECTED">1</xsl:attribute></xsl:if><xsl:value-of select="."
/></OPTION>
</xsl:template>



</xsl:stylesheet>
**************************************************

-----Message d'origine-----
De : owner-xsl-list@xxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxx]De la part de Chris Bayes
Envoyé : jeudi 10 août 2000 22:03
À : xsl-list@xxxxxxxxxxxxxxxx
Objet : RE: How to make the user selecting a view in a XSL stylesheet
from a button



>Thanks, Chris
>It works fine !!!
>
>Stéphane Mamdy.

Great ;-)
Can we see the result?

Ciao Chris


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread