{ ------------------------------------------------------------------------------- PROGRAMA : IPPRRP008 OBJETIVO : TIPOS DE MOVIMIENTOS Producto Terminados PROGRAMADOR : Juan Fco. Soto FECHA REALIZACION : Febrero 1997 DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO ------------------------------------------------------------------------------- } GLOBALS "ipprgb000.4gl" MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CALL ARG_VAL(3) RETURNING impresor CONNECT TO "smarmotech" USER usuarios USING clave SELECT * INTO p_companias.* FROM companias CALL ipprrp008() END MAIN FUNCTION ipprrp008() DEFINE tipo RECORD cod_mov LIKE iptb00005.cod_mov, descrip_mov LIKE iptb00005.descrip_mov, status_mov VARCHAR(30), cuenta_1 LIKE iptb00005.cuenta_1, cuenta_2 LIKE iptb00005.cuenta_2, cuenta_3 LIKE iptb00005.cuenta_3 END RECORD WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM ipfmrp008 FROM "ipfmrp008" DISPLAY FORM ipfmrp008 # CALL pantalla() DISPLAY "ipprrp008" AT 4,3 DISPLAY "Tipos de Movimientos" AT 6,30 DIALOG ATTRIBUTE(UNBUFFERED) INPUT BY NAME decide AFTER FIELD decide IF decide IS NULL THEN NEXT FIELD decide END IF AFTER INPUT IF decide IS NULL THEN CALL msg(16) NEXT FIELD decide END IF END INPUT CONSTRUCT criterio ON iptb00005.cod_mov FROM cod_mov BEFORE CONSTRUCT CALL cmovimientos() ON ACTION imprime ATTRIBUTE(TEXT='Imprime', IMAGE="print") IF decide = "A" THEN LET SELEC = "SELECT cod_mov,descrip_mov,CASE WHEN status_mov = '1' THEN 'ENTRADA' ELSE 'SALIDA' END,cuenta_1, ", " cuenta_2,cuenta_3 FROM iptb00005 ", "WHERE ",criterio clipped," AND status_t is null ", "ORDER BY 3,2" ELSE LET SELEC = "SELECT cod_mov,descrip_mov,CASE WHEN status_mov = '1' THEN 'ENTRADA' ELSE 'SALIDA' END,cuenta_1, ", " cuenta_2,cuenta_3 FROM iptb00005 ", "WHERE ",criterio clipped," AND status_t is null ", "ORDER BY 1,3" END IF DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14 ATTRIBUTE(REVERSE,BOLD) PREPARE busca FROM selec DECLARE accion CURSOR FOR busca DISPLAY "<< >>" AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) CALL seleccionarsalida() RETURNING r_output CALL configureoutput(r_output) RETURNING HANDLER START REPORT movimiento TO XML HANDLER handler FOREACH accion INTO tipo.* IF status = NOTFOUND THEN EXIT FOREACH ELSE OUTPUT TO REPORT movimiento(tipo.*) END IF END FOREACH FINISH REPORT movimiento EXIT DIALOG END CONSTRUCT ON ACTION CANCEL EXIT PROGRAM END DIALOG END FUNCTION REPORT movimiento(x) DEFINE x RECORD cod_mov LIKE iptb00005.cod_mov, descrip_mov LIKE iptb00005.descrip_mov, status_mov VARCHAR(30), cuenta_1 LIKE iptb00005.cuenta_1, cuenta_2 LIKE iptb00005.cuenta_2, cuenta_3 LIKE iptb00005.cuenta_3 END RECORD DEFINE l INTEGER DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(2) DEFINE negrillas_off CHAR(2) DEFINE comp_on CHAR(2) DEFINE comp_off CHAR(2) DEFINE doce CHAR(3) DEFINE hora CHAR(5) OUTPUT TOP MARGIN 0 LEFT MARGIN 1 ORDER BY x.status_mov,x.cod_mov 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 030 } LET hora = time LET l = (80 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1, comp_off,negrillas_on PRINT COLUMN 1, "ipprrp008", COLUMN l, p_companias.nombre CLIPPED, COLUMN 76, "Pag. ",pageno using "###" PRINT COLUMN 1, COLUMN 21, " Sistema de Inventario Producto Terminado", COLUMN 76, today using "dd/mm/yy" PRINT COLUMN 1, COLUMN 21, " Tipos de Movimientos", COLUMN 79, hora SKIP 1 LINE PRINT COLUMN 1, "--------------------------------------------------", "----------------------------------" PRINT COLUMN 1, "Movimiento", COLUMN 45, "Status", COLUMN 68, "Cuenta_1", COLUMN 75, "Cuenta_2", COLUMN 85, "Cuenta_3" PRINT COLUMN 1, "--------------------------------------------------", "----------------------------------" PRINT COLUMN 1,negrillas_off BEFORE GROUP OF x.status_mov IF x.status_mov = "1" THEN PRINT COLUMN 1, negrillas_on PRINT COLUMN 1, "ENTRADAS",negrillas_off END IF IF x.status_mov = "2" THEN PRINT COLUMN 1, negrillas_on PRINT COLUMN 1, "SALIDAS",negrillas_off END IF ON EVERY ROW PRINT COLUMN 1, x.cod_mov using "###"," ",x.descrip_mov CLIPPED, COLUMN 48, x.status_mov, COLUMN 68, x.cuenta_1, COLUMN 75, x.cuenta_2, COLUMN 85, x.cuenta_3 ON LAST ROW SKIP 1 LINE PRINT COLUMN 3, "Total de Registros Impresos = ", count(*) USING "####" PRINT COLUMN 3, ASCII 27, ASCII 80 END REPORT