Ситуация: в экранной форме редактирования записи таблицы пациентов (PAT:) необходимо организовать поиск пациентов в этой же таблице.
Например, в мед.учреждении заполняется анкета на сопровождающего к уже оформленному (госпитализированному) пациенту.
Т.е. при добавлении(редакт-и) новой записи сопровождающего, указаывается некий признак "сопровождающий", а далее из этой(!) же таблицы выбирается лицо который был раньше оформлен и которого сопровождают, например "мать/ребенок"
Таблица имеет уник. autonumber-ключ по id-записи
Т.к. при таком поиске сдвигается указатель записи, то решаю вопрос с предварительным сохранением значения редактируемой записи (save::PAT:RECORD = PAT:RECORD) и указателя (saveNumber:Patients) в переменных перед операцией поиска, используя при этом POINTER, POSITION или просто уникальный id-записи и восстанавливая потом после поиска истинные значения и указатель, например:
Код: Выделить всё
GET(Patients, saveNumber:Patients) ! восстановить указатель
PAT:RECORD = save::PAT:RECORD ! и значения записи
Если создавать перед вызовом пр-ры редактирования очередь (или в in-memory) уже оформленных пациентов в которой потом осуществлять поиск , то, если таких записей становится значительное кол-во, то это уже заметно подтормаживает вызов пр-ры редактирования
Вроде бы вышеприведенный "костыль" работает, однако, хотел бы узнать, может есть что-то более оптимальное, или что в такой ситуации лучше (POINTER, POSITION и т.д.)?
Спасибо