Подпись по условию

MapInfo, MapBasic
Ответить
egormishin
Участник
Сообщения: 70
Зарегистрирован: 18 ноя 2013, 07:43
Репутация: 6

Подпись по условию

Сообщение egormishin » 08 ноя 2017, 07:16

Добрый день!
Можно ли сделать подписи к слою (Линии) состоящего из линейных объектов из колонки А по условию из колонки Б.
Слой содержит 2 колонки А и Б тип-цельное, нужно подписать объекты по колонке (полю) А при условии-значение в колонке Б =2. Можно разделить на две таблицы не хотелось бы их плодить, либо создать отдельную колонку уже лучше, в идеале настроить подписи по условию через выражение, только не силен в этом может кто подскажет как составить выражение для подписи?
Последний раз редактировалось egormishin 09 ноя 2017, 02:04, всего редактировалось 1 раз.

Sibit
Активный участник
Сообщения: 216
Зарегистрирован: 21 окт 2009, 13:29
Репутация: 28
Откуда: Новосибирск

Re: Подпись по условию

Сообщение Sibit » 08 ноя 2017, 07:33

Вроде напрямую нет, но можно попробовать через выражение. Примерно такое:

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

Left$(Поле1, Int(Поле2=2)*Len(Поле1))
Ну или что-то подобное :)

egormishin
Участник
Сообщения: 70
Зарегистрирован: 18 ноя 2013, 07:43
Репутация: 6

Re: Подпись по условию

Сообщение egormishin » 08 ноя 2017, 08:22

Спасибо попробовал не получилось,выдало ошибку Left$: неправильный тип аргумента 1.

Sibit
Активный участник
Сообщения: 216
Зарегистрирован: 21 окт 2009, 13:29
Репутация: 28
Откуда: Новосибирск

Re: Подпись по условию

Сообщение Sibit » 08 ноя 2017, 09:26

Ну а какого типа у вас поля? Логично, что если число , то его нужно в строку перевести. Т.е или поменять в таблице тип поля или вместо ПОЛЕ1 написать Str$(Поле1)

Boris
Гуру
Сообщения: 4205
Зарегистрирован: 10 апр 2006, 22:34
Репутация: 433
Откуда: Париж

Re: Подпись по условию

Сообщение Boris » 09 ноя 2017, 01:23

Поправьте, если я не правильно интерпретировал ваше описание задачи: в таблице с колонками А и Б, следует вывести подписи только в том случае, если в колонке Б стоит число 2.
Если это так, то вместо изобретения способа подписи следует сделать запрос по условию Б=2 и придумать ему разумное имя. В окне карты добавить оба слоя - таблицу и запрос. У запроса включить подписи, но отключить показ линии (тип линии = "нет линии"), а у таблицы не включать подписи. Работу сохранить в рабочий набор. Теперь каждый раз при открытии рабочего набора запрос будет пересчитываться и отображаться заново. Единственное отграничение - надписи нельзя двигать - если сдвинуть, то есть вариант, когда надпись запомниться и не будет обновляться.

egormishin
Участник
Сообщения: 70
Зарегистрирован: 18 ноя 2013, 07:43
Репутация: 6

Re: Подпись по условию

Сообщение egormishin » 09 ноя 2017, 02:03

Boris вы правильно интерпретировали, таблице с колонками А и Б следует вывести подписи по колонке А только в случае если в колонке В стоит число 2.
Подпись через выражение получилась после перевода колонки в символьную! Второй способ предложенный Boris работает, хорошо когда есть выбор!
Спасибо большое за помощь!

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей