Files

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(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