Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,464 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : PRPRRP007
|
||||
OBJETIVO : Poduccion Acumulada en un rango de anos
|
||||
PROGRAMADOR : Tadeo A. Ferreras
|
||||
FECHA REALIZACION : Junio 22, 1994
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
GLOBALS "prprgb000.4gl"
|
||||
|
||||
DEFINE jb ARRAY[10000] OF RECORD
|
||||
cantidad1 DECIMAL(12,2),
|
||||
cantidad2 DECIMAL(12,2),
|
||||
cantidad3 DECIMAL(12,2)
|
||||
END RECORD
|
||||
|
||||
DEFINE mes_d CHAR(10)
|
||||
DEFINE a,ano_i,ano_f,ano,mes INTEGER
|
||||
DEFINE mes_b,ano1,ano2,ano3 CHAR(4)
|
||||
DEFINE fecha3,fecha4 DATE
|
||||
DEFINE cant_p1,cant_p2,cant_p3,cant_pres1,cant_pres2,cant_pres3,total,
|
||||
cantidad1_1,cantidad1_2,cantidad1_3 DECIMAL(12,2)
|
||||
DEFINE fecha_inicial,fecha_final DATE
|
||||
FUNCTION prprrp007()
|
||||
#WHENEVER ERROR CONTINUE
|
||||
|
||||
DEFINE prt_datos7 RECORD
|
||||
ano CHAR(4),
|
||||
mes SMALLINT,
|
||||
fecha1 DATE,
|
||||
fecha2 DATE,
|
||||
cantidad1 INTEGER,
|
||||
cantidad2 INTEGER,
|
||||
cantidad3 INTEGER,
|
||||
clave CHAR(1)
|
||||
END RECORD
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM prfmrp007 FROM "prfmrp007"
|
||||
DISPLAY FORM prfmrp007
|
||||
CALL pantalla()
|
||||
DISPLAY "prprrp007" AT 4,3
|
||||
DISPLAY "Produccion Acumulada en Rango de Anos" AT 6,21
|
||||
|
||||
LET tipo_papel = 2
|
||||
CALL msgrp000(tipo_papel)
|
||||
########### Captura de valores para el criterio de busqueda ############
|
||||
INPUT BY NAME ano,ano_f,mes
|
||||
|
||||
AFTER FIELD ano
|
||||
IF ano IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD ano
|
||||
END IF
|
||||
|
||||
SELECT MIN(b.ano) INTO ano1 FROM prdtable b
|
||||
|
||||
LET ano_i = ano1
|
||||
LET ano1 = NULL
|
||||
IF ano_i > ano THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD ano
|
||||
END IF
|
||||
LET ano_i = NULL
|
||||
|
||||
AFTER FIELD ano_f
|
||||
IF ano_f IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD ano_f
|
||||
END IF
|
||||
|
||||
IF (ano_f - ano) > 5 THEN
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD ano
|
||||
END IF
|
||||
|
||||
SELECT MAX(b.ano) INTO ano_i FROM prdtable b
|
||||
|
||||
IF ano_f > ano_i THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD ano_f
|
||||
END IF
|
||||
|
||||
IF (ano - ano_f) > 5 THEN
|
||||
LET numero_msg = 64
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD ano
|
||||
END IF
|
||||
|
||||
LET ano1 = ano USING "&&&&"
|
||||
LET ano2 = ano_f USING "&&&&"
|
||||
|
||||
AFTER FIELD mes
|
||||
IF mes IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes
|
||||
END IF
|
||||
|
||||
SELECT UNIQUE b.mes FROM prdtable b WHERE b.mes = mes AND
|
||||
b.ano = ano
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes
|
||||
END IF
|
||||
END INPUT
|
||||
|
||||
########### Facilidad para cancelar la variacioncon la tecla DELETE ####
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
FOR a = ano TO ano_f
|
||||
LET jb[a].cantidad1 = 0
|
||||
LET jb[a].cantidad2 = 0
|
||||
LET jb[a].cantidad3 = 0
|
||||
END FOR
|
||||
|
||||
DECLARE busca CURSOR FOR
|
||||
SELECT b.ano,b.mes,b.fecha_inicio,b.fecha_corte
|
||||
FROM prdtable b
|
||||
WHERE (b.ano BETWEEN ano1 AND ano2) AND b.mes <= mes
|
||||
ORDER BY 1,2
|
||||
|
||||
DISPLAY "Buscando Informacion... Espere Por Favor" AT 19,14
|
||||
|
||||
START REPORT reporte_7 TO "C:\\archivo"
|
||||
DISPLAY "Impresion En Proceso... Espere Por Favor" AT 19,14
|
||||
|
||||
FOREACH busca INTO prt_datos7.*
|
||||
LET prt_datos7.cantidad1 = 0
|
||||
LET prt_datos7.cantidad2 = 0
|
||||
LET prt_datos7.cantidad3 = 0
|
||||
LET prt_datos7.clave = "a"
|
||||
|
||||
SELECT SUM(cantidad_2) INTO prt_datos7.cantidad1
|
||||
FROM iptb00006
|
||||
WHERE fecha BETWEEN prt_datos7.fecha1 AND prt_datos7.fecha2 AND
|
||||
status_t IS NULL AND cod_n = 3 AND cod_grupo = 1 AND
|
||||
cod_mov = 20
|
||||
|
||||
SELECT SUM(cantidad_2) INTO prt_datos7.cantidad2
|
||||
FROM iptb00006
|
||||
WHERE fecha BETWEEN prt_datos7.fecha1 AND prt_datos7.fecha2 AND
|
||||
status_t IS NULL AND cod_n = 3 AND cod_grupo = 2 AND
|
||||
cod_mov = 20
|
||||
|
||||
SELECT SUM(cantidad_2) INTO prt_datos7.cantidad3
|
||||
FROM iptb00006
|
||||
WHERE fecha BETWEEN prt_datos7.fecha1 AND prt_datos7.fecha2 AND
|
||||
status_t IS NULL AND cod_n = 3 AND cod_grupo = 3 AND
|
||||
cod_mov = 20
|
||||
|
||||
IF prt_datos7.cantidad1 IS NULL THEN
|
||||
LET prt_datos7.cantidad1 = 0
|
||||
END IF
|
||||
IF prt_datos7.cantidad2 IS NULL THEN
|
||||
LET prt_datos7.cantidad2 = 0
|
||||
END IF
|
||||
IF prt_datos7.cantidad3 IS NULL THEN
|
||||
LET prt_datos7.cantidad3 = 0
|
||||
END IF
|
||||
|
||||
OUTPUT TO REPORT reporte_7(prt_datos7.*)
|
||||
|
||||
END FOREACH
|
||||
FINISH REPORT reporte_7
|
||||
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
||||
|
||||
# Rutina de Impresion de las informaciones
|
||||
REPORT reporte_7(x)
|
||||
|
||||
# Variable para tomar las informaciones
|
||||
DEFINE x RECORD
|
||||
ano CHAR(4),
|
||||
mes SMALLINT,
|
||||
fecha1 DATE,
|
||||
fecha2 DATE,
|
||||
cantidad1 INTEGER,
|
||||
cantidad2 INTEGER,
|
||||
cantidad3 INTEGER,
|
||||
clave CHAR(1)
|
||||
END RECORD
|
||||
|
||||
DEFINE doble_on CHAR(3)
|
||||
DEFINE doble_off CHAR(3)
|
||||
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(3)
|
||||
DEFINE hora CHAR(5)
|
||||
|
||||
OUTPUT
|
||||
TOP MARGIN 0
|
||||
LEFT MARGIN 0
|
||||
BOTTOM MARGIN 2
|
||||
ORDER BY x.clave,x.mes,x.ano DESC
|
||||
|
||||
FORMAT
|
||||
|
||||
PAGE HEADER
|
||||
|
||||
# Validacion de los caracteres ascii
|
||||
LET doble_on = ASCII 001
|
||||
LET doble_off = ASCII 002
|
||||
LET negrillas_on = ASCII 27, ASCII 098
|
||||
LET negrillas_off = ASCII 27, ASCII 099
|
||||
LET comp_on = ASCII 15
|
||||
LET comp_off = ASCII 18
|
||||
LET doce = ASCII 27, ASCII 77
|
||||
LET normal = ASCII 029
|
||||
LET hora = time
|
||||
LET l = 15
|
||||
FOR a = ano TO ano_f
|
||||
LET l = l + 36
|
||||
|
||||
IF a = ano THEN
|
||||
LET l = l + 36
|
||||
END IF
|
||||
END FOR
|
||||
|
||||
# Impresion de los encabezados
|
||||
PRINT comp_on
|
||||
PRINT COLUMN 1, "prprrp007",
|
||||
COLUMN ((l-45)/2)+1,
|
||||
"R A Y . O . V A C D O M I N I C A N A, S. A.",
|
||||
COLUMN l-7, "Pag. ",
|
||||
pageno using "###"
|
||||
PRINT COLUMN ((l-45)/2)+1,
|
||||
" Sistema de Produccion",
|
||||
COLUMN l-7, today using "dd/mm/yy"
|
||||
PRINT COLUMN ((l-45)/2)+1,
|
||||
" Produccion Acumulada Del Ano ",ano1," AL ",ano2,
|
||||
COLUMN l-5, hora
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN 1, "--------------";
|
||||
LET l = 15
|
||||
FOR a = ano TO ano_f
|
||||
PRINT COLUMN l, "------------------------------------";
|
||||
LET l = l + 36
|
||||
|
||||
IF a = ano THEN
|
||||
PRINT COLUMN l, "------------------------------------";
|
||||
LET l = l + 36
|
||||
END IF
|
||||
END FOR
|
||||
PRINT COLUMN l,"-"
|
||||
|
||||
LET l = 32
|
||||
LET j = ano_f - ano
|
||||
FOR a = ano TO ano_f
|
||||
LET k = ano + j
|
||||
LET j = j - 1
|
||||
PRINT COLUMN l, "-- ",k USING "&&&&"," --";
|
||||
LET l = l + 36
|
||||
|
||||
IF a = ano THEN
|
||||
PRINT COLUMN l, "PRES. ",k USING "&&&&";
|
||||
LET l = l + 36
|
||||
END IF
|
||||
END FOR
|
||||
PRINT COLUMN l, " "
|
||||
|
||||
PRINT COLUMN 1, "--------------";
|
||||
LET l = 15
|
||||
FOR a = ano TO ano_f
|
||||
PRINT COLUMN l, "------------------------------------";
|
||||
LET l = l + 36
|
||||
|
||||
IF a = ano THEN
|
||||
PRINT COLUMN l, "------------------------------------";
|
||||
LET l = l + 36
|
||||
END IF
|
||||
END FOR
|
||||
PRINT COLUMN l,"-"
|
||||
{ PRINT COLUMN 1,
|
||||
"--------------------------------------------------------",
|
||||
"--------------------------------------------------------",
|
||||
"---------------------------------"
|
||||
}
|
||||
PRINT COLUMN 1, "Mes ";
|
||||
LET l = 15
|
||||
FOR a = ano TO ano_f
|
||||
PRINT COLUMN l, " D C AA";
|
||||
LET l = l + 36
|
||||
|
||||
IF a = ano THEN
|
||||
PRINT COLUMN l, " D C AA";
|
||||
LET l = l + 36
|
||||
END IF
|
||||
END FOR
|
||||
PRINT COLUMN l," "
|
||||
|
||||
PRINT COLUMN 1, "--------------";
|
||||
LET l = 15
|
||||
FOR a = ano TO ano_f
|
||||
PRINT COLUMN l, "------------------------------------";
|
||||
LET l = l + 36
|
||||
|
||||
IF a = ano THEN
|
||||
PRINT COLUMN l, "------------------------------------";
|
||||
LET l = l + 36
|
||||
END IF
|
||||
END FOR
|
||||
PRINT COLUMN l,"-"
|
||||
|
||||
|
||||
BEFORE GROUP OF x.mes
|
||||
CASE
|
||||
WHEN x.mes = 1 LET mes_d = "ENERO" EXIT CASE
|
||||
WHEN x.mes = 2 LET mes_d = "FEBRERO" EXIT CASE
|
||||
WHEN x.mes = 3 LET mes_d = "MARZO" EXIT CASE
|
||||
WHEN x.mes = 4 LET mes_d = "ABRIL" EXIT CASE
|
||||
WHEN x.mes = 5 LET mes_d = "MAYO" EXIT CASE
|
||||
WHEN x.mes = 6 LET mes_d = "JUNIO" EXIT CASE
|
||||
WHEN x.mes = 7 LET mes_d = "JULIO" EXIT CASE
|
||||
WHEN x.mes = 8 LET mes_d = "AGOSTO" EXIT CASE
|
||||
WHEN x.mes = 9 LET mes_d = "SEPTIEMBRE" EXIT CASE
|
||||
WHEN x.mes = 10 LET mes_d = "OCTUBRE" EXIT CASE
|
||||
WHEN x.mes = 11 LET mes_d = "NOVIEMBRE" EXIT CASE
|
||||
WHEN x.mes = 12 LET mes_d = "DICIEMBRE" EXIT CASE
|
||||
END CASE
|
||||
|
||||
LET l = 15
|
||||
PRINT COLUMN 1, mes_d;
|
||||
ON EVERY ROW
|
||||
PRINT COLUMN l, x.cantidad1 USING "###,###,###",
|
||||
COLUMN l+12, x.cantidad2 USING "###,###,###",
|
||||
COLUMN l+24, x.cantidad3 USING "###,###,###";
|
||||
LET l= l + 36
|
||||
|
||||
IF x.ano = ano_f THEN
|
||||
LET mes_b = ano2[3,4],x.mes USING "&&"
|
||||
LET cant_p1 = 0
|
||||
LET cant_p2 = 0
|
||||
LET cant_p3 = 0
|
||||
|
||||
SELECT SUM(b.cantidad) INTO cant_p1 FROM vetb00017 b
|
||||
WHERE b.ano = ano_f AND b.mes = mes_b AND b.cod_grupo = 1
|
||||
|
||||
SELECT SUM(b.cantidad) INTO cant_p2 FROM vetb00017 b
|
||||
WHERE b.ano = ano_f AND b.mes = mes_b AND b.cod_grupo = 2
|
||||
|
||||
SELECT SUM(b.cantidad) INTO cant_p3 FROM vetb00017 b
|
||||
WHERE b.ano = ano_f AND b.mes = mes_b AND b.cod_grupo = 3
|
||||
|
||||
IF cant_p1 IS NULL THEN
|
||||
LET cant_p1 = 0
|
||||
END IF
|
||||
|
||||
IF cant_p2 IS NULL THEN
|
||||
LET cant_p2 = 0
|
||||
END IF
|
||||
|
||||
IF cant_p3 IS NULL THEN
|
||||
LET cant_p3 = 0
|
||||
END IF
|
||||
|
||||
IF cant_pres1 IS NULL THEN
|
||||
LET cant_pres1 = 0
|
||||
END IF
|
||||
|
||||
IF cant_pres2 IS NULL THEN
|
||||
LET cant_pres2 = 0
|
||||
END IF
|
||||
|
||||
IF cant_pres3 IS NULL THEN
|
||||
LET cant_pres3 = 0
|
||||
END IF
|
||||
|
||||
LET cant_pres1 = cant_pres1 + cant_p1
|
||||
LET cant_pres2 = cant_pres2 + cant_p3
|
||||
LET cant_pres3 = cant_pres2 + cant_p3
|
||||
|
||||
PRINT COLUMN l, cant_p1 USING "###,###,###",
|
||||
COLUMN l+12, cant_p2 USING "###,###,###",
|
||||
COLUMN l+24, cant_p3 USING "###,###,###";
|
||||
LET l = l + 36
|
||||
END IF
|
||||
|
||||
LET a = x.ano
|
||||
LET jb[a].cantidad1 = jb[a].cantidad1 + x.cantidad1
|
||||
LET jb[a].cantidad2 = jb[a].cantidad2 + x.cantidad2
|
||||
LET jb[a].cantidad3 = jb[a].cantidad3 + x.cantidad3
|
||||
|
||||
AFTER GROUP OF x.mes
|
||||
PRINT COLUMN l," "
|
||||
|
||||
ON LAST ROW
|
||||
|
||||
PRINT COLUMN 1, "--------------";
|
||||
LET l = 15
|
||||
FOR a = ano TO ano_f
|
||||
PRINT COLUMN l, "------------------------------------";
|
||||
LET l = l + 36
|
||||
|
||||
IF a = ano THEN
|
||||
PRINT COLUMN l, "------------------------------------";
|
||||
LET l = l + 36
|
||||
END IF
|
||||
END FOR
|
||||
PRINT COLUMN l,"-"
|
||||
PRINT COLUMN 1, "TOTALES ---> ";
|
||||
LET l = 15
|
||||
LET j = 0
|
||||
FOR a = ano TO ano_f
|
||||
|
||||
LET k = ano_f - j
|
||||
|
||||
PRINT COLUMN l,jb[k].cantidad1 USING "###,###,###",
|
||||
COLUMN l+12,jb[k].cantidad2 USING "###,###,###",
|
||||
COLUMN l+24,jb[k].cantidad3 USING "###,###,###";
|
||||
|
||||
LET l = l + 36
|
||||
IF ano_f = ano_f-j THEN
|
||||
|
||||
PRINT COLUMN l, cant_pres1 USING "###,###,###",
|
||||
COLUMN l+12, cant_pres2 USING "###,###,###",
|
||||
COLUMN l+24, cant_pres3 USING "###,###,###";
|
||||
|
||||
LET l = l + 36
|
||||
END IF
|
||||
LET j = j + 1
|
||||
|
||||
END FOR
|
||||
PRINT COLUMN l," "
|
||||
|
||||
PRINT COLUMN 1, "--------------";
|
||||
LET l = 15
|
||||
FOR a = ano TO ano_f
|
||||
PRINT COLUMN l, "------------------------------------";
|
||||
LET l = l + 36
|
||||
|
||||
IF a = ano THEN
|
||||
PRINT COLUMN l, "------------------------------------";
|
||||
LET l = l + 36
|
||||
END IF
|
||||
END FOR
|
||||
PRINT COLUMN l,"-"
|
||||
|
||||
PRINT comp_off
|
||||
LET cant_pres1 = 0
|
||||
LET cant_pres2 = 0
|
||||
LET cant_pres3 = 0
|
||||
|
||||
END REPORT
|
||||
Reference in New Issue
Block a user