none
LookUp definicion de listas RRS feed

  • Pregunta

  • Hola amigos,

    quisiera si me pueden asesorar en como crear un campo lookup en la definición de lista,

    si me pudieran dar un ejemplo practico se los agradecería, muchas gracias

    jueves, 14 de febrero de 2013 14:55

Respuestas

  • Hola MasterKapell yo por el xml me doy por vencido, al final tienes que poner muchos identificadores fijos y es un tanto royo, tedioso y si quitas y pones la solución al final se raya mucho.

    Te dejo un poco lo que yo estoy haciendo y veras lo sencillo que es:

    SPList myList = web.Lists["Empleado"];
                                    SPList myLookupList = web.Lists["Departamento];
                                    myList.Fields.AddLookup("Departamento, myLookupList.ID, false);
                                    SPFieldLookup fieldLookup = myList.Fields["Departamento"] as SPFieldLookup;  
                                    fieldLookup.LookupField = myLookupList.Fields["Title"].InternalName;
                                    fieldLookup.Update();

    Te he puesto el codigo de como seria un ejemplo de Departamento/Empleado, te explico un poco la lista principal Empleado le añades un campo de tipo Lookup y posteriormente lo que hace es poner la vinculación de ese campo con la lista Departamento. El resto de campos es mucho mas sencillo, si estas interesado en crear todo este proceso mediante codigo, indicamelo y te lo paso bien por SkyDrive o como me indiques (Ayer en el WebCast  de Suges indique como podiamos hacer este proceso mediante codigo).

    Pero antes de hacer esta asignación tienes que tener la lista creada sin este campo creado (la lista la puedes crear como quieras)

    Si lo que quieres es seguir con la definición de la Lista te recomiendo que te bajes la extensión de SharePoint Software Factory que te facilita un poco mas la cosa.

    Ya comentas cualquier cosa.

    Saludos,

    • Marcado como respuesta Masterkapell jueves, 14 de febrero de 2013 21:11
    jueves, 14 de febrero de 2013 16:23

Todas las respuestas

  • Hola MarterKapell,

    Lo quieres crear mediante codigo o mediante el asistente de SP o Visual Studio? Yo generalmente lo hago por código, el asistente  de Visual Studio es muy malo y la opción siempre lo puedes realizar de forma manual.

    El campo Lookup es para mostrar información de otro elemento de una lista, un claro ejemplo de maestro detalle, es decir tienes una lista departamento y una lista empleados, dentro de la lista empleados tienes un campo departamento que es de tipo lookup a la lista departamento. 

    Si lo quieres realizar mediante código aquí te pongo un ejemplo :

    SPList myList = web.Lists[listas.Name];
                                    SPList myLookupList = web.Lists[field.Loockup.ListaDestino];
                                    myList.Fields.AddLookup(field.Name, myLookupList.ID, false);
                                    SPFieldLookup fieldLookup = myList.Fields[field.Name] as SPFieldLookup;  
                                    fieldLookup.LookupField = myLookupList.Fields[field.Loockup.ColumnaDestino].InternalName;
                                    fieldLookup.Update();

    Si tienes cualquier duda o te entendio mal pues ya me comentas.

    Un saludo,

    Adrián

    jueves, 14 de febrero de 2013 15:17
  • Gracias por la respuesta, esto lo estoy haciendo a través de definiciones de listas.

    del código no entiendo mucho, me faltan declaraciones de algunos objetos, podrias enviar el mismo codigo con el ejemplo de departamento/empleados si se pudiera y las declaraciones de tipodato de los objetos fiedLookUp, field porfa

    Saludos

    jueves, 14 de febrero de 2013 15:29
  • Hola MasterKapell yo por el xml me doy por vencido, al final tienes que poner muchos identificadores fijos y es un tanto royo, tedioso y si quitas y pones la solución al final se raya mucho.

    Te dejo un poco lo que yo estoy haciendo y veras lo sencillo que es:

    SPList myList = web.Lists["Empleado"];
                                    SPList myLookupList = web.Lists["Departamento];
                                    myList.Fields.AddLookup("Departamento, myLookupList.ID, false);
                                    SPFieldLookup fieldLookup = myList.Fields["Departamento"] as SPFieldLookup;  
                                    fieldLookup.LookupField = myLookupList.Fields["Title"].InternalName;
                                    fieldLookup.Update();

    Te he puesto el codigo de como seria un ejemplo de Departamento/Empleado, te explico un poco la lista principal Empleado le añades un campo de tipo Lookup y posteriormente lo que hace es poner la vinculación de ese campo con la lista Departamento. El resto de campos es mucho mas sencillo, si estas interesado en crear todo este proceso mediante codigo, indicamelo y te lo paso bien por SkyDrive o como me indiques (Ayer en el WebCast  de Suges indique como podiamos hacer este proceso mediante codigo).

    Pero antes de hacer esta asignación tienes que tener la lista creada sin este campo creado (la lista la puedes crear como quieras)

    Si lo que quieres es seguir con la definición de la Lista te recomiendo que te bajes la extensión de SharePoint Software Factory que te facilita un poco mas la cosa.

    Ya comentas cualquier cosa.

    Saludos,

    • Marcado como respuesta Masterkapell jueves, 14 de febrero de 2013 21:11
    jueves, 14 de febrero de 2013 16:23
  • Gracias sys me puedes enviar el codigo por skydrive seria buenisimo, aunque tratare de implementarlo con lo que me indicas ahora
    jueves, 14 de febrero de 2013 20:02
  • Con lo que me enviaste pude resolver el problema pero hay unas lineas que me fallaron, las fiedlookup. al final opte por sacarselas y me corres in problemas, esas lineas que hacen??

    te adjunto mi codigo 

     Dim Cliente As SPList = myListColl("Cliente")
                    nuevaLista.Fields.AddLookup("Cliente", Cliente.ID, True)
                    Dim fieldLookUp As SPFieldLookup = CType(nuevaLista.Fields("Cliente"), SPFieldLookup)
                    fieldLookUp.Update()

    donde nueva lista es un alista llamada proyecto.

    lo otro, relacionado con esto mismo, como puedo hacer que aparezca otro campo de la lista cliente(en este caso)  como la descripcion del cliente, para que esta aparezca en la vista de proyectos???

    nuevamente muchas gracias amigo, se paso.

    jueves, 14 de febrero de 2013 21:10
  • Hola Marterkapell,

    El codigo de la demo del WebCast lo va a publicar Juan Carlos esta mañana en su blog asi que de hay lo puedes coger.

    Lo que comentas de que te aparezca otro campo para ello lo que tienes que poner es  en esta linea de codigo  nuevaLista.Fields.AddLookup("Cliente", Cliente.ID, True) cambiar el ID por el campo que tu quieras mostrar.

    Saludos,

    viernes, 15 de febrero de 2013 9:06