Martes, 24 de Marzo de 2009
Utilizabamos una lista de Sharepoint para que la gente se apuntará a comer. Entre las opciones que teníamos eran menú “Vegetariano” o menú “Normal”.
Para facilitarle la gestión al catering se tenía que apuntar el personal al menu “Vegetariano” el viernes de la semana anterior a la reserva, así el mismo viernes se le indicaba al servicio de catering los menús Vegetarianos que se iban a solicitar a la semana siguiente. Mientras que para el menú normal podía puntarse antes de las 9:00 del dia de la reserva.
Vamos a explicar como se detectaba la gente que se había apuntado fuera de plazo (todo sin una lina de programación).
Creamos una columna llamada “Fuera de plazo” cuyo tipo de información es Calculado (cálculo basado en otras columnas) con el tipo de datos que devuelve es “Sí o No”. Siendo la Formula:
=IF(<!-- Revisión del menu normal, el mismo dia antes de las 9:00 -->
[Tipo de Menu]="Normal";
IF( <!-- Revisión de casos que nos indique que está fuera de plazo -->
AND( <!-- La modificación del registro y la reserva se distan
en menos de un dia -->
DATEDIF(Modificado;[Fecha de la reserva];"D")<1;
<!-- y la modificación del registro se ha realizado posterior a las 9 -->
HOUR(Modificado)>=9
);
TRUE(); <Sí que está fuera de plazo>
FALSE() <No que está fuera de plazo>
); <!-- Revisión del menu vegetariano, el viernes anterior a la semana
de la reserva antes de las 9:00 -->
IF( <!-- Revisión de casos que nos indique que está fuera de plazo -->
OR(
AND( <!-- Reserva realizada el viernes de la semana anterior
a la fecha de la reserva posterior a las 9:00 -->
DATEDIF(Modificado;[Fecha de la reserva];"D")
=(WEEKDAY([Fecha de la reserva];2)+2);
HOUR(Modificado)>=9
); <!-- La reserva se realizó la misma semana ( la distancia entre
la reserva y el dia que se realizó es menor que el dia de la semana
de la reserva) -->
DATEDIF(Modificado;[Fecha de la reserva];"D")
<(WEEKDAY([Fecha de la reserva];2)+2)
);
TRUE(); <!-- Sí que está fuera de plazo>
FALSE() <!-- No que está fuera de plazo>
)
)
Está formula tiene un error. Si el usuario pone una fecha de reserva anterior al día que se realiza. Por ello creamos otra columna calculada llamada “Error en la Reserva” para detectar dichos errores.
=IF(
OR(
<!-- la fecha de creaciónes posterior a la "Fecha de la reserva" -->
ISERROR(DATEDIF(Creado;[Fecha de la reserva];"D"));
<!-- No puedes reservar para un Sabado o un domingo -->
WEEKDAY([Fecha de la reserva])>6;
AND(
[Tipo de Menu]<>"Normal";
<!-- El viernes solo hay menu "Normal" -->
WEEKDAY([Fecha de la reserva];2)=5)
);
TRUE(); <!-- Sí que existe un error -->
FALSE() <!-- No se ha detectado un error -->
)
Para finalizar pongo 2 ejemplos más referente a fechas:
- =([Fecha de la reserva]-WEEKDAY([Fecha de la reserva];3))<!– Ver el día de inicio de semana (lunes) de la reserva –>
- =(7-WEEKDAY([Fecha de la reserva];2)+[Fecha de la reserva])<!– Ver el día de fin de semana (domingo) de la reserva –>
Martes, 3 de Marzo de 2009
Basado en el artículo http://www.wssdemo.com/Pages/visio.aspx
Gracias al Visor de Visio 2007 [Acceder a la Descargar] podemos hacer que cualquier usuario, sin ningun coste añadido, pueda ver diagramas realizados con Visio (versiones 5.0, 2000, 2002, 2003 o 2007). Con esta aplicación, se instala un control Active X que permite ver el diagrama dentro del navegador Microsoft Internet Explorer (versión 5.0 o posterior).
Ahora bien, ¿cómo ponermos el visio publicado en el sharePoint?
Pues muy sencillo, En una página de Sharepoint:
- Agregar elemento web
- Seleccionamos “Elemento Web Editor de Contenido”
- Abra el panel de herramientas.
- Pulsa sobre “Editor de Codigo Fuente”
- Pegar el siguiente codigo:
<OBJECT classid="CLSID:279D6C9A-652E-4833-BEFC-312CA8887857"
codebase="http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=d88e4542-b174-4198-ae31-6884e9edd524&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f6%2ff%2f5%2f6f569198-e7d0-49af-b162-54a11f38d301%2fvisioviewer.exe"
id="viewer1" width="100%" height="100">
<param name="BackColor" value="16777120">
<param name="AlertsEnabled" value="1">
<param name="ContextMenuEnabled" value="1">
<param name="GridVisible" value="0">
<param name="HighQualityRender" value="1">
<param name="PageColor" value="16777215">
<param name="PageVisible" value="1">
<param name="PropertyDialogEnabled" value="1">
<param name="ScrollbarsVisible" value="1">
<param name="ToolbarVisible" value="1">
<param name="SRC" value="http://dominio/directorio_donde_se_encuentra_el_documento/nombre_del_diagrama.vsd">
<param name="CurrentPageIndex" value="0">
<param name="Zoom" value="-1">
</object>
- Reemplazar http://dominio/directorio_donde_se_encuentra_el_documento/nombre_del_diagrama.vsd por la ruta del documento visio que se quiere mostrar (recuerde que tiene que estar en un servidor y tener los permisos para poder acceder).
Amando Olcina MOSS / WSS, Office
Miércoles, 18 de Febrero de 2009
Las funciones de las columnas calculadas son practicamente las mismas que las del EXCEL, con la diferencia que se ponen en ingles, y cada campo va separado con el caracter punto y coma (;). Esto último puede variar según el valor/formato establecido en el “Separador de listas” de la “Configuración regional y de Idiomas” [opción que se puede encontrar en el Panel de Control].
He visto en foros, que la gente preguntaba el motivo del fallo de sus funciones y practimente todas se basaban en 2 errores sencillos cuando lo sabes:
- Usan funciones como TODAY o Me.
[Las columnas calculadas no pueden contener funciones volátiles como Today y Me. ]
- Como separado usaban la coma (,) en lugar de punto y coma (;). Seguramente toman ejemplos de páginas anglosajonas que tienen como “separador de listas” la coma (,)
[La fórmula contiene un error de sintaxis o no se admite.]
- Entre el nombre de la función y el parentesis habían dejado un espacio (es curioso, pero el sistema falla).
[La fórmula contiene un error de sintaxis o no se admite.]
Ejemplo de Función
| bien |
mal |
| =WEEKDAY([Fecha de la reserva];2) |
=WEEKDAY ([Fecha de la reserva];2) |
Como existe una página de Microsoft que contiene las funciones y formulas que podemos usar, no voy a enumerar ni explicar, pues yo lo podeis ver vosotros pulsando aquí.
Tambien he encontrado otra utilidad, donde aparecen todas las funciones pero es un poco pesado, pues te obliga a crear un subsitio de MOSS. De todas formas por si interesa solo teneis que apretar aquí.
Amando Olcina MOSS / WSS MOSS / WSS