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