FoxPro/Visual FoxPro - ELIMINAR SALTO DE PAGINA

 
Vista:

ELIMINAR SALTO DE PAGINA

Publicado por many (6 intervenciones) el 11/04/2021 21:08:56
Saludos y gracias por todo

Tengo una factura hecha solo a base de codigo para imprimier en un printer matricial de punto de venta, EPSON TM2-220.

El problema es que cuando la factura es pequeña o de pocos articulos siempre sale un poco de papel correspondiente a 8 pulgada y media incluyendo el contenido y la parte en blanco, quiero que se detenga desde que termina de imprimir para no desperdiciar papel.

Vean el ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
SET PRINTER ON
SET CONSOLE OFF
SET DEVICE TO PRINTER
 
SELECT sertem
GO TOP
 
? LOCAL.T1
? LOCAL.T2
? LOCAL.T3
? LOCAL.T4
?
? "                 FACTURA"
? INGRESOS.TIPO
? "NCF. "
?? INGRESOS.NCF
? "Factura:"
?? ingresos.factura
?? "        Caja"
?? local.caja
? "Condicion: "
?? ingresos.condicion
? "Vendedor: "
?? ingresos.usuario
? "Cliente: "
?? ingresos.cliente
? "______________________________________"
? "Descripciòn"
? "    Cantidad"
?? "        Prècio     Valor"
 
? "______________________________________"
 
m.total = 0
SCAN
? TRANSFORM(sertem.descrip,"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
? sertem.cantidad
??""
?? sertem.venta
??""
?? sertem.valor
m.total = m.total + sertem.valor
ENDSCAN
?"_______________________________________"
? "      Sub Total: "
?? ingresos.subtotal
 
? "      18% ITBIS: "
?? ingresos.itbis
 
? "          Total: "
?? ingresos.total
?  "                "
?? "  =============="
? "Recibido: "
?? ingresos.recibido
? "Devuelta: "
?? ingresos.cambio
?
?
?
?
 
Set Printer Off
SET CONSOLE ON
SET PRINTER TO
SET DEVICE TO SCREEN

Gracias a todos/as
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 303
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

ELIMINAR SALTO DE PAGINA

Publicado por SANTIAGO JUAN (504 intervenciones) el 12/04/2021 06:36:10
1. no veo el EJECT así que no debería hacer el salto de pagina.
2. lo puedes controlar mejor si usas @x,y o @prow(),pcol(), trabajan mejor que con ?.
3. usando lo del punto 2 puedes inclusive agregar LOGO y/o cualquier foto, inclusive código QR a tu impresión.

4. posiblemente el salto de pagina se este dando por un tema de configuración de impresora y no por tu código fuente.

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ELIMINAR SALTO DE PAGINA

Publicado por many (6 intervenciones) el 12/04/2021 19:37:03
Saludos

Muchas gracias, lo voy a trabajar como me dice y luego te cuento los resultados.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ELIMINAR SALTO DE PAGINA

Publicado por many (6 intervenciones) el 13/04/2021 06:19:15
Saludos y sigo dando gracias a ustedes

Ya hice algunos cambio y estoy imprimiendo pero atencion a esto:
Con el ejemplo que le dejare mando a imprimir una factura con solo dos articulos y lo imprime bien pero desde que termina de imprimir lo ultimo que como se puede ver es el total ... continua saliendo papel hasta completar el largo de una hoja normal ocho y medio por 11.

Recuerden que uso impresora pequeña de la que se le pone rollo de papel como la star sp 500, en mi caso no tengo que controlar filas, cuando inicia debe imprimir solo hasta que haya articulos y terminar y punto, ni una linea mas de papel.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
SELECT sertem
GO TOP
 
SET CONSOLE OFF
SET DEVICE TO PRINTER
SET PRINT ON
 
@PROW()+1,1 SAY "---------------------------------------"
@PROW()+1,1 SAY "Descripcion"
@PROW()+1,1 SAY "    Cantidad          Precio     Valor"
@PROW()+1,1 SAY "---------------------------------------"
 
m.total = 0
SCAN
 
@PROW()+1,1 SAY TRANSFORM(sertem.descrip,"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
@PROW()+1,1 SAY sertem.cantidad
 
	m.total=m.total+sertem.valor
ENDSCAN
 
	@PROW()+1,1 SAY "---------------------------------------"
	@PROW()+1,1 SAY m.total
 
SET PRINT OFF
SET DEVICE TO SCREEN
SET PRINTER TO

Si me pudieran decir como imprimir el precio y el valor en la misma linea que esta la cantidad.

Gracias y espero me puedan entender.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo Daniel A.
Val: 1.120
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

ELIMINAR SALTO DE PAGINA

Publicado por Leonardo Daniel A. (460 intervenciones) el 13/04/2021 16:19:08
Todas las impresoras tienen codigos para imprimir negritas, cursivas, cortar papel, etc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ELIMINAR SALTO DE PAGINA

Publicado por many (6 intervenciones) el 13/04/2021 23:22:33
Saludos

Todo aquel que ha intentado hacer una factura a base de código usando:

1
2
3
4
5
6
7
8
9
10
SET CONSOLE OFF
SET DEVICE TO PRINTER
SET PRINT ON
 
@PROW()+1,1 SAY  "Esta es una prueba ")
@PROW()+1,1 SAY "Para ver que tal funciona esto"
 
SET PRINT OFF
SET DEVICE TO SCREEN
SET PRINTER TO

Conoce de este problema.

Yo ahora no recuerdo como, pero hace varios años logre superar esto con este mismo foro.
si alguien tiene una impresora matricial solo tiene que copiar esto y ejecutarlo y puede ver lo que hace,

Gracias a todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ELIMINAR SALTO DE PAGINA

Publicado por jose camilo (794 intervenciones) el 15/04/2021 03:44:55
por lo que veo eres de republica dominicana por el itbis al 18%
si estas usando el driver generico solo texto, entonces debes configurar la impresora como matricial.

contactame al ws al 1-809-307-8018 y te ayudo un poco

ve este ejemplo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Wprn = GETPRINTER()
If Empty(Wprn)
   MessageBox('Impresion Cancelada pero la factura fue grabada!!!',16,'JJ-System')
ELSE
  SET PRINTER To Name "&Wprn"
  SET DEVICE TO printer
  SET PRINTER FONT 'Courier New',8 STYLE "B"
  Thisform.Encabezado  && El encabezado de la factura
  IF Thisform.CheckMatricial.Value
      ??? Chr(18)
 ENDIF
 
 
  SELECT VenDet
  STORE 0 TO ContL,Wpaso,Wlonguitud
  IF !Thisform.CheckPvta.Value
     CONTL = 13
     SCAN
        IF Valor > 0
           @Prow()+1,1   Say SUBSTR(Articulo,1,20)
           @Prow()+0,25  Say TRANSFORM(Cantidad,"999.99")
           IF Thisform.CheckItbisIncluido.Value
              @Prow()+0,33  Say TRANSFORM(Valor-Vitbis-Descuento,"9,999,999.99")
              @Prow()+0,47  Say TRANSFORM(Descuento*Cantidad,"99999.99")
              @Prow()+0,56  Say TRANSFORM(VItbis*Cantidad,"999,999.99")
              @Prow()+0,68  Say TRANSFORM(Cantidad * (Valor-Descuento),"9,999,999.99")
           ELSE
              @Prow()+0,33  Say TRANSFORM(Valor-Descuento,"9,999,999.99")
              @Prow()+0,47  Say TRANSFORM(Descuento*Cantidad,"99999.99")
              @Prow()+0,56  Say TRANSFORM(VItbis*Cantidad,"999,999.99")
              @Prow()+0,68  Say TRANSFORM(Cantidad * (Valor-Descuento+Vitbis),"9,999,999.99")
           ENDIF
        ENDIF
        @Prow()+1,1  Say SUBSTR(Detalle,1,50)
        ContL = Contl + 2
        If ContL > Iif(Wlonguitud>9,27,Iif(Wlonguitud>5,25,25))
           Wlonguitud = Wlonguitud - Iif(Wlonguitud>9,8,Iif(Wlonguitud>5,6,0))
           @Prow()+1,00 Say Replicate("-",80)
           @Prow()+1,02 Say "CONTINUA EN LA SIGUIENTE PAGINA"
           IF Wpaso = 1
              EJECT
              Wpaso = 0
           ELSE
              @Prow()+(33-PROW()),0
              Wpaso = 1
           EndIF
           CONTL = 13
           Thisform.Encabezado
        ENDIF
     ENDSCAN
  ELSE
     SCAN
        IF Valor > 0
           @Prow()+1,0   Say SUBSTR(Articulo,1,13)
           @Prow()+0,15  Say TRANSFORM(Cantidad,"9999.99")
           @Prow()+0,21  Say TRANSFORM(Valor-Descuento,"999999.99")
           IF Thisform.CheckItbisIncluido.Value
              @Prow()+0,30  Say TRANSFORM(Cantidad * (Valor-Descuento),"999,999.99")
           ELSE
              @Prow()+0,30  Say TRANSFORM(Cantidad * (Valor-Descuento+Vitbis),"999,999.99")
           ENDIF
        EndIf
        @Prow()+1,0  Say SUBSTR(Detalle,1,40)
        If Prow()=> 62
           @Prow()+1,00 Say Replicate("-",40)
           @Prow()+1,1 Say "Continua en la siguiente Pagina"
           @Prow()+1,1 Say " "
           Eject
        ENDIF
     ENDSCAN
  ENDIF
  Thisform.Totales
  SET PRINTER TO
  Set Printer Off
  SET DEVICE TO SCREEN
  SET CONSOLE ON
ENDIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 303
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

ELIMINAR SALTO DE PAGINA

Publicado por SANTIAGO JUAN (504 intervenciones) el 17/04/2021 03:56:24
set print off
set print to
set devi to scre


a ver prueba así
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar