![]() |
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:confused: |
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. :D |
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? |
Modificación
Hola. Teletranx, podrías poner el código con los cambios que has realizado para evitar ese problema. Gracias.
|
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:D |
Creo que aquí mismo, si no es muy largo.
|
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:D |
La franja horaria es GMT +2. Ahora son las 05:47:19. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi