FUNCTION existenciaalmacenes(codn,codgrupo,codtipo,codsec,producto) DEFINE codn,codgrupo,codtipo,codsec,i INT, arr_existencias DYNAMIC ARRAY OF RECORD almacen VARCHAR(50), fisico DEC(12,5) END RECORD, cantidad_ordenes,pcantidadConduce,transito,pexistencia,reservado,disponible,pcantidad_ordenes DEC(12,5), producto VARCHAR(100) OPEN WINDOW w1 WITH FORM 'existenciaalmacenes' CALL disponibles(codn,codgrupo,codtipo,codsec,TODAY) RETURNING cantidad_ordenes,pcantidadConduce,transito,pexistencia,reservado LET pcantidad_ordenes = cantidad_ordenes -pcantidadConduce LET disponible = pexistencia - pcantidad_ordenes - reservado DISPLAY BY NAME producto,disponible,pcantidad_ordenes,pexistencia,pcantidadConduce DECLARE buscaExistencias CURSOR FOR SELECT '('||CAST(a.cod_bodega AS VARCHAR(5))||')'||a.descripcion,SUM(b.cantidad_2) FROM intb00009 a INNER JOIN iptb00006 b ON b.bodega = a.cod_bodega AND b.cod_n = codn AND b.cod_grupo = codgrupo AND b.cod_tipo = codtipo AND b.cod_sec = codsec AND b.status_t IS NULL GROUP BY a.cod_bodega,a.descripcion LET i = 1 FOREACH buscaExistencias INTO arr_existencias[i].* LET i = i + 1 END FOREACH DISPLAY ARRAY arr_existencias TO s_existencia.* CLOSE WINDOW w1 END FUNCTION