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 18-02-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.714
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví 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
  #2  
Antiguo 18-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Poder: 23
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
  #3  
Antiguo 18-02-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.714
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví 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
  #4  
Antiguo 18-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Poder: 23
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
  #5  
Antiguo 18-02-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.714
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví 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
  #6  
Antiguo 18-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Poder: 23
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
  #7  
Antiguo 19-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Poder: 23
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 13:50:47.
Responder Con Cita
  #8  
Antiguo 18-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Poder: 23
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
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
Imprimir dos veces en la misma pagina Vlady Impresión 10 19-02-2014 17:27:47
Imprimir dos registros diferentes en la misma pagina erasmorc Impresión 1 18-02-2014 05:16:08
Como imprimir 3 veces con diferente pie de pagina rufo Varios 8 05-07-2012 01:33:45
imprimir 1 pagina 2 veces q Qreport JESUSNET Impresión 3 06-06-2008 23:11:45
Imprimir la copia en la misma pagina toni.vi Impresión 0 15-09-2003 13:34:05


La franja horaria es GMT +2. Ahora son las 12:43:02.


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