147 lines
5.5 KiB
Plaintext
147 lines
5.5 KiB
Plaintext
SCHEMA smarmotech
|
|
|
|
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
|
|
|
|
|
|
DEFINE idx INT
|
|
|
|
FUNCTION imprime (datos_c, arr_costos)
|
|
|
|
DEFINE datos_c RECORD
|
|
num_doc INTEGER,
|
|
fecha DATE,
|
|
departamento SMALLINT,
|
|
cod_mov SMALLINT
|
|
END RECORD
|
|
|
|
DEFINE arr_costos DYNAMIC ARRAY OF RECORD
|
|
tipo LIKE cttb00003.cod_mq,
|
|
codigo INT,
|
|
emp_no LIKE cttb00003.emp_no,
|
|
h_directa LIKE cttb00003.h_directa,
|
|
h_indirecta LIKE cttb00003.h_indirecta,
|
|
e_directa LIKE cttb00003.e_directa,
|
|
e_indirecta LIKE cttb00003.e_indirecta,
|
|
cod_prod LIKE cttb00011.cod_prod,
|
|
lado2,lado1,lado3 DEC(12,5),
|
|
cantidad LIKE cttb00003.cantidad,
|
|
medida1 DEC(18,5),
|
|
codigo_bloque LIKE cttb00003.codigo_bloque,
|
|
turno SMALLINT,
|
|
depto_receptor SMALLINT,
|
|
ref INT
|
|
END RECORD
|
|
|
|
DEFINE nombre, descripcion, movimiento, departamento, turno, maquina, depto_receptor STRING
|
|
|
|
SELECT'(' + CAST(a.cod_mov AS VARCHAR) + ') ' + a.descrip_mov INTO movimiento
|
|
FROM cttb00005 a WHERE
|
|
a.cod_mov = datos_c.cod_mov AND a.status_t IS NULL
|
|
|
|
SELECT'('+ CAST(a.departamento AS VARCHAR)+') ' + a.nom_dpto INTO departamento
|
|
FROM adtb00001 a WHERE
|
|
a.departamento = datos_c.departamento AND a.status_t IS NULL
|
|
|
|
|
|
|
|
|
|
IF arr_costos.getLength() > 0 THEN
|
|
LET r_filename = 'prprmt003.4rp'
|
|
LET r_output = 'SVG' -- SVG = visor nativo de GDC (PDF abria en navegador externo y fallaba "Failed to load PDF")
|
|
LET preview = 1 -- mostrar previsualizacion
|
|
|
|
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
|
|
CALL fgl_winmessage("Reporte",
|
|
"No se pudo cargar el diseno "||r_filename||". Verifique que exista en el FGLRESOURCEPATH (carpeta bin).",
|
|
"exclamation")
|
|
RETURN
|
|
END IF
|
|
--run the report
|
|
IF handler IS NOT NULL THEN -- report engine was configured ok
|
|
|
|
START REPORT p_diaria TO XML HANDLER HANDLER
|
|
|
|
FOR idx = 1 TO arr_costos.getLength()
|
|
IF arr_costos[idx].cod_prod IS NOT NULL THEN
|
|
|
|
SELECT RTRIM(a.nom1_emp) +', '+RTRIM(a.apell1_emp) INTO nombre FROM adtb00003 a
|
|
WHERE a.num_emp = arr_costos[idx].emp_no
|
|
|
|
SELECT unique '('+RTRIM(a.cod_prod)+') '+ rtrim(a.descripcion)+', '+rtrim(a.unidad_med)
|
|
INTO descripcion FROM cttb00001 a
|
|
WHERE a.cod_prod = arr_costos[idx].cod_prod AND
|
|
a.status_t is null
|
|
|
|
SELECT a.descripcion INTO turno FROM cttb00018 a
|
|
WHERE a.turno = arr_costos[idx].turno AND a.status_t IS NULL
|
|
|
|
SELECT RTRIM(a.nombre)+'('+ISNULL(RTRIM(a.codigo_externo),' ')+')' INTO maquina
|
|
FROM irtb00009 a
|
|
WHERE a.status_t IS NULL AND a.departamento = datos_c.departamento
|
|
AND a.codigo = arr_costos[idx].codigo
|
|
|
|
SELECT CONCAT('(',a.departamento,')',a.nom_dpto) INTO depto_receptor FROM adtb00001 a
|
|
WHERE a.status_t IS NULL AND a.departamento = arr_costos[idx].depto_receptor
|
|
|
|
OUTPUT TO REPORT p_diaria(datos_c.*, arr_costos[idx].*, nombre,
|
|
descripcion, movimiento, departamento, turno, maquina, depto_receptor)
|
|
END IF
|
|
END FOR
|
|
|
|
FINISH REPORT p_diaria
|
|
END IF
|
|
END IF
|
|
|
|
END FUNCTION
|
|
|
|
REPORT p_diaria(datos_c, arr_costos, nombre, descripcion, movimiento, departamento, descrip_turno, descrip_maquina, depto_receptor)
|
|
|
|
DEFINE datos_c RECORD
|
|
num_doc INTEGER,
|
|
fecha DATE,
|
|
departamento SMALLINT,
|
|
cod_mov SMALLINT
|
|
END RECORD
|
|
|
|
DEFINE arr_costos RECORD
|
|
tipo LIKE cttb00003.cod_mq,
|
|
codigo INT,
|
|
emp_no LIKE cttb00003.emp_no,
|
|
h_directa LIKE cttb00003.h_directa,
|
|
h_indirecta LIKE cttb00003.h_indirecta,
|
|
e_directa LIKE cttb00003.e_directa,
|
|
e_indirecta LIKE cttb00003.e_indirecta,
|
|
cod_prod LIKE cttb00011.cod_prod,
|
|
lado2,lado1,lado3 DEC(12,5),
|
|
cantidad LIKE cttb00003.cantidad,
|
|
medida1 DEC(12,5),
|
|
codigo_bloque LIKE cttb00003.codigo_bloque,
|
|
turno SMALLINT,
|
|
depto_receptor SMALLINT,
|
|
ref INT
|
|
END RECORD
|
|
|
|
DEFINE nombre, descripcion, movimiento, departamento, descrip_turno,
|
|
descrip_maquina, depto_receptor VARCHAR(100)
|
|
|
|
FORMAT
|
|
ON EVERY ROW
|
|
PRINTX datos_c.num_doc, datos_c.fecha, departamento, movimiento, nombre, descripcion,
|
|
arr_costos.*, descrip_turno, descrip_maquina, depto_receptor
|
|
|
|
|
|
|
|
|
|
|
|
|
|
END REPORT
|
|
|
|
|