Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/11/2010, 07:04
polhpool
 
Fecha de Ingreso: septiembre-2005
Mensajes: 32
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Problema con XML/XSL

Hola Buenos Días. Detallo un poco más sobre el problema



A través de un control .ascx formo el string por el cual preguntaré en el web.config para saber cual es el .xls que debo usar, escribiré un poco del código para describir de mejor manera:



strSpecificTemplate = "XXLGridTemplate" + "_" + arr[0].ToUpper().Trim();



Este es el código que se encuentra en el control, en el cual se define la variable con el prefijo que tienen todos los GridTemplate específicos (XXLGridTemplate) concatenando "_" y el identificador único de la entidad en cuestión arr[0].ToUpper().Trim();



Supongamos que en este caso la variable strSpecificTemplate posee un valor igual GridTemplate_QQ, luego de esto en el mismo control se realiza la llamada al web.config a través de:

xslPath = ConfigurationManager.AppSettings[strSpecificTemplate];



En donde la variable xlsPath tendrá el valor de la ruta del .xls especifico de la entidad en cuestión, como por ejemplo:



<add key="GridTemplate_QQ" value="../XML/NombreAplicacion/GridTemplate_QQ.xsl"/>



Ahora detallando el archivo común (incluido en cada GridTemplate_?? especifico dependiendo de la entidad) GridTemplateCommon.xsl el cual tiene una apariencia de este estilo:



<?xml version="1.0" encoding="utf-8"?>



<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:asp="remove" xmlns:ajaxToolkit="remove" xmlns:TMExt="remove" xmlns:loop="http://informatik.hu-berlin.de/loop" xmlns:msxsl="urn:schemas-microsoft-com:xslt"

xmlns:Testing="urn:my-scripts" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:myCustDate="urn:custDate">



<xsl:param name="transname" />

<xsl:param name="Nuemrodetarjeta"/>

<xsl:param name="TipoCuenta"/>

AQUI ES DONDE EMPIEZO A ESCRIBIR LAS FUNCIONES C#

<!--xmlns:myCustDate="urn:custDate">-->

<msxsl:script language="C#" implements-prefix="Testing">

<![CDATA[


public string currencyFormat(string currVal, string Moneda)
{


}

ESA ES LA FUNCIÓN QUE GENERA EL PROBLEMA.

Ahora detallo el archivo .xls especifico en donde incluyo el archivo común

<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:asp="remove" xmlns:ajaxToolkit="remove" xmlns:TMExt="remove" xmlns:loop="http://informatik.hu-berlin.de/loop" xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:Testing="urn:my-scripts" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:myCustDate="urn:custDate">


AQUI ES DONDE INCLUYO EL ARCHIVO COMUN
<xsl:include href="GridTemplateCommon.xsl"/>

<xsl:template match="/" >
<xsl:call-template name="ChooseTemplate" />
</xsl:template>

<xsl:template name="ChooseTemplate">
<xsl:choose>

<xsl:when test="'TEMPLATE1' = $transname">
<xsl:call-template name="TEMPLATE1" />
</xsl:when>


Supongamos que para este caso la variable $transname toma el valor TEMPLATE1, luego de esto se llama al template TEMPLATE1, en donde este dentro de su logica posee la llamada a la funcion que genera el problema


<xsl:value-of select="Testing:currencyFormatHist($Comision,$Mone da)" />;


Bueno ahi hay un poco más de detalle, cabe destacar que cada template especifico incluye el archivo comun anteriormente nombrado, bueno ojala sirva un poco el detalle



Saludos,