Reportes con Origen Base JSON

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 Dase de JSON

Esta sección te muestra como descargar reportes en formato PDF desde Quick Report utilizando como origen de datos una documento JSON para este ejemplo el reporte puede recibir más de un parámetro y debe contener un origen de datos JSON(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 source = {
    reportName:reportName
    ApiKey: apiKey,
    Data: JSON.stringify([{ key1: "value1", key2: "value2" }]), // Reemplaza con los datos reales
    Parameters: { param1: "value1", param2: "value2" } // Reemplaza con los parámetros reales
};

// Construye la URL del endpoint
const url = `https://design.quickreport.net/Report/GeneratePDFFromJson`;

// Realiza la solicitud POST
fetch(url, {
    method: "POST",
    headers: {
        "Content-Type": "application/json"
    },
    body: JSON.stringify(source)
})
.then(response => {
    if (!response.ok) {
        throw new Error("Error al obtener el reporte PDF");
    }
    return response.json(); // Obtén la respuesta como JSON
})
.then(data => {
    console.log("URL del reporte:", data.url);
    window.open(data.url, '_blank'); // Abre el reporte en una nueva pestaña
})
.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:

                                    
[HttpPost("CallGeneratePDFFromJson")]
public async Task CallGeneratePDFFromJson(string apiKey, string reportName)
{
    // 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/GeneratePDFFromJson";

    // Define el cuerpo de la solicitud
    var source = new
    {
        ApiKey = apiKey,
        Data = new { key1 = "value1", key2 = "value2" }, // Reemplaza con los datos reales
        Parameters = new { param1 = "value1", param2 = "value2" } // Reemplaza con los parámetros reales
    };

    var requestBody = new
    {
        source,
        reportName
    };

    // Serializa el cuerpo a JSON
    var jsonContent = new StringContent(JsonSerializer.Serialize(requestBody), Encoding.UTF8, "application/json");

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

    try
    {
        // Realiza la solicitud POST
        var response = await client.PostAsync(url, jsonContent);

        if (response.IsSuccessStatusCode)
        {
            // Lee la respuesta como JSON
            var responseData = await response.Content.ReadAsStringAsync();
            var result = JsonSerializer.Deserialize(responseData);
            return Ok(result);
        }
        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 el cuerpo de la solicitud
$source = [
    "ApiKey" => $apiKey,
    "Data" => ["key1" => "value1", "key2" => "value2"], // Reemplaza con los datos reales
    "Parameters" => ["param1" => "value1", "param2" => "value2"] // Reemplaza con los parámetros reales
];

$data = json_encode(["source" => $source, "reportName" => $reportName]);

// Inicializa cURL
$ch = curl_init();

// Configura las opciones de cURL
curl_setopt($ch, CURLOPT_URL, $baseUrl . "/Report/GeneratePDFFromJson");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// 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) {
        $responseData = json_decode($response, true);
        echo "URL del reporte: " . $responseData["url"];
    } 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 POST "https://design.quickreport.net/Report/GeneratePDFFromJson" \
-H "Content-Type: application/json" \
-d '{
    "source": {
        "ApiKey": "yourApiKeyHere",
        "Data": {
            "key1": "value1",
            "key2": "value2"
        },
        "Parameters": {
            "param1": "value1",
            "param2": "value2"
        }
    },
    "reportName": "yourReportNameHere"
}'
                                    
                                
Ejemplo de como crear un reporte conexión oringen de base de datos JSON en el diseñador web