DEFINE arr_transacc DYNAMIC ARRAY OF RECORD fecha DATE, num_doc INT, almacen STRING, movimiento STRING, entrada,salida,balance,cantidad DEC(12,5) END RECORD, idx int FUNCTION transacciones(xorden,xcodn,xcodgrupo,xcodtipo,xcodsec,articulo) DEFINE xorden,xcodn,xcodgrupo,xcodtipo,xcodsec INT, articulo STRING CALL arr_transacc.clear() CALL busca_informacion(xorden,xcodn,xcodgrupo,xcodtipo,xcodsec) IF idx = 1 THEN CALL msg(3) RETURN END IF call ui.Interface.loadStyles("formularios") OPEN WINDOW w1 WITH FORM "prfmcs002" DISPLAY ARRAY arr_transacc TO stransacc.* BEFORE DISPLAY DISPLAY "TRANSACCIONES INVENTARIOS" TO titulo DISPLAY BY NAME articulo,xorden AFTER DISPLAY EXIT DISPLAY END DISPLAY CLOSE WINDOW w1 END FUNCTION FUNCTION busca_informacion(xorden,xcodn,xcodgrupo,xcodtipo,xcodsec) DEFINE xorden,xcodn,xcodgrupo,xcodtipo,xcodsec INT DECLARE buscar CURSOR FOR SELECT a.fecha,a.num_Doc,"("+CAST(a.bodega AS VARCHAR)+")"+b.descripcion,"("+CAST(a.cod_mov AS VARCHAR)+")"+c.descrip_mov ,'0','0','0',a.cantidad_2 FROM iptb00006 a INNER JOIN intb00009 b ON a.bodega = b.cod_bodega INNER JOIN iptb00005 c ON c.cod_mov = a.cod_mov WHERE a.num_oc = xorden AND a.cod_n = xcodn AND a.cod_grupo = xcodgrupo AND a.cod_tipo = xcodtipo AND a.cod_sec = xcodsec AND a.status_t IS NULL ORDER BY a.fecha LET idx = 1 FOREACH buscar INTO arr_transacc[idx].* IF arr_transacc[idx].cantidad < 0 THEN LET arr_transacc[idx].salida =arr_transacc[idx].cantidad LET arr_transacc[idx].entrada =0 ELSE LET arr_transacc[idx].entrada =arr_transacc[idx].cantidad LET arr_transacc[idx].salida =0 END IF IF idx = 1 THEN LET arr_transacc[idx].balance=0 LET arr_transacc[idx].balance = arr_transacc[idx].cantidad + arr_transacc[idx].balance END IF DISPLAY "BALANCE ",arr_transacc[idx].balance IF idx > 1 THEN LET arr_transacc[idx].balance = arr_transacc[idx].cantidad + arr_transacc[idx-1].balance END IF LET idx = idx + 1 END FOREACH END FUNCTION