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 22-07-2003
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Question Like a QRGroup pero sin serlo....

Hola compañeros, antes de nada excusarme, pero aún no he tenido tiempo de responder un par de hilos abiertos por mi en relación a la transacción en SQl, pero lo haré.

Bueno, el problema que me lleva algún día ya de cabeza es relacionado con la impresión de un conjunto de informes, me explico.

Quiero imprimir un número determinado de informes, viniendo ese número marcado por el número de tuplas de una tabla, es decir, imprimir un informe diferente por cada tupla de una tabla.

Actualmente lo hago según indico con el siguiente fragmento de código, pero al segundo intento de imprimir el segundo report al volver del "Preview", ya no se me ejecuta el storeprocedure correctamente y parece como que no cambia de tupla en la tabla.

He cambiado el : FQRListForm.QRListado.Preview;
por un showmessage(DM.ADOQ_TecnicoNombre.Value);
y avanzo correctamente de tupla,por lo que hay algo que hace el QReport que no veo y parece como que me vuelve al principio de la tabla.

Sé que podría de modo alternativo, cambiar la consulta y hacer en el QReport mediate un TQRGroup el mismo fin, pero prefiero en este caso hacerlo así, porque el usuario puede elegir porque inpresorá de la red emitir cada uno de los informes.


Código

// Imprime todos los tecnicos con todas sus obra , técnico por técnico
procedure TFPrincipal.TodoslostecnicosClick(Sender: TObject);
begin
// Recorro secuencialmente todos los tecnicos los imprimo tecnico por tecnico hasta el último
DM.ADOQ_Tecnico.First;
while Not(DM.ADOQ_Tecnico.Eof) do
begin
// ****
// Ejecuto la consulta con el nuevo parametro del tecnico
DM.ADOSP_Rel_CabLin.Close;
DM.ADOSP_Rel_CabLin.Parameters[1].Value := DM.ADOQ_TecnicoCodigo_Tec.Value;
DM.ADOSP_Rel_CabLin.ExecProc;
DM.ADOSP_Rel_CabLin.Open; // *** Llamada a la ejecucion del SP
// ****
// Asigno valores a etiquetas del listado
FQRListForm.QRLabTecnico.caption := DM.ADOQ_TecnicoNombre.Value;
// Previsualizo el informe
FQRListForm.QRListado.Preview;
// Avanzo al siguiente tecnico
DMCierre.ADOQ_Tecnico.Next;
end;
end;


Nota:
El DataSource del QReport está asociado al del ADOSP_Rel_CabLin.

¿Alguien sabría decirme lo que puede hacer el QReport al cerrarse y volverse a abrir y que yo no veo?
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita
  #2  
Antiguo 22-07-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Por qué no pruebas a poner el DataSet del Qr a nulo y reasignarlo después de hacer cada consulta.

Un Saludo.
Responder Con Cita
  #3  
Antiguo 23-07-2003
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
, pues tampoco.
Lo he cambiado asignandole nulo, tanto al Dataset del QReport como a cada uno de los campos justo antes y justo después de realizar de nuevo cada consulta, y no ha dado resultado.


FListForm.QRListado.DataSet:= NIL;
FListForm.QRListado.DataSet:= DM.ADOSP_Rel_CabLin;
FListForm.QRDBTxtNumObra.DataSet := NIL;
FListForm.QRDBTxtNumObra.DataField := '';
FListForm.QRDBTxtNumObra.DataSet := DM.ADOSP_Rel_CabLin; FListForm.QRDBTxtNumObra.DataField := 'DM.ADOSP_Rel_CabLinNum_OPROD';


No obstante gracias y si alguien sabe algo....
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita
  #4  
Antiguo 24-07-2003
MANU1102 MANU1102 is offline
Registrado
 
Registrado: jul 2003
Posts: 5
Poder: 0
MANU1102 Va por buen camino
EN EL REPORT SE VA AL PRIMER REGISTRO DEL DATASET AL ABRIR.
NO HAGAS UN NEXT, GUARDA EL REGISTRO POR EL QUE VAS EN UNA VARIABLE Y DESPUES DEL REPORT HAZ UN GOTO(VARIABLE)
PRUEBA.
Responder Con Cita
  #5  
Antiguo 24-07-2003
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Wink

Efectivamente, era por el posicionamiento en la primera tupla cada vez quese abría. Con un GetBookmark y su complementario GotoBookmark, se ha solucionado.

Otra cosa ha sido averiguar que el preview no refresca en la banda de datalle los valores a imprimir, por lo que he tenido que realizar directamente un print.

En fin, me doy por satisfecho con esta solución, aunque no pueda seleccionar diferentes impresoras para diferentes print a partir del preview.

Gracias a todos.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
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


La franja horaria es GMT +2. Ahora son las 00:03:24.


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