Страница 1 из 1

Поиск "таблица в таблице"

Добавлено: 22 Август 2025, 9:27
SergioRaguzini
Привет Всем!

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

Код: Выделить всё

         GET(Patients, saveNumber:Patients)        ! восстановить указатель
               PAT:RECORD = save::PAT:RECORD         ! и значения записи
в DCT, в свойствах таблицы пациентов активно "Open in Current Thread"

Если создавать перед вызовом пр-ры редактирования очередь (или в in-memory) уже оформленных пациентов в которой потом осуществлять поиск , то, если таких записей становится значительное кол-во, то это уже заметно подтормаживает вызов пр-ры редактирования

Вроде бы вышеприведенный "костыль" работает, однако, хотел бы узнать, может есть что-то более оптимальное, или что в такой ситуации лучше (POINTER, POSITION и т.д.)?

Спасибо

Поиск "таблица в таблице"

Добавлено: 22 Август 2025, 9:53
ingasoftplus
alias?

Поиск "таблица в таблице"

Добавлено: 22 Август 2025, 10:00
SergioRaguzini
ingasoftplus писал(а): 22 Август 2025, 9:53alias?
Спасибо за отклик

но ведь Alias-таблицу тоже ведь нужно заполнить данными, а вот тут потеря времени, если только не отслеживать ее синхронно?

Поиск "таблица в таблице"

Добавлено: 22 Август 2025, 10:47
ingasoftplus
alias это просто зеркало существующей таблицы, но с другим именем и буфером. не понятно про Заполнить таблицу... Работайте с alias просто как с другой таблицей...

Поиск "таблица в таблице"

Добавлено: 23 Август 2025, 12:31
Губин Игорь
SergioRaguzini писал(а): 22 Август 2025, 10:00 но ведь Alias-таблицу тоже ведь нужно заполнить данными, а вот тут потеря времени, если только не отслеживать ее синхронно?
Если посмотрите, то Alias в словаре в самой программе порождает ещё одну независимую таблицу но с тем же именем файла. Т.е., с таблицами можно работать одновременно, "не портя" позиционирование, но данные будут общими.

У меня для работы со сложными структурами данных, порой, доходит до десятка алиасов на файл