Ver Mensaje Individual
  #7  
Antiguo 10-03-2009
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Reputación: 17
chino150 Va por buen camino
Smile

Cita:
Empezado por AzidRain Ver Mensaje
Por lo que veo no estás usando nada grafico por lo que tu solución es la siguiente:

1.- En lugar de mandar todos los writelns a la impresora, utiliza un TMemo y le añades las cadenas que vas imprmiendo.

En lugar de ...
Código Delphi [-] Writeln(Ticket,#27#64); Writeln(Ticket,'Ministerio Bendicion Inc.'); Writeln(Ticket,'C/Ambar No.109 Ens. Papagayo'); Writeln(Ticket,'La Romana RD. 22000');


Código Delphi [-] //MiPreview es un TMemo MiPreview.Lines.Add(#27#64); MiPreview.Lines.Add('Ministerio Bendicion Inc.'); MiPreview.Lines.Add('C/Ambar No.109 Ens. Papagayo'); MiPreview.Lines.Add('La Romana RD. 22000');


Y en automático lo tendrás mostrado en pantalla, ahora para imprimirlo:
Código Delphi [-]//recorremos todas las lineas del memo y las mandamos a la impresora for i:=0 to MiPreview.Lines.Count - 1 Do Writeln(Ticket,Mipreview.Lines.Strings[i]);


Limpias Mipreview con MiPreview.Lines.clear y estas listo para otra impresión.
Gracias pero me sale un error de que el campo Ticket no esta en la tabla pero verdaderamente esta este es el codigo a ver si me puedes seguir ayudando
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var Fecha : String;
Ticket: TextFile;
Total, Efectivo, Cambio : Double;
xdes, xval, xtot, xpag, xcam: ShortString;
xsum: Double;
i: integer;
begin
     Fecha := DateToStr(Now);
     TIngresosFecha.AsString := Fecha;
     Total := TIngresosAporte.Value;
     Efectivo := TIngresosEfectivo.Value;
     Cambio := Total - Efectivo;
     TIngresosCambio.Value := Cambio;
     TIngresos.Post;

     try
        Memo1.Lines.Add(#27#64);
        Memo1.Lines.Add('Ministerio Bendición Inc.');
        Memo1.Lines.Add('C/Ambar No.109 Ens. Papagayo');
        Memo1.Lines.Add('La Romana RD. 22000');
        Memo1.Lines.Add('Tel: 809-556-4914');
        Memo1.Lines.Add('Tel: 809-550-8266');
        Memo1.Lines.Add('RNC: #4-12-02047-1');
        Memo1.Lines.Add('E-Mail: bendicionfm@hotmail.com');
        Memo1.Lines.Add('Website: www.bendicionfm.com');
        Memo1.Lines.Add('');
        Memo1.Lines.Add('Fecha: '+DateToStr(Now));
        Memo1.Lines.Add('Recibo: '+ qConsulta.FieldByName('Ticket').AsString);
        Memo1.Lines.Add('');
        qConsulta.Close;
        qConsulta.SQL.Clear;
        qConsulta.SQL.Add('Select Max(Ticket)from Bonos');
        qConsulta.Open;
        Memo1.Lines.add('-------------------------------');
        memo1.Lines.add('Descripción              Valor ');
        memo1.lines.add('-------------------------------');
         xsum := 0;
    QConsulta.Close;
    QConsulta.SQL.Clear;
    QConsulta.SQL.Add('Select Max(Ticket)from Bonos ');
    QConsulta.Open;
    QConsulta.First;
     while not QConsulta.Eof do
     begin
     xdes := copy(QConsulta.fieldbyname('descripcion').AsString,1,20);
     xval := format('%8.2f',[QConsulta.fieldbyname('aporte').asFloat]);
     xsum := xsum + QConsulta.fieldbyname('aporte').AsFloat;
     memo1.Lines.Add(xdes+'                    '+xval);
     QConsulta.Next;
     end;
     Memo1.Lines.Add('-------------------------------');
     xtot := FloatToSTR(xsum);
     xpag := FloatToSTR(Efectivo);
     xcam := FloatToSTR(Cambio);
     Memo1.Lines.Add('Total:  RD$'+xtot);
     Memo1.Lines.Add('Efectivo:  RD$'+xpag);
     memo1.Lines.Add('Cambio:  RD$'+xcam);
     memo1.Lines.Add('-------------------------------');
     memo1.Lines.Add('Dios les Bendiga');
     memo1.Lines.Add('');
     memo1.Lines.Add('');
     memo1.Lines.Add('');
     memo1.Lines.Add('');
     memo1.Lines.Add('');
     memo1.Lines.Add('');
     memo1.Lines.Add('');
     memo1.Lines.Add('');
     memo1.Lines.Add('');
     memo1.Lines.Add(#27#105);
     for i := 0 to Memo1.Lines.Count - 1 do
         Writeln(Ticket,Memo1.Lines.Strings[i]);
         finally
         Memo1.Lines.Clear;
         end;


end;
otra duda es esto lo muestra antes de imprimir y si es asi como lo manda a imprimir el usuario.

Gracias.
Responder Con Cita