66 lines
2.9 KiB
Plaintext
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 |