Files
MBS/PROYECTO/ccdir/ccprrp025.4gl
T

204 lines
6.3 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : CCPRRP025
OBJETIVO : Balances Pendientes de Avance Por Cliente
PROGRAMADOR : Lic. Abner Montalvo
FECHA REALIZACION : Marzo 26, 1997
-------------------------------------------------------------------------------
}
GLOBALS "ccprgb000.4gl"
DEFINE fecha_corte DATE
DEFINE idx_1, idx_2,idx_b,idx_f SMALLINT
DEFINE dia_minimo, dia_maximo INTEGER
DEFINE selec10 CHAR(500)
DEFINE valor_de DECIMAL(12,2)
DEFINE valor_fact RECORD
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
nombre CHAR(30),
num_doc INTEGER,
fecha DATE,
balance DECIMAL(12,2)
END RECORD
FUNCTION ccprrp025()
DEFINE salir2,salir,salir1 CHAR(1)
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM ccfmrp025 FROM "ccfmrp025"
DISPLAY FORM ccfmrp025
CALL pantalla()
DISPLAY "ccprrp025" AT 4,3
DISPLAY "Balances Pendientes de Avances Por Cliente" AT 6,19
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME fecha_corte
BEFORE FIELD fecha_corte
LET fecha_corte = today
AFTER FIELD fecha_corte
IF fecha_corte is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_corte
END IF
END INPUT
CONSTRUCT BY NAME criterio ON d.tipo_cliente,d.sec_cliente
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
LET selec10 =
"SELECT d.tipo_cliente,d.sec_cliente,a.nombre,d.num_doc,MIN(d.fecha_orig), ",
" SUM(d.valor + d.monto_desc) ",
"FROM cctb00001 d,vetb00004 a ",
"WHERE d.fecha_orig <= ? AND d.tipo_cliente = a.tipo_cliente AND ",
" d.sec_cliente = a.sec_cliente AND ",criterio CLIPPED,
" AND d.status_t IS NULL AND d.tipo_doc = 'AV' AND a.status_t IS NULL ",
"GROUP BY 1,2,3,4 HAVING SUM(d.valor + d.monto_desc) <> 0 "
DISPLAY "<< Buscando Informacion... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE comando FROM selec10
DECLARE busca CURSOR FOR comando
OPEN busca USING fecha_corte
START REPORT reporte_25 TO "C:\\archivo"
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
LET idx_b = 1
LET salir1 = "N"
WHILE salir1 = "N"
FETCH busca INTO valor_fact.*
IF STATUS = NOTFOUND THEN
LET salir1 = "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 reporte_25(valor_fact.*)
END WHILE
FINISH REPORT reporte_25
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%"
END FUNCTION
REPORT reporte_25(x)
DEFINE x RECORD
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
nombre CHAR(30),
num_doc INTEGER,
fecha DATE,
balance DECIMAL(12,2)
END RECORD
DEFINE nombre1,apellido CHAR(30)
DEFINE dias_c INTEGER
DEFINE fecha5 DATE
DEFINE balance, monto_factura DECIMAL(10,2)
DEFINE descrip_zone CHAR(30)
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)
DEFINE fecha DATE
DEFINE total_monto_zona,total_gral_monto_zona,monto DECIMAL(12,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
ORDER BY x.tipo_cliente,x.sec_cliente,x.fecha,x.num_doc
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 lj = (80 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1, comp_off,negrillas_on
PRINT COLUMN 1, "ccprrp025",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 73, "Pag. ",pageno using "###"
PRINT COLUMN 25, "Sistema de Cuentas por Cobrar",
COLUMN 73, today using "dd/mm/yyyy"
PRINT COLUMN 19, "Balances de Avances Pendientes Por Cliente",
COLUMN 76, hora
PRINT COLUMN 1, "--------------------------------------------------",
"------------------------------"
PRINT COLUMN 1, "Cliente",
COLUMN 44, "Fecha",
COLUMN 56, "Avance",
COLUMN 74, "Balance"
PRINT COLUMN 1, "--------------------------------------------------",
"------------------------------"
PRINT negrillas_off
BEFORE GROUP OF x.sec_cliente
PRINT COLUMN 1, x.tipo_cliente using "&&","-",
x.sec_cliente USING "&&&&"," ",x.nombre clipped;
ON EVERY ROW
PRINT COLUMN 44, x.fecha USING "dd/mm/yyyy",
COLUMN 56, x.num_doc USING "&&&&&&",
COLUMN 66, x.balance USING "(((,(((,(((.##)"
AFTER GROUP OF x.sec_cliente
IF GROUP COUNT(*) > 1 THEN
PRINT COLUMN 66, "---------------"
PRINT COLUMN 24, "Total Por Cliente --->",
COLUMN 66, GROUP SUM(x.balance) USING "(((,(((,(((.##)"
END IF
SKIP 1 LINE
ON LAST ROW
PRINT COLUMN 66, "---------------"
PRINT COLUMN 24, "Total General --->",
COLUMN 66, SUM(x.balance) USING "(((,(((,(((.##)"
SKIP 1 LINE
END REPORT