SCHEMA smarmotech MAIN DEFINE usuarios,clave CHAR(50), pnumemp smallint, pfecha char(10), pfecha_r char(10), pvalor DEC(12,2), cuenta smallint DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CONNECT TO "smarmotech" USER usuarios USING clave DECLARE busca_empleados CURSOR FOR SELECT a.num_emp,MAX(a.valor),CAST(b.fech_efec AS CHAR(10)) FROM tmpaumento a,adtb00003 b WHERE a.cod_mov =1 AND a.valor <> 0 AND a.num_nomi IS NOT NULL AND a.num_emp = b.num_emp AND b.status_t IS NULL GROUP BY a.num_emp,b.fech_efec DISPLAY "EN PROCESO...." START REPORT emplea TO "EMPLEA.TXT" DELETE FROM tmpfempleados FOREACH busca_empleados INTO pnumEmp,pvalor,pfecha_r LET pfecha = NULL SELECT CAST(min(a.fecha) AS CHAR(10)) INTO pfecha FROM tmpaumento a WHERE a.num_emp = pnumemp AND a.valor = pvalor OUTPUT TO REPORT emplea(pnumemp,pfecha,pfecha_r,pvalor) END FOREACH FINISH REPORT emplea DISPLAY "PROCESO TERMINADO" END MAIN REPORT emplea(xnumemp,xfecha,xfecha1,xvalor) DEFINE xnumemp smallint, xfecha,xfecha1 char(10), xvalor,xvalorant dec(12,2), actualiza CHAR(1) ORDER BY xnumemp,xfecha FORMAT BEFORE GROUP OF xfecha LET actualiza = "N" #LET xvalorant = xvalor LET xvalorant = 0 SELECT MAX(a.valor) INTO xvalorant FROM notb00008 a WHERE a.num_emp=xnumemp AND a.fecha < xfecha AND cod_mov = 1 AND num_nomi IS NOT NULL IF xvalorant =0 OR xvalorant IS NULL THEN LET xfecha=NULL END IF ON EVERY ROW INSERT INTO tmpfempleados VALUES (xNUMEMP,xfecha,xfecha1,xvalorant,xvalor,null) PRINT xnumemp,' ',xfecha,' ',xvalor LET actualiza = "S" END REPORT