419 lines
11 KiB
Plaintext
419 lines
11 KiB
Plaintext
{
|
|
===========================================================================
|
|
PROGRAMA : PRPRRP001
|
|
SISTEMA : PRODUCCION
|
|
OBJETIVO : LISTAR FORMULARIO PARA REGISTRAR HORAS PERSONAL NO
|
|
PRODUCTIVO.
|
|
AUTOR : Tadeo. A. Ferreras F.
|
|
FECHA : SEPT. 15, 1994
|
|
===========================================================================
|
|
}
|
|
|
|
GLOBALS
|
|
"prprgb000.4gl"
|
|
DEFINE repor_1 RECORD
|
|
num_emp SMALLINT,
|
|
departamento SMALLINT,
|
|
nom1_emp CHAR(14),
|
|
nom2_emp CHAR(14),
|
|
apell1_emp CHAR(14),
|
|
apell2_emp CHAR(14),
|
|
nom_dpto CHAR(30),
|
|
nom_puesto CHAR(28),
|
|
cod_puesto SMALLINT
|
|
END RECORD
|
|
MAIN
|
|
|
|
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
|
|
r_filename STRING, -- filename of Report Design Document including .4rp extension
|
|
r_output STRING, -- output format option
|
|
preview INTEGER -- TRUE/FALSE, to set preview option
|
|
DEFER INTERRUPT
|
|
-- prompt user for report settings to replace defaults
|
|
CALL selectOutput() RETURNING r_filename, r_output, preview
|
|
|
|
-- configure report engine; the functions prefixed fgl that are called here are part of the GRW API
|
|
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
|
|
CALL fgl_report_selectDevice(r_output) -- changing default
|
|
CALL fgl_report_selectPreview(preview) -- changing default
|
|
LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
|
ELSE
|
|
EXIT PROGRAM
|
|
END IF
|
|
--run the report
|
|
IF handler IS NOT NULL THEN -- report engine was configured ok
|
|
CALL prprrp001()
|
|
ELSE
|
|
EXIT PROGRAM
|
|
END IF
|
|
|
|
END MAIN
|
|
|
|
FUNCTION prprrp001()
|
|
DEFINE opcion CHAR(1)
|
|
OPTIONS
|
|
PROMPT LINE 23,
|
|
FORM LINE 8,
|
|
ERROR LINE 23
|
|
|
|
OPEN FORM prfmrp001 FROM "prfmrp001"
|
|
DISPLAY FORM prfmrp001
|
|
|
|
LET tipo_papel = 2
|
|
CALL msgrp000(tipo_papel)
|
|
CONNECT TO "smarmotech" USER "jsoto" USING "lmmjvsd2009"
|
|
|
|
INPUT BY NAME prtb02.num_semana
|
|
|
|
AFTER FIELD num_semana
|
|
IF prtb02.num_semana IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_semana
|
|
END IF
|
|
|
|
SELECT UNIQUE a.semana_del,a.semana_al INTO prtb02.semana_del,prtb02.semana_al
|
|
FROM prtb00002 a
|
|
WHERE a.num_semana = prtb02.num_semana AND a.status_t IS NULL
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_semana
|
|
END IF
|
|
|
|
DISPLAY BY NAME prtb02.semana_del,prtb02.semana_al
|
|
END INPUT
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
PROMPT "Es el rango de fecha deseado [S/N]?..." FOR CHAR opcion
|
|
LET opcion = UPSHIFT(opcion)
|
|
IF opcion = "S" THEN
|
|
|
|
SELECT UNIQUE a.num_semana FROM prtb00003 a
|
|
WHERE a.num_semana = prtb02.num_semana AND a.status_t IS NULL
|
|
|
|
IF STATUS != NOTFOUND THEN
|
|
PROMPT
|
|
"LISTADO EXISTE, SI DESEAS IMPRIMIRLO BORRARA INFORMACION DE LA SEMANA [S/N]"
|
|
FOR CHAR opcion1
|
|
LET opcion1 = UPSHIFT(opcion1)
|
|
IF opcion1 != "S" THEN
|
|
RETURN
|
|
END IF
|
|
ELSE
|
|
LET opcion1 = "S"
|
|
END IF
|
|
|
|
IF opcion1 = "S" THEN
|
|
DECLARE busca CURSOR FOR
|
|
SELECT a.num_emp,a.departamento,a.nom1_emp,a.nom2_emp,a.apell1_emp,
|
|
a.apell2_emp,b.nom_dpto,c.nom_puesto,a.cod_puesto
|
|
FROM adtb00003 a,adtb00001 b,adtb00004 c
|
|
WHERE a.departamento = b.departamento and
|
|
a.nivel_emp != 2 and
|
|
a.cod_puesto = c.cod_puesto and
|
|
a.status_t is null and a.departamento between 6000 and 6500
|
|
ORDER BY 2,9,1
|
|
|
|
DISPLAY "Buscando Informacion... Espere Por Favor" AT 17,14
|
|
|
|
START REPORT reporte_1 TO "C:\\archivo"
|
|
|
|
DISPLAY "Reporte Generandose ... Espere Por Favor" AT 17,14
|
|
|
|
FOREACH busca INTO repor_1.*
|
|
OUTPUT TO REPORT reporte_1(repor_1.*)
|
|
END FOREACH
|
|
DECLARE busca1 CURSOR FOR
|
|
SELECT a.num_emp,'6199',a.nom1_emp,a.nom2_emp,a.apell1_emp,
|
|
a.apell2_emp,b.nom_dpto,c.nom_puesto,a.cod_puesto
|
|
FROM adtb00003 a,adtb00001 b,adtb00004 c
|
|
WHERE a.departamento = b.departamento and
|
|
a.nivel_emp = 2 and
|
|
a.cod_puesto = c.cod_puesto and
|
|
a.status_t is null and a.departamento between 6000 and 6500
|
|
ORDER BY 2,9,1
|
|
FOREACH busca1 INTO repor_1.*
|
|
OUTPUT TO REPORT reporte_1(repor_1.*)
|
|
END FOREACH
|
|
FINISH REPORT reporte_1
|
|
END IF
|
|
END IF
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
|
|
|
REPORT reporte_1(x)
|
|
DEFINE x RECORD
|
|
num_emp SMALLINT,
|
|
departamento SMALLINT,
|
|
nom1_emp CHAR(14),
|
|
nom2_emp CHAR(14),
|
|
apell1_emp CHAR(14),
|
|
apell2_emp CHAR(14),
|
|
nom_dpto CHAR(30),
|
|
nom_puesto CHAR(28),
|
|
cod_puesto SMALLINT
|
|
END RECORD
|
|
|
|
OUTPUT
|
|
LEFT MARGIN 0
|
|
ORDER BY x.departamento,x.cod_puesto,x.num_emp
|
|
|
|
format
|
|
page header
|
|
LET comp_on = ASCII 15
|
|
LET comp_off = ASCII 18
|
|
LET doce = ASCII 27, ascii 77
|
|
LET doble_on = ASCII 14
|
|
LET doble_off = ASCII 20
|
|
LET hora = time
|
|
|
|
PRINT comp_on
|
|
PRINT COLUMN 1, "prprrp001",
|
|
COLUMN 49, " R A Y .O. V A C D O M I N I C A N A, S. A. ",
|
|
COLUMN 141, "Pag. ",pageno USING "###"
|
|
PRINT COLUMN 49, " SISTEMA DE PRODUCCION ",
|
|
COLUMN 141, today using "dd/mm/yy"
|
|
PRINT COLUMN 49, "REGISTRO HORAS DIARIAS Y PERSONAL NO DE PRODUCCION",
|
|
COLUMN 144, hora
|
|
skip 1 line
|
|
PRINT COLUMN 1, "NUMERO SEMANA: ",prtb02.num_semana USING "&&&&"," ",
|
|
": DEL ",prtb02.semana_del USING "dd/mm/yy",
|
|
" AL ",prtb02.semana_al USING "dd/mm/yy"
|
|
|
|
PRINT "====================================================================",
|
|
"====================================================================",
|
|
"============"
|
|
PRINT COLUMN 64,
|
|
"| H O R A S I N D I R E C T A S ",
|
|
" |"
|
|
|
|
PRINT COLUMN 64, "| NORMALES |",
|
|
COLUMN 120, " EXTRAS |"
|
|
|
|
PRINT COLUMN 64,"|",
|
|
COLUMN 67, "S",
|
|
5 spaces, "D",
|
|
5 spaces, "L",
|
|
5 spaces, "M",
|
|
5 spaces, "M",
|
|
5 spaces, "J",
|
|
5 spaces, "V |",
|
|
|
|
2 spaces, "S",
|
|
5 spaces, "D",
|
|
5 spaces, "L",
|
|
5 spaces, "M",
|
|
5 spaces, "M",
|
|
5 spaces, "J",
|
|
5 spaces, "V |"
|
|
|
|
PRINT "====================================================================",
|
|
"====================================================================",
|
|
"============"
|
|
|
|
BEFORE GROUP OF x.departamento
|
|
LET idx = 0
|
|
|
|
BEFORE GROUP OF x.cod_puesto
|
|
IF x.departamento >= 6000 and
|
|
x.departamento <= 6199 THEN
|
|
|
|
IF x.cod_puesto = 3 OR x.cod_puesto = 27 OR x.cod_puesto = 13 OR
|
|
x.cod_puesto = 14 THEN
|
|
LET idx = idx + 1
|
|
|
|
IF idx = 1 THEN
|
|
PRINT doble_on,x.nom_dpto clipped,doble_off
|
|
SKIP 1 LINE
|
|
END IF
|
|
|
|
END IF
|
|
END IF
|
|
|
|
IF x.departamento >= 6199 THEN
|
|
|
|
LET idx = idx + 1
|
|
|
|
IF idx = 1 THEN
|
|
PRINT doble_on,x.nom_dpto clipped,doble_off
|
|
SKIP 1 LINE
|
|
END IF
|
|
|
|
{PRINT COLUMN 64, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|"}
|
|
END IF
|
|
|
|
ON EVERY ROW
|
|
IF x.departamento >= 6000 and
|
|
x.departamento <= 6199 THEN
|
|
|
|
IF x.cod_puesto = 3 OR x.cod_puesto = 27 OR x.cod_puesto = 13 OR
|
|
x.cod_puesto = 14 THEN
|
|
|
|
LET prtb03.fecha = prtb02.semana_del
|
|
PRINT COLUMN 64, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|"
|
|
|
|
PRINT COLUMN 1,x.num_emp using "&&&"," ",x.nom1_emp clipped,
|
|
" ",x.apell1_emp CLIPPED,
|
|
COLUMN 35, x.nom_puesto CLIPPED,
|
|
COLUMN 64, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|"
|
|
PRINT "--------------------------------------------------------------------",
|
|
"--------------------------------------------------------------------",
|
|
"-----------"
|
|
END IF
|
|
END IF
|
|
|
|
IF x.departamento >= 6199 THEN
|
|
|
|
LET prtb03.fecha = prtb02.semana_del
|
|
PRINT COLUMN 64, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|"
|
|
|
|
PRINT COLUMN 1,x.num_emp using "&&&"," ",x.nom1_emp clipped," ",x.apell1_emp,
|
|
COLUMN 35, x.nom_puesto CLIPPED,
|
|
COLUMN 64, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|"
|
|
PRINT "--------------------------------------------------------------------",
|
|
"--------------------------------------------------------------------",
|
|
"-----------"
|
|
END IF
|
|
|
|
AFTER GROUP OF x.departamento
|
|
IF x.departamento >= 6000 AND
|
|
x.departamento <= 6199 THEN
|
|
|
|
IF x.cod_puesto = 3 OR x.cod_puesto = 27 OR x.cod_puesto = 13 OR
|
|
x.cod_puesto = 14 THEN
|
|
|
|
PRINT "--------------------------------------------------------------------",
|
|
"--------------------------------------------------------------------",
|
|
"-----------"
|
|
END IF
|
|
END IF
|
|
|
|
IF x.departamento >= 6199 THEN
|
|
|
|
PRINT "--------------------------------------------------------------------",
|
|
"--------------------------------------------------------------------",
|
|
"-----------"
|
|
END IF
|
|
|
|
ON LAST ROW
|
|
SKIP 1 LINE
|
|
PRINT "Total Registros Impresos===> ",COUNT(*) USING "####"
|
|
PRINT comp_off
|
|
END REPORT
|
|
|
|
FUNCTION selectOutput()
|
|
DEFINE
|
|
r_output STRING, -- output format option
|
|
r_action STRING, -- used to set preview option
|
|
r_filename STRING, -- filename of Report Design document (the .4rp filename)
|
|
preview INTEGER -- preview option TRUE/FALSE, to display report in Report Viewer
|
|
|
|
-- display form allowing user to select the .4rp filename and output options
|
|
CLOSE WINDOW SCREEN
|
|
OPTIONS INPUT WRAP
|
|
OPEN WINDOW f_configuration WITH FORM "Configuration"
|
|
LET INT_FLAG=FALSE
|
|
LET preview = FALSE
|
|
INPUT BY NAME r_filename,r_output,r_action
|
|
ON ACTION CANCEL
|
|
EXIT PROGRAM
|
|
ON ACTION CLOSE
|
|
EXIT PROGRAM
|
|
END INPUT
|
|
CLOSE WINDOW f_configuration
|
|
CALL ui.interface.refresh()
|
|
|
|
-- set preview variable to match output option r_action
|
|
IF r_action IS NOT NULL THEN
|
|
IF r_action == "preview" THEN
|
|
LET preview = TRUE
|
|
END IF
|
|
END IF
|
|
|
|
--return report name (filename of Report Design Document) and output option variables to be used to configure the report engine
|
|
RETURN r_filename||".4rp", r_output, preview
|
|
|
|
END FUNCTION
|