viernes, 27 de enero de 2012

No funciona jquery.mobile.pagination

Sintomas:
Los vinculos laterales en  el plugin de Filament Group para paginación en jquery-mobile no pasan página. En cambio si funciona arrastrandon el dedo por la página actual.

Causa:
Es un defecto del plugin relacionado con la url. En la página advierten que puede ocurrir con algunos navegadores, pero he observado  que el problema puede aparecer o desaparecer con variaciones en la URL.
Por ejemplo en un momento creí lo siguiente, pero luego el problema reapareció. Sigo trabajando
En los href especificaba la dirección completa incluyendo el número de puerto en el Host.
Ejemplo href="http://www.blogger.com:80/nexpost.html"
Basto con eliminar el :80 para que todo funcionara.

Comentarios:
Perdí un día por esta tontería.
El problema es que en mi desarrollo Encuentra tu cerámica la clase que contiene los metodos que extraen la información de las urls, almacena esta información y genera todas las urls del sitio ha terminado por ser bastante complejo, en algún sitio se me coló un request.url.originalString en lugar de un request.url.absoluteUrl.
En fin.
No estoy seguro de que el problema esté en especificar el puerto únicamente o en especificar el puerto cuando se ha accedido sin especificar el puerto originalmente (urls distintas).







martes, 13 de diciembre de 2011

Sitios precompilados y archivos de informes RDLC

Sintomas:
Publicas un sitio web precompilado siguiendo mis instrucciones en:
 Precompilar en vs2010 para agilizar un sitio ASP.NET
Desgraciadamente tienes errores al ir a cargar informes en formato RDLC.
Solución: 
El problema es que el compilador compila tambien los informes y no los copia al sitio web. Copia una marcador ficticio en su lugar.

Puedes copiar los archivos RDLC manualmente o definir una accion postcompilación, pero una solución mas elegante es buscar en el web.config la sección que fuerza la compilación de los archivos con extensión rdlc:

<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</buildProviders>


Y añadir una linea al final que quite la extensión: <remove extension=".rdlc"></remove>
La cosa quedara así:
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<remove extension=".rdlc"></remove>
</buildProviders>

Por supuesto podriamos borrar la sección Add pero VisualStudio 2010 nos lo volveria añadir en cuanto hicieramos algo con los informes.

Fuente de la solución: http://connect.microsoft.com/VisualStudio/feedback/details/468068/rdlc-files-are-build-into-resources-during-publish-this-is-a-marker-file



Precompilar en vs2010 para agilizar un sitio ASP.NET

Enunciado:
Has trabajado largo y tendido para conseguir un buen sitio web. Líneas y líneas de código.
Pero cada vez que accedes a tú sitio este carga muy lento la prímera página, a partir de entonces y hasta el día siguiente funciona rápido.
Crees que esto te está robando usuarios. y buscas soluciones.
El problema es que los sitios tienen que reciclarse periodicamente, y entonces tu sitio se vuelve a compilar.
En versiones anteriores de visual Studio se podia establecer la opción para no compilar, desmarcando la casilla "permitir que este sitio precompilado sea actualizable". Pero ahora no la encuentras.
Solución:
Descarga Visual Studio® 2010 Web Deployment Projects
Haz clic derecho en el proyecto web que quieres publicar y añade un Web  Deployment Proyect
Te crea un proyecto en la solución cuyas propiedades contienen las opciones que necesitas.
Concretamente: Allow this precompiled site to be updatable que debes dejar SIN MARCAR
Cuando generas este proyecto el resultado te lo vuelca en Output Folder que puede ser  una carpeta virtualizada en tu IIS.
¡y carga rápido!
Si usas archivos RDLC puedes tener problemas lee mi siguiente post sobre este téma.

viernes, 25 de noviembre de 2011

Determinar al jerarquía de tiempo utilizada para cálculos basados en PARALLELPERIOD (SSAS)

Enunciado:
Tienes una base de datos donde usas una dimensión tiempo para la que has definido dos jerarquías, una basada en Trimestres y otra basada en cuatrimestres.
Tienes que utilizar PARALLELPERIOD para calcular por ejemplo el valor hace 12 meses.
Pero en los argumentos de PARALLELPERIOD se especifica la jerarquía y si utilizas la jerarquía basada en trimestres para calcular el valor 12 meses atrás de un cuatrimestre el resultado es erróneo.
Solución:
Leeme antes: Esta solución solo es valida para dos jerarquías. Lee la nota al final es importante.
En el script de cubo defines una miembro que te indicará la jerarquía, luego utilizas el resultado en un iif para el cálculo del miembro que deseas.

//CONTROL DE TIPO DE LA JERAQUÍA
 CREATE MEMBER CURRENTCUBE.[Measures].[Tipo Calendario] as

       IIF (
        [Calendario cuatrimestral].currentmember.level.ordinal=1
        ,'T'
        ,'C'
        )
    ,VISIBLE=0;

//Metros 12 meses antes
CREATE MEMBER CURRENTCUBE.[Measures].[M2 Antes]
 AS 
  (IIF ([Measures].[Tipo Calendario]='C'
        ,PARALLELPERIOD 
            ([Calendario cuatrimestral].[Año]
            ,1
            ,[Calendario cuatrimestral].currentmember
            )
        ,PARALLELPERIOD 
            ([Tiempo].[Calendario trimestral].[Año]
            ,1
            ,[Tiempo].[Calendario trimestral].currentmember
            )
    )    
    ,[Measures].[M2]
  ), 
FORMAT_STRING = "#,##0;-#,##0;0", 
VISIBLE = 1 ,  DISPLAY_FOLDER = 'Mes\Metros' ,  ASSOCIATED_MEASURE_GROUP = 'Medidas'  ;
Nota importante:
Curiosamente la solución la encontré en el artículo: Time calculations in UDM: Parallel Period de Mosha Pasumansky comentando un articulo de A Different Approach to Implementing Time Calculations in SSAS - by David Shroyer. El segundo artículo no está disponible no hagas clic.

Mosha dice que esta solución puede conducir a resultados erróneos cuando usas atributos que figuran en ambas jerarquías. Sin embargo yo no he observado error alguno en mis resultados.


Agradecería que me advirtieraís si hay un error.

Archivo del blog

Etiquetas