FUNCTION busca_liquidacion() DEFINE liquidaciones DYNAMIC ARRAY OF RECORD fecha CHAR(10), tipo SMALLINT, num_oc INT, num_doc INT, cod_sp SMALLINT, cod_sp_Sec INT, proveedor VARCHAR(60) END RECORD, idx SMALLINT DECLARE busca_datos CURSOR FOR SELECT CONVERT(CHAR(10),a.fecha,103),a.tipo,a.orden_compra,a.num_doc,c.cod_sp,c.cod_sp_sec,c.nom_sp FROM intb00006 a,cotb00001 c WHERE a.status_t IS NULL AND a.num_doc NOT IN (SELECT b.rep_entrada FROM cgtb00017 b WHERE b.tipo in ('1','01') and b.status_t is null) AND a.cod_mov IN (34) AND a.fecha > '01/01/2015' AND a.cod_sp = c.cod_sp AND a.cod_sp_sec = c.cod_sp_sec UNION SELECT CONVERT(CHAR(10),a.fecha,103),a.tipo,a.orden_compra,a.num_doc,c.cod_sp,c.cod_sp_sec,c.nom_sp FROM iptb00006 a,cotb00001 c WHERE a.status_t IS NULL AND a.num_doc NOT IN (SELECT b.rep_entrada FROM cgtb00017 b WHERE b.tipo in('2','02') and b.status_t is null ) AND a.cod_mov IN (10) AND a.fecha > '01/01/2015' AND a.cod_sp = c.cod_sp AND a.cod_sp_sec = c.cod_sp_sec UNION SELECT CONVERT(CHAR(10),a.fecha,103),a.tipo,a.orden_compra,a.num_doc,c.cod_sp,c.cod_sp_sec,c.nom_sp FROM irtb00006 a,cotb00001 c WHERE a.status_t IS NULL AND a.num_doc NOT IN (SELECT b.rep_entrada FROM cgtb00017 b WHERE b.tipo in('3','03') and b.status_t is null) AND a.cod_mov IN (34) AND a.fecha > '01/01/2015' AND a.cod_sp = c.cod_sp AND a.cod_sp_sec = c.cod_sp_sec ORDER BY a.num_doc LET idx = 1 FOREACH busca_datos INTO liquidaciones[idx].* LET idx = idx + 1 END FOREACH IF idx=1 THEN RETURN ' ','0','0','0','0',' ' ELSE OPEN WINDOW w1 WITH FORM "lqfmwd002" DISPLAY ARRAY liquidaciones TO sliquidacion.* AFTER DISPLAY LET idx = arr_curr() EXIT DISPLAY END DISPLAY END IF CLOSE WINDOW w1 RETURN liquidaciones[idx].tipo,liquidaciones[idx].num_oc,liquidaciones[idx].num_doc,liquidaciones[idx].cod_sp, liquidaciones[idx].cod_sp_sec,liquidaciones[idx].proveedor END FUNCTION