{ ------------------------------------------------------------------------------- PROGRAMA : ACPRRP007 OBJETIVO : Listado de Activos Liquidados (Dados de baja) PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Sept. 28, 1993 ------------------------------------------------------------------------------- } GLOBALS "acprgb000.4gl" ##### Definicion de las variables del reporte DEFINE act_fij7 RECORD codigo SMALLINT, descripcion CHAR(30), cuenta_no CHAR(8), fech_compra DATE, fech_elim DATE, vida_util SMALLINT, tasa_cambio DECIMAL(8,2), valor_compra DECIMAL(12,2), depr_acum DECIMAL(12,2) END RECORD MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CONNECT to "smarmotech" user usuarios USING clave SELECT a.* INTO p_companias.* FROM companias a CALL acprrp007() END MAIN ###### Funcion de busqueda de informacion FUNCTION acprrp007() # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM acfmrp007 FROM "acfmrp006" DISPLAY FORM acfmrp007 # CALL pantalla() DISPLAY "acprrp007" AT 4,3 DISPLAY "Liquidacion de Activos Fijos (Baja)" AT 6,22 LET tipo_papel = 2 CALL msgrp000(tipo_papel) # Creando el criterio de busqueda de informacion CONSTRUCT criterio ON c.codigo,c.cuenta_no,c.fech_elim FROM codigo,cuenta_no,fech_elim INPUT BY NAME fecha_corte 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 ##### Selecionando la prima del dolar actual LET selec1 = "SELECT c.codigo,c.descripcion,c.cuenta_no,CONVERT(CHAR(10),c.fech_compra,103), ", " c.fech_elim,c.duracion,MIN(b.tasa_cambio) ", "FROM actb00001 c,actb00004 b ", "WHERE c.codigo=b.codigo AND c.status_t='B' AND b.status_t IS NULL AND ", criterio CLIPPED," GROUP BY c.codigo,c.descripcion,c.cuenta_no,c.fech_compra,c.fech_elim,c.duracion" DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) PREPARE busca_act FROM selec1 DECLARE activos1 SCROLL CURSOR FOR busca_act OPEN activos1 CALL seleccionarsalida() RETURNING r_output CALL configureoutput(r_output) RETURNING HANDLER START REPORT bajas TO XML HANDLER handler DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) WHILE STATUS != NOTFOUND FETCH activos1 INTO act_fij7.* 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 SELECT SUM(a.monto) INTO act_fij7.valor_compra FROM actb00004 a,actb00002 b WHERE a.codigo = act_fij7.codigo AND a.status_t IS NULL AND a.cod_mov = b.cod_mov AND b.uso = "1" {COPIE ESTE QUERY DEL ACPRRP009} SELECT SUM(a.monto)*-1 INTO act_fij7.depr_acum FROM actb00004 a WHERE a.codigo = act_fij7.codigo AND a.status_t IS NULL AND a.fecha <= fecha_corte AND a.monto < 0 {ESTE FUE EL QUERY ORIGINAL SELECT SUM(a.monto)*-1 INTO act_fij7.depr_acum FROM actb00004 a,actb00002 b WHERE a.codigo = act_fij7.codigo AND a.status_t IS NULL AND a.cod_mov = b.cod_mov AND b.uso = "2" } IF act_fij7.valor_compra IS NULL THEN LET act_fij7.valor_compra = 0 END IF IF act_fij7.depr_acum IS NULL THEN LET act_fij7.depr_acum = 0 END IF OUTPUT TO REPORT bajas(act_fij7.*) END WHILE FINISH REPORT bajas END FUNCTION #### Funcion que genera el reporte REPORT bajas(x) DEFINE x RECORD codigo SMALLINT, descripcion CHAR(30), cuenta_no CHAR(8), fech_compra DATE, fech_elim DATE, vida_util SMALLINT, tasa_cambio DECIMAL(8,2), valor_compra DECIMAL(12,2), depr_acum DECIMAL(12,2) END RECORD DEFINE hora CHAR(5) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 PAGE LENGTH 100 ##### Sorteando la salida de la informacion ORDER BY x.cuenta_no,x.codigo FORMAT PAGE HEADER LET hora = time LET l = ( 145 - LENGTH(p_compania.nombre CLIPPED))/2 PRINT COLUMN 1, doce PRINT COLUMN 1, "acprrp007", COLUMN l, p_companias.nombre CLIPPED, COLUMN 136, "Pag. ",pageno USING "###" LET l = ( 145 - LENGTH("Sistema de Activos Fijos"))/2 PRINT COLUMN l, "Sistema de Activos Fijos", COLUMN 136, today using "dd/mm/yyyy" LET l = ( 145 - LENGTH("Liquidacion de Activos (Bajas)"))/2 PRINT COLUMN 48, "Liquidacion de Activos (Bajas)", COLUMN 139, hora PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "-------------------------------------------" PRINT COLUMN 48, "Fecha", COLUMN 62, "Valor Adqui.", COLUMN 82, "Deprec Acum.", COLUMN 112, "Valor Adqui.", COLUMN 132, "Deprec Acum." PRINT COLUMN 1, "Activo", COLUMN 48, "de Baja", COLUMN 62, "Moneda Nac.", COLUMN 82, "Moneda Nac.", COLUMN 102, "Cambio", COLUMN 112, "Moneda Ext.", COLUMN 132, "Moneda Ext." PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "-------------------------------------------" # , negrillas_off ON EVERY ROW PRINT COLUMN 1,x.codigo USING "&&&&&&"," ",x.descripcion CLIPPED, COLUMN 47,x.fech_elim USING "dd/mm/yyyy", COLUMN 60,x.valor_compra USING "###,###,###.##", COLUMN 80,x.depr_acum USING "###,###,###.##", COLUMN 100,x.tasa_cambio USING "###.##", COLUMN 110,x.valor_compra/x.tasa_cambio USING "###,###,###.##", COLUMN 130,x.depr_acum/x.tasa_cambio USING "###,###,###.##" AFTER GROUP OF x.cuenta_no PRINT COLUMN 1,negrillas_on PRINT COLUMN 1,"CUENTA:",x.cuenta_no CLIPPED, COLUMN 60, GROUP SUM(x.valor_compra) USING "###,###,###.##", COLUMN 80, GROUP SUM(x.depr_acum) USING "###,###,###.##", COLUMN 110, GROUP SUM(x.valor_compra/x.tasa_cambio) USING "###,###,###.##", COLUMN 130, GROUP SUM(x.depr_acum/x.tasa_cambio) USING "###,###,###.##" PRINT COLUMN 1,negrillas_off ON LAST ROW PRINT COLUMN 1,negrillas_on PRINT COLUMN 1,"T O T A L GRAL ", COLUMN 60, SUM(x.valor_compra) USING "###,###,###.##", COLUMN 80, SUM(x.depr_acum) USING "###,###,###.##", COLUMN 110, SUM(x.valor_compra/x.tasa_cambio) USING "###,###,###.##", COLUMN 130, SUM(x.depr_acum/x.tasa_cambio) USING "###,###,###.##" PRINT COLUMN 1,negrillas_off,normal END REPORT