![]() |
ReportManager, cambiar consulta en ejecución
Que tal foro,
no pienso en que tan posible sea pero si de lo importante que pudiera conocer al respecto. La idea de cambiar la consulta que creamos en el reporte me surgió al tener la opción de generar un listado desde dos posibles parámetros, ambos accediendo a la misma tabla y obteniendo los mismos resultados, lo que varia es el like del query. ¿Hasta dónde es posible esto? Saludos! |
Yo tengo algunos informes al que les paso el sql que voy a necesitar porque los campos que se muestran es igual.
Esto es un ejemplo rescatado de algún sitio:
Y esto es de mi código:
Como ves en los ejemplos, puedes indicarlo por su posición o por su nombre: items[0].sql o itembyname('conjuntodedatos').sql Creo que es lo que estás buscando. |
Hola Casimiro, gracias por responder.
Había estado consultando en internet y encontré las "cadenas de sustitución", que son un tipo de parámetro que permiten alterar pequeñas partes de la consulta dentro del reporte, más información aquí: http://reportman.sourceforge.net/doc/repparams.html No sé si sea lo mismo que me propones, puesto que los ejemplos no muestran como debería ir la consulta dentro del reporte, de todas formas voy a revisar bien el ejemplo. Gracias :) Saludos! |
|
Pues lo que te he contestado es lo que necesitas :)
|
Cita:
Y de esta forma no puedo llamar las propiedades que mencionas. Saludos! |
Pues ahí no tengo ni idea, nunca lo he usado de esa manera.
|
Hola Casimiro, he logrado solucionarlo con el parámetro de sustitución, la verdad estaba confundido al principio de como usarlo, pero fué simple.
Ejemplo, yo tengo la siguiente consulta: SELECT * FROM CLIENTE WHERE NOMBRE LIKE :PARAMETRO, el parámetro de este tipo solo reemplaza la cadena o frase que le indique, en este caso solo le indique cambiar "NOMBRE" por "ID" y en Delphi sería algo así:
Y funciona perfecto... ahora solo me surgió un pequeño detalle que me dejó volando :rolleyes:, yo declaré el parámetro para el caso de buscar por nombre como cadena, pero no sé cómo pasarle el valor, ya que si hago algo como: rept.SetParamValue('PARAMETRO','Fulanito'); no me retorna los datos, ¿cómo debo pasarle ese valor al like de la consulta? Saludos! |
Pues entonces hazlo como te he indicado antes, en lugar de cambiar parámetros, pásale la consulta completa.
y en el otro caso
El datainfo.items[0] es el conjunto de datos, si tienes más de uno, pues el número que le corresponda, aunque también puedes hacerlo por su nombre:
|
Solucionado Casimiro, solo creé otro campo de este tipo para reemplazar en la consulta el valor del like.
Gracias por tus consejos :) Saludos! |
La franja horaria es GMT +2. Ahora son las 04:24:32. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi