diff --git a/PROYECTO/bin/inprrp028.4rp b/PROYECTO/bin/inprrp028.4rp new file mode 100644 index 0000000..2d2a5a3 --- /dev/null +++ b/PROYECTO/bin/inprrp028.4rp @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PROYECTO/indir/defecto.4gl b/PROYECTO/indir/defecto.4gl index a23b8a3..6ee0b7e 100644 --- a/PROYECTO/indir/defecto.4gl +++ b/PROYECTO/indir/defecto.4gl @@ -167,22 +167,47 @@ END FUNCTION FUNCTION configureOutput(tipo_file) DEFINE tipo_file CHAR(3) - -- La API fgl_report_* (Report Writer 2.0) no esta disponible en este - -- FGL 6.00.01. Esta salida (XML/XLS/PDF por handler) no esta soportada - -- en este entorno; usar r_output = 'MA' (impresion clasica) en su lugar. + 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() - -- El formulario "Configuration" del Report Writer 2.0 no esta disponible - -- en este entorno (ver configureOutput). Se devuelve un valor fijo para - -- que el flujo de "Reporte Grafico" siga y falle de forma consistente - -- con la limitacion ya conocida; usar MATRICIAL en su lugar. - RETURN "PDF" + 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() - -- Mismo caso que selectOutput(): el formulario "Configuration" del - -- Report Writer 2.0 no esta disponible en este entorno; usar MATRICIAL. - RETURN "PDF" + RETURN selectOutput() END FUNCTION diff --git a/PROYECTO/indir/inprrp011.4gl b/PROYECTO/indir/inprrp011.4gl index e2503cf..d137c0c 100644 --- a/PROYECTO/indir/inprrp011.4gl +++ b/PROYECTO/indir/inprrp011.4gl @@ -159,14 +159,11 @@ LET selec = DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) - CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of, - doble_on,doble_off,comp_on,comp_off, - doce,normal,archivo,copia + LET opt1 = "yes" + CALL seleccionarsalida() RETURNING r_output + CALL configureoutput(r_output) RETURNING handler + START REPORT opera TO XML HANDLER HANDLER - CALL seleccionarsalida() RETURNING r_output - CALL configureoutput(r_output) RETURNING handler - START REPORT opera TO XML HANDLER HANDLER - PREPARE busca_p FROM selec DECLARE periodo SCROLL CURSOR FOR busca_p OPEN periodo using ano_act,datos_cons.fech_in,datos_cons.fech_fi @@ -185,6 +182,9 @@ LET selec = FINISH REPORT opera CLEAR SCREEN + IF opt1 <> "yes" THEN + RUN imprime + END IF END FUNCTION REPORT opera(x) diff --git a/PROYECTO/indir/inprrp028.4gl b/PROYECTO/indir/inprrp028.4gl index 1fb51bc..7e51904 100644 --- a/PROYECTO/indir/inprrp028.4gl +++ b/PROYECTO/indir/inprrp028.4gl @@ -184,7 +184,7 @@ LET select_ant = IF opt1 = "yes" THEN CALL seleccionarsalida() RETURNING r_output - CALL configureoutput(r_output) RETURNING HANDLER + CALL configureOutputRp028(r_output) RETURNING HANDLER START REPORT prt_exist TO XML HANDLER handler ELSE CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of, @@ -438,3 +438,17 @@ END FUNCTION PRINT COLUMN 4, ASCII 27, ASCII 80 END REPORT +FUNCTION configureOutputRp028(tipo_file) + DEFINE tipo_file CHAR(3) + IF NOT fgl_report_loadCurrentSettings("inprrp028.4rp") THEN + RETURN NULL + END IF + CALL fgl_report_setPageMargins("0.5cm", "0.5cm", "0.5cm", "0.5cm") + 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 + diff --git a/PROYECTO/mbsERP.4pw b/PROYECTO/mbsERP.4pw index 95cb2df..58653f9 100644 --- a/PROYECTO/mbsERP.4pw +++ b/PROYECTO/mbsERP.4pw @@ -459,6 +459,7 @@ +