tablix services ssrs-2008 reporting-services ssrs-tablix

ssrs-2008 - services - tablix report viewer



¿Hay alguna manera fácil de reorganizar las columnas tablix en el modo de diseño SSRS? (4)

En realidad, debe mover (cortar y pegar) todo el elemento <TablixCell> para la columna (todo entre las <TablixCell> y </TablixCell> incluidas las <TablixCell> y </TablixCell> ).

Por ejemplo, para reorganizar las columnas en el ejemplo siguiente para hacer que la columna "Product ID" venga antes que la columna "Product Name", seleccionará y cortará toda la sección alrededor del elemento de celda "ProductName" (todo desde la primera <TablixCell> a la primera </TablixCell> ) y luego péguelo después de la </TablixCell> para la columna "ProductID".
Tenga en cuenta que hay un conjunto completo de elementos <TablixCell> para cada fila definida en Tablix; cada uno está en un elemento <TablixRow> separado. Si dejó la columna del encabezado predeterminado (donde se establecen los nombres de las columnas), el primer <TablixRow> define esa fila del encabezado y el segundo define los datos en las columnas y es el que desea editar. Una vez que haya reorganizado las columnas de datos, deberá hacer lo mismo para la columna de encabezado (si la tiene) o simplemente cambiar el nombre de las columnas con el diseñador para que coincida con los datos ahora en las columnas.

Realmente, esto es tan enrevesado que probablemente sea más fácil mover una columna simplemente usando el diseñador para insertar una nueva columna donde quieres mover la columna, configurarla con la fuente de datos adecuada para esa columna, y luego eliminar la columna original . Para el ejemplo siguiente, inserta una nueva columna después de Product ID , establézcala en la columna de origen de datos de ProductName (que lo configuraría como "Product Name" en la fila de encabezado), y luego elimine la columna original de Product Name a la izquierda.

... <TablixCell> <CellContents> <Textbox Name="ProductName"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!ProductName.Value</Value> <Style /> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>ProductName</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="ProductID"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!ProductID.Value</Value> <Style /> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>ProductID</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> ...

después de cortar / pegar, terminarías con:

... <TablixCell> <CellContents> <Textbox Name="ProductID"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!ProductID.Value</Value> <Style /> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>ProductID</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="ProductName"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!ProductName.Value</Value> <Style /> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>ProductName</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> ...

Tengo un informe de SSRS que contiene más de 20 columnas en un tablix. Nuestros usuarios han decidido que la información está bien, pero quieren que las columnas se muevan ( ¡suspiro! ).

Parece que debería ser fácil reorganizar las columnas (mover la columna 3 a la columna 1, cambiar las columnas 4 y 5, etc.). Sin embargo, arrastrar y soltar no parece funcionar y la única solución parece ser eliminar la columna original y volver a insertarla en el lugar correcto (y volver a aplicar las expresiones y el formato ya creados para la columna).

¿Hay alguna manera más fácil de hacer esto? Tenga en cuenta que no quiero una solución programática, solo necesito cambiarla una vez en modo de diseño.


Hay una manera de hacerlo a través del diseñador.

Para mover columnas, inserte la cantidad de columnas en blanco que desea mover en su lugar de destino. Luego, haga clic con el botón izquierdo en las celdas (NO en la columna del encabezado) que desea mover. Ahora debería poder hacer clic derecho y seleccionar el comando Cortar. Ahora, haga clic derecho en la parte superior de las columnas de destino y seleccione Pegar. Por último, elimine las columnas antiguas ahora vacías.


Otra nota sobre trabajar en el RDL:
Si se equivoca, el informe mostrará un mensaje de error y no mostrará los datos.

A menos que esté familiarizado con RDL (Lenguaje de definición de informes, un tipo de XML), estos tipos de errores pueden ser muy frustrantes para tratar, a veces, haciendo que el informe no sea utilizable.

Es mucho más seguro usar agregar nuevas columnas y eliminar el método anterior en el diseñador, mencionado anteriormente. Esto lo mantiene fuera del RDL reduciendo sus posibilidades de dañar el informe.


Si puede leer XML (simplemente entienda dónde comienzan y terminan las etiquetas, etc.), puede realizar fácilmente la tarea. Puede tomar la siguiente serie de pasos:

  1. En primer lugar, haga una copia de seguridad del informe original copiándolo en otro archivo.
  2. Haga clic derecho en su informe en el Explorador de soluciones y seleccione "Ver código"
  3. Esto abre el RDL del informe --- no te asustes, es solo un simple archivo xml
  4. Ahora ubique dentro del archivo RDL la etiqueta "Tablix1" - busque <Tablix Name="Tablix1"> ....</Tablix >
  5. Ahora debe buscar diferentes etiquetas " <Textbox Name="...">...</Texbox> " anidadas dentro de las etiquetas <TablixCells><TablixCell><CellContents>....
  6. Ahora puede reorganizar fácilmente las columnas del informe simplemente reorganizando el orden de estos <Textbox...>...</Texbox> y tendrá el nuevo informe con un nuevo orden de columnas.