Ver Mensaje Individual
  #5  
Antiguo 05-09-2010
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Reputación: 20
FGarcia Va por buen camino
Ciertamente puedes generar una plantilla de boleto con algun reporteador y despues darle salida por el puerto deseado. Hace algun tipo hice esto usando un memo, es para algo en particular por lo que solo interpreta el como lo hice.

Código Delphi [-]
//Este procedimiento se llama desde algun punto del programa
procedure tfrmPBoletos.showBoleto ;
begin
  with Memo1.Lines do
    begin
      Clear ;
      Add('MiEmpresa');
      Add('MiDomicilio');
      Add('MiCiudad');
      Add('MiCodigoFiscal');
      Add('MiTelefono' + #13#10);
      Add('*****REIMPRESION DE BOLETO*****');
      Add('');
      Add('                 Folio: ' + DM_Varios.PadString(IntToStr(frmDatos.MDOSalida.FieldByName('FOLIO').AsInteger),'0',7,toLeft));
      Add('Vehiculo Placas:   ' + frmDatos.MDOSalida.FieldByName('PLACAS').AsString);
      Add('Transporte:   ' + frmDatos.MDOSalida.FieldByName('TRANSPORTE').AsString);

      if Trim(frmDatos.MDOSalida.FieldByName('OPERADOR').AsString) = '' then
        Memo1.Lines.Add('')
      else
        Memo1.Lines.Add('Operador:  ' + frmDatos.MDOSalida.FieldByName('OPERADOR').AsString + #13#10);

      Add('Origen:   ' + frmDatos.MDOSalida.FieldByName('ORIGEN').AsString);
      Add('Cliente:' + frmDatos.MDOSalida.FieldByName('NOMBRE').AsString);
      Add('Producto: ' + frmDatos.MDOSalida.FieldByName('PRODUCTO').AsString + #13#10);
      Add('');

      if Trim(frmDatos.MDOSalida.FieldByName('OBS').AsString) = '' then
        Memo1.Lines.Add('')
      else
        begin
          Memo1.Lines.Add('Observaciones: ' + #13#10);
          Memo1.Lines.Add(frmDatos.MDOSalida.FieldByName('OBS').AsString);
        end;
    end;
end;

{Cuando se hace clik en el boton de impresion.  
 En este caso doy salida por el puerto serie Com1; 
 use el ComPort de Djan Cernilla}

procedure TfrmPBoletos.btnImprimeClick(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to Memo1.Lines.Count - 1 do
    DM_Formatos.ComPort1.WriteStr(Memo1.Lines[i] + #13#10);
  Close;
end;

//Este procedimiento limita a 40 caracteres las lineas del memo
procedure TfrmPBoletos.Memo1Change(Sender: TObject);
begin
  if (Length(Memo1.Lines.Text) mod 40) = 0 then
  begin
    Memo1.Lines.Add(''); //nueva linea
    Memo1.SelStart := Length(Memo1.Lines.Text); //mover cursor
  end;
end;
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?

Última edición por FGarcia fecha: 05-09-2010 a las 01:21:25.
Responder Con Cita