Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Segunda impresión me imprime en blanco (https://www.clubdelphi.com/foros/showthread.php?t=38508)

Leto_Atreides 16-12-2006 19:59:05

Segunda impresión me imprime en blanco
 
Un saludo a todos los fanáticos del delphi

Mi problema es el siguiente:
He realizado una aplicación que permite crear presupuestos. Cuando imprimo uno no hay problema. Después de imprimirlo y sin salir del formulario quiero que me ofrezca la posibilidad de que me permita imprimir si se han cambiado los datos. El problema es que me imprime en blanco porque no me coge los parámetros de impresión. Es decir que no lee el fichero de texto .ini que indica las coordenadas donde deben imprimirse cada una de las líneas. (Creo que ese es el problema puesto que devuelve una hoja en blanco)
¿Cuál puede ser el problema?
Gracias

Manuel 17-12-2006 02:06:28

Te sugiero que nos des unos algunos datos más como por ejemplo:

versión delphi
reporteador nombre y versión
componentes, etc.
una explicación más detallada de lo que estas haciendo.

Leto_Atreides 17-12-2006 14:43:19

Versión : Delphi 5

No imprimo a través de ningún Report.

Componentes?? Estándares

El procedimiento es el siguiente:

begin
LlenarFIni; //recojo los datos del fichero de texto
FMenu.IMP.PrimeraLinea:=PrimeraLinea; //Aqui empieza la impresion
FMenu.IMP.UltimaLinea:=UltimaLinea; //Fin de pagina
FMenu.IMP.EntreLineas:=EntreLineas; //Distancia entre líneas
if not error then begin
try
Printer.Orientation:=poPortrait;
Printer.BeginDoc;
BD.Tpresupuestos.close;
BD.TPresupuestos.open;
......
......
FMenu.Imp.Texto(ccli,fcli,'Cliente'); //por ejemplo
.....
.....

IMPRIMO DIRECTAMENTE SOBRE EL CANVAS DE LA IMPRESORA

procedure TImpresion.Texto(x,y:real;c:string);
begin
Printer.Canvas.TextOut(LocX(x),LocY(y),c);
end;

function TImpresion.LocX(x:real):longint;
begin
LocX:=Round(x*(ancho/horiz)*10);
end;

function TImpresion.LocY(y:real):longint;
begin
LocY:=Round(y*(largo/vert)*10);
end;

procedure TImpresion.Texto(x,y:real;c:string);
begin
Printer.Canvas.TextOut(LocX(x),LocY(y),c);
end;

fedelphi 18-12-2006 15:29:27

En vez de hacer un BD.TPresupuestos.Close/Open haz solo un BD.Tpresupuestos.First. Suerte.
Fede

Manuel 18-12-2006 15:50:54

no veo el EndDoc.

Leto_Atreides 23-12-2006 10:50:15

Ya he solucionado el problema. La solución era otra.
Gracias encarecidamente por vuestra ayuda
Feliz navidad a todos

dec 23-12-2006 11:11:04

Hola,

Cita:

Empezado por Leto
Ya he solucionado el problema. La solución era otra.

Es una buena costumbre, te parecerá, dejar constancia de la solución, puesto que puede alguna vez servirle a otra persona. ¿No crees?

Ah, y feliz navidad a ti también. ;)


La franja horaria es GMT +2. Ahora son las 03:41:12.

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