Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,513 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : PRPRRP012
|
||||
OBJETIVO : Produccion Comparada
|
||||
PROGRAMADOR : Tadeo A. Ferreras
|
||||
FECHA REALIZACION : Oct. 07, 1994
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
GLOBALS "prprgb000.4gl"
|
||||
|
||||
DEFINE nomenclat ARRAY[100] OF CHAR(11)
|
||||
DEFINE cantidad1 ARRAY[3000,100] OF DECIMAL(12,2)
|
||||
DEFINE cantidad2 ARRAY[3,3] OF DECIMAL(12,2)
|
||||
DEFINE nome,nome1 CHAR(1)
|
||||
DEFINE mes_p CHAR(10)
|
||||
DEFINE m,i,ano_i,ano,mes INTEGER
|
||||
DEFINE ano3,ano4,ano1,ano2 CHAR(4)
|
||||
DEFINE fecha1,fecha2,fecha3,fecha4 DATE
|
||||
DEFINE total2,total1,cantidad3,cantidad4,total DECIMAL(12,2)
|
||||
DEFINE fecha_inicial,fecha_final DATE
|
||||
FUNCTION prprrp012()
|
||||
#WHENEVER ERROR CONTINUE
|
||||
|
||||
DEFINE prt_datos12 RECORD
|
||||
nomenclatura CHAR(11),
|
||||
ano CHAR(4),
|
||||
mes SMALLINT,
|
||||
cantidad DECIMAL(12,2)
|
||||
END RECORD
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM prfmrp012 FROM "prfmrp006"
|
||||
DISPLAY FORM prfmrp012
|
||||
CALL pantalla()
|
||||
DISPLAY "prprrp012" AT 4,3
|
||||
DISPLAY "Produccion Ano Actual vs Ano Anterior" AT 6,21
|
||||
|
||||
LET tipo_papel = 2
|
||||
CALL msgrp000(tipo_papel)
|
||||
########### Captura de valores para el criterio de busqueda ############
|
||||
INPUT BY NAME ano,mes
|
||||
|
||||
AFTER FIELD ano
|
||||
IF ano IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD ano
|
||||
END IF
|
||||
|
||||
LET ano_i= ano - 1
|
||||
LET ano1 = ano USING "&&&&"
|
||||
LET ano2 = ano - 1 USING "&&&&"
|
||||
LET ano3 = ano USING "&&&&"
|
||||
LET ano4 = ano - 1 USING "&&&&"
|
||||
|
||||
AFTER FIELD mes
|
||||
IF ano IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD ano
|
||||
END IF
|
||||
|
||||
SELECT a.fecha_corte INTO fecha1 FROM prdtable a
|
||||
WHERE a.ano = ano AND a.mes = mes
|
||||
|
||||
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
|
||||
|
||||
DECLARE busca CURSOR FOR
|
||||
SELECT UNIQUE c.nomenclatura FROM iptb00002 c
|
||||
WHERE c.cod_n = 3 ORDER BY 1
|
||||
|
||||
DISPLAY "Buscando Informacion... Espere Por Favor" AT 19,14
|
||||
|
||||
START REPORT reporte_12 TO "C:\\archivo"
|
||||
DISPLAY "Impresion En Proceso... Espere Por Favor" AT 19,14
|
||||
|
||||
LET l = 0
|
||||
FOREACH busca INTO prt_datos12.*
|
||||
LET prt_datos12.cantidad = 0
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET l = l + 1
|
||||
LET nomenclat[l] = prt_datos12.nomenclatura
|
||||
FOR j = ano_i TO ano
|
||||
LET ano1 = j USING "&&&&"
|
||||
LET cantidad1[j,l] = 0
|
||||
FOR i = 1 TO mes
|
||||
|
||||
LET prt_datos12.ano = ano1
|
||||
LET prt_datos12.mes = i
|
||||
LET prt_datos12.cantidad = 0
|
||||
|
||||
SELECT a.fecha_inicio,a.fecha_corte INTO fecha1,fecha2 FROM prdtable a
|
||||
WHERE a.ano = ano1 AND a.mes = i
|
||||
|
||||
SELECT SUM(b.cantidad_2/1000) INTO prt_datos12.cantidad
|
||||
FROM iptb00006 b,iptb00002 c
|
||||
WHERE 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.fecha BETWEEN fecha1 AND fecha2 AND b.cod_mov = 20 AND
|
||||
b.status_t IS NULL AND c.nomenclatura = prt_datos12.nomenclatura
|
||||
|
||||
IF prt_datos12.cantidad IS NULL THEN
|
||||
LET prt_datos12.cantidad = 0
|
||||
END IF
|
||||
|
||||
LET cantidad1[j,l] = cantidad1[j,l] + prt_datos12.cantidad
|
||||
DISPLAY " " AT 20,14
|
||||
DISPLAY prt_datos12.nomenclatura," ",ano1," ",i USING "&&" AT 20,14
|
||||
|
||||
OUTPUT TO REPORT reporte_12(prt_datos12.*)
|
||||
END FOR
|
||||
END FOR
|
||||
END FOREACH
|
||||
FINISH REPORT reporte_12
|
||||
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
||||
|
||||
# Rutina de Impresion de las informaciones
|
||||
REPORT reporte_12(x)
|
||||
|
||||
# Variable para tomar las informaciones
|
||||
DEFINE x RECORD
|
||||
nomenclatura CHAR(10),
|
||||
ano CHAR(4),
|
||||
mes SMALLINT,
|
||||
cantidad DECIMAL(12,2)
|
||||
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.mes,x.ano DESC,x.nomenclatura
|
||||
|
||||
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
|
||||
|
||||
# Impresion de los encabezados
|
||||
LET j = 12
|
||||
FOR i = 1 TO l
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
LET j = j + 13
|
||||
FOR i = 1 TO l
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
LET j = j + 13
|
||||
LET k = ((j-45)/2) + 1
|
||||
|
||||
PRINT comp_on
|
||||
PRINT COLUMN 1, "prprrp012",
|
||||
COLUMN k, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
||||
COLUMN j-8, "Pag. ",pageno using "###"
|
||||
PRINT COLUMN k, " Sistema de Produccion",
|
||||
COLUMN j-8, today using "dd/mm/yy"
|
||||
PRINT COLUMN k, " PRODUCCION ANO ACTUAL VS ANO ANTERIOR",
|
||||
COLUMN j-5, hora
|
||||
SKIP 1 LINE
|
||||
|
||||
PRINT COLUMN 1,"-----------";
|
||||
LET j = 12
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------";
|
||||
LET j = j + 13
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------"
|
||||
|
||||
PRINT COLUMN (k+45)/2, ano3,
|
||||
COLUMN ((k+45)/2) + k, ano4
|
||||
|
||||
PRINT COLUMN 1,"-----------";
|
||||
LET j = 12
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------";
|
||||
LET j = j + 13
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------"
|
||||
|
||||
LET j = 12
|
||||
FOR i = 1 TO l
|
||||
LET j = j + 11
|
||||
LET nome = nomenclat[i]
|
||||
LET nome1= nomenclat[i+1]
|
||||
|
||||
IF nome="D" OR nome1 = "D" THEN
|
||||
LET nome = "C"
|
||||
LET nome1= "C"
|
||||
END IF
|
||||
|
||||
IF nome != nome1 OR i = (l-1) THEN
|
||||
IF nome = "A" THEN
|
||||
PRINT COLUMN j-11," D | "," ";
|
||||
END IF
|
||||
IF nome = "B" THEN
|
||||
PRINT COLUMN j-11," C | "," ";
|
||||
END IF
|
||||
IF nome = "C" THEN
|
||||
PRINT COLUMN j," AA | "," ";
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
PRINT COLUMN j," ||";
|
||||
LET j = j + 13
|
||||
|
||||
FOR i = 1 TO l
|
||||
LET j = j + 11
|
||||
LET nome = nomenclat[i]
|
||||
LET nome1= nomenclat[i+1]
|
||||
|
||||
IF nome="D" OR nome1 = "D" THEN
|
||||
LET nome = "C"
|
||||
LET nome1= "C"
|
||||
END IF
|
||||
|
||||
IF nome != nome1 OR i = (l-1) THEN
|
||||
IF nome = "A" THEN
|
||||
PRINT COLUMN j-11," D | "," ";
|
||||
END IF
|
||||
IF nome = "B" THEN
|
||||
PRINT COLUMN j-11," C | "," ";
|
||||
END IF
|
||||
IF nome = "C" THEN
|
||||
PRINT COLUMN j," AA | "," ";
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
PRINT COLUMN j," ||"
|
||||
|
||||
PRINT COLUMN 1,"-----------";
|
||||
LET j = 12
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------";
|
||||
LET j = j + 13
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------"
|
||||
|
||||
PRINT COLUMN 1,"MES ";
|
||||
LET j = 15
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,nomenclat[i] CLIPPED;
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j," TOTAL||";
|
||||
LET j = j + 13
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,nomenclat[i] CLIPPED;
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j," TOTAL||"
|
||||
|
||||
PRINT COLUMN 1,"-----------";
|
||||
LET j = 12
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------";
|
||||
LET j = j + 13
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------"
|
||||
|
||||
BEFORE GROUP OF x.mes
|
||||
CASE
|
||||
WHEN x.mes = 1 LET mes_p = "ENERO " EXIT CASE
|
||||
WHEN x.mes = 2 LET mes_p = "FEBRERO " EXIT CASE
|
||||
WHEN x.mes = 3 LET mes_p = "MARZO " EXIT CASE
|
||||
WHEN x.mes = 4 LET mes_p = "ABRIL " EXIT CASE
|
||||
WHEN x.mes = 5 LET mes_p = "MAYO " EXIT CASE
|
||||
WHEN x.mes = 6 LET mes_p = "JUNIO " EXIT CASE
|
||||
WHEN x.mes = 7 LET mes_p = "JULIO " EXIT CASE
|
||||
WHEN x.mes = 8 LET mes_p = "AGOSTO " EXIT CASE
|
||||
WHEN x.mes = 9 LET mes_p = "SEPTIEMBRE" EXIT CASE
|
||||
WHEN x.mes = 10 LET mes_p = "OCTUBRE " EXIT CASE
|
||||
WHEN x.mes = 11 LET mes_p = "NOVIEMBRE " EXIT CASE
|
||||
WHEN x.mes = 12 LET mes_p = "DICIEMBRE " EXIT CASE
|
||||
END CASE
|
||||
|
||||
PRINT COLUMN 1, mes_p;
|
||||
LET j = 12
|
||||
|
||||
BEFORE GROUP OF x.ano
|
||||
LET total = 0
|
||||
|
||||
AFTER GROUP OF x.nomenclatura
|
||||
|
||||
PRINT COLUMN j, x.cantidad USING "###,###.##"," ";
|
||||
LET j = j + 11
|
||||
LET total = total + x.cantidad
|
||||
|
||||
AFTER GROUP OF x.ano
|
||||
PRINT COLUMN j, total USING "###,###.##","|| ";
|
||||
LET j = j + 13
|
||||
|
||||
AFTER GROUP OF x.mes
|
||||
PRINT COLUMN j," "
|
||||
|
||||
ON LAST ROW
|
||||
|
||||
PRINT COLUMN 1,"-----------";
|
||||
LET j = 12
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------";
|
||||
LET j = j + 13
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------"
|
||||
|
||||
PRINT COLUMN 1,"ACUMULADO ";
|
||||
LET total = 0
|
||||
LET j = 12
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,cantidad1[ano,i] USING "###,###.##"," ";
|
||||
LET j = j + 11
|
||||
LET total = total + cantidad1[ano,i]
|
||||
END FOR
|
||||
PRINT COLUMN j,total USING "###,###.##","|| ";
|
||||
LET total1 = total
|
||||
|
||||
LET total = 0
|
||||
LET j = j + 13
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,cantidad1[ano_i,i] USING "###,###.##"," ";
|
||||
LET j = j + 11
|
||||
LET total = total + cantidad1[ano_i,i]
|
||||
END FOR
|
||||
PRINT COLUMN j,total USING "###,###.##","|| "
|
||||
LET total2 = total
|
||||
|
||||
PRINT COLUMN 1,"-----------";
|
||||
LET j = 12
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------";
|
||||
LET j = j + 13
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------"
|
||||
|
||||
LET cantidad2[1,1] = 0
|
||||
LET cantidad2[1,2] = 0
|
||||
LET cantidad2[1,3] = 0
|
||||
LET cantidad2[2,1] = 0
|
||||
LET cantidad2[2,2] = 0
|
||||
LET cantidad2[2,3] = 0
|
||||
|
||||
PRINT COLUMN 1,"COMP./TIPO ";
|
||||
LET j = 12
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,((cantidad1[ano,i]-cantidad1[ano_i,i])/
|
||||
cantidad1[ano_i,i])*100
|
||||
USING "((,(((.##)"," ";
|
||||
LET j = j + 11
|
||||
LET nome = nomenclat[i]
|
||||
|
||||
IF nome = "A" THEN
|
||||
LET cantidad2[1,1] = cantidad2[1,1] + cantidad1[ano,i]
|
||||
END IF
|
||||
IF nome = "B" THEN
|
||||
LET cantidad2[1,2] = cantidad2[1,2] + cantidad1[ano,i]
|
||||
END IF
|
||||
IF nome = "C" OR nome = "D" THEN
|
||||
LET cantidad2[1,3] = cantidad2[1,3] + cantidad1[ano,i]
|
||||
END IF
|
||||
END FOR
|
||||
PRINT COLUMN j," ","|| ";
|
||||
LET j = j + 13
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j, " "," ";
|
||||
LET j = j + 11
|
||||
LET nome = nomenclat[i]
|
||||
IF nome = "A" THEN
|
||||
LET cantidad2[2,1]=cantidad2[2,1]+cantidad1[ano_i,i]
|
||||
END IF
|
||||
IF nome = "B" THEN
|
||||
LET cantidad2[2,2]=cantidad2[2,2]+cantidad1[ano_i,i]
|
||||
END IF
|
||||
IF nome = "C" OR nome = "D" THEN
|
||||
LET cantidad2[2,3]=cantidad2[2,3]+cantidad1[ano_i,i]
|
||||
END IF
|
||||
END FOR
|
||||
PRINT COLUMN j," "," "
|
||||
|
||||
PRINT COLUMN 1,"-----------";
|
||||
LET j = 12
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------";
|
||||
LET j = j + 13
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------"
|
||||
|
||||
LET j = 12
|
||||
PRINT COLUMN 1,"COMP-TAMANO";
|
||||
FOR i = 1 TO l
|
||||
LET j = j + 11
|
||||
LET nome = nomenclat[i]
|
||||
LET nome1= nomenclat[i+1]
|
||||
|
||||
IF nome="D" OR nome1 = "D" THEN
|
||||
LET nome = "C"
|
||||
LET nome1= "C"
|
||||
END IF
|
||||
|
||||
IF nome != nome1 OR i = (l-1) THEN
|
||||
IF nome = "A" THEN
|
||||
PRINT COLUMN j-11,((cantidad2[1,1]-cantidad2[2,1])/cantidad2[2,1])
|
||||
*100 USING "((,(((.##)"," ";
|
||||
END IF
|
||||
IF nome = "B" THEN
|
||||
PRINT COLUMN j-11,((cantidad2[1,2]-cantidad2[2,2])/cantidad2[2,2])
|
||||
*100 USING "((,(((.##)"," ";
|
||||
END IF
|
||||
IF nome = "C" THEN
|
||||
PRINT COLUMN j,((cantidad2[1,3]-cantidad2[2,3])/cantidad2[2,3])
|
||||
*100 USING "((,(((.##)"," ";
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
PRINT COLUMN j," ","|| "
|
||||
|
||||
PRINT COLUMN 1,"-----------";
|
||||
LET j = 12
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------";
|
||||
LET j = j + 13
|
||||
FOR i = 1 TO l
|
||||
PRINT COLUMN j,"-----------";
|
||||
LET j = j + 11
|
||||
END FOR
|
||||
PRINT COLUMN j,"-------------"
|
||||
PRINT comp_off
|
||||
|
||||
END REPORT
|
||||
Reference in New Issue
Block a user