From d1b29437c92985213bb55f0d4cdb193dc16c1f5d Mon Sep 17 00:00:00 2001 From: Jeilyn Peguero Date: Tue, 29 Sep 2026 12:22:25 -0400 Subject: [PATCH] Reescribir ipprrp010 (Operacion Movimientos Detallado): .4rp equivocado El .4rp que traia el repo (y su copia en el backup viejo) era en realidad el reporte de "activos" de otro programa (RWFglReportName y todo el cuerpo no correspondian a REPORT detalle(x)) - por eso nunca pudo generar nada, ni siquiera despues de arreglar el crash original de configureOutput(). - Se convirtio el REPORT detalle(x) de PRINT COLUMN clasico a PRINTX (siguiendo el patron de ipprrp005, que si funciona), y se escribio un .4rp nuevo desde cero con las variables correctas. - Se quito el subtotal por "Orden" que la migracion habia agregado sin incluirlo en el ORDER BY (nunca funciono bien, no existia en 3.20). - Se agrego titulo a la ventana (usaba el generico "screen"). Pendiente: el acomodo visual de columnas del reporte sale apilado en vertical en vez de en fila - los datos y subtotales son correctos, pero falta pulir el layout en el Report Designer (consultado con Johnny). Co-Authored-By: Claude Sonnet 5 --- PROYECTO/bin/ipprrp010.4rp | 84 +++++++++++++++++++------- PROYECTO/ipdir/ipprrp010.4gl | 111 ++++++++--------------------------- PROYECTO/ipdir/ipprrp010.4rp | 84 +++++++++++++++++++------- 3 files changed, 150 insertions(+), 129 deletions(-) diff --git a/PROYECTO/bin/ipprrp010.4rp b/PROYECTO/bin/ipprrp010.4rp index 56e557d..039f24e 100644 --- a/PROYECTO/bin/ipprrp010.4rp +++ b/PROYECTO/bin/ipprrp010.4rp @@ -1,29 +1,71 @@ - - + + - - - + + + - + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + diff --git a/PROYECTO/ipdir/ipprrp010.4gl b/PROYECTO/ipdir/ipprrp010.4gl index 65d9371..4260219 100644 --- a/PROYECTO/ipdir/ipprrp010.4gl +++ b/PROYECTO/ipdir/ipprrp010.4gl @@ -78,6 +78,7 @@ FUNCTION ipprrp010() OPEN FORM ipfmrp010 FROM "ipfmrp010" DISPLAY FORM ipfmrp010 + CALL ui.Window.getCurrent().setText("Operaciones Por Movimientos Al Standard") DISPLAY "ipprrp010" AT 4,3 DISPLAY "Operaciones Por Movimientos Al Standard" AT 6,22 @@ -163,7 +164,16 @@ END INPUT doble_on,doble_off,comp_on,comp_off, doce,normal,archivo,copia - CALL configureOutput("SVG") RETURNING handler + LET r_filename = "ipprrp010.4rp" + IF fgl_report_loadCurrentSettings(r_filename) THEN + LET r_output = "SVG" + LET preview = 1 + CALL fgl_report_selectDevice(r_output) + CALL fgl_report_selectPreview(preview) + LET handler = fgl_report_commitCurrentSettings() + ELSE + EXIT PROGRAM + END IF START REPORT detalle TO XML HANDLER handler PREPARE busca_ant FROM select_ac @@ -246,110 +256,37 @@ END FUNCTION proveedor VARCHAR(100) END RECORD - DEFINE primera CHAR(1) - DEFINE c_ano1 char(4) - DEFINE negrillas_on CHAR(3) - DEFINE negrillas_off CHAR(3) - DEFINE doce,comp_on,comp_off CHAR(3) - DEFINE hora CHAR(5) - DEFINE total_p,total_m DECIMAL(12,2) - OUTPUT - TOP MARGIN 0 - LEFT MARGIN 0 - BOTTOM MARGIN 2 - PAGE LENGTH 150 + DEFINE total_p,total_m,total_consumo_m DECIMAL(12,2) + DEFINE pcodigo CHAR(30) + DEFINE fecha_fmt CHAR(10) ORDER BY x.cod_mov,x.num_doc FORMAT - PAGE HEADER - { 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 hora = time - - PRINT comp_on - LET lj = (100 - LENGTH(p_companias.nombre CLIPPED))/2 - PRINT COLUMN 1, "ipprrp010", - COLUMN lj, p_companias.nombre CLIPPED, - COLUMN 93, "Pag. ",pageno using "###" - PRINT COLUMN 28, " Sistema de Inventario de Productos Terminados", - COLUMN 93, today using "dd/mm/yyyy" - PRINT COLUMN 28, " Operacion por Tipo de Movimiento Al Standard", - COLUMN 96, hora - - SKIP 1 LINES - - PRINT COLUMN 2, "Desde ",datos_cons.fech_in using "dd/mm/yyyy", - COLUMN 21, "Hasta ", datos_cons.fech_fi using "dd/mm/yyyy" - PRINT COLUMN 1, "--------------------------------------------------", - "--------------------------------------------------", - "------------------" - - PRINT COLUMN 96, "Material +" - PRINT COLUMN 96, "Labor +" - - PRINT COLUMN 1, "Docto.", - COLUMN 10, "ORDEN", - COLUMN 20, "Fecha", - COLUMN 32, "Producto", - COLUMN 85, "Cantidad", - COLUMN 98, "Gasto ", - COLUMN 112, "Total" - PRINT COLUMN 1, "--------------------------------------------------", - "--------------------------------------------------", - "------------------" - PRINT negrillas_off - BEFORE GROUP OF x.cod_mov LET total_m = 0 + LET total_consumo_m = 0 SELECT descrip_mov INTO x.descrip_mov FROM iptb00005 WHERE cod_mov = x.cod_mov - PRINT negrillas_on - PRINT COLUMN 1, "Movimiento: ",x.cod_mov using "##"," ", - x.descrip_mov - PRINT negrillas_off + PRINTX x.cod_mov, x.descrip_mov - BEFORE GROUP OF x.num_doc - PRINT COLUMN 1, x.num_doc USING "######", - COLUMN 10, x.orden USING "#######", - COLUMN 20, x.fecha USING "dd/mm/yyyy", - 2 SPACES, x.proveedor CLIPPED - SKIP 1 LINE ON EVERY ROW - LET total_p = x.costo * x.consumo + LET total_p = x.costo * x.consumo IF total_p IS NULL THEN LET total_p = 0 END IF LET total_m = total_m + total_p + LET total_consumo_m = total_consumo_m + x.consumo - PRINT COLUMN 1, x.cod_n USING "&&&&","-",x.cod_grupo USING "&&&&","-", - x.cod_tipo USING "&&&&&&&&","-",x.cod_sec USING "&&&&&&&&", - " ",x.descrip_esp, - COLUMN 80, x.consumo USING "###,###.###", - 2 SPACES, x.costo USING "#,###,###.###", - 2 SPACES, total_p USING "##,###,###.##" + LET pcodigo = x.cod_n USING "&&&&","-",x.cod_grupo USING "&&&&","-", + x.cod_tipo USING "&&&&&&&&","-",x.cod_sec USING "&&&&&&&&" + LET fecha_fmt = x.fecha USING "dd/mm/yyyy" - AFTER GROUP OF x.num_doc - SKIP 1 LINE + PRINTX pcodigo, x.descrip_esp, x.num_doc, x.orden, fecha_fmt, x.proveedor, + x.consumo, x.costo, total_p AFTER GROUP OF x.cod_mov - PRINT COLUMN 80, "-------------", - COLUMN 109,"-------------" - PRINT COLUMN 50, "Total ---->", - COLUMN 80, GROUP SUM(x.consumo) USING "###,###.###", - COLUMN 109, total_m USING "##,###,###.##" - SKIP TO TOP OF PAGE - AFTER GROUP OF x.orden - PRINT COLUMN 80, "-------------", - COLUMN 109,"-------------" - PRINT COLUMN 50, "Total ---->", - COLUMN 80, GROUP SUM(x.consumo) USING "###,###.###", - COLUMN 106, GROUP SUM(x.consumo*X.costo) USING "###,###,###.###" + PRINTX total_consumo_m, total_m ON LAST ROW - PRINT ASCII 27, ASCII 80 END REPORT diff --git a/PROYECTO/ipdir/ipprrp010.4rp b/PROYECTO/ipdir/ipprrp010.4rp index cc3964e..039f24e 100644 --- a/PROYECTO/ipdir/ipprrp010.4rp +++ b/PROYECTO/ipdir/ipprrp010.4rp @@ -1,29 +1,71 @@ - - + + - - - + + + - + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + +