August 2007 - Posts
Proceso de creación de las conexiones:
- En el menú Herramientas, haga clic en Conexiones de datos.
- En el cuadro de diálogo Conexiones de datos, haga clic en Agregar.
- En el Asistente para la conexión de datos, haga clic en Crear una nueva conexión para, haga clic en Recibir datos y, a continuación, haga clic en Siguiente.
- En la siguiente página del asistente, haga clic en Base de datos (sólo de Microsoft SQL Server o Microsoft Office Access) y, a continuación, en Siguiente.
- En la página siguiente del asistente, haga clic en Seleccionar base de datos.
- En el cuadro de diálogo Seleccionar origen de datos, haga clic en Nuevo origen.
- En la lista ¿A qué tipo de origen de datos desea conectarse?, haga clic en Microsoft SQL Server y, a continuación, haga clic en Siguiente.
- En el cuadro Nombre del servidor, escriba el nombre del servidor con la base de datos.
- En Credenciales de conexión, siga uno de estos procedimientos:
- Si la base de datos determina quién tiene acceso basado en las credenciales usadas en una red de Microsoft Windows, haga clic en Usar autenticación de Windows.
- Si la base de datos determina quién tiene acceso basado en un nombre de usuario y contraseña específicos que obtiene del administrador de la base de datos, haga clic en Utilizar el nombre de usuario y la contraseña siguientes y escriba el nombre de usuario y la contraseña en los cuadros Nombre de usuario y Contraseña.
- Haga clic en Siguiente.
- En la siguiente página del asistente, en la lista Seleccione la base de datos que contiene la información que desea, haga clic en la base de datos que desea usar, active la casilla de verificación Conectar con una tabla específica, haga clic en el nombre de la tabla principal y, a continuación, haga clic en Siguiente.
- En la página siguiente del asistente, en el cuadro Nombre de archivo, escriba un nombre para el archivo que almacena la información de conexión de datos.
- Para guardar esta configuración, haga clic en Finalizar.
- Agregue todas las tablas que desee usar en la conexión de datos de consulta.
¿Cómo?
- Haga clic en Agregar tabla.
- En el cuadro de diálogo Agregar tabla o consulta, haga clic en el nombre de la tabla secundaria y, a continuación, haga clic en Siguiente. InfoPath intentará establecer las relaciones mediante la coincidencia de nombres de campos de ambas tablas. Si no desea utilizar la relación sugerida, seleccione esta relación y haga clic en Quitar relación. Para agregar una relación, haga clic en Agregar relación. En el cuadro de diálogo Agregar relación, haga clic en los nombres de los campos relacionados en ambas columnas y, después, haga clic en Aceptar.
- Haga clic en Finalizar.
- Para agregar otras tablas secundarias, repita estos pasos.
- Haga clic en Siguiente.
- Para que los resultados de la conexión de datos de consulta estén disponibles cuando el formulario no está conectado a la red, active la casilla de verificación Almacenar una copia de los datos en la plantilla de formulario.
Seguridad Si se activa esta casilla de verificación, se almacenan los datos en el equipo del usuario cuando el formulario usa esta conexión de datos. Si el formulario está obteniendo datos confidenciales de esta conexión de datos, es posible que desee deshabilitar esta característica para ayudar a proteger los datos en caso de que se robe o se pierda el equipo.
- Haga clic en Siguiente.
- En la siguiente página del asistente, escriba un nombre descriptivo para esta conexión de datos secundaria. Si desea que el formulario reciba datos automáticamente cada vez que se abre el formulario, active la casilla de verificación Recuperar datos automáticamente cuando se abre un formulario.
Ejemplo de configuración de un campo de lista que obitene la información de la conexión:
Configuración de los campos de lista para la conexión con las Fuentes de Datos de SQL:
1. Damos doble clic sobre el campo de lista, con lo que se abren las propiedades del mismo

2. En la sección “List box entries” seleccionamos la opción: “Look up from an external data source” y elegimos la Fuente de Datos que contiene la información a mostrar en dicha lista:

3. Ahora en el campo “Entries” seleccionamos el campo de la Fuente de Datos a mostrar, en caso de que se quiera mostar un dato y guardar internamente en el control otro diferente se selecciona la carpeta de la Fuente de Datos que contiene esos campos:

4. Ahora seleccionamos el campo que se guardará internamente en “Value” y el que se mostrará en “Display name”, cuando se elige un campo en “Entries” estos datos contienen solo un punto (.) lo que indica que se mostrara y guardara el campo seleccionado en la lista:

5. Damos ok y la lista queda configurada.
Publican, abren con IP y listo sin broncas, los problemas se presentan cuando lo publicas con compatibilidad Browser y lo quieres abrir con Form Services... te marca un error de conexión a la base de datos y no te carga la información en las listas... ¿Cómo solucionarlo?... lo veremos en el siguiente Post... no se lo pierdan...
Saludos;
Vlad
Para que vean que "no andaba muerto, solo andaba de parranda", un post:
Les paso un tip que me encontre y probe del buen Ishai Sagi que nos platica sobre una solución para SharePoint 2003, pero que yo ya probe en MOSS 2007 y funciona... la necesidad es la de aplicar un tema diferente al predeterminado (que siempre es el que se aplica), al crear sitios dentro de SharePoint... Aqui lo que él comenta
La solución es más sencilla de lo que uno puede pensar, claro que tiene sus inconvenientes, ya que esta solución sirve cuando queremos poner otro tema como el predeterminado; es decir, no es muy dinámico que digamos pero funciona como solución rápida:
· Agregar la siguiente línea en los archivos onet.xml de las definiciones de sitio que deseemos que tengan un tema distinto, justo al final de la sección “Configurations”:
<ExecuteUrl Url="_layouts/1033/ThemeSetter.aspx?Theme=NOMBREDELTEMA" />
En NOMBREDELTEMA obviamente va el nombre del tema a aplicar. El nombre del archivo aspx puede ser el que el usuario desee
Ejemplo:

Esto es para la versión en ingles, dependiendo del idioma en el que se este trabajando, el “LCID” del lenguaje cambiara (ejemplos: 3082 – español, 2058 – español México, etc)
· Ir a la siguiente ruta:
C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\1033
Nuevamente esto dependerá del idioma en el que se este trabajando (1033 – ingles) y de la versión de MOSS (12 – MOSS 2007).
· En esa ruta, crear un archivo con el siguiente nombre: “ThemeSetter.aspx”, el nombre debe de ser el que el usuario eligió en el primer paso.
· Abrir dicho archivo y agregar el siguiente código:
<html dir="ltr">
<%@ Page Language="C#" ValidateRequest="False" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%
SPWeb myNewWeb = SPControl.GetContextWeb(Context);
myNewWeb.AllowUnsafeUpdates = true;
myNewWeb.ApplyTheme(this.Page.Request["Theme"].ToString());
myNewWeb.Update();
Response.Redirect(myNewWeb.Url);
%>
</html>
· Una vez guardado el archivo damos un “iisreset” y probamos con la(s) definición(es) de sitio que hemos alterado, al crearse el sitio debe aparecer con el tema que especificamos.
Saludos;
Vlad
Yo tan feliz que estaba metiendo controles del contact selector por aca y por alla, presumiendo mi extremadamente detallada guía de como usarlo en InfoPath aquí y apenas el día de ayer me he topado de narices con la realidad...
Realizando un proyecto para un cliente, me toco hacer la ya tan acostumbrada parte de los formularios IP y los workflows para el proceso de negocio del cliente, cuando estaba haciendo el diseño del formulario encontre con que había que meter un par de campos para que el usuario ingrese correos electrónicos, dije entre mi: "perfecto, otra oportunidad para mostrar el contact selector", cual viene siendo mi sorpresa cuando al montar el segundo contact selector me decía IP que era un campo repetido y claro porque estaba usando el mismo grupo gpContactSelector asi que dije: "bueno creo otro grupo con nombre distinto"... pero entonces vino a mi memoria que no puedes usar otros nombres en la definición de los campos del contact selector ya que no serviría el campo, y tampoco puedes tener dos campos con el mismo nombre... o desilusión... no podía hacer uso de mi control estrella...
Seguí realizando el diseño usando solo campos de texto para esa parte, pero me quede con la espinita y cuando eso me sucede hago hasta lo imposible por sacarmela (la espinita)... asi es que me puse a investigar que podía hacer en ese caso dentro de InfoPath y revisando algunas cosas en internet sobre el manejo de campos y controles encontre la respuesta a mis plegarias...
Solución para tener más de 1 control tipo Contact Selector en un mismo formulario de IP:
1. Creamos nuestro típico grupo "gpContactSelector"...
2. Creamos otro grupo con un nombre distinto, la verdad el nombre del grupo no importa mucho, solo tienen que ser diferentes entre si; pero solo el grupo raíz vacio, lo que lleva dentro no lo creamos, es decir, ni el grupo Person, ni los campos DisplayName, AccountId, AccountType...
3. Abrimos nuestro primer grupo que ya tiene su campo Person y sus campos DisplayName, AccountId y AccountType
4. Damos un clic derecho sobre el grupo repetitivo Person y seleccionamos la opción Referencia... ó Reference...
5. En la ventana que nos aparece seleccionamos el segundo grupo que creamos vacio y damos clic en OK...
6. Seleccionamos el segundo grupo y lo insertamos en el formulario como un control tipo Contact Selector...
7. Publicamos y probamos...
Listo, ya tenemos dos campos tipo Contact Selector independientes y funcionales... quieres o necesitas poner más... pues sigue el mismo procedimiento creando nuevos grupos vacios y referenciandolos en el person de tu grupo Principal...
Espero este tip les sirva...
Saludos;
Vlad