Reportes con Origen Base de Datos

En este artículo se explican los diferentes tipos de reportes que se pueden crear con Quick Reports. Quick Reports es una herramienta poderosa para generar reportes de manera rápida y eficiente. A continuación, se describen los diferentes tipos de reportes que puedes crear:

Ejemplos de Código

Integra Quick Report fácilmente en tus aplicaciones

Obtener un API KEY
Quick Report
Reportes con Origen Base de Datos

Esta sección te muestra como descargar reportes en formato PDF desde Quick Report utilizando como origen de datos una Base de Datos SQL para este ejemplo el reporte puede recibir más de un parámetro y debe contener un origen de datos (DataSource) configurado en el diseñador.

Para descargar un reporte en formato PDF, Quick Report proporciona un endpoint REST que puedes utilizar en tu aplicación. A continuación, se presentan ejemplos de cómo realizar esta tarea en diferentes lenguajes y plataformas.

Descargar el reporte desde javascript

Utiliza JavaScript para descargar el reporte en formato PDF:

                                    
// Define los parámetros necesarios
const apiKey = "yourApiKeyHere"; // Reemplaza con tu API Key
const reportName = "yourReportNameHere"; // Reemplaza con el nombre del reporte
const values = {
    param1: "value1", // Reemplaza con los valores reales
    param2: "value2"
};

// Construye la URL con los parámetros
const queryParams = new URLSearchParams({
    apiKey: apiKey,
    reportName: reportName,
    ...values // Agrega los valores dinámicamente
}).toString();

const url = `https://design.quickreport.net/Report/GetReportPDFFromDatabase?${queryParams}`;

// Realiza la solicitud GET
fetch(url, {
    method: "GET"
})
.then(response => {
    if (!response.ok) {
        throw new Error("Error al obtener el reporte PDF");
    }
    return response.blob(); // Obtén el archivo PDF como un blob
})
.then(blob => {
    // Crea un enlace para descargar el PDF
    const downloadUrl = window.URL.createObjectURL(blob);
    const a = document.createElement("a");
    a.href = downloadUrl;
    a.download = `${reportName}.pdf`; // Nombre del archivo descargado
    document.body.appendChild(a);
    a.click();
    a.remove();
    window.URL.revokeObjectURL(downloadUrl); // Limpia el objeto URL
})
.catch(error => {
    console.error("Error:", error);
});
                                    
                                

Integración con API REST

Conecta Quick Report con tu API para obtener datos desde tu backend de aplicación en .NET:

                                    
[HttpGet("CallGetReportPDFFromDatabase")]
public async Task CallGetReportPDFFromDatabase(string apiKey, string reportName, [FromQuery] IDictionary values)
{
    // Construye la URL del endpoint
    string baseUrl = "https://design.quickreport.net"; // Cambia esto por la URL base de tu aplicación
    string url = $"{baseUrl}/Report/GetReportPDFFromDatabase?apiKey={Uri.EscapeDataString(apiKey)}&reportName={Uri.EscapeDataString(reportName)}";

    // Agrega los valores adicionales como parámetros de consulta
    foreach (var kvp in values)
    {
        url += $"&{Uri.EscapeDataString(kvp.Key)}={Uri.EscapeDataString(kvp.Value)}";
    }

    // Crea un cliente HttpClient
    var client = _httpClientFactory.CreateClient();

    try
    {
        // Realiza la solicitud GET
        var response = await client.GetAsync(url);

        if (response.IsSuccessStatusCode)
        {
            // Obtén el contenido como un archivo PDF
            var pdfStream = await response.Content.ReadAsStreamAsync();

            // Devuelve el archivo PDF al cliente
            return new FileStreamResult(pdfStream, "application/pdf")
            {
                FileDownloadName = $"{reportName}.pdf"
            };
        }
        else
        {
            return BadRequest($"Error al obtener el reporte: {response.StatusCode} - {response.ReasonPhrase}");
        }
    }
    catch (Exception ex)
    {
        return StatusCode(500, $"Error interno: {ex.Message}");
    }
}
                                    
                                

Descargar el reporte desde PHP

Utiliza PHP para descargar el reporte en formato PDF:

                                    
// Define la URL base y los parámetros
$baseUrl = "https://design.quickreport.net"; // Cambia esto por la URL base de tu aplicación
$apiKey = "yourApiKeyHere"; // Reemplaza con tu API Key
$reportName = "yourReportNameHere"; // Reemplaza con el nombre del reporte

// Define los valores adicionales para el endpoint
$values = [
    "param1" => "value1", // Reemplaza con los valores reales
    "param2" => "value2"
];

// Construye la URL con los parámetros
$queryParams = http_build_query(array_merge(["apiKey" => $apiKey, "reportName" => $reportName], $values));
$url = $baseUrl . "/Report/GetReportPDFFromDatabase?" . $queryParams;

// Inicializa cURL
$ch = curl_init();

// Configura las opciones de cURL
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

// Ejecuta la solicitud
$response = curl_exec($ch);

// Verifica si hubo errores
if (curl_errno($ch)) {
    echo "Error: " . curl_error($ch);
} else {
    // Obtén el código de respuesta HTTP
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    if ($httpCode == 200) {
        // Guarda el archivo PDF en el disco
        $filePath = $reportName . ".pdf";
        file_put_contents($filePath, $response);
        echo "Reporte descargado exitosamente: " . $filePath;
    } else {
        echo "Error al obtener el reporte. Código HTTP: " . $httpCode;
    }
}

// Cierra la conexión cURL
curl_close($ch);

?>
                                    
                                

Descargar el reporte desde la terminal

Inicializa Quick Report en tu consola para descargar directamente el reportes en formato PDF:

                                    
curl -X GET "https://design.quickreport.net/Report/GetReportPDFFromDatabase?apiKey=yourApiKeyHere&reportName=yourReportNameHere¶m1=value1¶m2=value2" -o report.pdf
                                    
                                
Ejemplo de como crear un reporte conectado a una base de datos en el diseñador web