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