![]() |
Como Rellenar Componentes En Qreport
Buenas tardes a todos, tengo un problema con un qreport. Tengo definidos varios componentes de tipo QRRICHTEXT (50) , y debo ir rellenandolos.
Cuando invoco el qreport debo ir recorriendo los 50 QRRICHTEXT pero no se como indicarle el nombre de cada uno sin necesidad de escribir 50 veces lo mismo. Os paso el codigo que estoy utilizando, en el cual evidentemente la variable "ncelda" es un string y me da error. ¿ Como puedo hacerlo ? var ncelda:string; begin profe:='1'; finforme:=tfinforme.Create(self); for orden:= 1 to 49 do begin ncelda:='q'+IntTostr(orden); memo:='celda'+IntTostr(orden); basededatos.ado_uno.SQL.Clear; basededatos.ado_uno.SQL.Add('SELECT * FROM GRUPOHORARIO WHERE C_PROFESOR="'+profe+'" AND CELDA="'+memo+'";'); basededatos.ado_uno.Active:=true; basededatos.ADO_uno.First; While not basededatos.ado_uno.Eof do begin finforme.ncelda.Lines.Add(basededatos.ado_uno.FieldByName('ALUMNO').AsString); basededatos.ado_uno.Next; end; fdisenohorario.QuickRep1.Preview; end; Gracias por el tiempo que dedicais todos a este foro. |
Hola MARIA_MAR.
Por favor cuando incluyas código en tus mensajes, para darle mayor legibilidad usa los TAG's. Te pongo una imágen que explica el uso: ![]() Un saludo. :) |
error
podrias decir exactamente que dice el error???:confused:
|
Gracias ecfisa por tu aclaración , vuelvo a plantear mi mensaje como me indicas.
Tengo un problema con un qreport. Tengo definidos varios componentes de tipo QRRICHTEXT (50) , y debo ir rellenandolos. Cuando invoco el qreport debo ir recorriendo los 50 QRRICHTEXT pero no se como indicarle el nombre de cada uno sin necesidad de escribir 50 veces lo mismo. Os paso el codigo que estoy utilizando, en el cual evidentemente la variable "ncelda" es un string y me da error. ¿ Como puedo hacerlo ?
El error me da es sintactico y marca la siguiente linea
Y me dice: "Undeclared identifier: 'ncelda' " "Missing operator or semicolon" Espero haber sido un poco mas clara y que asi me podais ayudar. Gracias |
No se si interpreto bien tu codigo, veamos ..
1ro. mas adelante. el cual va ir tomando el valor segun el bucle q1 q2 .. q49 el cual no veo q utilices en ningun momneto. y por ultimo
aqui tratas a "ncelda" como un memo cuyo "dueño" dice ser "finforme" El error dice q en finforme no existe declaracion ncelda. Esto es correcto ? |
Estee... No entiendo? :confused: ¿50 QRRICHTEXT en un QReport? :o Con que los rellenas y donde los estas invocando?..
Saludos |
Hola juanlaplata,
Si me has interpretado bien, el problema que tengo es que no se como declarar 'ncelda' ó como ponerlo para que sea un memo en vez de un string, y a su vez vaya cambiando su valor en el bucle. Saludos |
Hola: Ahora mas o menos interprete lo que quieres hacer... (Puede que no)
El error se da porque declaraste la variable string ncelda y despues en: la tratas como componente. Lo que debes hacer es verificar que antes de asignar el valor si el componente de llegada es un TQRRichText. Lo que yo suelo hacer es lo siguiente y como para que te des una idea:
en este caso lo que hace es de acuerdo a todos los componentes que hay dentro del formulario ir verificando si alguno es del tipo TEdit (en este ejemplo) y en el caso de que así sea aplica el correspondiente valor... Para tu caso:
Espero que hayas entendido y que yo tambien haya interpretado :D Saludos y cualquier cosa acá estamos. |
seguimos con el analisis ....
finforme, lo tienes prediseñado ? si es asi, inserta un memo, y renombralo como ncelda. o de que tipo es finforme ? trata de redactar un poco mas el contexto, como para , talves, buscar otro camino para el mismo resultado |
Bueno Martins,tu idea me ha sido muy valida y he conseguido solucionarlo gracias a ti, de esta manera ya me da
igual que haya 50 componentes TQrRichText ó 200. Paso el codigo de como lo he dejado al final por si le sirve a alguien de ayuda, solo aclarar que en el Qreport ha asignado a cada TQrRichText un 'Tag' para llevar un orden.
Al final no he necesitado para nada la variable 'ncelda' que tantos problemas me daba. De nuevo muchas gracias a todos por se tan atentos. |
La franja horaria es GMT +2. Ahora son las 07:08:17. |
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