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