Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-03-2009
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Poder: 17
chino150 Va por buen camino
Como Imprimir Ticket desde QuickReport

Hola a todos

La consulta es lo siguiente, e desarollado un sistema en Delphi 6, MySQL, Zeos 6.6 donde los tickets se imprimian directamente al la impresora, pero ahora el cliente desea que le muestre un preview ante de imprimir el ticket. Necesito ayuda en como lograr esto en Quick Report o en Free Report.


Muchas Gracias!!!!
Responder Con Cita
  #2  
Antiguo 09-03-2009
Avatar de Ferrari
Ferrari Ferrari is offline
Miembro
 
Registrado: jun 2006
Ubicación: Torreón, México
Posts: 154
Poder: 18
Ferrari Va por buen camino
Hola...pues simplemente en lugar de darle en QuickReport:

Código Delphi [-]
Qreport.Print; 

cambiarlo por:

QReport.Preview;
Responder Con Cita
  #3  
Antiguo 09-03-2009
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Poder: 17
chino150 Va por buen camino
Smile

Cita:
Empezado por Ferrari Ver Mensaje
Hola...pues simplemente en lugar de darle en QuickReport:

Código Delphi [-]Qreport.Print; cambiarlo por: QReport.Preview;
Gracias pero creo que me esplique mal cuando hablo de directamente al printer estoy diciendo al canvas, el ticket no esta ello en quick report quiero saber como mandarle los datos al quick report este es el codigo que utlizo para imprimir el ticket
Código Delphi [-]
procedure TfrmMain.BitBtn1Click(Sender: TObject);
var Fecha : String;
Ticket: TextFile;
Total, Efectivo, Cambio : Double;
xdes, xval, xtot, xpag, xcam: ShortString;
xsum: Double;
begin
    Fecha := DateToStr(Now);
     TIngresosFecha.AsString := Fecha;
     Total := TIngresosValor.Value;
     Efectivo := TIngresosEfectivo.Value;
     Cambio := Total - Efectivo;
     TIngresosCambio.Value := Cambio;
     TIngresos.Post;

     try
    AssignPrn(Ticket);
    //AssignFile(Ticket, 'LPT1');
    Rewrite(Ticket);
    Writeln(Ticket,#27#64);
    Writeln(Ticket,'Ministerio Bendicion Inc.');
    Writeln(Ticket,'C/Ambar No.109 Ens. Papagayo');
    Writeln(Ticket,'La Romana RD. 22000');
    Writeln(Ticket,'Tel: 809-556-4914');
    Writeln(Ticket,'Tel: 809-550-8266');
    Writeln(Ticket,'RNC: #4-12-02047-1');
    Writeln(Ticket,'E-Mail: bendicionfm@hotmail.com');
    Writeln(Ticket,'Website: www.bendicionfm.com');
    Writeln(Ticket,'');
    Writeln(Ticket,'Fecha: '+DateToStr(Now));
    Writeln(Ticket,'Recibo: '+DBText1.Caption+'');
    Writeln(Ticket,'Colaborador: '+ QConsulta.FieldByName('Nombre').asString);
    Writeln(Ticket,'');
    QConsulta.Close;
    QConsulta.SQL.Clear;
    QConsulta.SQL.ADD('Select * From Ingresos where NoRecibo='+DBText1.Caption);
    QConsulta.Open;
    Writeln(Ticket,'-------------------------------');
    Writeln(Ticket,'Descripcion              Valor ');
    Writeln(Ticket,'-------------------------------');
    xsum := 0;
    QConsulta.Close;
    QConsulta.SQL.Clear;
    QConsulta.SQL.Add('Select * from Ingresos where NoRecibo='+DBText1.Caption);
    QConsulta.Open;
    QConsulta.First;
     while not QConsulta.Eof do
     begin
     xdes := copy(QConsulta.fieldbyname('desc').AsString,1,20);
     xval := format('%8.2f',[QConsulta.fieldbyname('valor').asFloat]);
     xsum := xsum + QConsulta.fieldbyname('valor').AsFloat;
     Writeln(Ticket,xdes+'                    '+xval);
     QConsulta.Next;
     end;
     Writeln(Ticket,'-------------------------------');
     xtot := FloatToSTR(xsum);
     xpag := FloatToSTR(Efectivo);
     xcam := FloatToSTR(Cambio);
     Writeln(Ticket,'Total:  RD$'+xtot);
     Writeln(Ticket,'Efectivo:  RD$'+xpag);
     Writeln(Ticket,'Cambio:  RD$'+xcam);
     Writeln(Ticket,'-------------------------------');
     Writeln(Ticket,'Dios les Bendiga');
     Writeln(Ticket,'');
     Writeln(Ticket,'');
     Writeln(Ticket,'');
     Writeln(Ticket,'');
     Writeln(Ticket,'');
     Writeln(Ticket,'');
     Writeln(Ticket,'');
     Writeln(Ticket,'');
     Writeln(Ticket,'');
     Writeln(Ticket,#27#105); // Cortar
     finally
      CloseFile(Ticket);
     end;
end;

esto es lo que quiero hacer pero via quick report
Responder Con Cita
  #4  
Antiguo 10-03-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Pues según yo, solo sería necesario seleccionar el tamaño del ticket. Diseñar tu reporte exactamente a como haces el ticket y enlazarlo a tu consulta.

¿que es lo que has intentado?
__________________

Responder Con Cita
  #5  
Antiguo 10-03-2009
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Poder: 17
chino150 Va por buen camino
Smile

Cita:
Empezado por ContraVeneno Ver Mensaje
Pues según yo, solo sería necesario seleccionar el tamaño del ticket. Diseñar tu reporte exactamente a como haces el ticket y enlazarlo a tu consulta.

¿que es lo que has intentado?
Gracia ContraVeneno no e intentado nada, me puedes mostra como lograr lo que dices.
Responder Con Cita
  #6  
Antiguo 10-03-2009
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
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.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #7  
Antiguo 10-03-2009
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Poder: 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
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
QuickReport y Ticket escullar Impresión 2 20-06-2008 00:53:18
Problema Imprimir Ticket con QuickReport enecumene Impresión 17 27-05-2008 17:29:56
Imprimir y agrupar info desde arreglo con QuickReport ZRR Impresión 0 01-02-2006 20:22:45
Como imprimir un bitmap al inicio de un ticket Javi2 Impresión 3 24-01-2006 18:39:08
Imprimir en ticket? pgraciap Impresión 1 08-11-2003 01:12:17


La franja horaria es GMT +2. Ahora son las 09:38:32.


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