Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 608
Poder: 21
mRoman Va por buen camino
Imprimir 2 veces en la misma pagina

Hola que tal amigos...

Tengo el siguiente problema:

Necesito imprimir en una misma página un formato (original y la copia) del tamaño de media carta. Dicho formato lo estoy diseñando dentro del quickreport y ese mismo diseño deseo repertirlo en la parte de abajo de la hoja...la cual obviamente sera "la copia".

Ahora este reporte tiene "detalles" que imprimir...(es sobre control de almacen), el formato es en original y copia media carta.

De tal manera que ya impresa la hoja, solo seria cuestion de cortarla por la mitad.....

En este hilo menciona algo...

Obviamente tengo problemas ya que hasta ahorita tengo hecha la primera mitad de la hoja....esa sale bien, pero tengo la otra mitad en blanco en donde desearia imprimir el formato nuevamente.....

Espero me puedan ayudar....SIGO INVESTIGANDO...!!!

Saludos
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #2  
Antiguo 04-02-2014
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Hola mRoman,

Creo que definiendo el folio como cuartilla seria mas que suficiente, le estas diciendo al QuickReport que el folio es una cuartilla, que la cuartilla es la mitad de un folio.

Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #3  
Antiguo 05-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 608
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por olbeup Ver Mensaje
Hola mRoman,

Creo que definiendo el folio como cuartilla seria mas que suficiente, le estas diciendo al QuickReport que el folio es una cuartilla, que la cuartilla es la mitad de un folio.

Un saludo.
Al decir folio te refieres "tamaño carta" (letter)....en todo caso en donde le digo que es cuartilla?......en las propiedades del QuickRep1???

Saludos y gracias por contestar.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #4  
Antiguo 05-02-2014
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Cita:
Empezado por mRoman Ver Mensaje
Al decir folio te refieres "tamaño carta" (letter)....en todo caso en donde le digo que es cuartilla?......en las propiedades del QuickRep1???

Saludos y gracias por contestar.
Hola mRoman,

La mitad de un folio es "A5 210 x 148" y lo pones en horizontal y obtendrás la mitad un folio tipo cuartilla esto está en el QuickReport, "Page" -> Orientation = [poLandscape], PaperSize = [A5]

Un saludo
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #5  
Antiguo 05-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 608
Poder: 21
mRoman Va por buen camino
Ah...ok.....

Pero sabes que?....me parece que no es lo que necesito.....tengo que imprimir en una hoja tamaño carta (en la sección del tamaño A5), es decir en la primera mitad de la hoja carta, algunos datos y en la otra mitad de la hoja, los mismos datos de la primera mitad de la hoja......has de cuenta que en una sola impresión quiero imprimir el original y copia de un recibo.....

Como hago eso?...con deplhi ?.....se puede?....

Como tu dices olbeup.....se imprime 1 sola vez?....a reserva de enviar varias copias. Lo q trato de hacer es que lo q comento arriba....en una sola impresion enviar 2 recibos....original y copia.

Saludos y gracias por tu apoyo.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #6  
Antiguo 18-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 608
Poder: 21
mRoman Va por buen camino
Sigo buscando....la solucion

Me parece increible que el QReport no tenga opciones que puedan hacer mas fácil este tipo de reportes.....

Alguien sabe con versión de QuickReport se pueden hacer reportes como los q indico en este hilo????!!!!.....

He visto en las opciones del QReport que la hoja se puede dividir en 2 o mas columnas.....estuve viendo si por aqui estaba la clave, cambiando la orientación de la hoja de Landscape a Portrait y viceversa....pero nada.

Buscando en "San Google" encontré un hilo de ClubDelphi del usuario (bubba, que por cierto ya de algun tiempo atras) donde hacia referencia al evento OnNeedData....y que asii lo resolvio....o era una posible solucion. Yo lo estoy intenando pero parece ser que este evento NO ACEPTA datos de un DataSet....

ALGUIEN YA HA IMPRESO DE ESTA FORMA.....!!!???....Q en una hoja tamaño carta imprimir original y copia en la misma página????...

AHHHH....ya estuve viendo tambien el componente CompositeReport....pero no hace lo q requiero....imprimir encabezado, detalle y pie de página, pero en la primera mitad de la hoja carta, y en la segunda mitad....pues lo mismo.

Como fregados se imprimen este tipo de reportes......jajajaja....SERENIDAD Y PACIENCIA "SOLIN"....(Kaliman).
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por mRoman fecha: 18-02-2014 a las 04:57:08.
Responder Con Cita
  #7  
Antiguo 18-02-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Estás seguro que con quickreport no puedes configurar una impresión a tamaño A5?, me extraña mucho.
En todo caso, cambia de generador de informes, usa uno bueno, potente, con todas las posibilidades y además libre, como Report Manager, no es muy bonito de presentación, pero sí que es muy efectivo.
Responder Con Cita
  #8  
Antiguo 18-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 608
Poder: 21
mRoman Va por buen camino
Casimiro gracias por seguir el hilo....

Configuración de la hoja en A5 o A4 no es problema.....el problema es q NO SÉ como hacer para imprimir ese tamaño 2 veces en una hoja tamaño carta. Me sugieres Report Manager (lo probaré)....todos los informes de mi aplicacion están en QuickReport....y hasta el momento habia salido de los problemas.....pero ahora no lo he hecho...YA LLEVO 15 dias (si no es q mas) en resolver esto.

Una pregunta....podré combinar mis informes de QReport con los de ReportManager?

En fin....sigo buscando e investigando.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #9  
Antiguo 18-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 608
Poder: 21
mRoman Va por buen camino
Por cierto casimiro...como ejecuto el reporte hecho en ReportManager desde delphi?
Ya lo baje....y lo estoy analizando....

Gracias !
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #10  
Antiguo 18-02-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por mRoman Ver Mensaje
Configuración de la hoja en A5 o A4 no es problema.....el problema es q NO SÉ como hacer para imprimir ese tamaño 2 veces en una hoja tamaño carta.
Imprimes uno y luego imprimes otro. No entiendo el problema, la verdad.
Responder Con Cita
  #11  
Antiguo 18-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 608
Poder: 21
mRoman Va por buen camino
Creo q no me explicado bien......

En este hilo se menciona el problema que yo estoy tratando de resolver.
Cita:
Imprimes uno y luego imprimes otro. No entiendo el problema, la verdad.
No es tan simple Casimiro....el como imprimir en la mitad de la hoja tamaño carta incluyendo en esa mitad un PageHeader, Detail y PageFooter y en la otra mitad de la hoja lo mismo...y todo esto que salga en una sola impresión.

Me has comentado que no conoces quickreport....con el reporteador q me sugeriste se puede?....lo has hecho?....envía un ejemplo porfa, para ver como lo hiciste. Ya baje el ReportManager y voy a intentar por ahí.

En cuanto a los tamaños de la hoja, la onda es que los puedo mandar a impresión, pero saldrán en 2 hojas....y no quiero eso, ya que se estaría desperdiciando la otra mitad....estaría en blanco.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #12  
Antiguo 18-02-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Has mirado la documentación, componentes, etc. de quickreport?
Por ejemplo: http://www.quickreport.co.uk/WebInfo...?WebInfoID=677
Responder Con Cita
  #13  
Antiguo 18-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 608
Poder: 21
mRoman Va por buen camino
Si ya hice eso....pero veo que existen algunas instrucciones q no he incluido

Cita:
procedure MakeComp;
begin
comprep := TQRCompositeReport.Create( mainfrm);
comprep.OnAddReports := mainfrm.CompRepAddReports;
comprep.Preview;
comprep.free;
end;
Sobre todo esto:
Cita:
comprep.OnAddReports := mainfrm.CompRepAddReports;
Lo agregare....

Gracias Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #14  
Antiguo 19-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 608
Poder: 21
mRoman Va por buen camino
Solucionado

Hola amigos....

Creo haber resuelto el problema. Ahora ya tengo un encabezado, detalle y pie de página en la primera y segunda mitad de una hoja tamaño carta.

De antemano les comento q no estoy satisfecho con la solución, porq talvez no sea la mas óptima, ademas de q tiene un inconveniente con respecto a las lineas impresas del detalle y con el CompositeReport.

Ahi va la explicación:

Al quickreport le quite las bandas y solo use un GroupHeader, Detail y GroupFooter. Despues le cambié el tipo de hoja al QuickReport1 a A5, ah y tambien le cambie el nombre a NotaECopia.

Despues en el formulario de donde mando llamar al QuickReport, agregue el componente CompositeReport, para agregar los informes:

Código Delphi [-]
procedure TfrmOpImpEntSali.QRCompositeReport1AddReports(Sender: TObject);
begin
     with QRCompositeReport1.Reports do
     begin
          comprep.Reports.Add(qrNotaECopia.NotaECopia);
          comprep.Reports.Add(qrNotaECopia.NotaECopia);
     end;
end;

Para lo anterior tuve que declarar en las variables privadas del formulario, la variable comprep:
Código Delphi [-]
  private
    { Private declarations }
     comprep: TQRCompositeReport;

Ademas de declarar un procedure:
Código Delphi [-]
    procedure MakeComp(Sender: TObject);

En el cuerpo de dicho procedimiento (no confundir con SP), esto:
Código Delphi [-]
procedure TfrmOpImpEntSali.MakeComp(Sender: TObject);
begin
     comprep:=TQRCompositeReport.Create(frmOpImpEntSali);
     comprep.OnAddReports :=frmOpImpEntSali.QRCompositeReport1AddReports;
     comprep.Preview;
     comprep.Free;
end;


Y en el evento OnClick del Boton para generarlo, esto:

Código Delphi [-]
procedure TfrmOpImpEntSali.BitBtn1Click(Sender: TObject);
begin
     ModDatos.trsFluida.Active:=FAlse;
     ModDatos.trsFluida.StartTransaction;
     spcFormatos.Close;
     spcFormatos.ParamByName('ifolio_ini').AsString:=mskFolioIni.Text;
     spcFormatos.ParamByName('ifolio_fin').AsString:=mskFolioFin.Text;
     spcFormatos.ParamByName('imes').AsInteger:=cbxMes.ItemIndex+1;
     spcFormatos.ParamByName('IANIO').AsString:=mskAnio.Text;
     spcFormatos.ExecProc;

     qrNotaECopia.qryDatos.Close;
     qrNotaECopia.qryDatos.ParamByName('mes').AsInteger:=cbxMes.ItemIndex+1;
     qrNotaECopia.qryDatos.ParamByName('anio').AsString:=mskAnio.Text;
     qrNotaECopia.qryDatos.ParamByName('folio1').AsString:=mskFolioIni.Text;
     qrNotaECopia.qryDatos.ParamByName('folio2').AsString:=mskFolioFin.Text;
     qrNotaECopia.qryDatos.Open;
     MakeComp(Sender);
end;

En el código anterior tengo un componente TIBStoredProc, el cual mando llamar para llenar una tabla de paso y almacenar nuevamente el detalle mas algunos registros "en blanco" hasta llegar a 15....porq 15?....porq son los registros que le caben al formato, si se imprime el registro 16 el GroupFooter se imprime en la siguiente página.....(este es el problema q les comente al principio sobre las lineas de impresion), estoy tratando de como resolver esto y controlarlo para q se imprima todo (GroupHeader, Detail y GroupFooter)en la siguiente pagina lo q hace falta.

Este es el cuerpo del SP:
Código SQL [-]
CREATE PROCEDURE LLENAR_RPT_PASO_E_S (
    imes numeric(2,0),
    ianio numeric(4,0),
    ifolio_ini numeric(6,0),
    ifolio_fin numeric(6,0))
as
declare variable vlineas numeric(2,0);
declare variable vfolio numeric(6,0);
declare variable vconsec numeric(3,0);
declare variable vdescr varchar(100);
declare variable vcodigo numeric(4,0);
declare variable vcant numeric(5,0);
declare variable vunidad varchar(15);
declare variable vmax_consec numeric(2,0);
begin
     /* PROCESO DE LLENADO PARA IMPRIMIR LA NOTA DE ENTRADA DE LECHE AL ALMACEN*/
     delete from rpt_paso_e_s_detalle;
     vLineas=0;
     for select b.folio,
                b.consec,
                b.cantidad_surtida,
                b.unidad_producto,
                c.descripcion||' 1-'||c.piezas||' '||c.equivalente_litros||' '||lower(c.unidad_medida) as descripcion,
                substr(c.cve_producto,8,11) as codificacion
     from registro_e_s a,
          registro_e_s_detalle b,
          producto c
     where a.folio between :ifolio_ini and :ifolio_fin
       and extract(month from a.fecha_folio)=:imes
       and extract(year  from a.fecha_folio)=:ianio
       and a.movimiento_e_s='E'
       and a.folio=b.folio
       and b.cve_producto=c.cve_producto
     order by b.folio,
              b.consec
       into :vfolio,
            :vconsec,
            :vcant,
            :vunidad,
            :vdescr,
            :vcodigo do
       begin
            if (vconsec=1) then
            begin
                select max(c.consec)
                from registro_e_s_detalle c
                where c.folio=:vfolio
                into :vmax_consec;
            end
            if (vconsec < vmax_consec) then
            begin
                 insert into RPT_PASO_E_S_DETALLE(MOVIMIENTO_E_S_1,
                                                  FOLIO_1         ,
                                                  CONSEC_1        ,
                                                  CANTIDAD_SOLICITADA_1,
                                                  CANTIDAD_SURTIDA_1   ,
                                                  UNIDAD_PRODUCTO_1    ,
                                                  DESCRIPCION,
                                                  CODIFICACION  )
                                         values ('E',
                                                 :vfolio,
                                                 :vconsec,
                                                 :vcant,
                                                 :vcant,
                                                 :vunidad,
                                                 :vdescr,
                                                 :vcodigo);

            end Else
            begin
                 insert into RPT_PASO_E_S_DETALLE(MOVIMIENTO_E_S_1,
                                                  FOLIO_1         ,
                                                  CONSEC_1        ,
                                                  CANTIDAD_SOLICITADA_1,
                                                  CANTIDAD_SURTIDA_1   ,
                                                  UNIDAD_PRODUCTO_1    ,
                                                  DESCRIPCION,
                                                  CODIFICACION  )
                                         values ('E',
                                                 :vfolio,
                                                 :vconsec,
                                                 :vcant,
                                                 :vcant,
                                                 :vunidad,
                                                 :vdescr,
                                                 :vcodigo);
                 vmax_consec=vmax_consec+1;
                 while (vmax_consec<=15) do
                 begin
                     insert into RPT_PASO_E_S_DETALLE(MOVIMIENTO_E_S_1,
                                                      FOLIO_1         ,
                                                      CONSEC_1        ,
                                                      CANTIDAD_SOLICITADA_1,
                                                      CANTIDAD_SURTIDA_1   ,
                                                      UNIDAD_PRODUCTO_1    ,
                                                      DESCRIPCION,
                                                      CODIFICACION  )
                                             values ('E',
                                                     :vfolio,
                                                     :vmax_consec,
                                                     null,
                                                     null,
                                                     null,
                                                     null,
                                                     null);
                     vmax_consec=vmax_consec+1;
                 end
            end
       end
end

Sé que el código anterior se puede mejorar....pero hasta el momento este me funciona.

El CompositeReport agrega varios informes en uno solo en apariencia, solo q el priimer informe lo agrega desde la pagina 1 hasta la N pagina y el segundo nuevamente desde la pagina 1 hasta la N...que quiero decir?, que en mi caso se imprime el No. de Folio 1 hasta el 1000 y enseguida del 1000 el folio 1 nuevamente yhasta el mil.....EN LA PRIMER HOJA IMPRESA SE IMPRIMEN EL FOLIO 1 Y EL 2, EN LA HOJA 2 EL FOLIO 3 Y 4 y asi hasta el mil, y el segundo informe agregado igual....q talvez al final no importaria porq el usuario los tiene q separar (cortar) de todas maneras ya q uno seria el original y el otro la copia (no sé si me haya explicado)
Código Delphi [-]
          comprep.Reports.Add(qrNotaECopia.NotaECopia); // primer informe agregado.
          comprep.Reports.Add(qrNotaECopia.NotaECopia); // segundo informe agregado....que es el mismo q el primero.

Bien hasta ahorita es lo q llevo....y esta funcionando, falta detallarlo mas por supuesto asi q se aceptan sugerencias muchachos y muchachas.....

Espero q a alguien mas le pueda servir. Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por mRoman fecha: 19-02-2014 a las 12:50:47.
Responder Con Cita
  #15  
Antiguo 05-03-2014
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Hola mRoman,

Después de tú último mensaje que no estabas muy convencido del resultado, me he puesto a investigar como imprimir en dos columnas.

1º Pones QRBand y el BandType que sea rbPageHeader, si lo necesitas y en ForceNewColumn lo pones a True.
2º Pones un QRGroup lo dejas en blanco y en Height lo dejas a 0 (Cero) y en ForceNewColumn lo pones a True
3º Pones un DetailBand (Pulsas dos veces sobre el QuickReport para hacer un Report Settings y seleccionas Detail band) y en ForceNewColumn lo pones a True, dentro de este DetailBand pones los campos que necesites.
4º Pones QRBand y el BandType que sea rbPageFooter, si lo necesitas y en ForceNewColumn lo pones a True.

Esto funciona con dos registros.

Un saludo.

P.D.: Espero no llegar demasiado tarde, aunque ya lo has resuelto pero como no estabas muy contento, mira a ver esto.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.

Última edición por olbeup fecha: 05-03-2014 a las 10:52:17.
Responder Con Cita
  #16  
Antiguo 06-03-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 608
Poder: 21
mRoman Va por buen camino
Suena interesante.....olbeup !.

Lo probaré como me lo comentas...haré una prueba ya les comentaré como me fue.....solo q tardaré algunos dias para contestar.....

Te agradezco enormemente el tiempo q le has dedicado a la investigación de mi problema.

Gracias ! Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
Respuesta



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
Imprimir dos veces en la misma pagina Vlady Impresión 10 19-02-2014 16:27:47
Imprimir dos registros diferentes en la misma pagina erasmorc Impresión 1 18-02-2014 04:16:08
Como imprimir 3 veces con diferente pie de pagina rufo Varios 8 05-07-2012 00:33:45
imprimir 1 pagina 2 veces q Qreport JESUSNET Impresión 3 06-06-2008 22:11:45
Imprimir la copia en la misma pagina toni.vi Impresión 0 15-09-2003 12:34:05


La franja horaria es GMT +2. Ahora son las 17:38:28.


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