Club Delphi  
    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 15-09-2017
sonymix sonymix is offline
Miembro
 
Registrado: jul 2010
Posts: 12
Poder: 0
sonymix cantidad desconocida en este momento
Notas de session I aperecen en qrdbtext1 y session II aparecen en qrdbtext2

Saludos los amigos del foro

mi problema es que estoy haciendo un reporte de recuerdo de nota, hay materias de session I y las de session II.
Quiero que las notas de lo del session I aperecen en el qrdbtext1 y las de la session II aparecen en el qrdbtext2
que me ajuden porfavor
Responder Con Cita
  #2  
Antiguo 15-09-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Nuestra bola mágica está averiada, así que tendrás que explicarte mejor
Responder Con Cita
  #3  
Antiguo 15-09-2017
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Reporte de recuerdo de nota
¿Te refieres a un listado o solo presentar información en un grid?

materias de sesion I y II
¿Son tablas, registros de una tabla, otra cosa?

qrdbtext1 / 2
Parecen componentes DBEdit, pero suponer suele derivar en errores...

¿Qué problema tienes?
  • Te da un error.
  • No sabes como resolver algún detalle.
  • No sabes como hacerlo.

Si es una de los dos primeros puntos, muéstranos parte del código que ya tengas.
Responder Con Cita
  #4  
Antiguo 15-09-2017
sonymix sonymix is offline
Miembro
 
Registrado: jul 2010
Posts: 12
Poder: 0
sonymix cantidad desconocida en este momento
problema conreporte

es que es un reporte que me imprima los recuerdo de nota de un estudiante en la universidad,
bien el ano tiene dos sessiones, session I y session II yo quiero que las notas de las materia del session I
sale en un qrdbtext y las de las sessione II sale en otro qrdbtext

los codigos que yo puse son esas pero no me funcionan

FRMRELEVE.QuickRep1.DataSet:=ADOQuery1;
FRMRELEVE.QRDBText1.DataSet:= ADOQuery1;
FRMRELEVE.QRDBText1.DataField:='description' ;

if ADOQuery1.FieldValues['cession'] ='II' then

begin
FRMRELEVE.QRDBText3.DataSet:= ADOQuery1;
FRMRELEVE.QRDBText3.DataField:='notetotal';
end else
if ADOQuery1.FieldValues['cession'] ='I' then
begin
FRMRELEVE.QRDBText2.DataSet:= ADOQuery1;
FRMRELEVE.QRDBText2.DataField:='notetotal';
end;
Responder Con Cita
  #5  
Antiguo 15-09-2017
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Lamentablemente, sigo sin entender.
  • Aparentemente te refieres a un reporte QuickReport.
  • Tienes un DataSet ADOQuery1 que por lo menos tiene 3 campos. (description, cesion, notetotal)
  • Dependiendo del valor del campo cecion asignas el dataset y el campo notetotal a un QRDBText u otro.

¿Cuando dices "no me funciona" a qué te refieres?
  1. Da un error.
  2. No hace lo que esperas.
  3. Otra cosa

En el primer caso, deberías decirnos cuál es el error. El texto completo y sin traducir es lo ideal.
En el segundo caso deberías decirnos qué es lo que esperas y qué es lo que hace el programa.
En el tercer caso deberás explicar con detalle tu caso.

De todos modos, veo que asignas el DataSet y el campo a los QRDBText, pero nunca los desasignas.
Si primero cesion='I' asignará a uno de los QRDBText
Si luego cesion='II' asignará al otro QRDBText, pero el primero también estará asignado.
Quizás deberías inicializarlos antes del IF.

Código Delphi [-]
FRMRELEVE.QuickRep1.DataSet:=ADOQuery1;
FRMRELEVE.QRDBText1.DataSet:= ADOQuery1;
FRMRELEVE.QRDBText1.DataField:='description' ;

// Inicializo
FRMRELEVE.QRDBText3.DataSet:= nil;
FRMRELEVE.QRDBText2.DataSet:= nil;

if ADOQuery1.FieldValues['cession'] ='II' then
begin
   FRMRELEVE.QRDBText3.DataSet:= ADOQuery1;
   FRMRELEVE.QRDBText3.DataField:='notetotal';
end 
else
   if ADOQuery1.FieldValues['cession'] ='I' then
   begin
      FRMRELEVE.QRDBText2.DataSet:= ADOQuery1;
      FRMRELEVE.QRDBText2.DataField:='notetotal';
   end;
Responder Con Cita
  #6  
Antiguo 15-09-2017
sonymix sonymix is offline
Miembro
 
Registrado: jul 2010
Posts: 12
Poder: 0
sonymix cantidad desconocida en este momento
problema con reporte

Okey
me refiero a un reporte que estoy haciendo que me imprima todas las notas de estudiantes
hay dos sessiones en año. quiero que si la campos son materia, session, notatotal
en mi reporte uso un qrdbtext1 que recibe la materia, otro qrdbtext2 y qrdbtext3
quiero que si la materia es de session I que la notatotal aparece en el qrdbtext2
y si la materia es de session II que la notatotal aparece en el qrdbtext3
Responder Con Cita
  #7  
Antiguo 15-09-2017
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Te falta responder a lo más importante:

Cita:
¿Cuando dices "no me funciona" a qué te refieres?
  • Da un error.
  • No hace lo que esperas.
  • Otra cosa
En el primer caso, deberías decirnos cuál es el error. El texto completo y sin traducir es lo ideal.
En el segundo caso deberías decirnos qué es lo que esperas y qué es lo que hace el programa.
En el tercer caso deberás explicar con detalle tu caso.
Responder Con Cita
  #8  
Antiguo 15-09-2017
sonymix sonymix is offline
Miembro
 
Registrado: jul 2010
Posts: 12
Poder: 0
sonymix cantidad desconocida en este momento
problema con reporte

Lo que hizo es, es que el la note se puso donde que apunto el dataset
me explico, en el dbgrid si la flechita se encuentra en un registro donde la session es session II
todas las notas se refleja debajo el qrdbtext3 et si se apunta en un registro de session I todas las notas se puso debajo del qrdbtext2
esque el codigo toma en cuenta donde que se apunto el dataset digi yo
Responder Con Cita
  #9  
Antiguo 15-09-2017
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
No entiendo si lo que explicas en el último mensaje
  • es lo que quieres que suceda.
  • es lo que sucede y quieres algo distinto.

En el código que muestas en un mensaje anterior, asignas el DataSet según el valor de un campo del ADOQuery.
Si el DBGrid está unido al ADOQuery, dependiendo del registro dónde estés posicionado, verás cosas en QRDBText3 o QRDBText2.
Responder Con Cita
  #10  
Antiguo 15-09-2017
sonymix sonymix is offline
Miembro
 
Registrado: jul 2010
Posts: 12
Poder: 0
sonymix cantidad desconocida en este momento
problema con reporte

si quisiera algo distintos
lo que yo quisiera que sucede es que todas las notas de las materias del session I aparecen en el qrdbtext2
y las de las materias del session II aparecen en el qrdbtext3
Responder Con Cita
  #11  
Antiguo 15-09-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que no has leido nuestra guía de estilo, en particular el punto 7
Cita:
Formular las preguntas con el mayor detalle posible evitando todo tipo de ambigüedad, facilita el análisis del problema planteado y aumenta la probabilidad de obtener una solución a la consulta realizada.
Y cuando pongas código, recuerda hacerlo usando las etiquetas. Gracias.

Responder Con Cita
  #12  
Antiguo 16-09-2017
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Supongo que en ese caso puedes jugar con la propiedad Visible del componente TQRDBtext.
No utilizo QuickReport, pero seguro que tiene esta posibilidad.
Lo que no estoy seguro es dónde establecer el valor para esa propiedad.

Código:
         [QRDBText1]       [QRDBText2]  [QRDBText3]
---------------------------------------------------
cesion   descripcion       noteval(I)   noteval(II)
   I     descripcion 1         123
   II    descripcion 2                        456
   I     descripcion 3         789
...
Código Delphi [-]
procedure QuickRep1BeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean);
begin
   if ADOQuery1.FieldValues['cession'] ='II' then
   begin
      FRMRELEVE.QRDBText3.Visible := True;
      FRMRELEVE.QRDBText2.Visible := False;
   end 
   else
   if ADOQuery1.FieldValues['cession'] ='I' then
   begin
      FRMRELEVE.QRDBText3.Visible := False;
      FRMRELEVE.QRDBText2.Visible := True;
   end;
end;

Última edición por duilioisola fecha: 16-09-2017 a las 12:25:11.
Responder Con Cita
  #13  
Antiguo 16-09-2017
sonymix sonymix is offline
Miembro
 
Registrado: jul 2010
Posts: 12
Poder: 0
sonymix cantidad desconocida en este momento
problema con reporte

bueno es exactamente asi que la quiero
sin embargo el codigo no me resulto. lo que hizo es en el dbgrid1 si esta apuntado en el registro del session II al tirar el reporte
todas las notas salen en qrdbtext3 sino me salen en qrdbtext2. eso quiere decir que esta tomando en cuenta en que registro esta
apuntado el dataset
Responder Con Cita
  #14  
Antiguo 17-09-2017
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Lo que hago yo con los reportes es tener un DataSet para ellos mismos.

Los componentes del Form (DBNavigator, DBGrid, DBEdit, etc.) tiran de un DataSource que a su vez tira de un DataSet.
Este DataSet se utiliza para hacer las inserciones, modificaciones y bajas.

Para los listados tengo otro DataSet que previo al listado se filtra según lo que se desee listar.
De esta manera, el DataSet de trabajo mantiene la posición y estado, mientras el DataSet de listado se va moviendo por los registros filtrados.

En tu caso, parece que el DataSet de trabajo es ADOQuery1.
Prueba crear un segundo DataSet ADOListado, en el que estén los registros que quieres listar.
El QuickReport y los componentes QRDBText deben tirar de ADOListado.
Utiliza QuickRep1BeforePrint para poner en visible/invisible el componente que corresponda a medida que va avanzando por los registros a listar.

Mirando en internet, he visto que también exite el método OnBeforePrint para la banda.
http://www.admind.info/help/system/i...ml?tqrband.htm

Supongo que es allí donde debes poner el código, ya que la banda es la que va pasando por cada registro y es en ese momento donde el valor de cession es el del regisro que se está imprimiendo.
Código Delphi [-]
procedure [Form_o_Datamodule].Listar;
begin
   // Filtrar ADOListado
   ADOListado.Close;
   ...
   ADOListado.Open;

   // Asignar DataSet
   FRMRELEVE.QuickRep1.DataSet:=ADOListado;

   FRMRELEVE.QRDBText1.DataSet:= ADOListado;
   FRMRELEVE.QRDBText1.DataField:='description' ;

   FRMRELEVE.QRDBText3.DataSet:= ADOListado;
   FRMRELEVE.QRDBText3.DataField:='notetotal';

   FRMRELEVE.QRDBText2.DataSet:= ADOListado;
   FRMRELEVE.QRDBText2.DataField:='notetotal';

   // MostrarListado
   FRMRELEVE.QuickRep1.Preview;
end;

// Metodo OnBeforePrint de la banda que muestra QRDBText 2 y 3.
procedure [Form_o_Datamodule].QRBand1BeforePrint(Sender: TObject; var PrintBand: Boolean);
begin
   // Si el registro que estoy imprimiendo es de cession II se muestra por QRDBText3
   if ADOListado.FieldValues['cession'] ='II' then
   begin
      FRMRELEVE.QRDBText3.Visible := True;
      FRMRELEVE.QRDBText2.Visible := False;
   end 
   else
   // Si el registro que estoy imprimiendo es de cession I se muestra por QRDBText2
   if ADOQuery1.FieldValues['cession'] ='I' then
   begin
      FRMRELEVE.QRDBText3.Visible := False;
      FRMRELEVE.QRDBText2.Visible := True;
   end;
end;
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
Variables session *help-- foetus PHP 5 06-12-2007 15:27:55
que es session.setAttribute cahosoft JAVA 1 04-08-2006 08:23:08
Session!!!! acertij022 PHP 9 02-09-2004 16:11:30


La franja horaria es GMT +2. Ahora son las 21:10:44.


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