Метод GetLastIn |
Найти последнюю запись в узле iNum логической таблицы. Если iNum = -1, то навигация производится по корневой таблице.
function GetLastIn (iNum : integer; flags : byte) : integer;
iNum - номер узла логической таблицы, по которому производится навигация. Если iNum = -1, то навигация производится по корневой таблице.
flags - флаги навигации. Флаги не оказывают влияния на результат работы данной функции. Они влияют только на последующие вызовы функций GetNextIn и GetPrevIn. Если в дальнейшем предполагается производить навигацию только по узлу iNum без учета подцепленных таблиц, то параметер flags должен быть равен 0. Если же в дальнейшем навигация будет производиться по подцепленной таблице, то параметр flags должен быть равен 1. Например, есть список счетов, и для каждого счета есть список спецификаций. Если требуется перебрать все счета, не просматривая спецификации, то нужно вызывать описываемую функцию с параметром flags = 0. Если же требуется перебор счетов и всех спецификаций, то flags = 1.
Функция возвращает 0, если требуемая запись найдена. В противном случае возвращается код ошибки.
GetFirstIn, GetPrevIn, GetNextIn.
Данный пример иллюстрирует использование параметра flags. Предполагается, что текущая подцепка таблиц определяет следующую структуру данных:
Таблица счетов (iNum = 0)
Счет1 |
Счет2 |
Таблица спецификаций (iNum = 1)
Спецификация 1 счета 1 |
Спецификация 2 счета 1 |
Спецификация 3 счета 1 |
Спецификация 4 счета 1 |
Спецификация 1 счета 2 |
Спецификация 2 счета 2 |
Спецификация 3 счета 2 |
Спецификация 4 счета 2 |
Спецификация 5 счета 2 |
Если flags = 0, то:
GetLastIn(0,0) - будет найден счет2 и какая-то спецификация счета 2;
GetPrevIn(0,0) - будет найден счет1 и какая-то спецификация счета 1.
Если flags = 1, то:
GetLastIn(0,1) - будет найден счет2 и спецификация 5 счета 2;
GetPrevIn(0,1) - будет найден счет2 и спецификация 4 счета 2;
Если в функциях GetFirstIn и GetNextIn используются разные значения параметра flags, то результат выполнения функции становится непредсказуем.
GetLastIn(0,0) - будет найден счет2;
GetPrevIn(1,1) - результат не определен. Какая-то запись может найтись, а может и не найтись.