Mostrando entradas con la etiqueta Reporting Services 2008. Mostrar todas las entradas
Mostrando entradas con la etiqueta Reporting Services 2008. Mostrar todas las entradas

miércoles, 24 de agosto de 2011

Error rsAccessDenied

Error rsAccessDenied : The permissions granted to user 'BERNARDO\User' are insufficient for performing this operation.

EL PROBLEMA

Cuando tratamos de acceder al ReportServer y no hay acceso
http://localhost/reportserver/

Ademas ingresamos al ReportManager y no nos da la opcion Site Settings para la administracion de permisos.
http://localhost/Reports

Cuando tratamos de hacer un deploy del proyecto desde el Visual Studio nos lanza el error:
Error rsAccessDenied : The permissions granted to user 'BERNARDO\User' are insufficient for performing this operation.


LA SOLUCION
1. Primero aseguremarse que el servicio este corriendo bajo la cuenta de LOCALSYSTEM o un usuario con privilegios similares.  Esto lo hacemos desde el Reporting Services Configuration Manager.

2. Luego corremos el MSCONFIG desde Inicio / Ejecutar / MsConfig Enter.      Vamos a Tools y luego buscamos la seccion UAC Settings.   Aqui bajamos el nivel de seguridad.  Recuerden reiniciar la maquina.

 El problema radica en que tenemos un usuario "Administrador" sin los suficientes permisos como tal. 
Espero haya sido util.

viernes, 12 de noviembre de 2010

Guia Practica Reporting Services 2008 - Intermedio

Ejercicio 1: Expresiones
1.       En un reporte de rptExpresiones de la tabla Customers de Northwind,    con la consulta: 
SELECT  c.CustomerID, CompanyName, ContactName, City, Region, Country, SUM(UnitPrice) UnitPrice, SUM(Quantity) Quantity, SUM(Discount) Discount
FROM customers c
INNER JOIN Orders o ON c.CustomerID = o.CustomerID
INNER JOIN [Order Details] od ON o.OrderID = od.OrderID
GROUP BY c.CustomerID, CompanyName, ContactName, City, Region, Country
2.       Tenemos un Campo,  Name, Company, UnitPrice, Quantity
3.       Nueva columna relacionamos:  Ubicación à  Click Derecho  à Expressions
4.       = Fields!.City.Value &  “ “ &  Fields!.Region.Value & “, “ &  Fields!.Country.Value
5.       Visualizamos el reporte.
6.       Nueva Columna SubTotal =  UnitPrice * Quantity
7.       Nueva Columna Descuento en Monto
8.       Columna Total  =  SubTotal – Descuento
9.       Visualizamos el reporte.
10.   Nueva Columna Tipo Cliente:    =IIF( Calculo Total) > = 10000,  “Gran Consumidor”,  “Pequeno Consumidor”)
11.   Modificar la columna para el uso de SWITCH (CASE) 
=Switch(Calculo Total >= 20000, “Gran Consumidor”  
Calculo Total >= 5000, “Mediano Consumidor”,
Calculo Total < 5000, “ Pequeño Consumidor”)
12.   Visualizamos el Reporte
13.   Para todas las filas poner un Color de Fondo Especial cuando los precios sean menores a 50.
14.   Aplicar ordenamiento Interactivo para Name, Company

Ejercicio 2: Trabajando con Agrupaciones
1.       Crear un nuevo reporte llamado rptAgrupaciones con la siguiente consulta:
SELECT o.ShipCountry, o.ShipCity, c2.CategoryName, p.ProductName,   od.UnitPrice,  Quantity, od.UnitPrice * Quantity AS Total
FROM customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID
INNER JOIN [Order Details] od ON o.OrderID = od.OrderID
INNER JOIN Products p ON p.ProductID = od.ProductID
INNER JOIN Categories c2 ON c2.CategoryID = p.CategoryID
2.       Agregar en el Detalle Product Name , Cantidad  , Precio,  Total
3.       Crear Grupo para Category Name y su Total
4.       Crear Grupo para City y Su Total
5.       Crear Grupo para Country y su Total
6.       Visualizar el Reporte
7.       Cambiar los Totales de Precio a Promedio
8.       Cambiar Formato a los Totales
9.       Cambiar Colores por Grupo.
10.   Hacer Visible con Click en cada uno de los Grupos.  NOTA:  Hacerlo desde los grupos y no desde las Celdas.  Hacer ver la diferencia.
11.   Visualizar el Reporte

Ejercicio 3:  Trabajando con Parametros
1.       Crear un nuevo reporte llamado rptParametrosFiltros con la siguiente consulta:
SELECT o.ShipCountry, o.ShipCity, c2.CategoryName,  SUM(od.UnitPrice) AS Precio,  SUM(Quantity) Cantidad, SUM(od.UnitPrice * Quantity) AS Total
FROM customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID
INNER JOIN [Order Details] od ON o.OrderID = od.OrderID
INNER JOIN Products p ON p.ProductID = od.ProductID
INNER JOIN Categories c2 ON c2.CategoryID = p.CategoryID
GROUP BY o.ShipCountry, o.ShipCity, c2.CategoryName
2.       Agregar Todos los campos a una Tabla
3.       En las propiedades del Dataset1  agregamos un parámetro llamado Pais.  Hacer click en OK
4.       Nuevamente en las propiedades del dataset1, en Filters buscar ShipCountry y evaluarlo contra una expression donde se seleccione el parámetro Pais
5.       Visualizar el Reporte
6.       Realizar los mismos pasos 3 y 4  para Ciudad
7.       Visualizamos el Reporte.

Ejercicio 4:  Trabajando con Parametros
1.       Crear un nuevo reporte llamado rptParametros.
2.       En Management Studio ejecutamos el siguiente procedure:
CREATE PROC sp_VentasxPais
@Pais VARCHAR(100)
AS
SELECT o.ShipCountry, o.ShipCity, c2.CategoryName,  SUM(od.UnitPrice) AS Precio,  SUM(Quantity) Cantidad, SUM(od.UnitPrice * Quantity) AS Total
FROM customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID
INNER JOIN [Order Details] od ON o.OrderID = od.OrderID
INNER JOIN Products p ON p.ProductID = od.ProductID
INNER JOIN Categories c2 ON c2.CategoryID = p.CategoryID
WHERE o.ShipCountry = @Pais
GROUP BY o.ShipCountry, o.ShipCity, c2.CategoryName
3.       Luego creamos un Dataset con el procedimiento y hacemos click en OK
4.       Creamos el Reporte agregando los campos en una Tabla
5.       Verificamos en las propiedades del Dataset que se nos creo automáticamente un Parametro con el nombre de @Pais.  Ademas en la carpeta Parameters deberá estar este mismo parametro
6.       Visualizamos el reporte
7.       En las propiedades del parametro, Available Values, Specify Values,  Asignamos: Valores de Paises
8.       Visualizamos el reporte
9.       Crear un nuevo Dataset lo llamaremos dtPaises con la siguiente consulta: SELECT DISTINCT o.ShipCountry FROM Orders o
10.   En las propiedades del parametro, Available Values, Get Values from a Query,  Asignamos:  los valores de  ShipCountry.
11.   Visualizamos el Reporte

Ejercicio 5:  Multiples Valores en Parametros
1.       Crear un nuevo reporte llamado rptParametrosMultiples.
SELECT o.ShipCountry, o.ShipCity, c2.CategoryName,  SUM(od.UnitPrice) AS Precio,  SUM(Quantity) Cantidad, SUM(od.UnitPrice * Quantity) AS Total
FROM customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID
INNER JOIN [Order Details] od ON o.OrderID = od.OrderID
INNER JOIN Products p ON p.ProductID = od.ProductID
INNER JOIN Categories c2 ON c2.CategoryID = p.CategoryID
WHERE o.ShipCountry IN (@Pais)
GROUP BY o.ShipCountry, o.ShipCity, c2.CategoryName
2.       Creamos el Reporte agregando los campos en una Tabla
3.       En las propiedades del parámetro,  definimos que sea  multivalor.
4.       Crear un nuevo Dataset lo llamaremos dtPaises con la siguiente consulta: SELECT DISTINCT o.ShipCountry FROM Orders o
5.       En las propiedades del parametro, Available Values, Get Values from a Query,  Asignamos:  los valores de  ShipCountry.
6.       Visualizamos el Reporte


Ejercicio 6:  Reporte Matrix
1.       Crear un Nuevo Reporte llamado rptMatrix con la siguiente consulta:
SELECT  MONTH(o.OrderDate) AS Mes, YEAR(o.OrderDate) Anio,
o.ShipCountry, o.ShipCity, c2.CategoryName, p.ProductName,   od.UnitPrice,  Quantity, od.UnitPrice * Quantity AS Total
FROM customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID
INNER JOIN [Order Details] od ON o.OrderID = od.OrderID
INNER JOIN Products p ON p.ProductID = od.ProductID
INNER JOIN Categories c2 ON c2.CategoryID = p.CategoryID
2.       Agregar un Matrix
3.       Configurarlo:  Filasà Pais, Ciudad, Categoria, Producto,   Columnasà Anio y Mes,  Dataà Total, Cantidad
4.       Cambiar Colores por Columnas y por Filas
5.       Hacerlo Dinamico para que se oculte y se muestre al hacer click en el.

Ejercicio 7:  Creando un Grafico
1.       Crear un Nuevo Reporte llamado rptGrafico con la siguiente consulta:
SELECT  MONTH(o.OrderDate) AS Mes, YEAR(o.OrderDate) Anio,
o.ShipCountry, o.ShipCity, c2.CategoryName, p.ProductName,   od.UnitPrice,  Quantity, od.UnitPrice * Quantity AS Total
FROM customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID
INNER JOIN [Order Details] od ON o.OrderID = od.OrderID
INNER JOIN Products p ON p.ProductID = od.ProductID
INNER JOIN Categories c2 ON c2.CategoryID = p.CategoryID
2.       Agregar un Grafico
3.       Seleccionar de Barra
4.       Configurarlo:  Categorias à Categorias,  Series àAnio,  Data à Total
5.       Poner Titulo
6.       Visualizamos el reporte
7.       Cambiar tipo de Grafico
8.       Visualizamos el reporte











sábado, 6 de noviembre de 2010

Guia Practica Reporting Services 2008


Esta guia se trabaja con la base de datos Northwind.

Ejercicio 1 -  Primer Reporte en SSRS
1.       En un nuevo proyecto de SSRS,  agregar un Nuevo Item, utilizando el Asistente Report Wizard.
2.       En el Asistente hacer compartida la Data Source.  Conectarse a Northwind.
3.       Utilizar las tablas Products y Categories
4.       Crear un Reporte de tipo Tabular
5.       Agrupar por CategoryName
6.       En Detalle Seleccionar ProductName, Descontinued, UnitePrice
7.       Incluir SubTotales y Habilitar DrillDown.
8.       Seleccionar un estilo que más le agrade.
9.       Renombrar cambiar el titulo al reporte a Productos por Categoría
10.    Editar la propiedades de UnitPrice y darle formato de dos decimales y separador de miles.
11.    Editar el Shared Data Source para almacenar las credenciales,  y almacenar las credenciales de sa.
12.    Visualizar el reporte.
13.    Crear otro reporte para Customers utilizando nuevamente el asistente.

Ejercicio 2 – Creando un Reporte Tabular
1.       Agregar Nuevo Item Report (esta vez no usaremos el asistente) llamado rptCustomers
2.       Agregar el objeto Table desde Report Item
3.       Nos levanta un asistente, donde configuramos la conexión, seleccionamos Shared Data Source que creamos anteriormente. Siguiente.
4.       Con el Query Designer creamos la consulta para SELECT * FROM CUSTOMERS. Finalizar
5.       Agregamos Contacto, Compania, Pais, Ciudad, Telefono.
6.       Agregamos un Page Header
7.       Creamos un Titulo, “Listado de Cliente”,  centrado letra grande y con negrilla y subrayado.
8.       Visualizamos el reporte.

Ejercicio 3 –  Reporte desde un DataSet
1.       Agregamos un Nuevo Reporte,  rptEmpleados
2.       En report Data seleccionamos nuevo Dataset
3.       Configuramos el Dataset lo llamamos dsEmpleados
4.       Agregamos la tabla Employees
5.       Luego creamos el reporte.

Ejercicio 4 –  Agregando Imágenes
1.       En el reporte rptCustomers, en el Page Header,  agregar un elemento del tipo Image
2.       Selecciona la opción Embedded y luego Import,  buscar una imagen e Importarla.
3.       Visualizar el reporte.
4.       Elliminar la imagen y agregarla nuevamente,  pero esta vez quedo registrada para el reporte.

Ejercicio 5 – Imágenes desde Base de Datos
1.       En el reporte rptEmpleados,  agregar un objeto de Image en la tabla
2.       Nos mostrara el cuadro de dialogo para configurar la imagen.  Seleccionamos desde base de datos y buscamos el campo Photo.  Seleccionamos el tipo de imagen como BMP.
3.       Visualizamos el reporte y nos dara un error.  ( Ver Post sobre esto en el blog)
4.       Configuraremos la imagen para que trabaje con la siguiente expresión: =System.Convert.FromBase64String(Mid(System.Convert.ToBase64String(Fields!Photo.Value), 105))
5.       Visualizamos el reporte nuevamente.

Ejercicio 6 – Repitiendo Títulos por cada pagina
1.       En el reporte rptCustomers, seleccionamos la fila de títulos y vamos a TabLix Properties
2.       Checamos Repeat Header Rows on Each Page,  Repeat Header Columns on Each Page, 
3.       Visualizamos el reporte y no pasa nada.
4.       Ponemos en modo avanzado los Columns Groups.
5.       Nos ubicamos sobre Static en Rows Groups y damos propiedades F4.
6.       Ponemos en True la propiedad RepeatonNewPage.
7.       Visualizamos el reporte, y el problema fue corregido.

Ejercicio 7 – Editando Page Footer / Page Header
1.       En el reporte rptCustomers, agregamos el Page Footer
2.       Vamos a las propiedades del Reporte en el Menu Report, Properties.
3.       Cambiamos a Landscape,  y cambiamos los márgenes a 0.5
4.       Agregamos un textbox en el footer.
5.       Click derecho Expressions
6.       Agregamos ExecutionTime y lo personalizamos (Codigo VB.NET)
7.       Desde Report Data podemos agregar más variables como usuario, numero de pagina, etc.
8.       Visualizamos el Reporte.

Ejercicio 8 – Creando Fichas
1.       Crear un nuevo reporte llamado rptFichasClientes
2.       Crear un nuevo dataset configurado para la tabla Customers
3.       Agregar un Rectangle Control
4.       Habilitar la regla en el menú Report
5.       Crear la ficha del cliente:   Compania, Contacto, Pais, Ciudad, Telefono (Poner Negrilla a los Titulos,  usar copiar y pegar)
6.       Definir un Borde para el Rectangle
7.       Visualizar el reporte.
8.       En Row Groups , Details, Group Properties,   Page Breaks,   Seleccionar Between each Instance of a group.
9.       Visualizar el reporte

Ejercicio 9 –  Trabajando con Rich Text
1.       Crear un nuevo reporte llamado rptCorreo
2.       Crear un nuevo dataset dsCuentas para Customers unidos con orders y orders details,   obtener los datos de Customers y de order Details únicamente un campo llamado ventas.
3.       Agregar un Listbox ubicarlo en toda el area del reporte.
4.       Agregar dentro del Listbox un Textbox y ubicarlo en todo el area del Listbox
5.       Iniciar a crear un Carta,  Contacto, Direccion,  Ciudad y Pais,  Pais.
6.       Crear el cuerpo de la carta: Estimado Contacto  ………. Ventas por  ……..  Atentamente …..
7.       Visualizar el reporte
8.       Dar formato, al campo ventas,  formatear de colores y negrilla los campos   Estimado Contacto.
9.       Definir el reporte para que se vea un elemento por pagina (similar ejemplo anterior)
10.    Exportarlo a Word, visualizar el archivo.