Documentación

Reportes con origen URI

El reporte toma sus datos de una URL que tú expones: Quick Reports la consulta al generar el PDF. Sirve cuando los datos ya viven detrás de una API tuya y no quieres dar acceso directo a la base.

Antes de empezar

Una API Key activa Se genera desde tu cuenta y viaja en cada llamada. Generar la mía
Una URL accesible Configurada como DataSource del reporte en el diseñador. Debe responder sin autenticación desde internet.
La URL se consulta desde los servidores de Quick Reports, no desde tu aplicación. Si apunta a localhost o a una red privada, el reporte saldrá vacío.

El endpoint

Devuelve el PDF como archivo binario con código 200. Cualquier otro código significa que la llamada falló.

GET https://design.quickreport.net/Report/GetReportPDFFromURI
Parámetro Descripción
apiKey Obligatorio La clave de tu cuenta. Recuerda codificarla en la URL.
reportName Obligatorio El nombre con el que guardaste el reporte en el diseñador, sin espacios y sin la extensión .rexp.
param1, param2, … Si tu reporte define parámetros, agrégalos a la misma cadena de consulta con el mismo nombre que les diste.

Ejemplos

El mismo llamado en cuatro entornos. Copia el que uses y reemplaza las dos constantes del principio.

// Define los parámetros necesarios
const apiKey = "yourApiKeyHere";
const reportName = "yourReportNameHere"; // sin espacios y sin la extensión .rexp

// Construye la URL del endpoint
const url = `https://design.quickreport.net/Report/GetReportPDFFromURI`
  + `?apiKey=${encodeURIComponent(apiKey)}`
  + `&reportName=${encodeURIComponent(reportName)}`;

// 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`;
    document.body.appendChild(a);
    a.click();
    a.remove();
    window.URL.revokeObjectURL(downloadUrl); // Limpia el objeto URL
  })
  .catch(error => {
    console.error("Error:", error);
  });
[HttpGet("CallGetReportPDFFromURI")]
public async Task<IActionResult> CallGetReportPDFFromURI(string apiKey, string reportName)
{
    // Construye la URL del endpoint
    string baseUrl = "https://design.quickreport.net";
    string url = $"{baseUrl}/Report/GetReportPDFFromURI"
               + $"?apiKey={Uri.EscapeDataString(apiKey)}"
               + $"&reportName={Uri.EscapeDataString(reportName)}";

    var client = _httpClientFactory.CreateClient();

    try
    {
        var response = await client.GetAsync(url);

        if (response.IsSuccessStatusCode)
        {
            var pdfStream = await response.Content.ReadAsStreamAsync();

            return new FileStreamResult(pdfStream, "application/pdf")
            {
                FileDownloadName = $"{reportName}.pdf"
            };
        }

        return BadRequest($"Error al obtener el reporte: {response.StatusCode} - {response.ReasonPhrase}");
    }
    catch (Exception ex)
    {
        return StatusCode(500, $"Error interno: {ex.Message}");
    }
}
<?php
// Define la URL base y los parámetros
$baseUrl = "https://design.quickreport.net";
$apiKey = "yourApiKeyHere";
$reportName = "yourReportNameHere"; // sin espacios y sin la extensión .rexp

// Construye la URL completa
$url = $baseUrl . "/Report/GetReportPDFFromURI"
     . "?apiKey=" . urlencode($apiKey)
     . "&reportName=" . urlencode($reportName);

// Inicializa cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo "Error: " . curl_error($ch);
} else {
    $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;
    }
}

curl_close($ch);
curl -X GET \
  "https://design.quickreport.net/Report/GetReportPDFFromURI?apiKey=yourApiKeyHere&reportName=yourReportNameHere" \
  -o report.pdf

Verlo en acción

Cómo usar una URL como origen de datos Video corto que recorre el diseñador de principio a fin.

Otros orígenes