Ver Mensaje Individual
  #7  
Antiguo 22-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Ya he tenido un poco más de tiempo con esto, no me gusta el estilo, pero bueno, si es lo que necesitas....

Que conste que no son "parámetros" como has visto, se incluye pagenumber, por tanto son funciones que debe interpretar QuickReport;

Código Delphi [-]
uses qrExpr;

var pr:TqrEvResult;
// añadimos por código una función:
Quickreport1. functions.addFunction('piopio', quotedStr('mi gorrioncito canta pio pio')); 
Quickreport1. functions.addFunction('unEntero', 25)); 
// si es un string, debes pasarlo con quotedStr, o el parser interno creerá que es una 
//función de agregado (avg, sum, etc) o funciones interna dando excepciones 'Unknow function 'migorrioncito canta pio pio'.

// una vez creados los parámetros por código, es necesario que internamente cree esas funciones:
quickreport1.functions.Prepare;

// Ver los valores que tiene asignados:

// 1ª forma:
ShowMessage(quickreport1.functions.Value('piopio').strResult);


// 2ª forma:
pr := quickreport1.functions.Value('unEntero');
ShowMessage(inttostr(pr.intResult));

// pr es un puntero, así que podemos cambiar su valor y lo acepta sin problemas:
pr.intResult := 32;

// comprobación de que ha aceptado:
pr := quickreport1.functions.Value('unEntero'); // buscamos de nuevo la funcion
ShowMessage(inttostr(pr.intResult)); // dará el valor 32.
Si accedemos por ejemplo a una función que no esté creada, no dará errores de ejecución, tomará lo que haya en la memoria RAM, osea el típico jeroglífico de código máquina.

También tienes DeleteFunction, y después de ejecutarla, asegúrate de llamar a functions.Prepare.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 22-11-2007 a las 17:51:23.
Responder Con Cita