Files
MBS/PROYECTOS/indir/inprrp036.4gl
T

200 lines
5.4 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : INPRRP036
OBJETIVO : Etiquetas Para Inventario Fisico de Bienes y Servicios
PROGRAMADOR : Tadeo A. Ferreras F.
FECHA REALIZACION : Diciembre 12, 1995
-------------------------------------------------------------------------------
}
GLOBALS "inprgb000.4gl"
DEFINE datos_36 RECORD
cod_n LIKE intb00001.cod_n,
cod_grupo LIKE intb00001.cod_grupo,
cod_tipo LIKE intb00001.cod_tipo,
cod_sec LIKE intb00001.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
unidad_med LIKE intb00001.unidad_med,
codigo CHAR(10)
END RECORD,
fecha DATE
FUNCTION inprrp036()
#WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM infmrp036 FROM "infmrp036"
DISPLAY FORM infmrp036
CALL pantalla()
DISPLAY "inprrp036" AT 4,3
DISPLAY "Etiquetas Para Inventario Fisico" AT 6,24
## Chequea que el papel para la impresion sea el indicado
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME fecha,decide
AFTER FIELD fecha
IF fecha IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
AFTER FIELD decide
IF decide IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD decide
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
## Aqui se prepara el criterio de seleccion
IF decide = "M" THEN
LET SELEC =
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp, ",
" a.unidad_med ",
"FROM intb00001 a ",
"WHERE a.status_t is NULL AND a.cod_n = 1 ORDER BY 1,2,3,4"
END IF
IF decide = "T" THEN
LET SELEC =
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp, ",
" a.unidad_med ",
"FROM intb00001 a ",
"WHERE a.status_t is NULL AND a.cod_n IN(3,6,9) ORDER BY 1,2,3,4"
END IF
IF decide = "S" THEN
LET SELEC =
"SELECT a.cod_prod,a.cod_prod,a.cod_prod,a.cod_prod,a.descripcion, ",
" a.unidad_med ",
"FROM cttb00001 a ",
"WHERE a.status_t is NULL ORDER BY 1"
END IF
DISPLAY "Buscando Informacion ... Espere Por Favor" AT 24,2
ATTRIBUTE (BOLD)
## Verifica si el usuario presiono la tecla <Supr>
PREPARE busca FROM selec
DECLARE accion CURSOR FOR busca
DISPLAY " " AT 24,2
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
START REPORT reporte_36 TO "etiquetas"
FOREACH accion INTO datos_36.*
LET datos_36.codigo = datos_36.cod_n USING "&","-",
datos_36.cod_grupo USING "&","-",
datos_36.cod_tipo USING "&&","-",
datos_36.cod_sec USING "&&&"
IF decide = "S" THEN
LET datos_36.codigo = datos_36.cod_n USING "&&&&"
END IF
OUTPUT TO REPORT reporte_36(datos_36.*)
END FOREACH
FINISH REPORT reporte_36
RUN "lp -dlpt1 etiquetas"
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT reporte_36(x)
DEFINE x RECORD
cod_n LIKE intb00001.cod_n,
cod_grupo LIKE intb00001.cod_grupo,
cod_tipo LIKE intb00001.cod_tipo,
cod_sec LIKE intb00001.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
unidad_med LIKE intb00001.unidad_med,
codigo CHAR(10)
END RECORD
DEFINE doble_on CHAR(2)
DEFINE doble_off CHAR(2)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(3)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE hora CHAR(5)
OUTPUT
LEFT MARGIN 1
## Prepara el formato de impresion para el encabezado y el detalle
FORMAT
PAGE HEADER
LET doble_on = ASCII 14
LET doble_off = ASCII 20
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
LET hora = time
PRINT COLUMN 3, negrillas_on,comp_on
BEFORE GROUP OF x.codigo
SKIP 6 LINE
ON EVERY ROW
PRINT COLUMN 13, x.codigo,
COLUMN 44, fecha USING "dd/mm/yyyy"
SKIP 1 LINE
PRINT COLUMN 13, x.descrip_esp
SKIP 1 LINE
PRINT COLUMN 38, x.unidad_med
SKIP 7 LINE
PRINT COLUMN 13, x.codigo,
COLUMN 44, fecha USING "dd/mm/yyyy"
SKIP 1 LINE
PRINT COLUMN 13, x.descrip_esp
SKIP 1 LINE
PRINT COLUMN 38, x.unidad_med
SKIP 19 LINE
PRINT COLUMN 13, x.codigo,
COLUMN 44, fecha USING "dd/mm/yyyy"
SKIP 1 LINE
PRINT COLUMN 13, x.descrip_esp
SKIP 1 LINE
PRINT COLUMN 38, x.unidad_med
AFTER GROUP OF x.codigo
SKIP TO TOP OF PAGE
ON LAST ROW
PRINT comp_off,negrillas_off
END REPORT