logo
small logo
  • Producto
  • Comprar
  • Ayuda
  • About
  • Consola de usarios Ayuda
    • en
    • de
    • JP
    • ZH
  • Página principal
  • /
  • Blogs
  • /
  • Cómo pasar una cadena de conexión en un informe web FastReport .NET
  • Cómo construir biblioteca libgdiplus desde la fuente

    2 de octubre de 2020

    Al usar las bibliotecas FastReport .NET (Core), FastReport Open Source y FastReport Mono en el

    read more
  • Cómo crear y generar códigos de barras ITF-14 en aplicaciones .NET

    25 de febrero de 2021

    ITF-14 (Interleaved Two of Five) es un código numérico de dos bandas, también conocido

    read more
  • How to use Online Designer in ASP .NET Core

    17 de enero de 2018

    One of the novelties by FastReport .NET 2018 was the adaptation of OnlineDesigner to the

    read more
  • Cómo copiar las bandas de un informe a otro con todo el contenido

    31 de marzo de 2021

    A veces tiene que utilizar partes de un informe en otro. En casos simples, puede

    read more
  • Informes y documentos PDF en Blazor

    5 de abril de 2021

    Microsoft ha lanzado recientemente una plataforma web llamada Blazor. Este marco permite crear una interfaz

    read more

Cómo pasar una cadena de conexión en un informe web FastReport .NET

2 de mayo de 2020

A veces enfrento situaciones cuando tengo que configurar informes web a otra fuente de datos. Esta necesidad puede aparecer si el desarrollo del informe se ha realizado con el uso de una base de datos demo o cuando la base de datos ya tiene otro lugar. O quizás, al contrario, tengo que conectar un finrome a un conjunto de datos de test. De todas formas, la posibilidad de configurar la cadena de conexión es muy útil. Y hacerlo en FastReport .Net es muy fácil. Voy a explicárselo.

Vamos a tomar algunas aplicaciones ASP.Net Core en un ejemplo. Le recuerdo que nuestro objetivo es pasar una cadena de conexión a un informe desde el servidor del cliente. Se lo puede implementar de las dos siguientes maneras: pasar un parámetro a un informe y en el script del informe restablecer la cadena de conexión o restablecer la cadena de conexión directamente en el controlador de un informe web. La segunda es más racional, por lo cual es esta que voy a demostrarle.

En el controlador vamos a utilizar el método Index. Precisamente en este creamos un objeto de informe y establecemos una nueva cadena de conexión. Por lo tanto, el método tomará un parámetro, cadena de conexión.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class HomeController : Controller
 {
 public IActionResult Index(string connstring)
 {
 WebReport webReport = new WebReport();
 if (connstring is null)
 {
 webReport.Report.Load("reports/Empty.frx");
 }
 else
 {
 webReport.Report.Load("reports/Master-Detail.frx");
 webReport.Report.Dictionary.Connections[0].ConnectionString = connstring;
 }
 ViewBag.WebReport = webReport;
 return View();
 }
}

El método Index toma el parámetro connstring que desde el principio (al arrancar) equivale null. Para que el objeto del informe web no tenga errores al mostrar la pagína, hay que cargar en él un modelo de informe. Ya que no sabemos la cadena de conexión, dejemos que sea un modelo en blanco. Si la cadena de conexión está establecida, cargamos el modelo de informe que necesitamos y restablecemos en él la cadena de conexión. Todo es muy fácil.

Si el modelo de informe desde el principio no tiene conexión a una fuente de datos, podemos añadirla. Aquí tiene un ejemplo de cómo conectarse a un SGBD MSSQL:

1
2
3
4
5
6
RegisteredObjects.AddConnection(typeof(MsSqlDataConnection));
 MsSqlDataConnection sqlConnection = new MsSqlDataConnection();
 sqlConnection.ConnectionString = connstring;
 sqlConnection.CreateAllTables();
 webReport.Report.Dictionary.Connections.Add(sqlConnection);
 webReport.Report.Load("reports/CoreMSSQL.frx");

El método Index debe tener una representación correspondiente. Vamos a añadir a él el siguiente código::

1
2
3
4
5
6
7
8
@{
 ViewData["Title"] = "Home Page";
}
<form asp-controller="Home" asp-action="Index" method="post">
 <input type="text" name="connstring">
 <input type="submit" value="Click">
</form> 
@await ViewBag.WebReport.Render()

Aquí hemos utilizado un formulario que hace referencia al método Index. En esta hay un campo de texto con el nombre connstring y un botón. El contenido del campo de texto se pasa al método como parámetro.

Y ahora echemos un vistazo a lo que tenemos:

Al principio la cadena de conexión no está establecida, por lo tanto se ha cargado un modelo de informe en blanco. Introducimos la cadena de conexión para la base de datos XML:

«XsdFile=;XmlFile=C:\\Users\\Dimon\\source\\repos\\PassConnectionstring\\PassConnectionstring\\reports\\nwind.xml»

Y aquí tenemos el informe:

De este modo siempre puede econtrar una solución cuando el informe no puede conectarse a la fuente de datospor su indisponibilidad..

about product comprar
avatar
Dmitriy Fedyashov
Technical Writer
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
.NET FastReport

Add comment
logo
  • 800-985-8986 (English, US)
  • +4930568373928 (German)
  • +55 19 98147-8148 (Portuguese)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314
  • Comprar
  • Descargar
  • Documentación
  • Opiniones de usuarios
  • Cómo desinstalar nuestros productos
  • FAQ
  • Toturial en vídeo
  • Foro
  • Support SLA
  • Documentación técnica
  • Nuestras noticias
  • Quiénes somos
  • Socios
  • Partner program
  • Contactos

© 1998-2023 by Fast Reports Inc.

  • Privacidad
  • Cookies Policy

Trustpilot
By clicking “Accept all, you agree Fast Reports can store cookies on your device and disclose information in accordance with our Cookie Policy.