Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-04-2012
gmendoza5426 gmendoza5426 is offline
Miembro
 
Registrado: jul 2011
Posts: 11
Poder: 0
gmendoza5426 Va por buen camino
Question Impresion con TMU 220 paralelo desde delphi

Buenas tardes
Necesito ayuda por favor, tenemos un sistema de punto de ventas hecho con delphi 6, imprimimos mediante un controlador de puerto serial directamente a la impreson EPSON TM U950, ahora necesitamos programar para que imprima con la TMU 220 pararalelo, alguien tiene algun controlador de puerto paralelo o algun ejemplito de como hacer funcionar delphi con esa impresora?
Desde ya muchas gracias
Responder Con Cita
  #2  
Antiguo 26-04-2012
Chaja Chaja is offline
Miembro
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 214
Poder: 14
Chaja Va por buen camino
es una impresora fiscal???? o es solo una comanda... si es la ultima opcion, instalaka como una imp mas de windows, y deberas generar el reporte por el generador que uses. Ahora si es fiscal, no sabia que habia paralelo....


Luis Roldan
Mar del Plata
Argentina
Responder Con Cita
  #3  
Antiguo 26-04-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 9.792
Poder: 27
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola gmendoza5426.

Y si desean imprimir prescindiendo de un reporter, revisá este enlace: [Imprimir directamente].

Para más información hacé una busqueda en el foro con la palabra printer

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 26-04-2012
gmendoza5426 gmendoza5426 is offline
Miembro
 
Registrado: jul 2011
Posts: 11
Poder: 0
gmendoza5426 Va por buen camino
Hola Chaja, ecfisa
Efectivamente existe impresora TM U220 paralela y es fiscal, porque el sistema es de un Supermercado.
Encontre una solucion alternativa que es la de tirar a un reporte e imprimir todas las lineas al terminar la transaccion, lo malo de esto es el tiempo de impresion, por eso estoy buscando imprimir directo al puerto de la impresora, voy a tratar de probar los codigos que encontre en el hilo que me dejo ecfisa a ver que sale. Desde muchas gracias a ambos por responder, cualquier solucion que encuentre lo voy a informar.

Saludos
Responder Con Cita
  #5  
Antiguo 26-04-2012
Avatar de javier7ar
javier7ar javier7ar is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 124
Poder: 12
javier7ar Va por buen camino
Post

Para imprimir directamente yo abro la impresora como un archivo y voy imprimiendo con WriteLN. Es un poco tedioso si lo comparas con hacerlo con un reporte que es mas sencillo, pero la velocidad de impresion entre el reporte y la impresion directa es muy notable. El tema esta en que el reporte manda a imprimir en modo imagen, y la impresion directa en modo caracter. Por ende, con la impresion directa solo puedes imprimir caracteres, y con el reporte podrias imprimir logos, dibujos, etc. Igualmente hay un par de caracteres de comando que se le mandan a la impresora para configurar algunas cosas como letra negrita, letra doble ancho o doble alto, corte de papel (si tiene) etc.
Te pongo el codigo de una impresion de un hola mundo!:
(la impresora debe estar agregada como impresora de windows, con el driver que traiga o con algun driver generico (Generic Text Only o tambien anda la Epson T1000)

Código Delphi [-]
var
  F: TextFile;
begin
IOResult;// Limpia el buffer de erroes anteriores AssignFile(F,'LPT1'); //Puerto de la Impresora: COM1, COM2, LPT1, LPT2, etc. Rewrite(F); Writeln(F,'Hola mundo'); Write(F,#27#33#8); //Letra negrita Writeln(F,'texto negrita'); Write(F,#27#105); //Corte de papel (no todos los modelos lo tienen) CloseFile(F);
end;
Espero te sirva

Saludos

P/D: No creo que sea una impresora fiscal, las fiscales vienen seriales. Si llega a ser una impresora fiscal, no te va a dejar imprimir como imprimis en cualquier impresora, porque tiene unos comandos especiales. Las fiscales no son impresoras comunes, no se les puede decir "imprimi este texto", tenes que decirle "imprimi esta factura, con este cliente, y este importe, etc."
Responder Con Cita
  #6  
Antiguo 30-04-2012
gmendoza5426 gmendoza5426 is offline
Miembro
 
Registrado: jul 2011
Posts: 11
Poder: 0
gmendoza5426 Va por buen camino
Hola Javier
Muy interesante tu codigo, de manera similar yo utilizo los comandos de la TM U950, justamente este tipo de impresion es lo que buscaba, a lo mejor soluciono de esta forma el problema que tengo hoy dia porque logre hacer imprimir el ticket directamente al puerto paralelo mediante el hilo que me dejo ecfisa, pero el problema es que no se como hacer que aumente el tamaño de mi impresion, es decir solo cierto numero de linea me permite imprimir en mi ticket, cuando mi ticket tiene demasiados detalles ya me imprimi solo hasta la linea 70 siempre, seguro abra alguna forma de decirle la cantidad de linea que quiero imprimir en mi documento, les dejo mi codigo a ver si me pueden decir con que comando lo puedo aumentar mi tamaño de impresion. De todas formas voy a mirar tu codigo, el tema es que recien despues de programar completamente la impresion de mi ticket me di cuanta de que solo 70 lineas me permite, es justo el largor de una hoja oficio. Coloco debajo de todo el codigo que utilizo hoy para imprimir, que como te comento mas arriba salio del hilo que me dejo ecfisa, si por ahi me pueden dar una manito de como hacer que me imprima mas de 70 lineas seria genial, porque lleva bastante tiempo armar todo de nuevo.

Desde ya muchas gracias por la ayuda.

Saludos
_____________________________________________________
Código Delphi [-]
unit impresiontmu220;
interface
Uses Printers;
procedure imprimirTicket220;

begin
//Inicio de Cabecera
  generarcabecera220;
  generardatosticket220;
  nitem := DMVentas.SQLCantItemcant.AsInteger;
   with TPrinter.Create do
   try
    x := Printer.PageWidth div 250;
    y := Printer.PageHeight div 80;
    nLin:= 1;
    BeginDoc;
    Canvas.Font.Name:= 'Courier New';//'Times new Roman';
    Canvas.Font.Size := 6;
    //Canvas.Font.Color:= clBlack;
    Canvas.Font.Height:= Printer.PageHeight div 80;
    PrintLine(Canvas,90, nLin, DMPrincipal.CDSEmpresanom_empresa.AsString);
    nLin:= LinesDown(Canvas, 2);
    PrintLine(Canvas,15, nLin, DMPrincipal.CDSEmpresanom_comercial.AsString );
    //nLin := nLin + 1;
    nLin:= LinesDown(Canvas, 3); // saltamos 1 linea
    PrintLine(Canvas,90, nLin, DMPrincipal.CDSSucursaltipo_sucursal.AsString );
    nLin:= LinesDown(Canvas, 4);
    PrintLine(Canvas,90, nLin, DMPrincipal.CDSSucursalnom_sucursal.AsString );
    nLin:= LinesDown(Canvas, 5);
    PrintLine(Canvas,90, nLin, 'RUC: '+ DMPrincipal.CDSEmpresaruc_empresa.AsString );
    nLin:= LinesDown(Canvas, 6); // saltamos 1 linea
    PrintLine(Canvas, 50, nLin, DMPrincipal.CDSSucursaldir_sucursal.AsString);
    nLin:= LinesDown(Canvas, 7); // saltamos 1 linea
    PrintLine(Canvas, 90, nLin, DMPrincipal.CDSSucursalciudad.AsString);
    //Fin de Cabecera
    nLin:= LinesDown(Canvas, 9); // saltamos 2 linea
    PrintLine(Canvas, 80, nLin, '***IVA INCLUIDO***');
    nLin:= LinesDown(Canvas, 10); // saltamos 1 linea
    PrintLine(Canvas, 80, nLin, 'TIMBRADO Nº: '+DMPrincipal.CDSEmpresanro_timbrado.AsString);
    nLin:= LinesDown(Canvas, 11); // saltamos 1 linea
    PrintLine(Canvas, 70, nLin, 'Válido hasta '+DMPrincipal.CDSEmpresafecha_venc_timbrado.AsString);
    nLin:= LinesDown(Canvas, 12); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'FACTURA CONTADO '+DMPrincipal.CDSSucursalcod_sucursal.AsString+'-'+DMVentas.CDSCajanro_caja_fiscal.AsString+'-'+
     Padear(DMVentas.CDSMovCajanro_ticket_fiscal.AsString,'0',7));
    nLin:= LinesDown(Canvas, 13); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, linea);
    nLin:= LinesDown(Canvas, 14); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'FECHA:'+ DateToStr(DMVentas.CDSMovCajafecha.AsDateTime)+ '       HORA:'+DMVentas.CDSMovCajahora.AsString);
    nLin:= LinesDown(Canvas, 15); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'CAJERO: '+ sNombreCajero);
    nLin:= LinesDown(Canvas, 16); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'Caja/Ticket: '+ DMVentas.CDSMovCajanro_caja.AsString +' / '+DMVentas.CDSMovCajanro_transaccion.AsString);
    nLin:= LinesDown(Canvas, 17); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, linea);
    nLin:= LinesDown(Canvas, 18); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'CLIENTE: ' + DMVentas.SQLClientenom_cliente.AsString);
    nLin:= LinesDown(Canvas, 19); // saltamos 1 linea
    if DMVentas.SQLClientesdig_verificador.IsNull then
       PrintLine(Canvas, x, nLin, 'RUC/CI: ' + DMVentas.SQLClientenro_documento.AsString)
    else
       PrintLine(Canvas, x, nLin, 'RUC/CI: ' + DMVentas.SQLClientenro_documento.AsString+'-'+DMVentas.SQLClientesdig_verificador.AsString);
    nLin:= LinesDown(Canvas, 12); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, linea);
    nLin:= LinesDown(Canvas, 21); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'Articulo      Descrip.   IVA');
    nLin:= LinesDown(Canvas, 22); // saltamos 1 linea
    PrintLine(Canvas, 50, nLin, ' Cant     Precio      Importe');
    nLin:= LinesDown(Canvas, 23); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, linea);
    DMVentas.CDSDetMovCaja.First;
    while not DMVentas.CDSDetMovCaja.Eof do
    begin
      PrintLine(Canvas,x, nLin, DMVentas.CDSDetMovCajaarticulo.AsString + ' '+DMVentas.CDSDetMovCajadescripcion_ticket.AsString + 
Padear(DMVentas.CDSDetMovCajaiva.AsString,' ',3)+'%');
      if DMVentas.CDSDetMovCajaprecio_unitario.AsCurrency > 999 then
         precio := FormatFloat('0,000',DMVentas.CDSDetMovCajaprecio_unitario.AsCurrency)
      else
         precio := CurrToStr(DMVentas.CDSDetMovCajaprecio_unitario.AsCurrency);
      if DMVentas.CDSDetMovCajaprecio_total.AsCurrency > 999 then
         importe := FormatFloat('0,000',DMVentas.CDSDetMovCajaprecio_total.AsCurrency)
      else
         importe := CurrToStr(DMVentas.CDSDetMovCajaprecio_total.AsCurrency);
      PrintLine(Canvas,30, nLin, Padear(DMVentas.CDSDetMovCajacantidad.AsString,' ',6)+' x'+ Padear(precio,' ',10)+Padear(importe,' ',13));

      DMVentas.CDSDetMovCaja.Next;
    end;
    nLin:= LinesDown(Canvas, (nitem * 2)+24); // saltamos 1 linea despues del ultimo detalle
    PrintLine(Canvas, x, nLin, linea);
    nLin:= LinesDown(Canvas, (nitem * 2)+25); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'Cant. de Item:'+IntToStr(nitem));
    if DMVentas.CDSMovCajatotal_venta.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSMovCajatotal_venta.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSMovCajatotal_venta.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+26); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, PadearDerecho('NETO A PAGAR',' ',20)+':'+ Padear(aux,' ',12));
    nLin:= LinesDown(Canvas, (nitem * 2)+27); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'PAGOS');
    //Imprimimos los pagos
    DMVentas.CDSDetPago.First;
    while not DMVentas.CDSDetPago.Eof do
    begin
      //npagos := npagos + 1;
      DMVentas.SQLNomPago.Params.ParamByName('cod_tp_medio_pago').AsInteger := DMVentas.CDSDetPagocod_tp_medio_pago.Value;
      UCerrarAbrirPG(DMVentas.SQLNomPago,nil);
      if DMVentas.CDSDetPagomonto_moneda.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSDetPagomonto_moneda.AsCurrency)
      else
       aux := CurrToStr(DMVentas.CDSDetPagomonto_moneda.AsCurrency);
       PrintLine(Canvas, x, nLin, PadearDerecho(DMVentas.SQLNomPagodes_tp_medio_pago.AsString,' ',20)+':'+ Padear(aux,' ',12));
      DMVentas.CDSDetPago.Next;
    end;
    if DMVentas.CDSPagototal_pago.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSPagototal_pago.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSPagototal_pago.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+28);
    PrintLine(Canvas, x, nLin, PadearDerecho('NETO PAGADO',' ',20)+':'+ Padear(aux,' ',12));
    if DMVentas.CDSPagovuelto.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSPagovuelto.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSPagovuelto.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+29);
    PrintLine(Canvas, x, nLin, PadearDerecho('VUELTO',' ',20)+':'+ Padear(aux,' ',12));
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+30);
    PrintLine(Canvas, x, nLin, linea);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+31);
    PrintLine(Canvas, x, nLin, 'DETALLE POR CONCEPTOS');
    if DMVentas.CDSMovCajatotal_ex.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSMovCajatotal_ex.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSMovCajatotal_ex.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+32);
    PrintLine(Canvas, x, nLin, PadearDerecho('Total exentas',' ',20)+':'+ Padear(aux,' ',12));
    if DMVentas.CDSMovCajatotal_gr_5.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSMovCajatotal_gr_5.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSMovCajatotal_gr_5.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+33);
    PrintLine(Canvas, x, nLin, PadearDerecho('Total Grabadas 5%',' ',20)+':'+ Padear(aux,' ',12));
    if DMVentas.CDSMovCajatotal_gr_10.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSMovCajatotal_gr_10.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSMovCajatotal_gr_10.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+34);
    PrintLine(Canvas, x, nLin, PadearDerecho('Total Grabadas 10%',' ',20)+':'+ Padear(aux,' ',12));
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+35);
    PrintLine(Canvas, x, nLin, linea);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+36);
    PrintLine(Canvas, x, nLin, 'LIQUIDACION IVA');
    if DMVentas.CDSMovCajatot_iva_5.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSMovCajatot_iva_5.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSMovCajatot_iva_5.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+37);
    PrintLine(Canvas, x, nLin, PadearDerecho('Total IVA 5%',' ',20)+':'+ Padear(aux,' ',12));
    if DMVentas.CDSMovCajatot_iva_10.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSMovCajatot_iva_10.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSMovCajatot_iva_10.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+38);
    PrintLine(Canvas, x, nLin, PadearDerecho('Total IVA 10%',' ',20)+':'+ Padear(aux,' ',12));
    //Total IVA
    if DMVentas.CDSMovCajatotal_iva.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSMovCajatotal_iva.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSMovCajatotal_iva.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+39);
    PrintLine(Canvas, x, nLin, PadearDerecho('Total IVA',' ',20)+':'+ Padear(aux,' ',12));
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+40);
    PrintLine(Canvas, x, nLin, linea);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+41);
    PrintLine(Canvas, x, nLin, DMPrincipal.CDSImpLeyendasleyenda_pie_1.AsString);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+42);
    PrintLine(Canvas, x, nLin, ' .  ');
    EndDoc;
  finally
    Free;
  end;
end;

Última edición por Casimiro Notevi fecha: 30-04-2012 a las 17:08:48.
Responder Con Cita
  #7  
Antiguo 30-04-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.474
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recuerda poner los tags al código fuente, ejemplo:
Responder Con Cita
  #8  
Antiguo 30-04-2012
gmendoza5426 gmendoza5426 is offline
Miembro
 
Registrado: jul 2011
Posts: 11
Poder: 0
gmendoza5426 Va por buen camino
Perdon se paso por completo colocarlos.

No se volvera a repetir.

Saludos
Responder Con Cita
  #9  
Antiguo 30-04-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.474
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es normal que te olvides, llevas poco tiempo

Voy a ponerlo yo mismo...
Responder Con Cita
  #10  
Antiguo 30-04-2012
gmendoza5426 gmendoza5426 is offline
Miembro
 
Registrado: jul 2011
Posts: 11
Poder: 0
gmendoza5426 Va por buen camino
Respecto a que me deja imprimir solo 70 lineas es porque tira la impresion al papel por defecto que traer la TMU 220 al instalar el windows que es la de 76 mm x 297 mm, ahora no tengo ni idea como cambiar esa configuracion antes de tirar mi impresion desde delphi, alguien me podria ayudar al respecto por favor.

Saludos
Responder Con Cita
  #11  
Antiguo 01-05-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 2.860
Poder: 13
newtron Va camino a la fama
Hola.

¿Has probado a imprimir con la instrucción TextOut?

Yo lo uso y no tengo ningún problema para imprimir las lineas que quieras de forma continuada.
__________________
Be water my friend.
Responder Con Cita
  #12  
Antiguo 01-05-2012
gmendoza5426 gmendoza5426 is offline
Miembro
 
Registrado: jul 2011
Posts: 11
Poder: 0
gmendoza5426 Va por buen camino
Hola
Con el codigo que me dejo javier7ar me funciona perfecto, encima los comandos para cortar papel, adelantar carro, los formatos de textos de centrado negrita etc. de la TMU950 me reconoce todo, es justo lo que buscaba.

Muchas gracias a todos
Responder Con Cita
  #13  
Antiguo 02-05-2012
Avatar de javier7ar
javier7ar javier7ar is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 124
Poder: 12
javier7ar Va por buen camino
con respecto a lo de imprimir muchas lineas, me paso con impresoras viejas (y justamente paralelas) que se "rompia" la impresion cuando eran muchas lineas.
Lo solucione imprimiendo 10 lineas y esperando 2 o 3 segundos, porque sino es como que se "atora" la impresora. Si este es el caso, fijate de probar con 2 o 3 segundos, ni se nota en la impresion, porque la impresora es mucho mas lenta de lo que la compu le manda los datos, pero esos segundos sirven para que pueda imprimir bien.

Para esperar 2 0 3 segundos cada 10 lineas hace esto:
Código Delphi [-]
for i:= 1 to segundos do
begin
    Sleep(1000);
    Application.ProcessMessages;
end;

Espero te sirva.
Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Puerto Paralelo Delphi alex10dv Varios 7 15-09-2011 02:00:16
Acceder a un router desde el puerto paralelo droguerman Redes 3 31-10-2005 19:54:18
Impresión en Delphi 2005 desde Win32 con VCL Damisela Impresión 1 30-06-2005 12:53:06
Impresión desde Delphi con ZReport Luis_Alberto Impresión 0 25-11-2003 22:37:59
Impresion Rapida desde Delphi y QREPORT wpolanco Impresión 1 27-05-2003 02:05:30


La franja horaria es GMT +2. Ahora son las 07:48:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi