- Corrige selectOutput()/seleccionarSalida()/configureOutput() en defecto.4gl para usar la API real fgl_report_* (Report Writer 2.0), reemplazando los stubs previos. Reutiliza el formulario Configuration ya existente en el proyecto (FUNCIONESREPORT) - inprrp011: quita el START REPORT forzado a XML roto (media migracion abandonada), probado completo: filtros, totales/subtotales vs produccion, exportacion PDF/Excel/Pantalla funcionando - inprrp028: mismo patron, restaura Sietesalida) - No/matricial como respaldo. Crea bin/inprrp028.4rp (diseno de reporte, no existia) para la salida grafica; carga sin error de formato pero la generacion no completa en este entorno - pendiente de revisar rendimiento/recursos Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
214 lines
4.8 KiB
Plaintext
214 lines
4.8 KiB
Plaintext
FUNCTION msgrp000(tipo_papel)
|
|
DEFINE tipo_papel SMALLINT,
|
|
longitud CHAR(11),
|
|
linea_papel CHAR(50)
|
|
|
|
CASE
|
|
WHEN tipo_papel = 1
|
|
LET longitud = " 9 1/2 x 11"
|
|
WHEN tipo_papel = 2
|
|
LET longitud = "14 7/8 x 11"
|
|
END CASE
|
|
|
|
LET linea_papel = "Coloque papel ",longitud," en la impresora."
|
|
DISPLAY linea_papel
|
|
AT 15,14
|
|
DISPLAY "Asegurese de que la impresora este encendida."
|
|
AT 16,14
|
|
DISPLAY "<Esc> Ejecuta impresion <Delete> Cancela impresion"
|
|
AT 18,14
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION defecto(usuarios,clave,impresor)
|
|
|
|
DEFINE impresor,idx SMALLINT,
|
|
|
|
negrillas_on,
|
|
|
|
negrillas_off,
|
|
|
|
doble_on,
|
|
|
|
doble_off,
|
|
|
|
doce,
|
|
|
|
comp_on,
|
|
|
|
comp_off,
|
|
|
|
normal CHAR(6),
|
|
|
|
archivo CHAR(80),
|
|
|
|
lpnum INTEGER,
|
|
|
|
imprime CHAR(150),
|
|
|
|
prt RECORD
|
|
prtcodigo SMALLINT,
|
|
nombre VARCHAR(60),
|
|
lpprog VARCHAR(150),
|
|
lppipe VARCHAR(20),
|
|
puerto VARCHAR(80)
|
|
END RECORD,
|
|
usuarios,clave CHAR(80),copia CHAR(100)
|
|
|
|
|
|
SELECT a.codigo,a.nombre,a.lpprog,a.lppipe,a.puerto INTO prt.* FROM prttb00001 a
|
|
|
|
WHERE a.codigo = impresor
|
|
|
|
|
|
|
|
CASE
|
|
|
|
WHEN prt.prtcodigo = 1
|
|
|
|
LET doble_on = ASCII 14
|
|
|
|
LET doble_off = ASCII 18
|
|
|
|
LET negrillas_on = ASCII 27, ASCII 69
|
|
|
|
LET negrillas_off = ASCII 27, ASCII 70
|
|
|
|
LET comp_on = ASCII 15
|
|
|
|
LET comp_off = ASCII 18
|
|
|
|
LET doce = ASCII 27,ASCII 77
|
|
|
|
LET normal = ASCII 27,ASCII 80
|
|
|
|
EXIT CASE
|
|
|
|
WHEN prt.prtcodigo = 2 {Printer Central. Contabilidad}
|
|
|
|
LET doble_on = ASCII 001
|
|
|
|
LET doble_off = ASCII 002
|
|
|
|
LET negrillas_on = ASCII 027, ASCII 098
|
|
|
|
LET negrillas_off = ASCII 027, ASCII 099
|
|
|
|
LET comp_on = ASCII 031
|
|
|
|
LET comp_off = ASCII 029
|
|
|
|
LET doce = ASCII 030
|
|
|
|
LET normal = ASCII 029
|
|
|
|
EXIT CASE
|
|
|
|
WHEN impresor = 3
|
|
|
|
LET doble_on = ASCII 14
|
|
|
|
LET doble_off = ASCII 18
|
|
|
|
LET negrillas_on = ASCII 27, ASCII 69
|
|
|
|
LET negrillas_off = ASCII 27, ASCII 70
|
|
|
|
LET comp_on = ASCII 15
|
|
|
|
LET comp_off = ASCII 18
|
|
|
|
LET doce = ASCII 27,ASCII 77
|
|
|
|
LET normal = ASCII 27,ASCII 80
|
|
|
|
EXIT CASE
|
|
|
|
END CASE
|
|
|
|
|
|
|
|
# BUSCA EL NUMERO DE IMPRESION A SEGUIR
|
|
|
|
SELECT MAX(ult_imp) INTO lpnum
|
|
|
|
FROM prttb00002
|
|
|
|
|
|
|
|
IF lpnum IS NULL THEN
|
|
|
|
LET lpnum = 1
|
|
|
|
END IF
|
|
|
|
LET lpnum = lpnum + 1
|
|
|
|
LET archivo = FGL_GETENV("FGLSPOOL"),"\\",lpnum USING "<<<<<<<<<<"
|
|
|
|
LET imprime = prt.lpprog CLIPPED," ",archivo CLIPPED," ",
|
|
prt.lppipe," ",prt.puerto
|
|
|
|
LET copia = prt.lppipe," ",prt.puerto
|
|
|
|
|
|
{ UPDATE prttb00002 set ult_imp = lpnum + 1,
|
|
|
|
usuario = suser_sname()}
|
|
|
|
INSERT INTO prttb00002 (ult_imp,usuario)VALUES (lpnum,usuarios)
|
|
|
|
|
|
|
|
RETURN imprime,negrillas_on,negrillas_off,doble_on,doble_off,
|
|
comp_on,comp_off,doce,normal,archivo,copia
|
|
|
|
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_setPageMargins("0.5cm", "0.5cm", "0.5cm", "0.5cm")
|
|
CALL fgl_report_configureCompatibilityOutput(160,"Monospaced",NULL,NULL,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
|
|
|
|
FUNCTION selectOutput()
|
|
DEFINE
|
|
r_output STRING,
|
|
r_action STRING,
|
|
preview INTEGER
|
|
|
|
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()
|
|
|
|
IF r_action IS NOT NULL THEN
|
|
IF r_action == "preview" THEN
|
|
LET preview = TRUE
|
|
END IF
|
|
END IF
|
|
|
|
RETURN r_output
|
|
END FUNCTION
|
|
|
|
FUNCTION seleccionarSalida()
|
|
RETURN selectOutput()
|
|
END FUNCTION
|