July 2010 - Artículos
Cuando estamos diseñando informes, a veces necesitamos un poco de funcionalidad adicional. Para ello desarrollamos ensamblados que luego necesitamos almacenar en unas rutas específicas en Visual Studio y en SQL Server como ya expliqué en su día (aquí y aquí).
Pues bien, una vez compilado y probado nuestros ensamblados deberemos poner el código siguiente dentro del archivo rssrvpolicy.config que se encuentra normalmente en: Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\
Código:
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="MyCodeGroup"
Description="Code group for my data processing extension">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="Ruta de mi ensamblado.dll" />
</CodeGroup>
Espero que os sea de utilidad,
Un Saludo!
En el anterior post escribí como añadir un report en el servidor de reports. Ahora voy a explicar como añadirle un datasource.
Primero creamos un objeto de definición del datasource (DataSourceDefinition):
// Definición para el datasource.
DataSourceDefinition definition = new DataSourceDefinition();
// 1. Nombre y descripción
// 2. Tipo de conexión y cadena de conexión.
definition.ConnectString = "Cadena de conexión";
definition.Extension = "SQL";
// 3. Tipo de conexion. Llegao a este paso, podemos configurar 4 tipos para la seguridad.
// 3.1. Pedir Credenciales.
definition.CredentialRetrieval = CredentialRetrievalEnum.Prompt;
definition.Prompt = "Texto del prompt";
// 3.2 Credenciales almacenadas.
//3.2.1
definition.CredentialRetrieval = CredentialRetrievalEnum.Store;
//3.2.2 -- Usuario.
definition.UserName = "Nombre de usuario";
//3.2.3 -- Password
definition.Password = "Password";
//3.2.4 -- Credenciales de windows para la conexión.
definition.WindowsCredentials = "True o false según proceda";
// 3.2.5 -- Suplantar al usuario.
definition.ImpersonateUserSpecified = "True o False";
// 3.3 Seguridad Integrada
definition.CredentialRetrieval = CredentialRetrievalEnum.Integrated;
// 3.4 Sin credenciales
definition.CredentialRetrieval = CredentialRetrievalEnum.None;
// 3.5 Habilitar
definition.Enabled = true;
definition.EnabledSpecified = true;
try
{
Configuration.rs.CreateDataSource("/Nombre del report", "/Ruta del report", false, definition, null);
// Nótese que se deja una barra delante del nombre del report y de la ruta de este, esto es así para
// especificar bien la ruta donde agregar el report.
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
Espero que os sirva ;),
Un Saludo!
Estando mirando en los foros de MSDN veía que a un usuario le daba un error a la hora de subir un report al servidor de reports.
A continuación voy a explicar como lo he hecho. Para llamar al servicio web de reporting nos podemos basar en este ejemplo que escribí hace ya un tiempo.
He aquí el código:
// Creamos el array de bytes a partir de un archivo.
Byte[] definition = null;
Warning[] warnings = null;
try
{
FileStream stream = File.OpenRead(“Ruta donde se encuentra el archivo”);
definition = new Byte[stream.Length];
stream.Read(definition, 0, (int)stream.Length);
stream.Close();
}
catch (IOException ex)
{
return ex.Message;
}
// Agregamos el item.
warnings = Configuration.rs.CreateReport(name, folderDestination, true, definition, null);
Después de esto podríamos añadir la datasource del Report ya que esta la pierde al subirse, pero esto la explicaré en otro post ;)
Espero que os sirva ;)
Un Saludo!
Hoy ha tenido un curioso error mi compi bueno, el visual studio cuando estaba con unos informes con Reporting Services 2005. La verdad es que realmente no sabe si ha sido al copiar un informe o al intentar ajustarlo en tamaño pero de repente nos ha salido un error muy extraño en html.
Para solucionarlo, lo primero que se ha hecho es pasar el código a un notepad y guardarlo como html para ver un poco mejor el error.
Luego a continuación, tan sólo hemos tenido que seguir “las indicaciones” y abrir dicho informe e irnos a esa línea. En dicha línea había un width con esos 406,34921cm, se ha cambiado, guardado y problema resuelto.
El caso es que después de mirar por internet, he visto que estaba solucionado para SQL Server 2000 y hay un hotfix pero no he encontrado (salvo en foros algunas soluciones) ninguno para 2005.
Bueno, dentro de lo que cabe solucionado queda ;).
Espero que os sirva,
Un Saludo!
Buenas, es sabido por todos que SSRS no justifica en su versión 2005 y 2008. La R2 aún no tuve tiempo de meterle mano :$, por eso es que vamos a ver si entre todos hacemos un esfuerzo para pedir la justificación al equipo de desarrollo.
Para ello, vamos ha hacerlo en el sitio adecuado y ajustándonos a las formas :D, y como no, para ello utilizaremos Microsoft Connect.
¿Qué hay que hacer? Pues tan solo irnos a alguna de las direcciones que pongo abajo, logearnos y votar positivamente (flecha verde hacia arriba) en dicha url. Yo encontré por ahora estás dos (más abajo), pero si encontráis alguna más y queréis añadirla, vosotros mismos, contra más “ladremos” mejor, jejeje. Ahí las dejo:
https://connect.microsoft.com/SQLServer/feedback/details/560151/i-cant-justify-text-in-a-text-box-in-ssrs
https://connect.microsoft.com/VisualStudio/feedback/details/111424/reportviewer-rdlc-file-textbox-textalign-unable-to-set-justify-alignment
Un Saludo!
Este martes 6 de julio en Second Nug veremos qué herramientas ofrece BizTalk Server para permitir a las compañías integrar y administrar los procesos de negocios intercambiando documentos de negocios, como pueden ser órdenes de compras y facturas entre diferentes aplicaciones dentro del ámbito de la empresa o incluso fuera de ella.
En este evento aclararemos los conceptos necesarios para entender cómo integrar aplicaciones heterogéneas y automatizar procesos de negocio utilizando BizTalk Server 2009. Veremos cómo funciona el sistema de mensajería, la orquestación de procesos, la herramienta de mapeos, etc.
Para esto contaremos con Rodolfo Reichart, Senior Consultant de la empresa Lagash Systems, especialista en integración de aplicaciones y automatización de procesos de negocios con BizTalk Server.
Enlace: https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032453474&EventCategory=4&culture=es-ES&CountryCode=ES
Si quieres asistir al evento necesitas Microsoft Office Live Meeting, si todavía no lo tienes descargarlo gratuitamente en el siguiente enlace.
Además, si no sabes como entrar al evento o tienes cualquier duda pulsa el siguiente enlace: http://www.secondnug.com/Ayuda/tabid/88/Default.aspx
Como siempre, esperamos veros por allí ;)
Un Saludo!