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 15-07-2004
teletranx teletranx is offline
Miembro
 
Registrado: feb 2004
Ubicación: Chile
Posts: 112
Poder: 21
teletranx Va por buen camino
Question zReport, salta al comenzar

saludos,

Tengo un problema con zReport, ya que cuando empieza a imprimir salta 2 lineas. lo cual no quiero que pase.
Esas lineas tienes caracteres de control, los cuales son Nro 15 y 13 en ascii

Que hago?
Gracias...
Juan Carlos
Responder Con Cita
  #2  
Antiguo 20-07-2004
teletranx teletranx is offline
Miembro
 
Registrado: feb 2004
Ubicación: Chile
Posts: 112
Poder: 21
teletranx Va por buen camino
Thumbs up

Gracias,

encontre la solución, la cual es modificar, dos archivos fuentes, del zreport

que esa pequeña modificación ya no hay saltos al comenzar.

juan Carlos

p.d.

si alguien se interesa en las modificaciones.
Responder Con Cita
  #3  
Antiguo 29-07-2004
Ignacio Ignacio is offline
Miembro
 
Registrado: may 2003
Posts: 77
Poder: 21
Ignacio Va por buen camino
mismo problema y otros

Hola

Tengo el mismo problema que voz. Me podrias desir cual es el archivo a modificar y en que lugar?

Te cuento mas en detalle. El control ZReport tiene una propiedad en la cual le especifico el alto del formulario. Dentro declaro una banda que necesariamente deberá tener 2 lineas de alto menos que el control ZReport quedando una de ellas en la parte superior y sin usar. Podrá ser este el problema?

Otro problema que tengo es el lugar donde comienza la impresión de los formularios siguientes. El programa debe imprimir mas de 100 recibos en forma secuencial. A cada recibo le queda un espacio en la parte inferior que no se debe imprimir. Necesito saltar esta parte para comensar la impreción del proximo formulario.

Me das una mano?
Responder Con Cita
  #4  
Antiguo 24-08-2004
sur-se sur-se is offline
Miembro
 
Registrado: may 2003
Posts: 212
Poder: 21
sur-se Va por buen camino
Modificación

Hola. Teletranx, podrías poner el código con los cambios que has realizado para evitar ese problema. Gracias.
Responder Con Cita
  #5  
Antiguo 02-09-2004
teletranx teletranx is offline
Miembro
 
Registrado: feb 2004
Ubicación: Chile
Posts: 112
Poder: 21
teletranx Va por buen camino
Saludos

Cambie los fuentes, y también en donde va el código escape de salto de página coloque "#21" para controlar cuando cambia de hoja.

Donde lo coloco los fuentes con las modificaciones y un ejemplo del zreport


Saludos


Juan Carlos
Responder Con Cita
  #6  
Antiguo 16-09-2004
sur-se sur-se is offline
Miembro
 
Registrado: may 2003
Posts: 212
Poder: 21
sur-se Va por buen camino
Creo que aquí mismo, si no es muy largo.
Responder Con Cita
  #7  
Antiguo 16-09-2004
teletranx teletranx is offline
Miembro
 
Registrado: feb 2004
Ubicación: Chile
Posts: 112
Poder: 21
teletranx Va por buen camino
Talking

En zrEspace.pas

const
EscapeChar: Char = '\';
EscapeSpecifiers: TZREscapeSpecifiers =
('@', '=', 'P', 'E', 'C', 'c', 'B', 'b', 'I', 'i', 'U', 'u', 'H', 'h', 'L', 'l', '<', '>', '{', '}');
// Nuevo
Var
Contador : Integer;
Cadena : String;
Sw : Boolean;
LargoPagina : Integer;

// Cambios
procedure TZREscapeStream.WriteString(const Value: String);
var
e: TZREscapeCode;
S: String;
begin
S:= Value;
for e:= Low(TZREscapeCode) to High(TZREscapeCode) do
S:= StringReplace(S, EscapeChar + EscapeSpecifiers[e], Escapes[e], [rfReplaceAll]);
if (S = #$15) and Sw and (LargoPagina <= Contador)then
Begin
Contador := 0;
Cadena := '';
Sw := False;
End;
Contador := Contador + 1;
if Contador < 4 then
Begin
if S = #$15 then
S := #$C;
Cadena := Cadena + S;
End;
if (Contador > 2) And (not Sw) then
Begin
Sw := True;
S := Cadena;
end;
if S = #$15 then
S := '';
if Sw then
inherited WriteString(S);
end;


En zrPrntr.pas

procedure TZRPrinter.Cleanup;
var
p : TZRPage;
begin
Cancel;
while PageCountY > 0 do begin
p := TZRPage(fPages.Last);
fPages.Remove(p);
p.Free;
end;
ZREscape.Contador := 0;
ZREscape.Cadena := '';
ZREscape.Sw := False;
fPageCount := 0;
fCurrentY := -1;
fCurrentX := -1;
fStatus := zpsReady;
end;


function TZRPrinter.Setup: Boolean;
begin
with TfmPrinterSetup.Create(Application) do
try
ZREscape.Contador := 0;
ZREscape.Cadena := '';
ZREscape.Sw := False;
ZREscape.LargoPagina := Report.PageHeight;
with FormPrintCommonDialog do begin
Options := [poPrintToFile,poPageNums,poWarning];
MinPage := 1;
MaxPage := PageCount;
Copies := Self.Options.Copies;
Collate := True;
FromPage := Self.Options.PageFrom;
ToPage := Self.Options.PageTo;
if (FromPage > MinPage) or
(ToPage < MaxPage) then
PrintRange := prPageNums
else
PrintRange := prAllPages;
PrintToFile := Self.Options.Destination = zrdFile;
end;
cbConvertToOEM.Checked := Self.Options.OEMConvert;
cbIgnoreFontStyles.Checked := Self.Options.IgnoreStyles;
cbEscapeModel.ItemIndex := Integer(Self.Options.Escapes.Model);
Result := FormPrintCommonDialog.Execute;
if Result then begin
with FormPrintCommonDialog do begin
Self.Options.PageFrom := FromPage;
Self.Options.PageTo := ToPage;
Self.Options.Copies := Copies;
end;
Self.Options.OEMConvert := cbConvertToOEM.Checked;
Self.Options.IgnoreStyles := cbIgnoreFontStyles.Checked;
Self.Options.Escapes.Model := TZREscapeModel(cbEscapeModel.ItemIndex);
if FormPrintCommonDialog.PrintToFile then begin
Self.Options.Destination := zrdFile;
with TSaveDialog.Create(Application) do
try
Filter := LoadStr(szrFileFilter);
Options := Options + [ofOverwritePrompt,ofPathMustExist];
//FileName := Self.Options.FileName;
FileName := Self.Report.FileName;
Result := Execute;
if Result then Self.Options.FileName := FileName;
finally
Free;
end;
end else
Self.Options.Destination := zrdPrinter;
end;
finally
Free;
end;
...
...
end;

En la Aplicación en los códigos escape del del zReport

en

+ Optiones
+ Escapes
PageFinish #21 con el cual controlo el salto de página entre hojas



Saludos Juan Carlos
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


La franja horaria es GMT +2. Ahora son las 11:28:58.


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