{ ------------------------------------------------------------------------------- PROGRAMA : COPRRP005 SISTEMA : Sistema de Compras OBJETIVO : Listar los materiales con su fecha de llegada a puerto y entrada a planta. PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Julio 28, 1993 ------------------------------------------------------------------------------- } GLOBALS "coprgb000.4gl" DEFINE prima DECIMAL(10,2) ### Varible que equivale a la prima de otra moneda DEFINE mov CHAR(1) DEFINE idx_1, idx_2, idx_3 SMALLINT ## Variables usadas para formar arreglos DEFINE fecha1,fecha2 DATE ## Varible usada para busqueda por fecha de corte DEFINE salir, salir1, salir3, tipo_venta CHAR(1) ## Bandera para control loop DEFINE selec5, selec6 CHAR(1500) ## Variables para almacenar busquedas ####### Variables para desplegar resultados por pantalla ante de la impresion DEFINE tot_gen1 RECORD totald DECIMAL(10,2), totalc DECIMAL(10,2), totalg DECIMAL(10,2) END RECORD ##### Registro que almacena la infoprmacion a imprimir #### DEFINE movtos RECORD cod_sp SMALLINT, cod_sp_sec SMALLINT, num_oc INTEGER, cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, fech_emb DATE, cantidad_r DECIMAL(12,2) END RECORD FUNCTION coprrp005() # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 ####### Abriendo y desplegando formulario de captura de datos OPEN FORM cofmrp005 FROM "cofmrp005" DISPLAY FORM cofmrp005 CALL pantalla() DISPLAY "coprrp005" AT 4,3 ATTRIBUTE(YELLOW) DISPLAY "Fecha de Arribo de Material Al Puerto" AT 6,21 LET tipo_papel = 1 CALL msgrp000(tipo_papel) ##### Aceptando la fecha de corte para busqueda de informacion INPUT BY NAME fecha1, fecha2 AFTER FIELD fecha1 IF fecha1 is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha1 END IF BEFORE FIELD fecha2 LET fecha2 = today AFTER FIELD fecha2 IF fecha2 is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha2 END IF IF fecha1 > fecha2 THEN LET numero_msg = 51 CALL msg( numero_msg) NEXT FIELD fecha1 END IF END INPUT ###### Creando facilidad para cancelar operacion mediante la tecla DELETE ###### o SUPR IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF # Busca los documentos que esten en el rango de fechas especificado LET selec5 = "SELECT a.cod_sp,a.cod_sp_sec,a.num_oc,b.cod_n,b.cod_grupo,b.cod_tipo, ", " b.cod_sec,b.fech_emb + c.dia_llegada,(b.cantidad - b.cantidad_r) ", "FROM cotb00014 a,cotb00025 b,intb00002 c ", "WHERE a.num_oc = b.num_oc AND b.cod_n = c.cod_n AND ", " b.cod_grupo = c.cod_grupo AND b.cod_tipo = c.cod_tipo AND ", " b.cod_sec=c.cod_sec AND (b.fech_emb+c.dia_llegada) BETWEEN ? AND ? AND ", " b.status_t is null AND (b.cantidad - b.cantidad_r) > 0 AND ", " a.cod_sp != 23 ORDER BY 8" DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) PREPARE movi FROM selec5 DECLARE movtos_cli CURSOR FOR movi OPEN movtos_cli USING fecha1,fecha2 ###### Envia la informacion al printer START REPORT compras TO "C:\\archivo" DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) ###### Comienza el loop para enviar informacion al reporte LET salir = "N" WHILE salir != "S" FETCH movtos_cli INTO movtos.* IF status = NOTFOUND THEN LET salir = "S" 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 compras(movtos.*,fecha1,fecha2) END WHILE FINISH REPORT compras CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION ####### Funcion para dar salida a la informacion REPORT compras(x,fecha3,fecha4) DEFINE x RECORD cod_sp SMALLINT, cod_sp_sec SMALLINT, num_oc INTEGER, cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, fech_emb DATE, cantidad_r DECIMAL(12,2) END RECORD DEFINE fecha3,fecha4 DATE DEFINE descrip,p_descrip CHAR(30) DEFINE unidad,p_zona,p_numero CHAR(10), balance DECIMAL(12,2) DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(6) DEFINE negrillas_off CHAR(6) DEFINE comp_on CHAR(2) DEFINE comp_off CHAR(2) DEFINE doce CHAR(2) DEFINE normal CHAR(2) DEFINE normall CHAR(3) DEFINE comp CHAR(3) DEFINE hora CHAR(5) DEFINE tipo CHAR(2) DEFINE imp_cli CHAR(1) DEFINE credito, debito, tcredito, tdebito, tbalance, limite, b_balance, v1_30, v31_45, v46_60, vm_60,p_valor DECIMAL(12,2) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 ###### Diseno de la salida de la informacion 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 hora = time LET l = (127 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1, comp_on,negrillas_on PRINT COLUMN 1, "coprrp005", COLUMN l, p_companias.nombre CLIPPED, COLUMN 120, "Pag. ",pageno using "###" PRINT COLUMN 54, "Sistema de Compras", COLUMN 120, today using "dd/mm/yy" PRINT COLUMN 44, "Fecha de Arribo de Material al Puerto", COLUMN 123, hora PRINT COLUMN 50, "Del ",fecha3 USING "dd/mm/yy", " Al ",fecha4 using "dd/mm/yy" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "----------------------------" PRINT COLUMN 1,"Suplidor ", COLUMN 46,"Orden", COLUMN 55,"Material", COLUMN 107,"Arribo", COLUMN 121,"Cantidad" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" , "----------------------------" PRINT negrillas_off ON EVERY ROW #### Seleciona los datos generales de identificacion del suplidor SELECT b.nom_sp INTO p_descrip FROM cotb00001 b WHERE x.cod_sp = b.cod_sp AND x.cod_sp_sec = b.cod_sp_sec #### Seleciona los datos generales de identificacion del material SELECT a.descrip_esp,a.unidad_med INTO descrip,unidad FROM intb00001 a WHERE a.cod_n = x.cod_n AND a.cod_grupo = x.cod_grupo AND a.cod_tipo = x.cod_tipo AND a.cod_sec = x.cod_sec PRINT COLUMN 1, x.cod_sp using "&&","-",x.cod_sp_sec USING "&&&&"," ",p_descrip CLIPPED, COLUMN 45, x.num_oc USING "######", COLUMN 55, x.cod_n USING "&","-",x.cod_grupo USING "&","-", x.cod_tipo USING "&&","-",x.cod_sec USING "&&&", " ",descrip clipped, COLUMN 100, unidad clipped, COLUMN 106, x.fech_emb USING "dd/mm/yy", COLUMN 115, x.cantidad_r USING "###,###,##&.&&" ON LAST ROW PRINT COLUMN 1,comp_off,negrillas_off END REPORT