{ ------------------------------------------------------------------------------- PROGRAMA : COPRRP004 OBJETIVO : Cronologico de Ordenes PROGRAMADOR : Ing. Betania Guerrero Perez FECHA REALIZACION : Octubre 20, 1992 FECHA MODIFICACION : Octubre 29, 1992 ------------------------------------------------------------------------------- } GLOBALS "coprgb000.4gl" FUNCTION coprrp004() DEFINE ordena RECORD tipo LIKE cotb00014.tipo, num_oc LIKE cotb00014.num_oc, fech_oc LIKE cotb00014.fech_oc, nom_sp CHAR(30), c_flete LIKE cotb00014.c_flete, otros_g LIKE cotb00014.otros_g, fob DECIMAL(12,3), monto DECIMAL(12,2) END RECORD #WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 LET formulario = formulario CLIPPED,"cofmrp004" OPEN FORM cofmrp004 FROM "cofmrp004" DISPLAY FORM cofmrp004 CALL pantalla() DISPLAY "coprrp004" AT 4,3 ATTRIBUTE(YELLOW) DISPLAY "Cronologico de Ordenes" AT 6,29 LET tipo_papel = 1 CALL msgrp000(tipo_papel) LABEL vuelve: INPUT BY NAME datos_cons.fech_in,datos_cons.fech_fi AFTER FIELD fech_in IF datos_cons.fech_in IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) GOTO vuelve END IF AFTER FIELD fech_fi IF datos_cons.fech_fi IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) GOTO vuelve END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF EXIT INPUT END INPUT CONSTRUCT criterio ON a.tipo,a.cod_sp,a.cod_sp_sec FROM tipo,cod_sp,cod_sp_sec IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF LET SELEC = "SELECT UNIQUE a.tipo,a.num_oc,a.fech_oc,b.nom_sp,a.c_flete,a.otros_g, ", "SUM(d.cantidad * d.precio) ", " FROM cotb00014 a,cotb00001 b,cotb00015 d ", " WHERE b.cod_sp = a.cod_sp AND b.cod_sp_sec = a.cod_sp_sec AND ", " a.num_oc = d.num_oc AND a.tipo = d.tipo AND ", " a.fech_oc between ? AND ? AND ", " a.status_t is null AND ",criterio clipped, "GROUP BY 1,2,3,4,5,6 ", " ORDER BY 1,2" DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) PREPARE comando FROM selec DECLARE busca CURSOR FOR comando OPEN busca USING datos_cons.fech_in,datos_cons.fech_fi START REPORT cronologico TO "jh" WHILE STATUS != NOTFOUND FETCH busca INTO ordena.* IF STATUS = NOTFOUND THEN EXIT WHILE END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF OUTPUT TO REPORT cronologico(ordena.*) END WHILE FINISH REPORT cronologico CLEAR SCREEN END FUNCTION REPORT cronologico(x) DEFINE x RECORD tipo LIKE cotb00014.tipo, num_oc LIKE cotb00014.num_oc, fech_oc LIKE cotb00014.fech_oc, nom_sp CHAR(30), c_flete LIKE cotb00014.c_flete, otros_g LIKE cotb00014.otros_g, fob DECIMAL(12,3), monto DECIMAL(12,2) END RECORD DEFINE b_oc,bandera,bandera1 CHAR(1) DEFINE descrip CHAR(10) DEFINE total_tipo SMALLINT DEFINE monto,total_monto DECIMAL(12,3) 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(2) DEFINE normal CHAR(2) DEFINE hora CHAR(5) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 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 normal = ASCII 27, ASCII 80 LET bandera1 = "N" LET hora = time PRINT COLUMN 3, ASCII 27, ASCII 80 PRINT COLUMN 1, comp_off,normal, COLUMN 2, "coprrp004", COLUMN 12, comp_on, COLUMN 14, doble_on, COLUMN 16, negrillas_on, COLUMN 21, "E L E C T R O D O M E S T I C O S J U V I A R", COLUMN 68, negrillas_off, COLUMN 69, doble_off, COLUMN 70, comp_off, COLUMN 76, "Pag.", COLUMN 83, pageno using "<<<" PRINT COLUMN 1, COLUMN 32, "Sistema de Compras", COLUMN 72, today using "dd/mm/yy" PRINT COLUMN 1, COLUMN 30, "Cronologico de Ordenes", COLUMN 75, hora SKIP 1 LINES PRINT COLUMN 2, "Desde ",datos_cons.fech_in using "dd/mm/yy", COLUMN 20, "Hasta ", datos_cons.fech_fi using "dd/mm/yy" PRINT COLUMN 1, "--------------------------------------------------", "------------------------------" PRINT COLUMN 14, "Orden de", COLUMN 24, "Fecha" PRINT COLUMN 2, "Tipo", COLUMN 15, "Compra", COLUMN 24, "Orden", COLUMN 34, "Suplidor", COLUMN 75, "Monto" PRINT COLUMN 1, "--------------------------------------------------", "------------------------------" SKIP 1 LINE ON EVERY ROW LET monto = x.fob + x.c_flete + x.otros_g LET total_monto = monto + total_monto { IF x.tipo = "01" THEN LET descrip = "GENERAL" END IF IF x.tipo = "02" THEN LET descrip = "ROV-LTD" END IF IF x.tipo = "03" THEN LET descrip = "LOCAL" END IF IF x.tipo = "04" THEN LET descrip = "MISCELANEA" END IF } PRINT COLUMN 2, descrip; PRINT COLUMN 15, x.num_oc using "<<<<<<", COLUMN 24, x.fech_oc using "dd/mm/yy"; PRINT COLUMN 34, x.nom_sp CLIPPED, COLUMN 66, monto USING "###,###,###.##" AFTER GROUP OF x.tipo SKIP 1 LINES LET bandera = "N" PRINT COLUMN 50, "Total Monto = ", COLUMN 66, total_monto using "###,###,###.##" PRINT COLUMN 1, "--------------------------------------------------", "------------------------------" SKIP 1 LINES ON LAST ROW PRINT COLUMN 2, "Total Registros Impresos = ", count(*) USING "<<<<" PRINT COLUMN 2, ASCII 27, ASCII 80 PRINT COLUMN 1, "==================================================", "=============================" END REPORT