Imprimir lineas de división

Hola keystone, se que hay forma de dibujar lineas tipo cuadros, por ejm. Quiero encerrar o dividir cuadros de las algunas cabeceras. Esta es una partE de la cabecera: La idea es que Nro correl. Esté separado por una línea, fecha emisión por otra linea, fecha venc. Por otra linea, etc. Y hay forma de dibujar lineas sin usa repl('-', 100) para que la linea no salga puenteada (----) osea que la linea salga corrida.
??? Space(1)+replicate('-',232)+ctrlF
??? Space(52)+padr('cop. De pago',12)+space(12)+padr('Inform. Proveed.',14)+space(31)+padr(Aduisi. Gravad. Destinadas a',25)+space(10)+padr('Const. Depos. De',16)+space(10)+padr('Referenc. Comprob. Pago o',25)+ctrlF
??? Space(58)+padr('Docuemento,9)+space(72)+padr('Operac.y/o de Export. Y ',26)+space(17)+PADR(Detraccion',10)+space(12)+padr('Doc. Orig. Que se MOodif.',24)+ctrlF
??? Space(18)+padr('Fecha',5)+space(123)+padr('Operac. No Gravadas,18)+ctrlF
??? Space(2)+padr('Nro',3)+space(5)+padr('Fecha,5)+space(3)+padr('Venc.',5)+space(4)+padr('Tipo',4)+space(2)+padr('Serie,5)+ctrlF
??? Space(1)+padr('Correl.',7)+space(1)+padr('Emision,7)+space(2)+padr('pago',4)+ctrlF
??? Space(1)+replicate('-',232)+ctrlF

1 respuesta

Respuesta
1
¿Cómo estas?
Lo que vamos a hacer es mandarle el carácter ascii que corresponda..
Mira, depende mucho de tu impresora (como esta configurada en la tabla de códigos)
Lo más fácil.. si vas a usar siempre la misma impresora, para no tocar el setup y eso poné una hoja en blanco y hagamos esto..
set printer to name soloTexto
for a=1 to 254
??? str(a,3)+' '+chr(a)+', '
endfor
set printer to defa
Esto hará que se imprima las códigos de todos los caracteres de la impresora
Bueno, con ese papel.. busca el que necesites y lo imprimís con la función chr()
Supone que la linea que necesitas es 174, bueno haces: replicate(chr(174), ¿80) o si es uno solo? Chr(174)
Bueno, espero haberte ayudado y desde ya estoy a tu disposición.
Keystone - Christian
www.keystone.com.ar
Hola, estoy probando la impreionde códigos y el error de sintaxis me sale después del for.
set printer to name soloTexto
for a=1 to 254
??? str(a,3)+' '+chr(a)+','
endfor
set printer to defa
Lo otro seria como puedo visualizar mi reporte antes de imprimirlo tomando en cuenta que el reporte lo estoy generando desde un prg.
Gracias a tu colaboración el código para generar el reporte quedaría de esta manera, ¿creo qué es enviando el reporte a un archivo de texo?, ¿En todo caso la visualización se puede validar por mes y por año?.
set printer to name solotexto
esc=chr(27)
_negritaOn=esc+chr(69)
_chico=esc+chr(33)+chr(1)
_normal=esc+chr(33)+chr(0)
_grande=esc+chr(33)+chr(16)+esc+chr(33)+chr(32)
CtrlF=chr(13)+chr(10)
ctrlFF=chr(13)+chr(12)
mLinea=1
sele imprime
scan all
if mLinea=1
=imprimeCabecera()
endif
=imprimeLinea()
if mLinea=62
??? ctrlFF
mLinea=1
endif
endscan
set printer to defa
procedure imprimeLinea
??? CHR(27) + CHR(64)
??? CHR(27) + CHR(33) + CHR(4)
??? str(imprime.idcomp,5,0)+SPACE(3)+dtoc(imprime.fecha_emision)+SPACE(1);
+dtoc(imprime.fecha_venci)+SPACE(2)+PADR(imprime.nro,2);
+SPACE(2)+PADL(imprime.serie,4)+SPACE(3)+PADL(imprime.nro_comprob,10);
+SPACE(2)+PADR(imprime.cod,1)+SPACE(2)+PADR(imprime.ruc,11);
+SPACE(2)+ALLTRIM(imprime.rsocial)+SPACE(2)+TRANSFORM(imprime.bimponible1,'###,###.##');
+SPACE(2)+TRANSFORM(imprime.igv1,'###,###.##')+SPACE(2)+TRANSFORM(imprime.adqui_no_grav,'###,###.##');
+SPACE(1)+TRANSFORM(imprime.otros,'###,###.##')+SPACE(1)+TRANSFORM(imprime.imp_total,'###,###.##');
+SPACE(2)+PADR(imprime.nro_const_dep,7)+SPACE(2)+dtoc(imprime.fec_const_dep);
+SPACE(3)+dtoc(imprime.fecha_mod)+SPACE(3)+PADR(imprime.tipo_comp_mod,2);
+SPACE(5)+PADL(imprime.serie_mod,4)+SPACE(2)+PADL(imprime.nro_comp_orig,10);
+SPACE(4)+PADL(imprime.nro_reg,6)+ctrlF
*??? _chico
mLinea=mLinea+1
return
procedure imprimeCabecera
??? _negritaOn
??? _grande
??? " "+ctrlF
??? " "+ctrlF
??? " "+ctrlF
??? " "+ctrlF
??? space(25)+padr('REGISTRO DE COMPRAS',20)+ctrlF
....
...
mLinea=mLinea+20
return
Con el tema del error de sintaxis cambia el for desde 100 a 200 por las dudas..
Con respecto al otro tema, deberías ver la manera de hacer un grid para ver por pantalla y no tratar de mostrar lo que imprimís, me parece más fácil.
Yo no encuentro error en la linea..
Acordate que esto nació debido a que la lentitud de la impresora no permitía imprimir un report.. pero si le quieres sumar muchas cosas, te va a convenir hacer el report y que sea lento..
wwww.keystone.com.ar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas