565 lines
19 KiB
Plaintext
565 lines
19 KiB
Plaintext
{
|
|
-------------------------------------------------------------------------------
|
|
PROGRAMA : CTPRRP004
|
|
OBJETIVO : Produccion Diaria
|
|
PROGRAMADOR : Ing. Elvis García
|
|
FECHA : Enero 28, 2026.
|
|
-------------------------------------------------------------------------------
|
|
}
|
|
GLOBALS "ctprgb000.4gl"
|
|
|
|
DEFINE
|
|
abortar_reporte BOOLEAN,
|
|
fecha_actual DATETIME YEAR TO FRACTION
|
|
|
|
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 selec5 STRING
|
|
DEFINE anos CHAR(4)
|
|
DEFINE jdx INTEGER
|
|
DEFINE fecha_inicio, fecha_corte, fecha1 DATE, reporte_tipo INT
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CALL ARG_VAL(3) RETURNING impresor
|
|
|
|
CONNECT TO "smarmotech" USER usuarios USING clave
|
|
SELECT a.* INTO p_compania.* FROM companias a
|
|
|
|
CALL ctprrp004()
|
|
END MAIN
|
|
|
|
FUNCTION ctprrp004()
|
|
|
|
DEFINE prod_dia RECORD
|
|
num_doc INT,
|
|
fecha DATE,
|
|
departamento VARCHAR(100),
|
|
cod_prod LIKE cttb00008.cod_prod,
|
|
cp_desc VARCHAR(100),
|
|
medidas VARCHAR(75),
|
|
cantidad DECIMAL(12, 2),
|
|
costo_lab DECIMAL(12, 2),
|
|
valor DECIMAL(12, 2)
|
|
END RECORD
|
|
|
|
OPTIONS ERROR LINE 24, FORM LINE 8
|
|
|
|
OPEN FORM ctfmrp004 FROM "ctfmrp004"
|
|
DISPLAY FORM ctfmrp004
|
|
|
|
CONSTRUCT criterio ON c.departamento, c.cod_prod FROM departamento, cod_prod
|
|
|
|
BEFORE CONSTRUCT
|
|
CALL departamentos_produccion()
|
|
END CONSTRUCT
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
INPUT BY NAME fecha_inicio, fecha_corte, reporte_tipo ATTRIBUTES(WITHOUT DEFAULTS, UNBUFFERED)
|
|
BEFORE INPUT
|
|
LET fecha_inicio = CURRENT
|
|
LET fecha_corte = CURRENT
|
|
LET reporte_tipo = 1
|
|
|
|
END INPUT
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
LET jdx = (fecha_corte - fecha_inicio) + 1
|
|
LET anos = YEAR(fecha_inicio) USING "&&&&"
|
|
|
|
SELECT a.fecha_inicio
|
|
INTO fecha1
|
|
FROM prdtable a
|
|
WHERE a.ano = anos AND a.mes = 1
|
|
|
|
IF reporte_tipo = 1 THEN
|
|
LET selec5 =
|
|
"SELECT DISTINCT c.num_doc, c.fecha, CONCAT('(',c.departamento,') ', f.nom_dpto) as departamento,c.cod_prod,Ltrim(e.descripcion) as semielaborado,
|
|
CONCAT(ISNULL(c.lado1,0),'x',ISNULL(c.lado2,0),'x',ISNULL(c.lado3,0)) as Medida,ISNULL(sum(cantidad),0) as cantidad,
|
|
CAST(ISNULL(a.costo_lab,0) as decimal(12,2)) as costo_lab, CAST(ISNULL((sum(cantidad) * a.costo_lab),0) as DECIMAL(12,2)) as VALOR
|
|
FROM cttb00003 c inner join cttb00001 e on c.cod_prod = e.cod_prod LEFT OUTER JOIN cttb00034 a ON a.cod_prod = c.cod_prod,iptb00022 d, adtb00001 f
|
|
WHERE e.cod_cia = d.cod_cia and c.cod_prod = a.cod_prod AND c.cod_prod is not null AND f.departamento = c.departamento AND
|
|
c.status_t IS NULL AND c.fecha BETWEEN '",
|
|
fecha_inicio USING 'yyyy-mm-dd',
|
|
"'
|
|
AND '",
|
|
fecha_corte USING 'yyyy-mm-dd',
|
|
"' AND ",
|
|
criterio CLIPPED, --" a.fecha = ? and ",
|
|
" GROUP BY c.departamento, f.nom_dpto, c.cod_prod, e.descripcion,
|
|
c.lado1,c.lado2,c.lado3, a.costo_lab, c.num_doc, c.fecha
|
|
ORDER BY departamento, c.cod_prod, c.num_doc, c.fecha "
|
|
|
|
ELSE
|
|
LET selec5 =
|
|
"WITH costo_actual AS (
|
|
SELECT
|
|
cod_prod,
|
|
costo_lab,
|
|
fecha,
|
|
ROW_NUMBER() OVER (
|
|
PARTITION BY cod_prod
|
|
ORDER BY fecha DESC
|
|
) AS rn
|
|
FROM cttb00034
|
|
)
|
|
SELECT DISTINCT NULL,NULL,
|
|
CONCAT('(',c.departamento,') ', f.nom_dpto) AS departamento,
|
|
c.cod_prod,
|
|
LTRIM(e.descripcion) AS semielaborado,
|
|
CONCAT(ISNULL(c.lado1,0),'x',ISNULL(c.lado2,0),'x',ISNULL(c.lado3,0)) AS Medida,
|
|
ISNULL(SUM(c.cantidad),0) AS cantidad,
|
|
CAST(ISNULL(a.costo_lab,0) AS DECIMAL(12,2)) AS costo_lab,
|
|
CAST(ISNULL(SUM(c.cantidad) * a.costo_lab,0) AS DECIMAL(12,2)) AS VALOR
|
|
FROM cttb00003 c
|
|
INNER JOIN cttb00001 e ON c.cod_prod = e.cod_prod
|
|
LEFT JOIN costo_actual a
|
|
ON a.cod_prod = c.cod_prod
|
|
AND a.rn = 1
|
|
, iptb00022 d
|
|
, adtb00001 f
|
|
WHERE
|
|
e.cod_cia = d.cod_cia
|
|
AND c.cod_prod IS NOT NULL
|
|
AND c.status_t IS NULL
|
|
AND c.fecha BETWEEN '",
|
|
fecha_inicio USING 'yyyy-mm-dd',
|
|
"'
|
|
AND '",
|
|
fecha_corte USING 'yyyy-mm-dd',
|
|
"' AND ",
|
|
criterio CLIPPED,"
|
|
AND f.departamento = c.departamento
|
|
GROUP BY
|
|
c.departamento,
|
|
f.nom_dpto,
|
|
c.cod_prod,
|
|
e.descripcion,
|
|
c.lado1,
|
|
c.lado2,
|
|
c.lado3,
|
|
a.costo_lab,
|
|
c.num_doc,
|
|
c.fecha;"
|
|
END IF
|
|
|
|
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>"
|
|
AT 19, 14
|
|
ATTRIBUTE(REVERSE, BOLD)
|
|
|
|
|
|
LET r_filename = 'ctprrp004.4rp'
|
|
IF fgl_report_loadCurrentSettings(r_filename) THEN
|
|
LET preview=1
|
|
CALL selectoutput() RETURNING r_output
|
|
CALL fgl_report_selectDevice(r_output) -- changing default
|
|
CALL fgl_report_selectPreview(preview) -- changing default
|
|
LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
|
END IF
|
|
|
|
START REPORT reporte_detallado TO XML HANDLER HANDLER
|
|
|
|
LET fecha_actual = CURRENT YEAR TO FRACTION
|
|
|
|
DISPLAY selec5
|
|
|
|
PREPARE comando4 FROM selec5
|
|
DECLARE busca4 CURSOR FOR comando4
|
|
|
|
FOREACH busca4 INTO prod_dia.*
|
|
|
|
IF reporte_tipo <> 1 THEN
|
|
LET prod_dia.num_doc = 0
|
|
LET prod_dia.fecha = CURRENT
|
|
END IF
|
|
|
|
OUTPUT TO REPORT reporte_detallado(
|
|
prod_dia.*, fecha_inicio, fecha_corte, fecha_actual)
|
|
END FOREACH
|
|
|
|
FINISH REPORT reporte_detallado
|
|
|
|
IF abortar_reporte THEN
|
|
RETURN
|
|
END IF
|
|
END FUNCTION
|
|
|
|
REPORT reporte_detallado(x, fech_inicio, fech_corte, fecha_actual)
|
|
|
|
DEFINE
|
|
x RECORD
|
|
num_doc INT,
|
|
fecha DATE,
|
|
departamento VARCHAR(100),
|
|
cod_prod LIKE cttb00008.cod_prod,
|
|
cp_desc VARCHAR(100),
|
|
medidas VARCHAR(75),
|
|
cantidad DECIMAL(12, 2),
|
|
costo_lab DECIMAL(12, 2),
|
|
valor DECIMAL(12, 2)
|
|
END RECORD,
|
|
fech_inicio DATE,
|
|
fech_corte DATE,
|
|
fecha_actual DATETIME YEAR TO FRACTION
|
|
|
|
DEFINE
|
|
cantidad_depto, costo_depto, valor_depto DECIMAL(12, 2),
|
|
registros_depto INT
|
|
DEFINE
|
|
total_cantidad, total_costo, total_valor DECIMAL(12, 2),
|
|
total_registros INT
|
|
|
|
FORMAT
|
|
|
|
FIRST PAGE HEADER
|
|
PRINTX fech_inicio, fech_corte, fecha_actual
|
|
|
|
AFTER GROUP OF x.departamento
|
|
LET cantidad_depto = GROUP SUM(x.cantidad)
|
|
LET costo_depto = GROUP SUM(x.costo_lab)
|
|
LET valor_depto = GROUP SUM(x.valor)
|
|
LET registros_depto = GROUP COUNT(*)
|
|
|
|
PRINTX cantidad_depto, costo_depto, valor_depto, registros_depto
|
|
|
|
ON EVERY ROW
|
|
PRINTX x.num_doc, x.fecha, x.departamento, x.cod_prod, x.cp_desc,
|
|
x.medidas, x.cantidad, x.costo_lab, x.valor
|
|
|
|
ON LAST ROW
|
|
LET total_cantidad = SUM(x.cantidad)
|
|
LET total_costo = SUM(x.costo_lab)
|
|
LET total_valor = SUM(x.valor)
|
|
LET total_registros = COUNT(*)
|
|
|
|
PRINTX total_cantidad, total_costo, total_valor, total_registros
|
|
|
|
END REPORT
|
|
|
|
######## Preparando formato en la salida de informacion impresa ########
|
|
|
|
--REPORT reporte_4(x)
|
|
--DEFINE x RECORD
|
|
-- origen CHAR(30),
|
|
-- departamento LIKE cttb00008.departamento,
|
|
-- cod_prod LIKE cttb00008.cod_prod,
|
|
-- valor_labor LIKE cttb00008.valor_labor,
|
|
-- gasto_ind LIKE cttb00029.gasto_ind,
|
|
-- fecha DATE,
|
|
-- cantidad DECIMAL(12,2)
|
|
--END RECORD
|
|
--DEFINE dia DYNAMIC ARRAY OF SMALLINT
|
|
--DEFINE fecha3,fecha4,fecha5 DATE
|
|
--DEFINE i INTEGER
|
|
--DEFINE cantidad1,labor,gasto,labor1,gasto1 DECIMAL(12,2)
|
|
--
|
|
--DEFINE unidad,descrp1,nomb,nombre CHAR(20)
|
|
--DEFINE descr CHAR(20)
|
|
--DEFINE total,total2,total3,total4,total5,total6,total7,total8,total9
|
|
-- DECIMAL(13,8)
|
|
--DEFINE fact_hombre,valor_labor,hora_hombre,valor_real,factor_conv
|
|
-- DECIMAL(13,8)
|
|
--DEFINE j,total1 INTEGER
|
|
--DEFINE doce,comp_on,comp_off,normal,negrillas_on,negrillas_off CHAR(2)
|
|
--
|
|
--OUTPUT
|
|
-- LEFT MARGIN 00
|
|
-- ORDER BY x.origen,x.departamento,x.cod_prod,x.fecha
|
|
--
|
|
--FORMAT
|
|
-- PAGE HEADER
|
|
-- LET comp_on = ASCII 15
|
|
-- LET comp_off = ASCII 18
|
|
-- LET normal = ASCII 27,ASCII 80
|
|
-- LET negrillas_on = ASCII 27, ASCII 69
|
|
-- LET negrillas_off = ASCII 27, ASCII 70
|
|
-- LET doce = ASCII 27, ASCII 77
|
|
-- LET l = (127 - LENGTH(p_compania.nombre CLIPPED)) /2
|
|
-- PRINT doce,comp_on,negrillas_on
|
|
-- PRINT COLUMN 1,"ctprrp004",
|
|
-- COLUMN l,p_compania.nombre CLIPPED,
|
|
-- COLUMN 120, "Pag. ",pageno using "###"
|
|
-- LET l = (127 - LENGTH("INVENTARIO DE PRODUCTOS EN PROCESO")) /2
|
|
-- PRINT COLUMN l, "INVENTARIO DE PRODUCTOS EN PROCESO",
|
|
-- COLUMN 120, today using "dd/mm/yyyy"
|
|
-- LET l = (127 - LENGTH("Reporte de Produccion Diaria")) /2
|
|
-- PRINT COLUMN l, "Reporte de Produccion Diaria",
|
|
-- COLUMN 120, time
|
|
-- PRINT COLUMN 51, "DEL ",fecha_inicio USING "dd/mm/yyyy", " Al ",
|
|
-- fecha_corte USING "dd/mm/yyyy",comp_on
|
|
-- SKIP 1 LINE
|
|
--
|
|
-- PRINT COLUMN 1,
|
|
-- "----------------------------------------------------------------------------",
|
|
-- "----------------------------------------------------------------------------",
|
|
-- "--------------------------------------------------------------------"
|
|
-- PRINT COLUMN 29,"|";
|
|
-- LET i = 30
|
|
-- FOR idx = 1 to jdx
|
|
--
|
|
-- PRINT COLUMN i, " |";
|
|
-- LET i = i + 11
|
|
-- END FOR
|
|
-- PRINT COLUMN i, " Total |",
|
|
-- COLUMN i+14, " Std |",
|
|
-- COLUMN i+24, " |",
|
|
-- COLUMN i+38, " Std |",
|
|
-- COLUMN i+48, " |"
|
|
-- PRINT COLUMN 29, "|";
|
|
-- LET i = 30
|
|
-- LET fecha1 = fecha_inicio
|
|
-- FOR idx = 1 to jdx
|
|
-- PRINT COLUMN i, " Dia(",DAY(fecha1) USING "&&",") |";
|
|
-- LET i = i + 11
|
|
-- LET fecha1 = fecha1 + 1
|
|
-- END FOR
|
|
-- PRINT COLUMN i, " Semana |",
|
|
-- COLUMN i+14, " Labor |",
|
|
-- COLUMN i+24, " Valor |",
|
|
-- COLUMN i+38, " Gasto |",
|
|
-- COLUMN i+48, " Valor |"
|
|
--
|
|
-- PRINT COLUMN 1,
|
|
-- "----------------------------------------------------------------------------",
|
|
-- "----------------------------------------------------------------------------",
|
|
-- "--------------------------------------------------------------------"
|
|
-- PRINT negrillas_off
|
|
--BEFORE GROUP OF x.origen
|
|
-- SKIP 1 LINE
|
|
-- PRINT "ORIGEN: ",x.origen
|
|
-- SKIP 1 LINE
|
|
--BEFORE GROUP OF x.departamento
|
|
-- PRINT COLUMN 29,"|";
|
|
-- LET i = 30
|
|
-- FOR idx = 1 to jdx
|
|
-- PRINT COLUMN i, " |";
|
|
-- LET i = i + 11
|
|
-- END FOR
|
|
-- PRINT COLUMN i, " |",
|
|
-- COLUMN i+14, " |",
|
|
-- COLUMN i+24, " |",
|
|
-- COLUMN i+38, " |",
|
|
-- COLUMN i+48, " |"
|
|
--
|
|
-- SELECT b.nom_dpto INTO nomb FROM adtb00001 b
|
|
-- WHERE b.departamento = x.departamento
|
|
--
|
|
-- PRINT COLUMN 1, negrillas_on,x.departamento USING "&&&&"," ",
|
|
-- nomb clipped,negrillas_off;
|
|
--
|
|
-- PRINT COLUMN 33, "|";
|
|
-- LET i = 34
|
|
-- FOR idx = 1 to jdx
|
|
-- PRINT COLUMN i, " |";
|
|
-- LET i = i + 11
|
|
-- END FOR
|
|
-- PRINT COLUMN i, " |",
|
|
-- COLUMN i+14, " |",
|
|
-- COLUMN i+24, " |",
|
|
-- COLUMN i+38, " |",
|
|
-- COLUMN i+48, " |"
|
|
--
|
|
-- IF total1 IS NULL THEN
|
|
-- LET total1 = 0
|
|
-- END IF
|
|
--
|
|
--BEFORE GROUP OF x.cod_prod
|
|
-- LET idx = 1
|
|
-- LET nombre = NULL
|
|
-- SELECT a.descripcion INTO nombre FROM cttb00001 a
|
|
-- WHERE a.cod_prod = x.cod_prod
|
|
--
|
|
-- PRINT COLUMN 2, x.cod_prod USING "&&&&"," ",
|
|
-- nombre clipped,
|
|
-- COLUMN 29,"|";
|
|
--
|
|
-- LET i = 30
|
|
--ON EVERY ROW
|
|
-- PRINT COLUMN i,x.cantidad USING "###,##&.&&","|";
|
|
-- LET i = i + 11
|
|
--
|
|
--AFTER GROUP OF x.cod_prod
|
|
-- PRINT COLUMN i, GROUP SUM(x.cantidad) USING "##,###,##&.&&","|",
|
|
-- COLUMN i+14, x.valor_labor USING "##,##&.&&","|",
|
|
-- COLUMN i+24, (GROUP SUM(x.cantidad))*x.valor_labor
|
|
-- USING "##,###,##&.&&","|",
|
|
-- COLUMN i+38, x.gasto_ind USING "##,##&.&&","|",
|
|
-- COLUMN i+48, (GROUP SUM(x.cantidad))*x.gasto_ind
|
|
-- USING "##,###,##&.&&","|"
|
|
--
|
|
-- IF labor IS NULL THEN
|
|
-- LET labor = 0
|
|
-- END IF
|
|
-- IF gasto IS NULL THEN
|
|
-- LET gasto = 0
|
|
-- END IF
|
|
-- LET labor = labor+((GROUP SUM(x.cantidad))* GROUP AVG(x.valor_labor))
|
|
-- LET gasto = gasto+((GROUP SUM(x.cantidad))* GROUP AVG(x.gasto_ind))
|
|
--AFTER GROUP OF x.origen
|
|
-- PRINT COLUMN 10, x.origen,"---> ",
|
|
-- COLUMN i, GROUP SUM(x.cantidad) USING "##,###,##&.&&","|",
|
|
-- COLUMN i+14, x.valor_labor USING "##,##&.&&","|",
|
|
-- COLUMN i+24, (GROUP SUM(x.cantidad))*x.valor_labor
|
|
-- USING "##,###,##&.&&","|",
|
|
-- COLUMN i+38, x.gasto_ind USING "##,##&.&&","|",
|
|
-- COLUMN i+48, (GROUP SUM(x.cantidad))*x.gasto_ind
|
|
-- USING "##,###,##&.&&","|"
|
|
--
|
|
--
|
|
--ON LAST ROW
|
|
--
|
|
-- PRINT COLUMN 1,negrillas_on
|
|
-- PRINT COLUMN 1,
|
|
-- "----------------------------------------------------------------------------",
|
|
-- "----------------------------------------------------------------------------",
|
|
-- "--------------------------------------------------------------------"
|
|
-- PRINT COLUMN 10,"Totales --->";
|
|
-- LET j = 30
|
|
-- FOR idx = 1 TO jdx
|
|
-- PRINT COLUMN j, " "; #total_1[idx] USING " ";
|
|
-- LET j = j + 11
|
|
-- END FOR
|
|
-- PRINT COLUMN j+2, " ",#SUM(x.cantidad) USING "#,###,###,##&.&&","|",
|
|
-- COLUMN j+24, labor USING "##,###,##&.&&",
|
|
-- COLUMN j+48, gasto USING "##,###,##&.&&"
|
|
-- LET labor = 0
|
|
-- LET gasto = 0
|
|
--
|
|
-- PRINT COLUMN 1,
|
|
-- "============================================================================",
|
|
-- "============================================================================",
|
|
-- "===================================================================="
|
|
-- FOR idx = 1 to jdx
|
|
-- LET total_1[idx] = 0
|
|
-- END FOR
|
|
-- PRINT COLUMN 1,negrillas_off,normal,comp_off
|
|
--END REPORT
|
|
|
|
--FUNCTION busca_semana()
|
|
--
|
|
-- OPEN WINDOW b_semana AT 10,10 WITH FORM "ctfmwd001"
|
|
-- ATTRIBUTE(BORDER,FORM LINE FIRST + 1)
|
|
--
|
|
-- 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
|
|
--
|
|
-- AFTER FIELD mes
|
|
-- IF mes IS NULL THEN
|
|
-- LET numero_msg = 16
|
|
-- CALL msg(numero_msg)
|
|
-- NEXT FIELD mes
|
|
-- END IF
|
|
-- END INPUT
|
|
--
|
|
-- DECLARE buscar CURSOR FOR
|
|
-- SELECT a.num_semana,a.semana_del,a.semana_al FROM prtb00002 a
|
|
-- WHERE a.mes = mes AND a.ano = ano
|
|
--
|
|
-- LET idx = 1
|
|
-- FOREACH buscar INTO datos_semana[idx].*
|
|
-- LET idx = idx + 1
|
|
-- END FOREACH
|
|
--
|
|
-- CALL SET_COUNT(idx - 1)
|
|
--
|
|
-- DISPLAY ARRAY datos_semana TO scr_seman.*
|
|
-- LET curr = scr_line()
|
|
-- CLOSE WINDOW b_semana
|
|
-- RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
|
|
|
FUNCTION departamentos_produccion()
|
|
DEFINE
|
|
pdepartamento SMALLINT,
|
|
pdescripcion CHAR(30),
|
|
kdepto ui.ComboBox
|
|
LET kdepto = ui.ComboBox.forName("formonly.departamento")
|
|
CALL kdepto.clear()
|
|
|
|
DECLARE busca_dpto CURSOR FOR
|
|
SELECT a.departamento, a.nom_dpto
|
|
FROM adtb00001 a
|
|
WHERE a.status_t IS NULL AND a.tipo_departamento = 'PRODUCCION'
|
|
ORDER BY a.nom_dpto
|
|
|
|
FOREACH busca_dpto INTO pdepartamento, pdescripcion
|
|
CALL kdepto.additem(pdepartamento, pdescripcion)
|
|
END FOREACH
|
|
|
|
END FUNCTION
|
|
|
|
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_output
|
|
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_output
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION configureOutput(tipo_file)
|
|
DEFINE tipo_file CHAR(3)
|
|
IF NOT fgl_report_loadCurrentSettings(NULL) THEN
|
|
RETURN NULL
|
|
END IF
|
|
# CALL fgl_report_selectLogicalPageMapping("multipage")
|
|
# CALL fgl_report_configureMultipageOutput(2, 4, TRUE)
|
|
CALL fgl_report_setPageMargins("0.5cm", "0.5cm", "0.5cm", "0.5cm")
|
|
--CALL fgl_report_selectDevice("XLS")
|
|
# CALL fgl_report_selectDevice(getPreviewDevice())
|
|
# CALL fgl_report_configureCompatibilityOutput(1,'Franklin Gothic Heavy',false,'existencia',NULL,NULL)
|
|
CALL fgl_report_selectDevice(tipo_file)
|
|
CALL fgl_report_configurexlsxdevice(NULL, NULL, NULL, FALSE, FALSE, NULL, 1)
|
|
CALL fgl_report_selectPreview(TRUE)
|
|
RETURN fgl_report_commitCurrentSettings()
|
|
|
|
RETURN NULL
|
|
END FUNCTION
|