Mostrar contenido consulta Web parte resultados en una cuadrícula / Tabla

Introducción y objetivo

Fuera de la caja, MOSS’ Elemento Web consulta de contenido (CQWP) muestra los resultados en formato de lista, similar a resultados de búsqueda. También es posible mostrar los resultados en un formato de cuadrícula (i.e. Formato de tabla HTML). Formatos de cuadrícula son mejores en algunas circunstancias. Describo cómo lograr ese efecto en el presente artículo.

Escenario de negocio

He trabajado con un cliente en una implementación MOSS de toda la empresa. Hemos diseñado su taxonomía que proyectos son ciudadanos de primera clase en la jerarquía y tienen su propio sitio de nivel superior. Gerentes de proyectos mantienen una lista de singleton de información Resumen del proyecto, como título, presupuesto, fecha de terminación prevista, presupuesto restante y otros campos de tipo Resumen. Por "singleton" Me refiero a una lista personalizada de SharePoint garantizada que contiene sólo un elemento. Manera simplista, este aspecto:

imagen

El enfoque técnico es lo mismo como se describe aquí (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). La CQWP usa una transformación XSL para emitir HTML para el navegador para representar.

Siempre preveo el resultado antes de zambullirse en el XSL porque XSL es una pesadilla. Aquí está mi resultado deseado:

imagen

HTML así genera ese resultado:

<HTML>
 <cuerpo>
 <Centro>
 <mesa frontera= 1>

<!-- Etiquetas:>
 <TR bgcolor= azul>
 <TD><fuente Color= blanco><b>Nombre del proyecto</b></fuente></TD>
 <TD alinear= a la derecha><fuente Color= blanco><b>Fecha completa</b></fuente></TD>
 <TD alinear= a la derecha><fuente Color= blanco><b>Presupuesto</b></fuente></TD>
 <TD alinear= a la derecha><fuente Color= blanco><b>Gasto real</b></fuente></TD>
 <TD><fuente Color= blanco><b>Estado general</b></fuente></TD>
 </TR>

<TR>
 <TD>Sala de ordenadores Re-cablea.</TD>
 <TD alinear= a la derecha>02/01/08</TD>
 <TD alinear= a la derecha>22,500.00</TD>
 <TD alinear= a la derecha>19,000.00</TD>
 <TD>En progreso</TD>
 </TR>

<TR>
 <TD>Servidores de provisión para actualización de SQL</TD>
 <TD alinear= a la derecha>04/01/08</TD>
 <TD alinear= a la derecha>7,500.00</TD>
 <TD alinear= a la derecha>0.00</TD>
 <TD>Planeado</TD>
 </TR>

</mesa>
 </Centro>
 </cuerpo>
</HTML>

Enfoque

Siga estos pasos para crear la red:

  1. Identificar los componentes de la red (filas o columnas).
  2. Definir y crear columnas de sitio necesario.
  3. Crear sub sitios para los proyectos y las listas de singleton.
  4. Agregar el CQWP a una página web y configurar para buscar tus listas.
  5. Modificar XML del CQWP a recoger las columnas adicionales.
  6. Modificar el XSL para generar una tabla.

Me voy a concentrar en el número seis. Los números uno a través de cuatro son directa y algo que ya ha hecho cualquier usuario CQWP. Número cinco ha sido documentado por otros incluyendo este exhaustivo artículo cargado de captura de pantalla de MSDN aquí (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) blog de Heather Solomon y aquí (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Tuercas y pernos

Iniciar y ejecutar pasos del uno al cinco, según la documentación de MSDN y artículo de Heather Solomon.

En este punto, ha agregado su CQWP a la página y tienes tu <CommonViewFields> configurado según sea necesario.

Siguiendo los pasos habituales, Estos resultados intermedios:

1. Crear un tipo de contenido, una lista personalizada templatized para ese tipo de contenido y dos sitios. Aquí es el tipo de contenido:

imagen

Aquí está la estructura del sitio:

imagen

2. Añadir el CQWP después de crear mi proyecto subsitios y singleton listas Resumen proyecto:

imagen

3. Añadir toda la información adicional que quiero mediante la <CommonViewFields>:

        <propiedad nombre="CommonViewFields" tipo="cadena">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</propiedad>

Tenga en cuenta que tenía que guardar todos los campos de propiedad sobre una línea o no funcionaría. (CQWP me diría que la consulta no devuelva ningún elemento).

4. En este punto, Estamos listos para ir más allá del artículo de MSDN y tirón en sobre artículo de Heather Solomon. Seguir sus pasos a partir de cerca de paso #5 para crear una personalizada / unghosted versión de ItemStyle.xsl. Sigo el Consejo de Heather, a través de paso 11 a estos resultados intermedios:

4.1: Nombre mi Plantilla XSL como sigue:

<XSL:nombre de la plantilla = "Grid" fósforo = "fila[@Style = 'Red']" modo = "itemEstilo">

También ligeramente le sugirió modificar <XSL:para cada …> mediante la adición de un <BR /> etiqueta para proporcionar un listado limpiador:

    <XSL:para cada Seleccione="@*">
      P:<XSL:valor de Seleccione="nombre()" /><BR/>
    </XSL:para cada>

4.2: Modificar el elemento web, ir a la apariencia y seleccione mi Grid"" estilo:

imagen

Aplicar el cambio y aquí está el resultado:

imagen

De lo anterior podemos ver que los campos que queremos (Nombre del proyecto, gasto, estado, etc.) están disponibles para nosotros cuando emitimos el HTML. No sólo, pero vemos los nombres por los cuales debemos referencia esas columnas en el XSL. Por ejemplo, referenciamos el estatus del proyecto como "Project_x005F_x0020_Name".

En este punto, Partimos del blog de Heather y de los hombros de los gigantes, Añadir mi propia poco.

ContentQueryMain.xsl

NOTA: Cuando haga cambios a tanto ContentQueryMain.xsl como ItemStyle.xsl, es necesario comprobar que los archivos vuelve a antes de usted ver el efecto de los cambios.

Para fines de fabricación de rejilla, MOSS utiliza dos diferentes archivos XSL para generar los resultados que vemos de un CQWP. Para generar el bit anterior de salida, modificamos el ItemStyle.xsl. MOSS utiliza otro archivo XSL, ContentQueryMain.xsl a en conjunto con el ItemStyle.xsl para generar código HTML. Como su nombre lo indica, ContentQueryMain.xsl es el principal"" XSL que controla el flujo general de traducción. Recorre en iteración todos los elementos encontrados y los pasa uno a uno a plantillas en ItemStyle.xsl. Modificaremos el ItemStyle.xsl para generar la apertura <mesa> etiqueta antes de emitir la primera fila de datos y el cierre <mesa> etiqueta después de la emisión de la última fila. Para lograr esto, ContentQueryMain.xsl modificado para pasar dos parámetros a nuestra red"" plantilla de ItemStyle.xsl, "última fila" y "fila actual". ItemStyle.xsl usa estos para emitir condicionalmente las etiquetas necesarias.

Utilizando la técnica de Heather Solomon, que busque ContentQueryMain.xsl. Se encuentra en el mismo lugar que el ItemStyle.xsl. Esta captura de pantalla debe ayudar a:

imagen

Tenemos que hacer los siguientes cambios:

  • Modificar una plantilla xsl, "CallItemTemplate" que realmente invoca nuestra plantilla cuadrícula en ItemStyle.xsl. Pasaremos dos parámetros a la plantilla de cuadrícula por lo que tendrán los datos que necesita para generar condicional de apertura y cierre <mesa> Etiquetas.
  • Modificar otro poco de ContentQueryMain.xsl que se llama el "CallItemTemplate" pasar un "LastRow" parámetro así LastRow puede transmitirse a nuestra plantilla de cuadrícula.

Ubique la plantilla llamada "OuterTemplate.CallItemTemplate" identificada por la cadena:

  <XSL:plantilla nombre="OuterTemplate.CallItemTemplate">

Vuelva a colocar la plantilla entera como sigue:

  <XSL:plantilla nombre="OuterTemplate.CallItemTemplate">
    <XSL:param nombre="CurPosition" />

    <!--
      Añadir el "LastRow" parámetro.
      Sólo la usamos cuando el elemento style pase en "Grid".
    -->
    <XSL:param nombre="LastRow" />

    <XSL:Elija>
      <XSL:Cuando prueba="@Style = 'NewsRollUpItem'">
        <XSL:Aplique-plantillas Seleccione="." modo="itemEstilo">
          <XSL:con-param nombre="EditMode" Seleccione="$cbq_iseditmode" />
        </XSL:Aplique-plantillas>
      </XSL:Cuando>
      <XSL:Cuando prueba="@Style = 'NewsBigItem'">
        <XSL:Aplique-plantillas Seleccione="." modo="itemEstilo">
          <XSL:con-param nombre="CurPos" Seleccione="$CurPosition" />
        </XSL:Aplique-plantillas>
      </XSL:Cuando>
      <XSL:Cuando prueba="@Style = 'NewsCategoryItem'">
        <XSL:Aplique-plantillas Seleccione="." modo="itemEstilo">
          <XSL:con-param nombre="CurPos" Seleccione="$CurPosition" />
        </XSL:Aplique-plantillas>
      </XSL:Cuando>

      <!--
              Pasar la posición actual y lastrow a la plantilla de itemstyle.xsl de red.
              ItemStyle.xsl que va a utilizar para emitir al aire libre y cierre <mesa> Etiquetas.
      -->
      <XSL:Cuando prueba="@Style = 'Grid'">
        <XSL:Aplique-plantillas Seleccione="." modo="itemEstilo">
          <XSL:con-param nombre="CurPos" Seleccione="$CurPosition" />
          <XSL:con-param nombre="Duran" Seleccione="$LastRow" />
        </XSL:Aplique-plantillas>
      </XSL:Cuando>

      <XSL:de lo contrario>
        <XSL:Aplique-plantillas Seleccione="." modo="itemEstilo">
        </XSL:Aplique-plantillas>
      </XSL:de lo contrario>
    </XSL:Elija>
  </XSL:plantilla>

Los comentarios describen el propósito de los cambios.

Claro, el "OuterTemplate.CallItemTemplate" se llama sí mismo de otra plantilla. Localice esa plantilla buscando esta cadena de texto:

<XSL:plantilla nombre="OuterTemplate.Body">

Desplazarse por las instrucciones en OuterTemplate.Body e introduzca el parámetro LastRow como sigue (se muestra como un comentario en cursiva):

<XSL:plantilla de llamada nombre="OuterTemplate.CallItemTemplate">
  <XSL:con-param nombre="CurPosition" Seleccione="$CurPosition" />
  <!-- Inserta el parámetro LastRow. -->
  <XSL:con-param nombre="LastRow" Seleccione="$LastRow"/>
</XSL:plantilla de llamada>

Después de todo esto, por fin tenemos cosas configuradas correctamente para que nuestro ItemStyle.xsl puede emitir <mesa> Etiquetas en el lugar correcto.

ItemStyle.Xsl

NOTA: Nuevo, Check-in ItemStyle.xsl después de hacer los cambios para que veas el efecto de esos cambios.

Aquí tenemos dos tareas:

  • Reemplazar toda la plantilla de cuadrícula. Usted puede copiar/pegar desde abajo.
  • Añadir algunos mumbo jumbo fuera de la definición de plantilla que permite "formatcurrency" plantilla para trabajo. (Sabes que tengo una manija tenue XSL).

Primero, cerca de la parte superior de ItemStyle.xsl, Añadir la siguiente línea:

  <!-- Algunas tonterías que permite mostrar los E.E.U.U.. moneda. -->
  <XSL:formato decimal nombre="personal" dígito="D" />

  <XSL:plantilla nombre="Por defecto" partido="*" modo="itemEstilo">

Nota que agregué directamente antes del <XSL:nombre de la plantilla = "Default" …> definición.

Siguiente, volver a nuestra plantilla de cuadrícula. Reemplazar toda la plantilla de cuadrícula con el código siguiente. Fondo es comentó, pero no dudes en escribirme o dejar comentarios en mi blog si tienes preguntas.

  <XSL:plantilla nombre="Red" partido="Fila de[@Style = 'Grid']" modo="itemEstilo">

    <!--
      ContentMain.xsl pasa CurPos y último.
      Utilizamos estos emitir condicionalmente el abierto y cierre <mesa> Etiquetas.
    -->
    <XSL:param nombre="CurPos" />
    <XSL:param nombre="Duran" />

    <!-- Las siguientes variables son sin modificar desde el ItemStyle.xsl estándar -->
    <XSL:variable nombre="SafeImageUrl">
      <XSL:plantilla de llamada nombre="OuterTemplate.GetSafeStaticUrl">
        <XSL:con-param nombre="UrlColumnName" Seleccione="'ImageUrl'"/>
      </XSL:plantilla de llamada>
    </XSL:variable>
    <XSL:variable nombre="SafeLinkUrl">
      <XSL:plantilla de llamada nombre="OuterTemplate.GetSafeLink">
        <XSL:con-param nombre="UrlColumnName" Seleccione="'LinkUrl'"/>
      </XSL:plantilla de llamada>
    </XSL:variable>
    <XSL:variable nombre="DisplayTitle">
      <XSL:plantilla de llamada nombre="OuterTemplate.GetTitle">
        <XSL:con-param nombre="Título" Seleccione="@Title"/>
        <XSL:con-param nombre="UrlColumnName" Seleccione="'LinkUrl'"/>
      </XSL:plantilla de llamada>
    </XSL:variable>
    <XSL:variable nombre="LinkTarget">
      <XSL:Si prueba="@OpenInNewWindow = 'True'" >_blank</XSL:Si>
    </XSL:variable>

    <!--
      Aquí definimos una variable, "tableStart".  Contiene el código HTML que usamos para definir la apertura de la mesa, así como las etiquetas de columna.  Tenga en cuenta que si CurPos = 1, incluye el código HTML en una etiqueta CDATA.
      De lo contrario, estará vacía.

      El valor de tableStart es emitidos cada vez ItemStyle se llama a través de ContentQueryMain.xsl.
    -->
    <XSL:variable nombre="tableStart">
      <XSL:Si prueba="$CurPos = 1">
        <![CDATA[
        <frontera de tabla = 1>
          <TR bgcolor = "blue">
            <TD><color de fuente = "blanco"><b>Nombre del proyecto</b></fuente></TD>
            <TD align = "right"><color de fuente = "blanco"><b>Fecha completa</b></fuente></TD>
            <TD align = "right"><color de fuente = "blanco"><b>Presupuesto</b></fuente></TD>
            <TD align = "right"><color de fuente = "blanco"><b>Gasto real</b></fuente></TD>
            <TD><color de fuente = "blanco"><b>Estado general</b></fuente></TD>
          </TR>
        ]]>
      </XSL:Si>
    </XSL:variable>

    <!--
      Otra variable, tableEnd simplemente define el cierre etiqueta de mesa.

      Como con tableStart, siempre es sido emitida.  Por esta razón se asigna su valor condicional en base a si nos hemos pasados la última fila por ContentQueryMain.xsl.
    -->
    <XSL:variable nombre="tableEnd">
      <XSL:Si prueba="$CurPos = $Last">
        <![CDATA[ </mesa> ]]>
      </XSL:Si>
    </XSL:variable>

    <!--
      Emitir siempre el contenido de tableStart.  Si no se trata de la primera fila pasada a nosotros por ContentQueryMain.xsl, entonces sabemos que su valor estará en blanco.

      Desactivar el escape porque cuando tableStart no en blanco, incluye HTML real que queremos que el navegador procesa.  Si no decimos el analizador XSL para desactivar la salida de escape, se van a generar cosas como"&lt;mesa&gt;" en vez de"<mesa>".
    -->
    <XSL:valor de Seleccione="$tableStart" Disable-output-escaping=""/>


    <TR>
      <!--
      P:Project_x005F_x0020_Name P:Project_x005F_x0020_End_x005F_x0020_Date P:Project_x005F_x0020_Budget P:Project_x005F_x0020_Expenses P:Project_x005F_x0020_Status
      -->
      <TD>
        <XSL:valor de Seleccione="@Project_x005F_x0020_Name"/>
      </TD>

      <TD alinear="derecho">
        <XSL:valor de Seleccione="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </TD>

      <TD alinear="derecho">
        <XSL:plantilla de llamada nombre="FormatCurrency">
          <XSL:con-param nombre="valor" 
Seleccione="@Project_x005F_x0020_Budget"></XSL:con-param> </XSL:plantilla de llamada> </TD> <TD alinear="derecho"> <XSL:plantilla de llamada nombre="FormatCurrency"> <XSL:con-param nombre="valor" Seleccione="@Project_x005F_x0020_Expenses">
</XSL:con-param> </XSL:plantilla de llamada> </TD> <TD> <XSL:valor de Seleccione="@Project_x005F_x0020_Status"/> </TD> <!-- Lo siguiente es comentada para clarificar las cosas. Sin embargo, traerlo de vuelta y todo eso en un <TD> para ver su efecto. --> <!-- <div id = "linkitem" class = "item"> <XSL:Si la prueba = "string-length($SafeImageUrl) != 0 "> <div class = "imagen-área-left"> <a href = "{$SafeLinkUrl}" target = "{$LinkTarget}"> <IMG class = "imagen-ancho fijo" src = "{$SafeImageUrl}"
Alt = "{@ImageUrlAltText}"/> </un> </div> </XSL:Si> <div clase = "elemento de enlace"> <XSL:plantilla de llamada
Name="OuterTemplate.CallPresenceStatusIconTemplate"/> <a href = "{$SafeLinkUrl}"
target = "{$LinkTarget}" title = "{@LinkToolTip}"> <XSL:valor de select = "$DispXSLTitle" /> </un> <div class = "description"> <XSL:valor de select="@Description" /> </div> </div> </div>
--> </TR> <!-- Emiten el cierre etiqueta de mesa. Si no estamos en la última fila, Esto será en blanco. --> <XSL:valor de Seleccione="$tableEnd" Disable-output-escaping=""/> </XSL:plantilla> <XSL:plantilla nombre="FormatCurrency"> <XSL:param nombre="valor" Seleccione="0" /> <XSL:valor de Seleccione='formato de número($valor, "$DDD,DDD,DDD.DD", "el personal")' /> </XSL:plantilla>

22 pensamientos sobre "Mostrar contenido consulta Web parte resultados en una cuadrícula / Tabla

  1. Andreas

    Aah… fue porque he llamado mi estilo de lista diferente y no me di cuenta que en la ContentQueryMain.xsl comprueba por el "estilo":

    <XSL:Cuando test="@Style='NameOfMyStyle'">

    Con eso retitulado funcionó. 🙂

    Respuesta
  2. Andreas

    Casi funcionó para mí: Me las arreglo para la salida del </mesa> fin etiqueta correctamente, Pero falta la etiqueta inicial. Al parecer la prueba = "$CurPos = 1" No devuelva true. ¿Pero por qué?

    Respuesta
  3. Anand singh Rawat

    Gran Post. Paul he hecho todas las cosas arriba. Yo tengo una consulta, ¿Cómo puedo alcanzar la suma de "TOTAL gastos reales" o suma del valor de dos columnas.

    Respuesta
  4. Lisa

    Has hecho algún trabajo con la creación de archivos xsl personalizado de ContentQueryMain e itemEstilo? La razón que le pido es que no quiero que te preocupes por mis estilos personalizados se sobrescriban con parches o actualizaciones. ¿Tienes ejemplos? He intentado hacer una copia idéntica de la ContentQueryMain.xsl y cargar esa nueva copia personalizada a la biblioteca de estilo. Al poner una referencia a este archivo xsl en propiedad MainXslLink de la .webpart, Obtener 401 no autorizado. El archivo xsl personalizado es una versión publicada y todo el mundo tiene acceso de lectura a lo.

    Respuesta
  5. Greg Sheridan

    Hola, Este fue un mensaje muy útil. Lo tengo todo trabajo, y cambio también implementado Mike Brown para grupos
    los resultados dentro de la tabla por lo que sea que elija como el parámetro Group By en las propiedades de la CQWB.
    Hice el título un enlace también, Así que funciona muy bien. Todavía tengo un problema, Aunque. Yo soy agrupar los resultados por nombre del sitio. Dentro de la tabla, los grupos muy bien, y se ve muy bien, Pero todavía es la impresión que todo el grupo
    nombres(en mi caso los nombres del sitio) por encima de la mesa. ¿Alguien sabe cómo deshacerse de estos?
    Gracias,
    Greg

    Respuesta
  6. Sin nombre

    Buen artículo. Conseguí darle la apariencia de listas de Sharepoint por defecto mi mesa analizando el código fuente de la lista. Aquí están los principales bloques de HTML necesarios para caber en itemEstilo:

    <Ancho de tabla = "100%" class = "ms-listviewtable" border = 0 cellspacing = 0 cellpadding = 1 dir = "None">

    <!–CABECERA–>
    <Clase TR = "ms-viewheadertr" VALIGN = TOP>
    <Alcance nowrap TH = "col" class = "ms-vh2"><div style = "width:100%;posición:relativa;izquierda:0;Arriba:0;">
    <Estilo de tabla = "ancho:100%;" CtxNum = "1" altura = "100%" cellspacing = 1 cellpadding = 0 class = "ms-unselectedtitle">
    <TR>
    <Anchura TD = "100%" Class = "ms-vb" nowrap>
    Texte du titre ici

    </TD>
    <Estilo TD = "posición:absoluta;">
    </TD>
    </TR>
    </MESA></div>
    </TH>

    <!–Repita para todas las celdas de encabezado–>
    </TR>

    <!– Datos de la tabla –>
    <Clase TR = "">
    <!–Columna de datos, Utilice código de Paul para el primero de ellos con el hipervínculo –>
    <TD Class = "ms-vb2">Datos aquí</TD>

    <!–Columna vacía–>
    <TD Class = "ms-vb2">
    <palmo dir = None></abarcan><
    /TD>

    <!–Columna de fecha–>
    <TD Class = "ms-vb2">
    <NOBR>11/12/2008</NOBR>
    </TD>
    </TR>

    <!–***Fila alternativo – Utilice una nueva variable XSL que insertará la clase alternativa basada en la fila actual modulo 2–>
    <Clase TR = "ms-alterna">

    </TR>
    </MESA>

    Respuesta
  7. Mike Brown
    Zoltan,
    Estaba trabajando en el mismo problema que usted. Quería que todos mis artículos en forma agrupada en lugar de sólo un lits. Aquí es cómo lo logré.
    ContentQueryMain.xsl
    <XSL:Cuando test="@Style='Grid'">
    <XSL:Seleccione aplicar plantillas = "." modo = "itemEstilo">
    <XSL:nombre de con-param = "CurPos" Seleccione "$CurPosition =" />
    <XSL:nombre de con-param = "último" Seleccione "$LastRow =" />
    <!–Añadir esta nueva sección que pase en el parámetro que indica un nuevo grupo ha comenzado–>
    <XSL:nombre de con-param = "StartNewGroup" Select="@__begingroup" />
    </XSL:Aplique-plantillas>
    </XSL:Cuando>
    ItemStyle.xsl
    Añadir el parámetro
    <XSL:nombre param = "StartNewGroup" />
    Añadir este texto como la primera fila de datos
    <XSL:Elija>
    <XSL:prueba = "$StartNewGroup = 'True'">
    <TR>
    <TD >
    <XSL:plantilla llamada name="OuterTemplate.GetGroupName">
    <XSL:nombre de con-param = "GroupName" Select="@*[nombre()= $Group]"/>
    <XSL:nombre de con-param = "GroupType" Seleccione "$GroupType" = />
    </XSL:plantilla de llamada>
    </TD>
    </TR>
    </XSL:Cuando>
    <XSL:de lo contrario>
    </XSL:de lo contrario>
    </XSL:Elija>
    Esto debe hacerse cargo de su problema de agrupación en tu cuadrícula. Cada grupo empezará ahora con una nueva fila que indica el nombre del grupo. En mi solución realmente he añadido un espacio en blanco <TD /> en los datos lo guión así como así la agrupación destacó mucho mejor.
    Site1
    datacolumn1 datacolumn2 datacolumn3 etc.

    datacolumn1 datacolumn2 datacolumn3 etc.
    Site2
    datacolumn1 datacolumn2 datacolumn3 etc.
    Descarga3

    datacolumn1 datacolumn2 datacolumn3 etc.

    datacolumn1 datacolumn2 datacolumn3 etc.
    etc..
    Respuesta
  8. Zoltan
    Hola Paul,
    Gracias por el post, Me las arreglé para organizar los resultados de mi consulta en una cuadrícula, que es muy útil. Sin embargo, Debería ir más lejos y mis resultados basados en los sitios del grupo. Por el momento, los nombres del sitio se enumeran primero, y entonces allí es solamente una gran red reuniendo todas las filas de diferentes sitios. Algo como esto:
    Nombre site1
    Site2 nombre
    Datos en la red para todos los sitios
    ¿Alguna idea de lo que debería modificar para obtener mis datos como sigue:
    Nombre site1
    Datos en la red por Site1
    Site2 nombre
    Datos de cuadrícula de Site2
    Gracias de antemano,
    Zoltan
    Respuesta
  9. Pierre Joubert
    Fantastic Post, solucionó el problema que tenía.
    Mi único problema es mostrar el campo AsignadoA, Lo configuro con el usuario"" tipo de campo y la webpart importada muestra el siguiente error:
    "Hubo un error al recuperar datos para mostrar en esta parte de la Web."
    He intentado utilizar todos los tipos posibles de campo, con cualquier cosa otro usuario"" No muestra el error, pero no muestra nada en el campo. Así que estoy suponiendo el tipo de campo de usuario es correcto, así que debo faltar un ajuste en algún lugar.
    ¿Alguna idea sobre esto?
    Saludos
    Pierre
    Respuesta
  10. Charftong
    Gran Post!!! Muy muy útil.
    Pregunta rápida, Has hecho algún trabajo en exhibir los campos AsignadoA o ModifiedBy con presencia? Por alguna razón, cada vez que intento dipslay el campo asignado a la CQWP, siempre se muestra con un ejemplo "203;#Tong de la habitación". No encuentro una manera alrededor de esto.
    Respuesta
  11. Jennifer Davis
    Paul
    Gran artículo, Gracias. Yo estoy haciendo algo muy similar pero desea que se muestre un enlace al sitio del proyecto en lugar del elemento en la lista. Por ejemplo, Tenemos 25 sitios de proyecto de nivel superior y cada uno contienen una lista con los tipos de contenido. Estos son el nombre del proyecto, División, Descripción. Quiero usar el elemento web consulta de contenido a sacar estos datos y han conseguido que por defecto la URL me lleva a la entrada del elemento en la lista y lo necesito para llevarme al sitio del proyecto. ¿Puedes darme algún consejo?
    Gracias
    Jen
    Respuesta
  12. Paul Galvin
    Kieren,
    Siempre utilizo visual studio para editar el XSL. Proporciona codificación de color y también tiene algún soporte de intellisense buena.
    –Paul
    Respuesta
  13. Kieran escribió:

    Hola Pablo,

    Cuando se trabaja con la parte de consulta xml/xsl y contenido web, ¿Has encontrado alguna buenas formas de formatear tu xslt? Tratando de hacer cambios y prueba el diseño está demostrando un cierto dolor en el un ** usando un editor de texto…

    Todo lo mejor

    Respuesta
  14. Michael Dipay
    Con respecto al tema que tenía la última vez donde no muestra las imágenes de la vista de cuadrícula, pero en su lugar muestra el texto (https://myweb.com/Marketing/images/icn-order.gif,). Me las arreglo para resolverlo con la ayuda de SharePoint Designer crear vista personalizada y seleccionando las columnas personalizadas que quiero mostrar. Descubrí que el tipo de columna de imágenes se muestran como URL(coma) (por ejemplo:. https://myweb.com/Marketing/images/icn-order.gif,). El formato actual es texto, Así que tengo que cambiar a imagen de la común xsl:Tareas de valor-de-> Formato como cuadro. Este cambio de la visualización de las imágenes personalizadas que quería Mostrar. He copiado el código para mostrar la imagen ( <IMG border ="0" src = "{subcadena-antes(@IcnOrder, ‘, ‘)}" /> ) Y en el archivo ItemStyle.xsl tengo que cambiar la @PICTURECOLUMNNAME al código <IMG border ="0" src = "{subcadena-antes(@IcnOrder, ‘, ‘)}" /> . Luego guardarlo. Ahora mis resultados de cuadrícula de tabla para mostrar el texto, así como la imagen personalizada tipo columnas.
    Respuesta
  15. Helen
    Hola Pablo,
    Gracias por el gran artículo!
    Usted ha mencionado formato condicional – "Usted puede también poner en formato condicional, como mostrar los proyectos que han sobrepasado su presupuesto en rojo." Le sucede que tiene un ejemplo de código para?
    Gracias de nuevo!
    Helen
    Respuesta
  16. Michael Dipay
    Hola Pablo,
    Era un gran artículo y era capaz de generar los mismos resultados como se esperaba. Tengo la obligación de mostrar una imagen en la red como una de sus columnas. No muestra la imagen en la red pero en su lugar muestra la dirección url de la imagen con un (,) coma al final.
    (por ejemplo:. https://myweb.com/Marketing/images/icn-order.gif, )
    Debo usar imagen o imagen en el tipo de campo CommonViewFields? (por ejemplo:. InternalColumnName, Imagen)
    Gracias,
    Mike
    Respuesta
  17. Saji Ijiyemi

    Tu post es exactamente lo que buscaba. Sin embargo, No puedo trabajar.

    Tengo documentos que están almacenados en varios doc. bibliotecas clasifican pero usando una columna clase personalizada (opción: 1 o 2. Quiero utilizar CQWP para mostrar estos documentos basados en su clase.
    Yo era capaz de añadir el CQWP, exportar a SPD, configurar el itemStyle.xls para mostrar los campos personalizados en la vista lista. Sin embargo, Pueda no con éxito poner en práctica lo que usted describe aquí.

    Estas son las columnas que quiero mostrar en mi CQWP:

    Tipo de archivo (para mostrar el icono)
    Título de archivo
    Fecha de última modificada
    Modificado por la OMS
    Extraído
    Comprobado en comentarios

    Actualmente tengo el resultado en formato de lista. ¿Cómo puede cambiar a un formato de talble.

    Gracias.

    Saji

    Respuesta

Contesta

su dirección de correo electrónico no será publicada. Los campos necesarios están marcados *