Manejo de "Cumpleaños del mes" en WSS 3.0

No he encontrado ningún artículo que indique cómo crear una vista en WSS 3.0 que muestre los cumpleaños del día; el gran problema es la falta de flexibilidad en los filtros por defecto y en el manejo de columnas calculadas en WSS, que no permite simplemente filtrar por una fórmula como MONTH([FechaNacimiento]) = MONTH([Hoy]).
Mark Kruger tiene uno de cómo hacerlo en WSS2, pero no funciona bien con SharePoint 2007, porque no se refresca la fecha una vez se calcula (con lo cual, el filtro no se actualiza de mes a mes).

El anterior artículo, y la presión de mi cliente, me sirvieron de inspiración para la generación de la vista con SPD a través del procedimiento que ilustro a continuación.

Software requerido

  1. WSS 3.0 o MOSS 2007; No he probado si funciona con Sharepoint Portal 2003 o con WSS 2.0 pero intuyo que sí.
  2. Sharepoint Designer: Es necesario para poder editar la vista de datos (data view)

Procedimiento

  1. Crear una lista de contactos para guardar la información de las personas.
  2. En esta lista, crear las columnas

Nombre Columna

Tipo

Descripcion

FechaNacimiento

DateTime

Contendrá la información del cumpleaños del contacto

Mes

Calculada, con la siguiente formula:

=MONTH(FechaNacimiento)

Contiene el numero del mes de nacimiento del contacto

Dia

Calculada, con la siguiente formula:

=DAY(FechaNacimiento)

Contiene el día de nacimiento del contacto




  1. Crear una vista nueva en sharepoint, con las columnas que le interese mostrar del contacto, y la columna Dia (es la que mostrará quienes cumplen qué dia del mes). Llámela como quiera (por ejemplo, Cumpleaños del mes. No es necesario mostrar el mes ni la fecha de nacimiento.
  2. Ingrese al Sharepoint Designer
  3. Abra el Sitio (File->Open Site)
  4. Seleccione el sitio donde está la lista
  5. Abra Lists; busque la lista de contactos
  6. Allí encontrará la pagina Cumpleaos del mes.aspx (o como quiera que haya llamado su vista). Ábrala.
  7. Asegurese de estar en vista de diseño, en los botones en la esquina inferior izquierda, al lado de la barra de desplazamiento.
  8. Al abrirla encontrará la web Part que muestra la vista (listViewWebPart); Esta vista permite la misma manipulación que permite el diseño de vistas dentro de la página, pero estamos interesados en algo más elaborado; así que haga clic derecho sobre la web part y seleccione Convert to XSLT Data View
  9. Al convertirla en Data View, las opciones de filtro se mejoran, permitiendo la inclusión de filtros XSLT. Para editarlos haga clic en el botón de Common Data View Tasks (la flecha hacia la derecha de la esquina superior derecha de la Data View y seleccione Filter:
  10. En la ventana que se le muestra, podrá editar el filtro XSLT, chequeando Add XSLT Filtering, y haciendo clic en Edit…
  11. En la pantalla podrá editar el filtro, y usar diversas funciones; para este caso vamos a filtrar los ítems que tengan la columna Mes igual al mes de hoy. La formula a usar es [@Mes=number(substring(ddwrt:TodayIso(),6,2))].

    Lo que estamos haciendo es tomar la fecha en formato iso (yyyy-mm-ddTHH:nn:ssZ) y tomaremos 2 caracteres a partir del sexto (es decir la parte de mm) Esto será algo como 02 para febrero; y esto lo transformamos a entero, y lo comparamos con el campo Mes.

  12. Listo! Ahora puede usar esta vista en el home de su sitio, o en cualquier lado.

Si alguien sabe de otra manera más sencilla de realizar esta vista, por favor postee cómo sería.

Comments

diego lópez said…
seguí tu solución pero me encontré con el poblema de que cuando quiero exponer la vista de cumpleaños del mes en una página, no me deja hacerlo, como puedo solucionar eso?
Diego,
Me encontré con el mismo problema.... lo que hice fue agregar una webpart de la lista en la página, y allí edité directamente la vista de la list, siguiendo los mismos pasos. por favor escribeme si tienes más problemas.
Unknown said…
Hey tengo el mismo problema como puedo hacerle par publicar esa lista ???
Unknown said…
hola!
segui todos los pasos y modifique la vista. Desde la lista funciona perfecto, la veo bien y muestra los datos correctos, el problema es que cuando agrego el elemento web al sitio y desde el modo edicion intento cambiar a la vista que acabo de crear me sale el siguiente mensaje de error:
"No se puede guardar la configuración de propiedades de este elemento Web. No se puede completar esta acción. Vuelva a intentarlo."
¿Tienen idea que puedo hacer?

Saludos
gessam said…
Hola, buscando otro tema me encontre con el tuyo, no he probado,se me ocurre que si te permite filtrar por la formula: [@Mes=number(substring(ddwrt:TodayIso(),6,2))], talvez te permita
filtrar directamente por esta otra [DATEDIF(@FechaNacimiento, ddwrt:Today(),"ym") = 0].
La funcion DATEDIF con parametros "ym" regresa la diferencia en meses sin importar año o día, esperando que el mes del cumpleaños la diferencia sea cero. Espero ayudar.

Repito No lo he probado por lo que no se si funcione, pero si hay alguien y lo prueba que ponga aqui los resultados.

fuente:
http://office.microsoft.com/en-ca/sharepoint-server-help/examples-of-common-formulas-HA010105479.aspx?CTT=3
Examples of common formulas
Applies to: Microsoft Office SharePoint Server 2007, Windows SharePoint Services 3.0


Salu2
alonso said…
hola que tal la formula funciono lo que quiero hacer es el cumpleños no por mes sino por dia osea q tengan ambas cosas q compraren el dia y mes como se podria hacer estoy trabajando con una lista

Popular posts from this blog

Running Linux CMD in Windows - the webpack Case

MongoDb seeding in Docker