Dear sir, I used below VBScript function inside XSLT. I found example and description on microsoft site. However it always return below errors. Any helps? {"Microsoft VBScript runtime error Wrong number of arguments or invalid property assignment line = 6, col = 2 (line is offset from the start of the script block). Error returned from property or method call. "} --------------------------------------- xslt -------------------------------------------------------------------- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:mine=http://www.chinasoftware.eu> <msxsl:script language="VBScript" implements-prefix="mine"> function comparedate(fromdate,todate) if fromdate = "" or todate = "" then comparedate = "yes" else if cdate(fromdate) > cdate(todate) then comparedate = "yes" else comparedate = "no" end if end if end function </msxsl:script>
guoqi zheng wrote: > Dear sir, > > I used below VBScript function inside XSLT. I found example and description > on microsoft site. However it always return below errors. Any helps? > > {"Microsoft VBScript runtime error > Wrong number of arguments or invalid property assignment > line = 6, col = 2 (line is offset from the start of the script block). > Error returned from property or method call. > "} > > --------------------------------------- > xslt -------------------------------------------------------------------- > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:msxsl="urn:schemas-microsoft-com:xslt" > xmlns:mine=http://www.chinasoftware.eu> > <msxsl:script language="VBScript" implements-prefix="mine"> > > function comparedate(fromdate,todate) > if fromdate = "" or todate = "" then > comparedate = "yes" > else > if cdate(fromdate) > cdate(todate) then > comparedate = "yes" > else > comparedate = "no" > end if > > end if > end function > > </msxsl:script> Can you show us where/how you call that function? Assuming you call it from your XSLT stylesheet does it help if you use e.g. <xsl:value-of select="comparedate(string(dateElement1), string(dateElement2))"/> instead of <xsl:value-of select="comparedate(dateElement1, dateElement2)"/> ? -- Martin Honnen --- MVP XML http://JavaScript.FAQTs.com/
Great Martin, It does work now. Just like what you said, I put the string(date) there, the addition of string() does the trick. Now everything working fine. Great! "Martin Honnen" wrote in message news:%23758c8MbIHA.5248@TK2MSFTNGP04.phx.gbl... > guoqi zheng wrote: >> Dear sir, >> >> I used below VBScript function inside XSLT. I found example and >> description on microsoft site. However it always return below errors. >> Any helps? >> >> {"Microsoft VBScript runtime error >> Wrong number of arguments or invalid property assignment >> line = 6, col = 2 (line is offset from the start of the script block). >> Error returned from property or method call. >> "} >> >> --------------------------------------- >> xslt -------------------------------------------------------------------- >> <xsl:stylesheet version="1.0" >> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >> xmlns:msxsl="urn:schemas-microsoft-com:xslt" >> xmlns:mine=http://www.chinasoftware.eu> >> <msxsl:script language="VBScript" implements-prefix="mine"> >> >> function comparedate(fromdate,todate) >> if fromdate = "" or todate = "" then >> comparedate = "yes" >> else >> if cdate(fromdate) > cdate(todate) then >> comparedate = "yes" >> else >> comparedate = "no" >> end if >> >> end if >> end function >> >> </msxsl:script> > > Can you show us where/how you call that function? > Assuming you call it from your XSLT stylesheet does it help if you use > e.g. > <xsl:value-of select="comparedate(string(dateElement1), > string(dateElement2))"/> > instead of > <xsl:value-of select="comparedate(dateElement1, dateElement2)"/> > ? > > > > -- > > Martin Honnen --- MVP XML > http://JavaScript.FAQTs.com/