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

Подписи

Добавлено: 17 июл 2014, 14:51
kasandra
Нужно вывести подпись на карту в два ряда. В таблице в одной ячейке она хранится в следующем виде : "Королевская сельская рада", а вывести нужно : "Королевская" а под низом "сельская рада". Как можно это сделать, не разбивая значение на два столбца?

Re: Подписи

Добавлено: 17 июл 2014, 21:34
ginpetr
Как много слов ожидается в названиях? И делить нужно пополам?

Re: Подписи

Добавлено: 17 июл 2014, 22:16
thegeo
Попробуйте использовать следующее выражение
Left$ (Name,InStr(1,Name,chr$(32))) & chr$(10) & Right$ (Name,(len(Name)-InStr(1,Name,chr$(32))))
Здесь Name имя поля. Строка из этого поля будет разделена по первому символу пробела.

Re: Подписи

Добавлено: 18 июл 2014, 07:18
ginpetr
Можно предусмотреть наличие строк из одного слова, чтоб не было переноса на другую строку

Left$ (Name,InStr(1,Name,chr$(32))) & left$(chr$(10),InStr(1,Name,chr$(32))) & Right$ (Name,(len(Name)-InStr(1,Name,chr$(32))))

Re: Подписи

Добавлено: 18 июл 2014, 11:54
kasandra
Спасибо огромное!

Re: Подписи

Добавлено: 03 янв 2022, 12:11
yurik1989
thegeo писал(а):
17 июл 2014, 22:16
Попробуйте использовать следующее выражение
Left$ (Name,InStr(1,Name,chr$(32))) & chr$(10) & Right$ (Name,(len(Name)-InStr(1,Name,chr$(32))))
Здесь Name имя поля. Строка из этого поля будет разделена по первому символу пробела.
При использовании данного выражения появляется ошибка: InStr: неправильный тип аргумента 2. У первого поля Тип Целое, у второго поля - Десятичное

Re: Подписи

Добавлено: 03 янв 2022, 14:53
thegeo
yurik1989 писал(а):
03 янв 2022, 12:11
При использовании данного выражения появляется ошибка: InStr: неправильный тип аргумента 2. У первого поля Тип Целое, у второго поля - Десятичное
yurik1989, нужно внимательно смотреть условия использования
yurik1989 писал(а):
03 янв 2022, 12:11
Здесь Name имя поля. Строка из этого поля будет разделена по первому символу пробела.
Т.е. предполагается что в поле Name хранятся строки следующего вида
“115 0.9”, “115a 1.2”

Re: Подписи

Добавлено: 04 янв 2022, 09:52
yurik1989
thegeo писал(а):
17 июл 2014, 22:16
Попробуйте использовать следующее выражение
Left$ (Name,InStr(1,Name,chr$(32))) & chr$(10) & Right$ (Name,(len(Name)-InStr(1,Name,chr$(32))))
Здесь Name имя поля. Строка из этого поля будет разделена по первому символу пробела.
Может есть какая-то возможность, чтобы верхняя строка была с подчеркиванием (чтобы общий вид был как у дроби)? Спасибо

Re: Подписи

Добавлено: 04 янв 2022, 13:21
gamm
теоретических в последних Мапинфах есть стиль с подчеркиванием, но всего текста. Если только сделать два слоя с надрисями с вертикальным смещением второго слоя (и подчеркивание, и смещение задаются в стиле), и вывести оба. Но при изменении масштаба может поехать.