Files
MBS/PROYECTO/PRDIR/primpresion.4gl
T
jpegueroandClaude Sonnet 5.5 5dcc4adf2c Corrige compilacion de lqprrp004 y prprmt011 (modulos LIQUIDACION y PRODUCCION)
lqprrp004:
- El .4gl tenia saltos de linea CR (Mac antiguo): en Genero 6 el comentario
  '######' de la linea 2 se tragaba todo el programa (modulo de 181 bytes,
  "main not defined"). Convertido a CRLF (el diff grande es solo eso).
- numero_ent se usaba en REPORT entrada271 sin definirse (solo existia en
  edprrp0271); definida y asignada = 27 como en la funcion hermana.
- Agrega dependencia FUNCIONESREPORT.

prprmt011 / prprmt021:
- primpresion.impresion(pnumoc) chocaba con impresion(...) de 5 parametros
  de FUNCIONESREPORT (veprrp049_1.4gl). Renombrada a impresion_oc y su unico
  llamador (prprmt021) actualizado. prprmt011 recibe FUNCIONESREPORT.

Verificado con gsmake: lqprrp004, lqprmt002, ipprmt005, prprmt011 y
prprmt021 compilan y enlazan. lqprrp004 consulta datos de 03/2024 pero el
reporte no se genera: bin/lqprrp004.4rp es un archivo binario (no XML) y no
existe version XML en el repo. Pendiente que Johnny lo entregue.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 10:15:59 -04:00

66 lines
2.9 KiB
Plaintext

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 orden RECORD
num_oc,tipo_cliente,sec_cliente INT,
nombre,calle,zona,provincia VARCHAR(100),
orden_externa,codn,codgrupo,codtipo,codsec INT,
precio,cantidad,valor FLOAT,
descripcion,tipo_envio,factura,codigo VARCHAR(100)
END RECORD,
nombre_cia STRING
FUNCTION impresion_oc(pnumoc)
DEFINE pnumoc,I INT
DECLARE busca_orden CURSOR FOR
SELECT a.num_oc,a.tipo_cliente,a.sec_cliente,b.nombre,g.calle,ISNULL(d.descrip,'NO TIENE'),
ISNULL(f.nombre_provincia,'NO TIENE'),a.orden_sustituta,
c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,c.precio,c.cantidad,'0',c.descripcion,a.nombre_file,k.factura
FROM prtb00012 a LEFT OUTER JOIN vetb00002 k ON k.orden = a.num_oc AND k.status_t IS NULL ,vetb00004 b
LEFT OUTER JOIN vetb00005 g ON b.tipo_cliente = g.tipo_cliente AND b.sec_cliente = g.sec_cliente
LEFT OUTER JOIN vetb00008 d ON b.cod_zona = d.cod_zona
LEFT OUTER JOIN vetb00020 f ON f.cod_provincia = b.cod_provincia,
prtb00013 c
WHERE a.num_oc = pnumoc AND a.num_oc = c.num_oc AND
a.tipo_cliente = b.tipo_cliente AND
a.sec_cliente = b.sec_cliente
LET i = 1
LET r_filename ="prprmt021a.4rp"
LET r_output ='PDF'
LET preview = TRUE
FOREACH busca_orden INTO orden.*
IF i = 1 THEN
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
CALL fgl_report_configurexlsxdevice(null,null,null,false,false,null,1)
LET handler = fgl_report_commitCurrentSettings() -- commit changes
END IF
LET orden.codigo = orden.codn USING "&&&&","-",orden.codgrupo USING "&&&&","-",
orden.codtipo USING "&&&&","-",orden.codsec USING "&&&&&&"
START REPORT ordenes TO XML HANDLER HANDLER
LET i = 2
END IF
LET orden.valor = orden.cantidad * orden.precio
OUTPUT TO REPORT ordenes()
END FOREACH
IF i > 1 THEN
FINISH REPORT ordenes
END IF
END FUNCTION
REPORT ordenes()
DEFINE hoy STRING
FORMAT
FIRST PAGE HEADER
SELECT a.nombre INTO nombre_cia FROM companias a
LET hoy = TODAY
ON EVERY ROW
PRINTX orden.*,nombre_cia,hoy
END REPORT