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 29-03-2011
Diana Carolina Diana Carolina is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 30
Poder: 0
Diana Carolina Va por buen camino
El codigo de imprimir(de la pantalla en delphi) y de vista preliminar ya los publique.
El codigo de imprimir de el formulario que sale al darle vista preliminar no lo tengo por que este boton es el que trae por defecto el "preview" del report builder, es decir en el codigo fuente tengo el componente TppReport el cual al darle doble click me muestra la ventana de diseño del report builder, esa ventana tiene 3 pestañas (Data, Desing, Preview). Cuando le doy click en preview sale lo que debe salir cuando le doy vista preliminar en tiempo de ejecucion, en la parte superior izquierda hay un boton con el icono de imprimir llamado "Print".
En tiempo de ejecucion primero genero los datos, se muestran en la grilla, tengo la opcion de imprimirlos dede alli o primero entrar a vista preliminar para ver como queda el reporte, si lo imprimo sin entrar a vista preliminar imprime toda la informacion pero si entro a vista preliminar y desde alli le doy al boton "Print" que esta en la parte superior izquierda solo imprime el pie de pagina.

Yo se que es complicado entenderme pero ya no se que hacer para exponer mi problema!!!
Responder Con Cita
  #2  
Antiguo 30-03-2011
Diana Carolina Diana Carolina is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 30
Poder: 0
Diana Carolina Va por buen camino
Codigo!!!

Ok...aqui esta el codigo de los eventos implicados, espero con esto me puedan ayudar...es urgente!!!!


procedure TFrmRepFormulario.spbGenerarClick(Sender: TObject);
begin
inherited;

QryTipoPersona.ParamByName('tipo').AsString := QryTipoTipo.AsString;
QryTipoPersona.ParamByName('nit1').AsString := QryNit1Nit.AsString;
QryTipoPersona.ParamByName('nit2').AsString := QryNit2Nit.AsString;
if (gGeMotor = ORACLE ) then
QryTipoPersona.SQL.Strings[6]:=' '
else ///si es SQL_SERVER u otro
QryTipoPersona.SQL.Strings[6]:=' ';

QryTipoPersona.Close;
QryTipoPersona.Open;
///aqui agregue validacion//
Qrynuevo.close;
if FrmPrincipal.QryperteneceFirma.AsString = '001' then
begin
Qrynuevo.SQL.Strings[2]:='A.ALGO,';
Qrynuevo.SQL.Strings[11]:='AND OP.ALGO = A.ALGO';
end
else
begin
Qrynuevo.SQL.Strings[2]:='A.OTRO,';
Qrynuevo.SQL.Strings[11]:='AND OP.OTRO = A.ALGO'
end;

Qrynuevo.open;
end;

procedure TFrmRepFormulario.spbPreliminarClick(Sender: TObject);
begin
inherited;
if Qrytipopersona.AsString = 'A' then
begin
VarTipoIdCl := Qrytipopersonatipo.AsString;
ppReportepers1.DeviceType := dtScreen;
ppReportepers1.Print;
end
else
begin
VarTipoIdCl := Qrytipopersonatipo.AsString;
ppReportepers2.DeviceType := dtScreen;
ppReportepers2.Print;
end;
///Aqui agregue validacion///
Qrynuevo.Close;
if FrmPrincipal.QryperteneceFirma.AsString = '001' then
begin
Qrynuevo.SQL.Strings[2]:='A.ALGO,';
Qrynuevo.SQL.Strings[11]:='AND OP.ALGO = A.ALGO';
end
else
begin
Qrynuevo.SQL.Strings[2]:='A.OTRO,';
Qrynuevo.SQL.Strings[11]:='AND OP.OTRO = A.ALGO'
end;

Qrynuevo.open;
end;

procedure TFrmRepFormulario.spbImprimirClick(Sender: TObject);
var
i : Integer;
Pers1,Pers2 : Boolean;
begin
inherited;
Pers1 := False;
Pers2 := False;
for i := 0 to Qrypersona.RecordCount -1 do
begin
if Qrytipopersona.AsString = 'A' then
begin
VarTipoIdCl := Qrytipopersonatipo.AsString;
ppReportepers1.DeviceType := dtPrinter;
if Pers1 then
begin
ppReportepers1.ShowPrintDialog := False;
ppReportepers1.ShowCancelDialog := False;
end;
ppReportepers1.Print;
Pers1 := True;
end
else
begin
VarTipoIdCl := Qrytipopersonatipo.AsString;
ppReportepers2.DeviceType := dtPrinter;
if PersNat then
begin
ppReportepers2.ShowPrintDialog := False;
ppReportepers2.ShowCancelDialog := False;
end;
ppReportepers2.Print;
Pers2 := True;
end;
Qrytipopersona.FindNext;
end;
///Agregue validacion///
Qrynuevo.Close;
if FrmPrincipal.QryperteneceFirma.AsString = '001' then
begin
Qrynuevo.SQL.Strings[2]:='A.ALGO,';
Qrynuevo.SQL.Strings[11]:='AND OP.ALGO = A.ALGO'
end
else
begin
Qrynuevo.SQL.Strings[2]:='A.OTRO,';
Qrynuevo.SQL.Strings[11]:='AND OP.OTRO = A.ALGO'
end;

Qrynuevo.open;
end;

procedure TFrmRepFormulario.ppReportepers1PreviewFormCreate(
Sender: TObject);
begin
inherited;
ppReportepers1.PreviewForm.WindowState := wsMaximized;
end;

procedure TFrmRepFormulario.ppReportepers1BeforePrint(
Sender: TObject);
begin
inherited;

if QryTipoPersona1.RecordCount = 0 then
exit;

Qry1.ParamByName('Tipo').AsString := QryTipoPersona1Tipo.AsString;
Qry1.ParamByName('Nit').AsString := QryTipoPersona1Nit.AsString;
Qry1.Open;

Qry2.ParamByName('Tipo').AsString := QryTipoPersona1Tipo.AsString;
Qry2.ParamByName('Nit').AsString := QryTipoPersona1Nit.AsString;
Qry2.Open;

Qrynuevo.ParamByName('TipId').AsString := QryTipoPersona1Tipo.AsString;
Qrynuevo.ParamByName('NitCliente').AsString := QryTipoPersona1Nit.AsString;
Qrynuevo.Open;

Qry4.ParamByName('Tipo').AsString := QryTipoPersona1Tipo.AsString;
Qry4.ParamByName('Nit').AsString := QryTipoPersona1Nit.AsString;
Qry4.Open;

end;

procedure TFrmRepFormulario.ppReportepers2PreviewFormCreate(
Sender: TObject);
begin
inherited;
ppReportepers2.PreviewForm.WindowState := wsMaximized;
end;

procedure TFrmRepFormulario.ppReportepers2BeforePrint(
Sender: TObject);
begin
inherited;

if QryTipoPersona2.RecordCount = 0 then
exit;

Qry1.ParamByName('Tipo').AsString := QryTipoPersona2Tipo.AsString;
Qry1.ParamByName('Nit').AsString := QryTipoPersona2Nit.AsString;
Qry1.Open;

Qry2.ParamByName('Tipo').AsString := QryTipoPersona2Tipo.AsString;
Qry2.ParamByName('Nit').AsString := QryTipoPersona2Nit.AsString;
Qry2.Open;

Qrynuevo.ParamByName('TipId').AsString := QryTipoPersona2Tipo.AsString;
Qrynuevo.ParamByName('NitCliente').AsString := QryTipoPersona2Nit.AsString;
Qrynuevo.Open;

Qry4.ParamByName('Tipo').AsString := QryTipoPersona2Tipo.AsString;
Qry4.ParamByName('Nit').AsString := QryTipoPersona2Nit.AsString;
Qry4.Open;

end;

procedure TFrmRepFormulario.ppReportepers2AfterPrint(
Sender: TObject);
begin
inherited;

ppReportepers2.ShowPrintDialog := true;
ppReportepers2.ShowCancelDialog := True;

Qry1.Close;
Qry2.Close;
Qrynuevo.Close;
Qry4.close;

end;

procedure TFrmRepFormulario.ppReportepers1AfterPrint(
Sender: TObject);
begin
inherited;
ppReportepers1.ShowPrintDialog := true;
ppReportepers1.ShowCancelDialog := True;

Qry1.Close;
Qry2.Close;
Qrynuevo.Close;
Qry4.close;

end;
Responder Con Cita
  #3  
Antiguo 30-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Amiga, ya leíste nuestra guía de estilo, gracias por tu colaboración.
Y cómo poner etiquetas al código:
Responder Con Cita
  #4  
Antiguo 30-03-2011
Diana Carolina Diana Carolina is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 30
Poder: 0
Diana Carolina Va por buen camino
Lo intentare!
Responder Con Cita
  #5  
Antiguo 30-03-2011
Diana Carolina Diana Carolina is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 30
Poder: 0
Diana Carolina Va por buen camino
Código Delphi [-]
procedure TFrmRepFormulario.spbGenerarClick(Sender: TObject);
begin
  inherited;

   QryTipoPersona.ParamByName('tipo').AsString := QryTipoTipo.AsString;
   QryTipoPersona.ParamByName('nit1').AsString := QryNit1Nit.AsString;
   QryTipoPersona.ParamByName('nit2').AsString := QryNit2Nit.AsString;
   if (gGeMotor = ORACLE ) then
      QryTipoPersona.SQL.Strings[6]:=' '
   else ///si es SQL_SERVER u otro
     QryTipoPersona.SQL.Strings[6]:=' ';

   QryTipoPersona.Close;
   QryTipoPersona.Open;
///aqui agregue validacion//   
   Qrynuevo.close;
  if FrmPrincipal.QryperteneceFirma.AsString = '001' then
     begin
          Qrynuevo.SQL.Strings[2]:='A.ALGO,';
          Qrynuevo.SQL.Strings[11]:='AND OP.ALGO = A.ALGO';
     end
   else
      begin
          Qrynuevo.SQL.Strings[2]:='A.OTRO,';
          Qrynuevo.SQL.Strings[11]:='AND OP.OTRO = A.ALGO'
      end;

  Qrynuevo.open;
end;

procedure TFrmRepFormulario.spbPreliminarClick(Sender: TObject);
begin
  inherited;
  if Qrytipopersona.AsString = 'A' then
    begin
     VarTipoIdCl := Qrytipopersonatipo.AsString;
     ppReportepers1.DeviceType := dtScreen;
     ppReportepers1.Print;
    end
  else
    begin
     VarTipoIdCl := Qrytipopersonatipo.AsString;
     ppReportepers2.DeviceType := dtScreen;
     ppReportepers2.Print;
    end;
///Aqui agregue validacion///
    Qrynuevo.Close;
  if FrmPrincipal.QryperteneceFirma.AsString = '001' then
     begin
          Qrynuevo.SQL.Strings[2]:='A.ALGO,';
          Qrynuevo.SQL.Strings[11]:='AND OP.ALGO = A.ALGO';
     end
   else
      begin
          Qrynuevo.SQL.Strings[2]:='A.OTRO,';
          Qrynuevo.SQL.Strings[11]:='AND OP.OTRO = A.ALGO'
      end;

  Qrynuevo.open;
end;

procedure TFrmRepFormulario.spbImprimirClick(Sender: TObject);
var
  i : Integer;
  Pers1,Pers2 : Boolean;
begin
  inherited;
  Pers1 := False;
  Pers2 := False;
  for i := 0 to Qrypersona.RecordCount -1 do
  begin
    if Qrytipopersona.AsString = 'A' then
      begin
       VarTipoIdCl := Qrytipopersonatipo.AsString;
       ppReportepers1.DeviceType := dtPrinter;
       if Pers1 then
         begin
           ppReportepers1.ShowPrintDialog := False;
           ppReportepers1.ShowCancelDialog := False;
         end;
       ppReportepers1.Print;
       Pers1 := True;
      end
    else
      begin
       VarTipoIdCl := Qrytipopersonatipo.AsString;
       ppReportepers2.DeviceType := dtPrinter;
       if PersNat then
         begin
           ppReportepers2.ShowPrintDialog := False;
           ppReportepers2.ShowCancelDialog := False;
         end;
       ppReportepers2.Print;
       Pers2 := True;
      end;
    Qrytipopersona.FindNext;
   end;
///Agregue validacion/// 
 Qrynuevo.Close;
if FrmPrincipal.QryperteneceFirma.AsString = '001' then
     begin
          Qrynuevo.SQL.Strings[2]:='A.ALGO,';
          Qrynuevo.SQL.Strings[11]:='AND OP.ALGO = A.ALGO'
     end
   else
      begin
          Qrynuevo.SQL.Strings[2]:='A.OTRO,';
          Qrynuevo.SQL.Strings[11]:='AND OP.OTRO = A.ALGO'
      end;

  Qrynuevo.open;  
end;

procedure TFrmRepFormulario.ppReportepers1PreviewFormCreate(
  Sender: TObject);
begin
  inherited;
  ppReportepers1.PreviewForm.WindowState := wsMaximized;
end;

procedure TFrmRepFormulario.ppReportepers1BeforePrint(
  Sender: TObject);
begin
  inherited;

  if QryTipoPersona1.RecordCount = 0 then
     exit;

  Qry1.ParamByName('Tipo').AsString := QryTipoPersona1Tipo.AsString;
  Qry1.ParamByName('Nit').AsString := QryTipoPersona1Nit.AsString;
  Qry1.Open;

  Qry2.ParamByName('Tipo').AsString := QryTipoPersona1Tipo.AsString;
  Qry2.ParamByName('Nit').AsString := QryTipoPersona1Nit.AsString;
  Qry2.Open;

  Qrynuevo.ParamByName('TipId').AsString := QryTipoPersona1Tipo.AsString;
  Qrynuevo.ParamByName('NitCliente').AsString := QryTipoPersona1Nit.AsString;
  Qrynuevo.Open;

  Qry4.ParamByName('Tipo').AsString := QryTipoPersona1Tipo.AsString;
  Qry4.ParamByName('Nit').AsString := QryTipoPersona1Nit.AsString;
  Qry4.Open;

end;

procedure TFrmRepFormulario.ppReportepers2PreviewFormCreate(
  Sender: TObject);
begin
  inherited;
  ppReportepers2.PreviewForm.WindowState := wsMaximized;
end;

procedure TFrmRepFormulario.ppReportepers2BeforePrint(
  Sender: TObject);
begin
  inherited;

  if QryTipoPersona2.RecordCount = 0 then
     exit;

  Qry1.ParamByName('Tipo').AsString := QryTipoPersona2Tipo.AsString;
  Qry1.ParamByName('Nit').AsString := QryTipoPersona2Nit.AsString;
  Qry1.Open;

  Qry2.ParamByName('Tipo').AsString := QryTipoPersona2Tipo.AsString;
  Qry2.ParamByName('Nit').AsString := QryTipoPersona2Nit.AsString;
  Qry2.Open;

  Qrynuevo.ParamByName('TipId').AsString := QryTipoPersona2Tipo.AsString;
  Qrynuevo.ParamByName('NitCliente').AsString := QryTipoPersona2Nit.AsString;
  Qrynuevo.Open;

  Qry4.ParamByName('Tipo').AsString := QryTipoPersona2Tipo.AsString;
  Qry4.ParamByName('Nit').AsString := QryTipoPersona2Nit.AsString;
  Qry4.Open;

end;

procedure TFrmRepFormulario.ppReportepers2AfterPrint(
  Sender: TObject);
begin
  inherited;

   ppReportepers2.ShowPrintDialog := true;
   ppReportepers2.ShowCancelDialog := True;

  Qry1.Close;
  Qry2.Close;
  Qrynuevo.Close;
  Qry4.close;
 
end;

procedure TFrmRepFormulario.ppReportepers1AfterPrint(
  Sender: TObject);
begin
  inherited;
   ppReportepers1.ShowPrintDialog := true;
   ppReportepers1.ShowCancelDialog := True;

  Qry1.Close;
  Qry2.Close;
  Qrynuevo.Close;
  Qry4.close;

end;
Responder Con Cita
  #6  
Antiguo 31-03-2011
Diana Carolina Diana Carolina is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 30
Poder: 0
Diana Carolina Va por buen camino
Caso Extraño!

Ok...les cuento que el problema de imprimir parece ser solo en mi computador, un compañero compilo el mismo fuente en su equipo y no existe ningun problema al imprimir por cualquier lado,,,lo curioso es que me paso el ejecutable que funciona en su equipo y al abrirlo en el mio no funciona,,,es el mismo codigo fuente y cuando lo compilo en mi equipo queda con el problema,,,si lo paso a otro equipo no funciona, el de mi compañero si....Quiza alguno de ustedes pueda explicarme el por que de esto...Gracias
Responder Con Cita
  #7  
Antiguo 31-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Puede ser configuración de la impresora?, ¿los drivers?, también hay un pequeño truco cuando ocurren "cosas raras", borra el fichero reportbuilder.ini que está en c:\windows
Responder Con Cita
  #8  
Antiguo 31-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por Diana Carolina Ver Mensaje
Ok...les cuento que el problema de imprimir parece ser solo en mi computador, un compañero compilo el mismo fuente en su equipo y no existe ningun problema al imprimir por cualquier lado,,,lo curioso es que me paso el ejecutable que funciona en su equipo y al abrirlo en el mio no funciona,,,es el mismo codigo fuente y cuando lo compilo en mi equipo queda con el problema,,,si lo paso a otro equipo no funciona, el de mi compañero si....Quiza alguno de ustedes pueda explicarme el por que de esto...Gracias

Ghost in the Machine.....
__________________
Dulce Regalo que Satanas manda para mi.....
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 report builder MIGUELITO Impresión 1 18-01-2011 22:47:10
Obtener PageCount de Reporte realizado en Report Builder. cybergerman Impresión 1 11-02-2010 23:50:24
Como ver un reporte de fast report desde un boton en delphi DATESCO Impresión 4 08-09-2008 05:42:31
Reporte diferentes con report builder vroa74 Impresión 0 17-09-2007 01:21:40
Problemas al imprimir dbmemos en report builder Jorge Taveras Impresión 9 05-10-2005 12:40:53


La franja horaria es GMT +2. Ahora son las 12:53:09.


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