DEFINE wconduces DYNAMIC ARRAY OF RECORD numero INT, factura INT, fecha VARCHAR(10), cliente VARCHAR(100), almacen SMALLINT, num_req INT END RECORD, idx INT FUNCTION conduces(xnum_oc) DEFINE wconduces DYNAMIC ARRAY OF RECORD numero INT, factura INT, fecha VARCHAR(10), cliente VARCHAR(100), almacen SMALLINT, num_req INT END RECORD DEFINE deconduces DYNAMIC ARRAY OF RECORD num_doc INT, area INT, cod_n INT, cod_grupo,cod_tipo,cod_sec INT, descripcion VARCHAR(100), cantidad DEC(12,5) END RECORD, pcodn,pcodgrupo,pcodtipo,pcodsec,xnum_oc,xconduce,xnum_req,xfactura INT OPEN WINDOW w1 WITH FORM "svfmwd003" INPUT BY NAME xnum_oc AFTER INPUT IF int_flag THEN CALL msg(2) EXIT INPUT END IF IF xnum_oc IS NULL THEN CALL msg(16) NEXT FIELD xnum_oc END IF DECLARE busca_conduce CURSOR FOR SELECT DISTINCT a.num_oc,c.factura,CONVERT(CHAR(10),a.fecha,103),b.nombre,a.bodega,a.num_req FROM iptb00006 a LEFT OUTER JOIN vetb00002 c ON a.cod_sp = c.tipo_cliente AND a.cod_sp_Sec = c.sec_cliente AND a.num_doc = c.conduce,vetb00004 b WHERE a.cod_sp = b.tipo_cliente AND a.cod_sp_sec = b.sec_cliente AND a.num_oc = xnum_oc AND a.cod_mov IN (30,31,55,56) AND a.status_t IS NULL ORDER BY a.num_oc LET idx = 1 FOREACH busca_conduce INTO wconduces[idx].* LET idx = idx + 1 END FOREACH EXIT INPUT END INPUT IF int_flag THEN LET xconduce=0 LET xnum_req = 0 LET xfactura = 0 LET int_flag = FALSE RETURN xconduce,xnum_req,xfacturA END IF DISPLAY ARRAY wconduces TO sconduces.* #123641 AFTER DISPLAY LET idx = arr_curr() LET xconduce =wconduces[idx].numero LET xnum_req = wconduces[idx].num_req LET xfactura = wconduces[idx].factura # CALL dconduces(wconduces[idx].numero,wconduces[idx].almacen) RETURNING deconduces IF INT_FLAG THEN LET INT_FLAG = FALSE CONTINUE DISPLAY ELSE EXIT DISPLAY END IF END DISPLAY CLOSE WINDOW w1 RETURN xconduce,xnum_req,xfactura END FUNCTION