Динамические таблицы

0 голосов
спросил 10 Авг, 07 от e-state (360 баллов) в категории Программные продукты Esri

Столкнулся я вот с какой задачкой.

Есть у меня БГД. С доменами, коих два - целочисленный и текстовый. По сути в одном из них содержится код объекта, а во втором его описание. Всё работает нормально - в списочках всё что надо открывается, заполняется и сохраняется.
Но заполняется криво, ибо сначала причодится выбирать код, а потом ручками подтягивать название в соседнее поле в таблице. Автоматизации ноль, убитого времени куча.
Можно ли каким-либо образом автоматизировать сие действо? Т.е. чтобы происходило следующее: выбираю код - в соседнем поле появляется название и наоборот? При этом реализация желательно с доменами.
Что-то мне подсказывается, что в режиме он-лайн это не получится, ибо я вовсе не понимаю через что - макрос? но как обращаться к таблице? Если макросы для таблиц писать возможно, то, ткните пожалуйста в какую-либо мануалину.
Если же таблицу заставить проделывать подобное нельзя, то подскажите, пожалуйста, что ещё можно? Прицепить таблицы к БГД? А потом через SQL? Тоже как?
Хотя бы толкните в нужном направленииSmile

7 Ответы

0 голосов
ответил 10 Авг, 07 от e-state (360 баллов)

Хех... дошло что можно это решить обычным джойном. Что-то похожее получается, во всяком случае))

Но есть два минуса:
1) пользователи вряд ли обрадуются подобному решению
2) джойн добавляет столбцы, а надо замещать ячейки. Ибо в ситуации когда в половине строк введён код, а в другой название - джойнить придётся 2 раза, при чём целостности данных уже не будет (ибо код будет в двух полях).
 
Есть что-нибудь более подходящее?
0 голосов
ответил 14 Авг, 07 от e-state (360 баллов)
ни у кого никаких мыслей?
0 голосов
ответил 15 Авг, 07 от lena (4,240 баллов)

Не совсем понятно, что вы хотите, ведь и код и описание объекта - это слагаемые одного домена, и коды заменяются на описание в том же самом поле(с которым связан домен), а не в соседнем. Не всегда объекты кодируются цифрами, иногда используются текстовые сокращения(например:Б - березовый лес; С - сосновый), вот тогда используют текстовые домены.

0 голосов
ответил 15 Авг, 07 от e-state (360 баллов)

Быть может непонятно объяснил...

Возьмём, к примеру, любой классификатор. Есть код объекта, есть описание объекта. Код - цифрами, название - буквами. Естесвенно, код зачастую короче по символам чем описание, но описание всегда понятно человеку (понимающему что написано, конечно). Так вот. Мне требуется сделать так, чтобы человек мог поступать так, как ему удобнее - вводить код или название. Давно работающий с подобным "классификатором" человек может помнить коды и ему быстрее будет выбрать код, нежели искать по описанию. И наоборот, не зная код, легче найти необходимый объект по описанию. Т.о. пользователь должен иметь возможность выбирать как по коду, так и по описанию объекта. Именно для этого в таблице создано 2 поля - в первом можно выбрать цифровой код объекта, а во втором его описание.
В итоге я настроил 2 домена - цифровой и текстовый, в которых, по сути содержится один и тот же показатель, но в разных формах. Это необходимо.
Что теперь требуется:
необходимо сделать зависимость значений одного поля от другого. Т.е. если польщователь вводит в поле "Код" 00123, то в соседнем поле (ячейке) должно появиться "Дорога просёлочная", или же если он в поле "Описание" выберет "Дорога просёлочная", то в поле "Код" должно появиться 00123.
Как говорил выше, пробовал джойн - не подходит по 2м причинам.
Как я полагаю, следует каким-то образом связать с внешней таблице в ГБД. Я создал две таблицы с полями (ИД, Код), (ИД, Название), т.е. по ИД соединить их можно без проблем. Проблема одна - как заставить аркгис менять значение другой ячейки с доменом?
Быть может невозможно это сделать в реал-тайме. Быть может подобное добавление можно организовать макросом или каким-либо модулем? При "нажатии кнопочки" атрибутивная таблица заполняется автоматически на основе данных из внешней таблицы. При этом без появления новых полей.
0 голосов
ответил 15 Авг, 07 от Dorofeev1 (6,460 баллов)
Можно сделать программно Копайте в сторону EditEvents::OnChangeFeature
Т.е остлеживать если изменилось значени столбца кода или названия,тогда записывать нужное значение в другой столбец
0 голосов
ответил 17 Авг, 07 от e-state (360 баллов)

ага... только встаёт один вопрос - каким образом менять этот столбец? Через SQL? Не пойму каким запрос должен быть... обращения к ячейкам-то нет... или можно как-то по другому?

0 голосов
ответил 17 Авг, 07 от Dorofeev1 (6,460 баллов)
Та нет просто если человек изменил значение одного столбца, то присвоить это значение другому столбцу. При этом если человек ввел код, то при присвоении солбцу с доменом этого кода там отобразится описание домена.Ну а если он выбрал из доменного значения, тогда тоже копируем код домена в столбец с кодом.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...