Добрый день. Обновили программу до версии 719, затем обновили до накопительной версии 723. При работе в программе отсутствует окрашивание по плану лесонасаждений, "лес-вода-болото", и остальные, кроме окрашивания по классам пожарной опасности. Площади таксационного описания и карты не увязывали, поскольку была необходимость задать их вручную. Вручную были созданы линейные выделы (лесная дорога и ЛЭП малая). Помимо отсутствия отображения по окрашиванию программа не выдает подписи "Таксационное описание". При этом "номера выделов" отображаются. С этой проблемой сталкивались и на более ранних версиях программы.
В чем может быть источник проблемы? И как выйти из сложившейся ситуации?
Не отображает окрашивание по плану лесонасаждений
Сообщений 1 страница 50 из 71
Поделиться131.07.2017 09:46:47
Поделиться231.07.2017 10:21:57
OlyaEco
у меня наблюдалась подобная проблема (не работали метки выделов, не работали легенды, не работали выражения ToPas) связано было с тем, что программа и базы установлены не на диске С:\, а на D:\
кажется, проблема была решена, как не помню, тему с этим обсуждением я не cмог найти на форуме.
Поделиться331.07.2017 10:24:44
Да, у нас база находится на сервере. Попробуем открыть непосредственно через диск С.
Поделиться431.07.2017 10:30:20
связано было с тем, что программа и базы установлены не на диске С:\, а на D:\
Сейчас точно вряд ли. Я все время ставлю на D:
В чем может быть источник проблемы? И как выйти из сложившейся ситуации?
Всегда начинайте изучение проблемы с деморегиона. Если там работает - проблема в базе. Если там не работает - проблема с программой. В последнем случае чаще из-за некорректного восстановления каталога LesIS из архива. Если с базой то проверьте - рассчитаны ли производные показатели? Все окраски и "формулы" обращаются к ним. Если производные на месте - пишите как создавали БД? Штатно или что то руками или сторонними прогами делали? Чем они могут отличаться от демо? Где находится папка с проектами, штатно?
Поделиться531.07.2017 10:32:25
Да, у нас база находится на сервере.
Если сетевой диск имеет файловую идентификацию (D:, F:, E:....), то все должно быть нормально. Проверяйте только "доступы" и "права", если закрываете от пользователей служебные папки. Если путь "сетевой" (\\имясервера... или с IP адресом...) то работать нормально ничего не будет.
Поделиться631.07.2017 15:27:03
Грешнов
Спасибо, все заработало после открытия базы с диска С.
Поделиться731.07.2017 21:15:49
Спасибо, все заработало после открытия базы с диска С.
И тем не менее, проблема не в диске C:. У меня все работает и на D: и в облаке. Какой путь у Вас был к сетевой базе? Тип сервера? Политика доступа? Либо у Вас путь имел некорректное имя (сетевое, например), либо сетевой диск имел ограничения в доступе, либо у Вас изначально система была установлена на диск C:, а по новому пути Вы его разместили каким то нештатным способом. И если те, у кого это проявляется не дадут нам больше информации о реальной ситуации и о том, что они делали, мы эту ситуацию обработать не сможем.
Поделиться801.08.2017 09:13:49
Изначально база создавалась на диске С: без доступа к серверу (грубо говоря базу создавали дома). Далее база была скопирована на сервер (копировали папка "2011" на рабочий компьютер, являющийся сервером), путь был указан Z\\Monoblok_1\\общий диск\\LesIS. Про ограничения к доступу - не были указаны.
Поделиться901.08.2017 10:22:18
Z\\Monoblok_1\\общий диск\\LesIS
Мне не знаком такой формат идентификации пути... Если Вы имели в виду Z:\Monoblok_1\общий диск\LesIS то я скорее буду грешить на "общий диск". Однозначно может не сработать.
Изначально база создавалась на диске С:
Все правильно. Из Вашего lesis_support_COMPLD.cab видно, что путь к базе был C:\LesIS. И если бы Вам подключили сетевой диск корректно с точки зрения OGIS, например, Z:\LesIS или Z:\Dropbox\LesIS и при этом путь был бы зафиксирован в реестре штатными методами (при установке или выбором параметра при загрузке при наличии исходного установочного каталога) то уверяю Вас, что никаких проблем с не C: диском у Вас не было бы. Я уже не помню когда ставил прогу на C:. Лет пять может назад...
Так что, если, например, Вы ставили на C:\Lesis, а потом поступили не штатно - полностью удалили этот каталог в проводнике и сделали z:\LesIS то Вы должны понимать, что программа об этом ничего не знает. Нужно переустановить ее и (или) добавить каталог интерфейсно.
А если не хотите заморачиваться с переустановками - откройте свой рабочий проект и реестр (regedit, а там - HKEY_CURRENT_USER\SOFTWARE\LesIS\TopoL_L2) замените там все некорректные пути c:\LesIS на нужный Вам z:\LesIS. В реестре это всего два параметра, а в проекте - массовой заменой в текстовом редакторе. Результат будет тот же.
Поделиться1001.08.2017 10:28:40
Спасибо за развернутый ответ, будем пробовать.
Поделиться1102.08.2017 04:33:58
Если на сетевом диске "D" с папкой LesIS, то и запрос должен начинаться с буквы диска "D":
CalcValue('D:\LesIS\_Les\ToPas\PlanL2.tps').
При первой установке тополя с нуля лучше всего сразу указать путь до сетевой папки. А дальше в своём запросе CalcValue поправить путь. У меня нет стандартных запросов от ЛесИС - они все в пользовательских либо модернизированы, либо как с топасом по плану лесонасаждений - перенесены с изменением пути.
Путь с рабочего компа на сервер, подключение как сетевой диск:
Реестр:
Нужно настроить сетевой диск, прописать все разрешения по максимуму (настройки безопасности). Возможно, потребуется дополнительная помощь сисадмина (или кто шарит в сетевых настройках).
Через сервер можно работать по VPN или внутренней локальной сети. С облаками по опыту могу сказать - у меня не пошло.
Использовать единые настройки для тополя на разных компах в сети можно, работать с разными объектами тоже можно. А вот один объект открывать одновременно на нескольких компах противопоказано (нельзя). Но, при обновлении тополя, тем более установке новой версии свои файлы придётся вставлять как на сервере, так и на каждом компе отдельно (детально рассказывать не буду, потому как у каждого могут быть свои настройки).
Отредактировано Александр Архипов (02.08.2017 04:48:13)
Поделиться1202.08.2017 04:57:41
В итоге вот так это всё выглядит:
Поделиться1302.08.2017 13:44:38
Через сервер можно работать по VPN или внутренней локальной сети.
А объясните мне что значит работать? Открыть и покрасить план это одно а вот работать??? Десятки пользователей обращаются к сети и это поверьте не фонтан как работает. С растрами вообще тяжело. А с блоком только один человек может работать. И вообще смысл этого? Как хранилище?
Использовать единые настройки для тополя на разных компах в сети можно
Вот это у меня была первая мысль. И всем закрыть доступ к этим настройкам. Чтобы не могли их править.
Поделиться1403.08.2017 01:20:18
.
Извиняюсь за текст под хайдом. Лички нет, а ответ больше персональный. Спасибо.
Отредактировано Александр Архипов (03.08.2017 01:23:05)
Поделиться1519.09.2017 10:25:58
Добрый день. Возник вопрос, в готовой таксационной карте присутствует преобладающая порода - ильм. Но при окрашивании по плану лесонасаждений выделы с этой преобладающей породой не окрашиваются. В окне карты нажимаем "инструменты" - "преобразовать символы" - "план лесонасаждений". В данной таблице отсутствует нужный нам ильм. Каким образом необходимо вносить изменения в данную таблицу, и на правильном ли мы пути?
Поделиться1619.09.2017 12:14:22
Каким образом необходимо вносить изменения в данную таблицу, и на правильном ли мы пути?
Сперва добавить в библиотеку. Затем в "План лесонасаждений". И ещё в PlanL.tps.
и на правильном ли мы пути?
Да.
Вроде бы и всё.
Поделиться1719.09.2017 12:30:10
Сергей, то есть сперва надо открыть файл библиотеки LesIs_2 (хранится по адресу С:\LesIs\_Sis\_LesIs_2.sli). Сразу же вопрос. Чем можно открыть этот тип файла? Далее в преобразовании символов в плане лесонасаждений необходимо добавить необходимые добавленные символы из библиотеки LesIs_2. Далее насчет файла PlanL.tps. Вопрос - чем открыть этот тип файла, чтобы внести изменения? Попробовали открыть его DatabaseDocs, в результате увидели 3 столбца, в среднем столбце непонятные числа, каким образом надо добавить сюда необходимую породу?
Поделиться1819.09.2017 13:03:46
Чем можно открыть этот тип файла?
LesIs_2.sli открывается он Редакторе знаков который ставится с программой.
Далее насчет файла PlanL.tps
PlanL2.tps открывается любым редактором. Нажмите F4.
Посмотрев на этот файл поймете что и как добавить.
Поделиться1919.09.2017 13:13:06
Сразу же вопрос. LesIs_2.sli Чем можно открыть этот тип файла?
Для редактирования библиотек условных знаков есть специальный редактор, он устанавливается вместе с программой - Symbol library editor.
PlanL.tps. Вопрос - чем открыть этот тип файла
Это обычный текстовый файл, Notepad или что-то подобное подойдет.
Редактируете по принципу аналогии, это программный текст, похожий на Pascal, поэтому четко соблюдайте синтаксис языка, иначе все перестанет работать.
Поделиться2019.09.2017 13:13:11
Сергей, я понимаю, что задам глупый вопрос - как вызвать редактор знаков.
Поделиться2119.09.2017 13:28:02
Пуск-Все программы-ЛесИС-Редактор знаков
Поделиться2219.09.2017 13:41:26
Огромно спасибо, будем пробовать.
Поделиться2319.09.2017 15:40:14
Таким образом, создали для ильма в редакторе условных знаков собственно условные знаки. В преобразовании символов были добавлены условные знаки для ильма ( от 32408 до 32414). Вот здесь первый вопрос - задавали с 32501 и до 32507, но программа все равно их переименовывает по порядку. Открываем PlanL2.tps и добавляем строку для ильма после вяза (вот здесь не уверены после вяза ли, или в самом конце преобладающих пород).
else if Trunc(@1.PorodaPrb/100) = 20255 then
ResultValue := '3240' { ильм }
И в результате ничего не окрашивает. Еще возник вопрос - нужно ли вносить туже самую строку в PlanLss.tps?
Отредактировано OlyaEco (19.09.2017 15:52:26)
Поделиться2419.09.2017 16:35:24
Вот здесь первый вопрос - задавали с 32501 и до 32507, но программа все равно их переименовывает по порядку.
Справа в редакторе. ID номер задаете нужный и сохраняете. Главное чтобы он не был занят. И потом не очень понятно где программа его переименовывает? В редакторе?
Поделиться2519.09.2017 16:41:17
Сергей, не так написали предыдущее сообщение. Значит в редакторе условных знаков были созданы условные обозначения для ильма под номерами от 23501 до 23507. Далее в ЛесИс "Инструменты" - "Преобразовать символы" - "План лесонасаждений" были добавлены под теми же номерами условные обозначения. Все сохранили, все хорошо. Закрыли программу. Далее открыли PlanL2.tps и здесь после вяза добавили строчку
else if Trunc(@1.PorodaPrb/100) = 20255 then
ResultValue := '2350' { ильм }
Сохранили. Закрыли. Теперь опять открыли ЛесИс, окрашивания не произошло.
Поделиться2619.09.2017 17:10:16
else if Trunc(@1.PorodaPrb) = 202550 then
Попробуйте так.
А у вас Вяз есть?
Поделиться2719.09.2017 17:18:00
Тоже самое, не окрашивает. Да, вяз присутствует, и окрашивается. А ильм не хочет. Вообще очень странно конечно, может забыли что-то. Либо неправильно прописали. Нужно ли прописывать в PlanLss.tps тоже ильм?
Поделиться2819.09.2017 17:26:16
Попробовали сейчас задать в PlanL2.tps только молодняк, то есть задали
else if Trunc(@1.PorodaPrb) = 202550 then
ResultValue := '23501' { ильм }
Программа окрасила. И если менять по отдельности с 23501 до 23507, программа окрашивает. Тогда каким образом надо задавать условные обозначения, чтобы он окрашивал в зависимости от возраста?
Отредактировано OlyaEco (19.09.2017 17:29:30)
Поделиться2919.09.2017 17:44:35
else if Trunc(@1.PorodaPrb) = 202550 then
ResultValue := '2350' { ильм }
У меня всё работает.
Поделиться3319.09.2017 21:18:34
Я бы Вам даже посоветовал вывести в виде текстовой метки не просто код породы, и те коды, которые возвращает Ваш макрос PlanL2.tps, тогда Вы узнаете, какие коды получились. Легенда плана в проекте TopoL задает соответствие между этим кодом и кодом условного знака.
Поделиться3419.09.2017 21:53:02
судя по тексту .tps, у вас перебор просто не доходит до ильма, а вылетает строчкой раньше, уже на вязе
Поделиться3519.09.2017 21:59:45
с телефона неудобно объяснять, но попросите программистов посмотреть что такое Trunc и зачем код породы делить на 100 )
Дмитрий Александрович, давно хочу спросит, а есть ли способ в ТоПасе не городить сто условий if-else, а использовать другой оператор наподобие Case?
Поделиться3619.09.2017 23:37:11
у вас перебор просто не доходит до ильма
Нет тут никакого перебора. У меня красится. Ошибка тут должна быть.
1.KatZem - категория земель
1.PorodaPrb - преобладающая порода
1.VozGrpVyd - группа возраста
зачем код породы делить на 100
Согласен. Пример: Дуб низ. не красился.
else if Trunc(@1.PRBPOR/100) = 2020 then
ResultValue := '220' { дуб }
else if Trunc(@1.PRBPOR) = 202065 then
ResultValue := '220' { дуб низ }
Поделиться3720.09.2017 08:32:47
Нет тут никакого перебора.
Сергей,
... else if then ...
... else if then ...
это - перебор. Перебор вариантов. Значений преобладающей породы.
здесь после вяза добавили строчку
else if Trunc(@1.PorodaPrb/100) = 20255 then
ResultValue := '2350' { ильм }
в этом выражении ошибка арифметическая, поэтому не работало. Порода у вас 202550, если это число разделить на 100 и отбросить после запятой (TRUNC), то получится всего 2025, а это никак не равно 20255.
Далее вы приводите скриншот, где сначала стоит условие для "вяза", затем для "ильма". Что получается: если порода "ильм"=202550, то на проверке равенства даже для "вяза" оно уже сработает!
else if Trunc(@1.PorodaPrb/100) = 2025 then
ResultValue := '2250' { вяз }
TRUNC(202550/100) = 2025
ResultValue получает значение '2250'
проверка дальше не идет!
Сергей приводит свой пример то же самое для "Дуб низ".
Решение - поставьте более узкое условие выше, чем более общее. То есть "Ильм" раньше "вяза", "Дуб низ" раньше "дуба".
p.s. Вообще конечно, гадать по кусочкам скриншотов, то еще занятие. Почему бы сразу не выкладывать файлы, которые не работают, и образец базы? Вчера бы уже всё решили
Поделиться3820.09.2017 08:47:03
Попробовали сейчас задать в PlanL2.tps только молодняк, то есть задали
else if Trunc(@1.PorodaPrb) = 202550 then
ResultValue := '23501' { ильм }
Программа окрасила. И если менять по отдельности с 23501 до 23507, программа окрашивает. Тогда каким образом надо задавать условные обозначения, чтобы он окрашивал в зависимости от возраста?
Извините за вопрос, а группы возраста для Ильма у вас посчитаны?
Поделиться3920.09.2017 09:17:04
Алексей, Вы как раз угадали. Для выделов с преобладающей породой "Ильм" отсутствовали группы возраста, все как обычно. Ошибка была самой элементарной. Как только рассчитали группы возраста, программа окрасила. Спасибо всем за помощь!
Поделиться4020.09.2017 09:22:56
Странно, по моим рассуждениям, окрашивать она всё равно не должна
Поделиться4120.09.2017 09:25:50
OlyaEco
скиньте пожалуйста ваш файлик C:\LesIS\_Les\ToPas\PlanL2.tps весь целиком
хочу просто посмотреть
Поделиться4220.09.2017 09:29:27
И всё таки какое выражение для ильма вы оставили?
Поделиться4320.09.2017 09:30:49
Алексей, держите!
Valuemacro Plan;
{ Формирует код символа 'Раскраска плана лесонасаждений',
что позволяет сформировать параметры раскраски для БД блока
Вер. 4.0 © Старостенко Д.А., 1999-2013 год }
{ Имена полей БД
1.KatZem - категория земель
1.PorodaPrb - преобладающая порода
1.VozGrpVyd - группа возраста }
var
ResultValue : string;
begin
{ Преобладающая порода }
if Trunc(@1.PorodaPrb/100) = 1001 then
ResultValue := '1010' { сосна }
else if Trunc(@1.PorodaPrb/100) = 1002 then
ResultValue := '1020' { ель }
else if Trunc(@1.PorodaPrb/100) = 1003 then
ResultValue := '1030' { пихта }
else if Trunc(@1.PorodaPrb/100) = 1004 then
ResultValue := '1040' { лиственница }
else if Trunc(@1.PorodaPrb/100) = 1005 then
ResultValue := '1050' { кедр }
else if Trunc(@1.PorodaPrb/100) = 2020 then
ResultValue := '2200' { дуб }
else if Trunc(@1.PorodaPrb/100) = 2023 then
ResultValue := '2230' { ясень }
else if Trunc(@1.PorodaPrb/100) = 2024 then
ResultValue := '2240' { клен }
else if Trunc(@1.PorodaPrb/100) = 2025 then
ResultValue := '2250' { вяз }
else if Trunc(@1.PorodaPrb) = 202550 then
ResultValue := '2350' { ильм }
else if Trunc(@1.PorodaPrb/100) = 3026 then
ResultValue := '3020' { береза }
else if Trunc(@1.PorodaPrb) = 304000 then
ResultValue := '3040' { осина }
else if Trunc(@1.PorodaPrb) = 304105 then
ResultValue := '3100' { ольха с }
else if Trunc(@1.PorodaPrb) = 304110 then
ResultValue := '3110' { ольха ч }
else if Trunc(@1.PorodaPrb/100) = 3042 then
ResultValue := '3240' { липа }
else if Trunc(@1.PorodaPrb/100) = 3043 then
ResultValue := '3040' { тополь }
else if Trunc(@1.PorodaPrb/100) = 3044 then
ResultValue := '3140' { ива }
else if Trunc(@1.PorodaPrb) = 511800 then
ResultValue := '518' { рябина }
else if Trunc(@1.PorodaPrb) = 512800 then
ResultValue := '528' { черемуха }
else if Trunc(@1.PorodaPrb/100) = 5134 then
ResultValue := '534' { яблоня }
else
ResultValue := '';
{ Категория земель }
if (@1.KatZem >= 1100) and (@1.KatZem < 1108) then
begin { покр. лесом }
if (@1.VozGrpVyd = 1) or (@1.VozGrpVyd = 2) then
ResultValue := ResultValue + '1'
else if (@1.VozGrpVyd = 3) or (@1.VozGrpVyd = 4) then
ResultValue := ResultValue + '2'
else if @1.VozGrpVyd = 5 then
ResultValue := ResultValue + '3'
else if @1.VozGrpVyd >= 6 then
ResultValue := ResultValue + '4'
end
else if (@1.KatZem = 1200) or (@1.KatZem = 1201) then
ResultValue := ResultValue + '5' { культуры несомкн. }
else if (@1.KatZem = 1108) or (@1.KatZem = 1114) then
ResultValue := ResultValue + '6' { культуры сомкн. }
else if @1.KatZem = 1109 then
ResultValue := ResultValue + '7' { культ. реконстр. }
else if @1.KatZem = 1341 then
ResultValue := '1341' { плантации }
else if (@1.KatZem = 1503) or (@1.KatZem = 1504) then
ResultValue := '1503' { гари, погибшие нас. }
else if @1.KatZem = 1505 then
ResultValue := '1505' { ветровалы }
else if @1.KatZem = 1509 then
ResultValue := '1509' { вырубки }
else if @1.KatZem = 2101 then
ResultValue := '2101' { пашни }
else if @1.KatZem = 2102 then
ResultValue := '2102' { сенокосы }
else if @1.KatZem = 2103 then
ResultValue := '2103' { пастбища }
else if (@1.KatZem >= 2108) and (@1.KatZem <= 2116) then
ResultValue := '2108' { воды }
else if @1.KatZem = 2120 then
ResultValue := '2120' { сады }
else if @1.KatZem = 2425 then
ResultValue := '2425' { кладбище }
else if @1.KatZem = 2506 then
ResultValue := '2506' { пески }
else if @1.KatZem = 2507 then
ResultValue := '2507' { болота }
else
ResultValue := '1000'; { прочие категории земель }
end.
Поделиться4420.09.2017 09:43:19
else if Trunc(@1.PorodaPrb/100) = 2025 then
ResultValue := '2250' { вяз }
else if Trunc(@1.PorodaPrb) = 202550 then
ResultValue := '2350' { ильм }
Спасибо.
Судя по логике, должен красить Ильм, но в цвета Вяза.
Поделиться4620.09.2017 10:14:17
Судя по логике, должен красить Ильм, но в цвета Вяза.
Вяз, или ильм (лат. Úlmus) — род деревьев семейства Вязовые (Ulmaceae).