Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-03-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 15
MartinS Va por buen camino
Estee... No entiendo? ¿50 QRRICHTEXT en un QReport? Con que los rellenas y donde los estas invocando?..

Saludos
Responder Con Cita
  #2  
Antiguo 21-03-2012
MARIA_MAR MARIA_MAR is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 21
Poder: 0
MARIA_MAR Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 21-03-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 15
MartinS Va por buen camino
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:
Código Delphi [-]
finforme.ncelda.Lines.Add(basededatos.ado_uno.FieldByName('ALUMNO').AsString);
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:

Código Delphi [-]
 for I := 0 To ComponentCount -1 do
    BEgin
      if (Components[i] Is TEdit) then
         (Components[i] as TEdit).Text := '';
    End;

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:

Código Delphi [-]
 for I := 0 To FInforme.ComponentCount -1 do
    BEgin
      if (FInforme.Components[i] Is TQrRichText) then
         (FInforme.Components[i] as TQrRichText).Lines.Add := Valor;
    End;

Espero que hayas entendido y que yo tambien haya interpretado

Saludos y cualquier cosa acá estamos.
Responder Con Cita
  #4  
Antiguo 21-03-2012
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 20
juanlaplata Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 21-03-2012
MARIA_MAR MARIA_MAR is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 21
Poder: 0
MARIA_MAR Va por buen camino
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.

Código Delphi [-]
 
begin
 fdisenohorario:=tfdisenohorario.Create(self);
 for i:=0 to fdisenohorario.ComponentCount-1 do
  begin
  if (fdisenohorario.Components[i] is TQrRichtext) then
  begin
  orden:=(fdisenohorario.Components[i].Tag);
  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
     (fdisenohorario.Components[i] as TQrRichText).Lines.Add(' '+basededatos.ado_uno.FieldByName('ALUMNO').AsString);
     basededatos.ado_uno.Next;
     end; // del while
  end; // del if
  end; // del for

  // Imprimo el previo
  fdisenohorario.e_nombreprofesor.Lines.Add(e_nombreprofesor.Text);
  fdisenohorario.QuickRep1.Preview;

 end; // del if

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.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como rellenar con ceros a la izquierda algun dato uper PHP 1 15-03-2011 19:49:10
como rellenar una factura dvd_13 Varios 8 15-01-2008 22:13:23
Como rellenar de caracteres un string carlos gonzalez Varios 8 01-10-2006 05:55:21
Como rellenar campo de tabla JODELSA Conexión con bases de datos 6 28-02-2005 21:31:49
¿Que paso con los componentes de QReport en Delphi 7 ? danytorres Impresión 4 07-07-2003 21:27:10


La franja horaria es GMT +2. Ahora son las 22:48:18.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi