jueves, 19 de noviembre de 2009

Macro actualizar campos Ms Word

Algo muy común cuando usamos Sharepoint, sobretodo WSS para intranets, es tener plantillas de documentos con campos en los que se muestran algunos metadatos del ítem.

El otro día me comentó un cliente que estos campos no se actualizaban automáticamente y muchos usuarios guardaban el documento sin actualizar los campos, lo cual era un problema para ellos. La solución fue práctiacamente instantánea; una macro que actualice dichos campos al abrir el documento de forma automática:

 Dim rango As Range 
Dim campo As Field
For Each rango In ActiveDocument.StoryRanges
For Each campo In rango.Fields
campo.Update
Next campo
Next rango

Espero que os resulte útil.

Un saludo.

Subir archivos grandes a Sharepoint

El otro día me encontré con una migración de documentos de un gestor documental a Sharepoint. Sabía que por defecto, el tamaño máximo de los archivos que puedes subir es 50 mb pero a pesar de haber cambiado esto el proceso no funcionaba como debía. Buscando un poco vi que había que modificar un par de cosillas más y tras este cambio funcionó todo perfectamente.

Para poder subir arhivos grandes (en mi caso los más grande tiene unos 500 mb) hay que realizar otros dos cambios:

  • Incrementar el tiempo de espera de la aplicación en el IIS (en la pestaña sitio web, apartado conexiones).
  • Modificar en el web.config, dentro del apartado System.Web, los atributos executionTimeout y maxRequestLength de la etiqueta httpRuntime:



domingo, 25 de octubre de 2009

SPQuery no filtra, devuelve todos los elementos de la lista

Cuando usamos un objeto de SPQuery para filtrar elementos de una lista con el método GetItems(query) y éste nos devuelve todos los elementos de la lista no es porque el método falle sino porque nuestra consulta está mal.

Para construir las querys hay un programa muy útil de U2U llamado Caml Query Builder, pero hay que tener cuidado, ya que este programa devuelve la query incluyendo la etiqueta <query></query> y si queremos que la consulta funcione debemos quitarla, es decir, debería quedar así:


SPQuery query = new SPQuery();

query.Query = "Item1";

SPListItemCollection collItems = list.GetItems(query);

Un saludo.

miércoles, 23 de septiembre de 2009

Cómo escribir en el event log

Escribir una entrada en el event log es tan simple como:
System.Diagnostics.EventLog.WriteEntry("Source", "Message");

Si queremos usar esto para mostrar excepciones, podemos poner el siguiente código en lugar de "Message":

"Excepción: " + ex.Message

Saludos.

viernes, 3 de abril de 2009

Definir propiedades de Webparts en MOSS

Si alguna vez os habéis puesto a desarrollar una webpart, seguro que os habréis preguntado cómo se añaden esas cajas de texto que aparecen en el panel de herramientas y que sirven para configurar la webpart.

Pues bien, si el objetivo es mostrar una caja de texto es tan simple como poner el siguiente código:

[WebBrowsable(true),
Personalizable(PersonalizationScope.User),
WebDescription("News number you want to show"),
WebDisplayName("News number you want to show")]

public int NewsNumber
{
get { return _newsNumber; }
set { _newsNumber = value; }
}

Esto es la definición básica de la propiedad pero hay que tener en cuenta que en función de cómo hayamos desarrollado la webpart, si estas propiedades no tienen un valor inicial comprendido en un cierto rango puede no funcionar como queremos. Para solucionar esto podemos dar a esa propiedad un valor por defecto como se muestra a continuación:

[WebBrowsable(true),
Personalizable(PersonalizationScope.User),

DefaultValue(2),
WebDescription("News number you want to show"),
WebDisplayName("News number you want to show")]


public int NewsNumber
{
get { return _newsNumber; }
set { _newsNumber = value; }
}

Al igual que esta, hay muchas otras propiedades, también muy interesantes que os invito que descubráis.

Saludos!

miércoles, 25 de marzo de 2009

Intalar Windows 7 en una máquina virtual con Virtual PC

Estos días de atrás me han preguntado muchas veces como he creado la máquina virtual en la que instalé Windows 7 y estaba preparando una entrada explicándolo cuando he visto este Webcast de Microsoft en castellano y, por supuesto, una imagen vale más que mil palabras, así que os dejo la url del webcast:

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032405053&EventCategory=5&culture=es-ES&CountryCode=ES

Espero que os resulte útil.

Saludos.

Cursos Microsoft

Os dejo un montón de cursos que ha publicado Microsoft y que son completamente gratis. Como veréis hay para todos los gustos.

http://www.microsoft.com/spanish/msdn/spain/cursosonline.mspx

Un saludo!!

miércoles, 11 de febrero de 2009

Evento Windows 7 para Partners

El objetivo de esta entrada es contar mi impresión sobre el evento de Windows 7 que tuvo lugar ayer en Madrid.


Además de las aplicaciones que se incluirán en la versión Enterprise, de las que se habla con mucho detalle en la web del producto y de las que hablaré en otras entradas, me gustaría contar mi opinión tanto del evento como del producto.

Sobre el evento tengo que reconocer que me ha gustado bastante, sobre todo por la claridad con la que se habló.

Acerca del producto había leído muchas opiniones y en la mayoría la impresión era muy buena pero sigo pensando que ni Windows Vista es tan malo ni Windows 7 la solución a todos los males. Desde mi punto de vista, Windows 7, por mucho que haya cambiado internamente, es un Vista optimizado y mejorado, sacado al mercado en un momento en el que la mayoría de los pc's que se venden son capaces de soportarlo (cosa que no ocurrió con Vista) y con un objetivo muy claro, aumentar el rendimiento del usuario.

En el evento se dijeron dos cosas que desde mi punto de vista son fundamentales, por un lado que las aplicaciones que no funcionan en Vista tampoco lo harán en Windows 7 y que aunque todavía se desconocen los reqerimientos mínimos para este sistema operativo lo más probable es que sean los mismos que para Vista, eso sí, tres años más tarde. No obstante, me gustaría mencionar que la demo se hizo en un portatil con 1 GB de RAM, con varias aplicaciones abiertas y el S.O. no se colgaba ni daba la impresión de que fuera lento. Además es importante destacar que Windows 7 arranca muchos menos procesos y esto influye positivamente en el rendimiento.

Aunque ya tengamos una beta del producto, todavía no está fijada la fecha de lanzamiento ni el contenido exacto de cada versión, pero lo que sí parece claro es que "7" no es un "code name", sino que será el nombre comercial con el que saldrá a la venta. Esto es algo que me resultó bastante llamativo.

Bueno, no quiero aburrir a nadie, así que por hoy termino, pero publicaré más entradas sobre Windows 7 conforme lo vaya probando.

Un saludo.

lunes, 2 de febrero de 2009

Telnet en Windows Vista

No sé si os abréis fijado en que en Windows Vista, no viene Telnet activado por defecto (al menos en la versión Business). Tengo que reconocer que es algo que hasta esta hoy no sabía pero por supuesto, se puede activar.

Para activarlo basta con abrir el panel de control, pinchar en programas y características y, finalmente seleccionar el checkbox que hay a la izquierda de cliente Telnet y aceptar.

lunes, 26 de enero de 2009

Dar formato condicional en Excel 2007

Hacer esto es tan simple como seleccionar las celdas en las que queremos insertar los indicadores (o KPI's), en la pestaña "Inicio" pulsar en Formato condicional->Conjuntos de Iconos y una vez aqui seleccionamos el conjunto de indicadores que más nos guste y que mejor se ajuste en cada caso.

Una vez seleccionado el tipo de indicadores, editaremos la regla de formato condicional. Para ello pincharemos en Formato condicional->Administrar reglas... y aparecerá la siguiente ventana.

En este caso no tendremos que preocuparnos de qué regla vamos a editar ya que sólo hay una. La seleccionamos, pulsamos Editar regla... y aparecerá la siguiente ventana.

Como podéis ver en la imagen, yo ya he editado la regla para que haga lo que conté en la entrada anterior. Para que sea lo más genérico posible, en vez de introducir valores, he introducido celdas y, así, si hay trabajadores con jornadas distintas no tendré que preocuparme de editar la regla, bastará con cambiar el número de horas en otra tabla pequeña dentro de la misma hoja.

viernes, 23 de enero de 2009

Indicadores ( KPI s) en excel 2007

Aunque ya hace tiempo que salió la versión 2007 de MS Office y hay mucha gente que la tiene, todavía muchos desconocen las novedades que se han introducido en ella.

En este post me voy a centrar en Excel 2007, concretamente en los indicadores o KPI´s que se pueden insertar y que pueden convertir una tabla muy densa en una tabla grande pero que aporte información de un vistazo.

Imaginemos que queremos llevar un control de las horas que trabajamos al mes, o de las horas que trabajan nuestros empleados. En el caso de que nos interesase la segunda opción, si no tenemos muchos empleados, podríamos tener una hoja por cada empleado y otra hoja de resumen general. No obstante, en cualquier caso, la tabla resultante no es pequeña, ya que tendremos al menos 12 columnas (una por mes) y dentro de cada columna, al menos otras 3 (Hora Entrada, Hora Salida y Horas Trabajadas) y 31 filas (una por día) y además de esto, lo más probable es que tengamos otras tablas para controlar otras cosas. Ciertamente la tabla resultante es bastante grande y su información no es visible de un vistazo, pero, ¿qué pasa si usamos indicadores?. Vean la siguiente imagen.



¿Qué les parece? Debido al tamaño de la tabla, ésta no ha salido entera en la captura de pantalla (aún habiendo reducido el zoom) pero, si se fijan, los indicadores son tan llamativos que en apenas un vistazo podemos ver si se ha trabajado más o menos horas de las debidas por día (he asumido que el trabajor trabaja media jornada) y se podría hacer lo mismo para los totales.


Si se fijan en esta segunda imagen, verán que hay tres indicadores configurados de la siguiente forma:

  • Si el empleado no trabaja ese día aparecerá una x roja.
  • Si el empleado trabaja menos de 4 horas (media jornada) aparecerá un símbolo de exclamación amarillo.
  • Si el empleado trabaja 4 horas o más aparecerá un símbolo verde.

Hacer esto es muy fácil y se tarda 5 minutos, pero en contarlo se tarda algo más, así que se lo contaré en la siguiente entrada.

Un saludo!

lunes, 12 de enero de 2009

Firmar digitalmente una macro

Cuando abrimos un documento que contiene macros, nos aparece un mensaje advirtiéndonos de que abrirlo puede ser peligroso. Evitar esto es tan simple como firmar las macros.

Voy a contar cómo firmar una macro con Office 2007.

En primer lugar tenemos que crear un certificado:
  • Pinchamos en Inicio->Todos los programas->Microsoft Office->Herramientas de Microsoft Office->Certificado Digital para proyectos de VBA.

  • Introducimos el nombre que queramos (es el nombre del certificado) y pulsamos "Aceptar".

Ya tenemos creado el certificado, ahora tenemos que firmar nuestras macros. Esto es tan simple como abrir el documento que las contenga, ir al editor de Visual Basic y pulsar en Herramientas -> Firma digital...



Pulsamos en Elegir y aparecerá una lista de los certificados que hay en el equipo, seleccionamos el que queramos usar para firmar nuestra macro y pulsamos aceptar, posteriormente guardamos y ya tenemos la macro firmada!!

El siguiente punto para eliminar el mensaje de advertencia al abrir un documento que contenga macros es abrir el documento o documentos que contienen macros y que hemos firmado anteriormente, pulsar en opciones y, finalmente, en "Confiar en todos los documentos de este editor" como se indica en la siguiente imagen.

Como podéis ver es bastante fácil.

Saludos.