UNA SOLUCION PARA EL PROBLEMA de OrdKeyNo() (devuelve 0)y OrdKeyCount() (devuelve RecCount()) para tablas SQLRDD (al menos para tablas con unos pocos miles de registros ordenadas y/o filtradas):
1) Efectuar el query SELECT sr_recno,@npos:=@npos+1 FROM <mi_tabla>, (SELECT @npos:=0) _t _ [WHERE <mi_filtro>] [ORDER BY <mi_orden>]
Esto devuelve una matriz aSqlQuery:={{RecNo,OrdKeyNo},....}
2) Convertir el array aSqlQuery en un hash hSqlQuery:={RecNo=>OrdKeyNo,......}: hSqlQuery:=Hash(); aEval(aSqlQuery,{|u| hSqlQuery(u[1]) := u[2] })
Ahora (mi_tabla)->(OrdKeyNo()) equivale a hSqlQuery[ RecNo() ] y (mi_tabla)->(OrdKeyCount()) equivale a Len(hSqlQuery)
3) Para trabajar con xBrowse basta que le indique:
::bKeyNo:={|| if(HHasKey(hSqlQuery,(::cAlias)->(RecNo())),hSqlQuery[(::cAlias)->(RecNo())],0) }
::bKeyCount:={|| Len(hSqlQuery)}