Здравствуйте! Необходимо составить карту по хозяйственным мероприятиям. Отдельная карта по рубкам, другая по лесовосстановлению (лесные культуры, содействие и т.п).
При указании в запросе окраска по мероприятиям, карта окрашивается по последнему мероприятию. Например: в выделе назначена сплошная рубка, 2-м мероприятием назначена посадк лесных культур. Топол окрашивает выдел по лесным культурам. Мы хотим отдельно покрасить по заготовке, где выдел красится по СР, и отдельно карта - выдел по посадке лесных культур.
Тематические карты по двум показателям
Сообщений 1 страница 37 из 37
Поделиться112.12.2017 10:50:01
Поделиться312.12.2017 15:16:58
Приведенное Сергеем выражение переделано из выражения для Категории земель, но Категория земель - одна на выдел, я мероприятий часто несколько, и Дмитрию нужно красить 2 карты так, чтобы один и тот же выдел в первом случае окрашивался по классу мероприятия-рубки, во втором - по лесокультурным мероприятиям, которые могут быть на любом месте в списке мероприятий.
Мне кажется, что правильными будут следующие выражения (если я правильно понял границы групп мероприятий) :
- для рубок
SELECT(@1.3.MERKL, @1.3.MERKL < 2000)
- для лесовосстановления
SELECT(@1.3.MERKL, (@1.3.MERKL > 3000) AND (@1.3.MERKL < 4000))
Ну а цветовую легенду соответствия кодов и окраски Вы сделаете по своему усмотрению. Если несколько соседних кодов красятся одинаково, можно сделать легенду по диапазонам (сначала автоматом по числу целевых цветов, потом поправить диапазоны по смыслу), если в разбивку - придется цвет повторять.
Отредактировано Дмитрий Александрович (12.12.2017 15:18:37)
Поделиться412.12.2017 18:37:35
Дмитрию нужно красить 2 карты
У нас тоже красят две. Если ты пробовал на деморегионе у меня всё работает с одной кнопки. Подставляй свои коды в tps. и крась как угодно.
А вот другой вопрос. Может ли как то машина разобрать что к данному выделу относится два мероприятия? И если идет сплошная рубка и посадка культур то придумать свой цвет(штриховку). Например сплошная рубка красный цвет а по ней штриховкой посадка культур желтая. И для каждых повторяющихся мероприятий свои цвета. Уж больно расход бумаги на это большой.
Поделиться512.12.2017 22:31:39
А вот другой вопрос. Может ли как то машина разобрать что к данному выделу относится два мероприятия? И если идет сплошная рубка и посадка культур то придумать свой цвет(штриховку).
Конечно можно, нужно просто сформулировать правильные условия в макросе с учетом номера мероприятия:
((@1.3.MERNOM = 1) AND (@1.3.MERKL = 1211) AND (@1.3.MERNOM = 2) AND (@1.3.MERKL = 3211))
- в таком виде работать не будет, так как строка применяется к мероприятию, а не к выделу; мероприятие не может быть одновременно разных кодов.
Вот такой макрос возвратит уникальный код для каждого из сочетаний 1-го и 2-го мероприятий:
Valuemacro SelectMer;
{ Поучение информации о мероприятиях для полигонов - выделов.
Вер. 1.0 © Старостенко Д.А., 2017 год }
var
ResultValue : string;
Kod1M, Kod2M : list of longint;
begin
Kod1M := SELECT(@1.3.MERKL,@1.3.MERNOM = 1);
Kod2M := SELECT(@1.3.MERKL,@1.3.MERNOM = 2);
ResultValue := (Kod1M[1] + Kod2M[1]):C;
end.
Примечание: макрос ToPas без указания пути TopoL ищет в каталоге _WorkingDirectory.\, то есть, например, в D:\LesIS
Отредактировано Дмитрий Александрович (13.12.2017 12:14:32)
Поделиться612.12.2017 23:31:54
А если нужна окраска по параметрам: выборочная рубка по полнотам (отдельный цвет для рубки с полнотой 0,6 и отдельный для 0,7); выборочные рубки по отдельным преобладающим породам - как будет выглядеть запрос?
Поделиться713.12.2017 14:13:52
выборочная рубка по полнотам (отдельный цвет для рубки с полнотой 0,6 и отдельный для 0,7)
Попробуйте выражение:
SELECT(@1.2.POLNOTA * 10, @1.3.MERKL = 1605)
оно возвратит только для выделов, где есть Выборочная рубка 1605, значения 6, 7 и т.п. для полнот 0,6 0,7 и т.д.
Поделиться828.04.2018 12:53:02
Здравствуйте, программировать в макросе .tps я не умею. Можно ли мне сделать раскраску полигонов по заданным условиям через "глаз", по "выражению". Через построитель запросов я отбираю преобл.породы -Сосна, Ель, группа возаста - 1, полнота 07,08,09,1 - этот запрос мне необходимо окрасить в один цвет, и преобл.породы -Береза, Осина, группа возаста меньше 2, полнота 07,08,09,1 - в другой цвет.
Какое выражение можно записать в визуализации цвета полигона "по выражению"?
Поделиться928.04.2018 21:01:14
Я полагаю, что будут выделы, которые не отвечают ни первому, ни второму условию, и это будет третий цвет (даже если он белый). При таком количестве условий без макроса ToPas не обойтись, хотя сам макрос будет простым:
Valuemacro Olga_01;
{ Формирует код символа по условию Ольги, Вер. 1.0, помощь © ЛесИС }
{ Имена полей БД
1.PorodaPrb - преобладающая порода
1.VozGrpVyd - группа возраста
1.2.Polnota - полнота }
var
ResultValue : string;
begin
if (Trunc(@1.PorodaPrb/100) = 1001) or (Trunc(@1.PorodaPrb/100) = 1002) { сосна и ель всех подвидов }
AND (@1.VozGrpVyd = 1) AND (SELECT(@1.2.Polnota, @1.2.Iarus = 1) >= 0.7) then
ResultValue := '1'
else if (Trunc(@1.PorodaPrb/100) = 3026) OR (@1.PorodaPrb = 304000) { береза всех подвидов и осина }
AND (@1.VozGrpVyd < 2) AND (SELECT(@1.2.Polnota, @1.2.Iarus = 1) >= 0.7)
then
ResultValue := '2'
else
ResultValue := '0'; { прочие категории земель }
end.
Этот макрос надо записать в файл name.tps (имя придумайте), а выражение для его вызова будет
CALCVALUE('name.tps')
при условии, что макрос размещен в рабочем каталоге ГИС, например D:\LesIS
Попробуйте сначала вывести с помощью этого макроса метки - увидите цифру на каждом выделе. Если все будет нормально, сделайте легенду, где значениям '0', '1', '2' (это тип "текст") Вы укажете в соответствие требуемые цвета.
Обращаю Ваше внимание на то, что ярусов может быть в описании выдела несколько (включая подрост и подлесок), а полнота - это параметр яруса, поэтому я ставлю условие выбора полноты 1-го яруса.
Поделиться1003.05.2018 16:02:48
Создала описанный макрос. Он работает, только отбирает по породам (сосна, ель-'1'; береза, осина - '2'), полноту и класс возраста не учитывает, пока не могу разобраться почему.
Поделиться1103.05.2018 19:24:50
полноту и класс возраста не учитывает, пока не могу разобраться почему.
Это потому, что я по паре скобочек потерял, должно быть:
if ((Trunc(@1.PorodaPrb/100) = 1001) OR (Trunc(@1.PorodaPrb/100) = 1002)) { сосна и ель всех подвидов }
AND (@1.VozGrpVyd = 1) AND (SELECT(@1.2.Polnota, @1.2.Iarus = 1) >= 0.7) then
ResultValue := '1'
else if ((Trunc(@1.PorodaPrb/100) = 3026) OR (@1.PorodaPrb = 304000)) { береза всех подвидов и осина }
AND (@1.VozGrpVyd < 2) AND (SELECT(@1.2.Polnota, @1.2.Iarus = 1) >= 0.7)
then
ResultValue := '2'
Скобочки влияют на порядок проверки условий: без скобок, если выражение до первого OR дает истину и проверка дальше не идёт, а нам здесь нужно, чтобы всегда работали все три условия через AND.
Поделиться1204.05.2018 09:18:48
Спасибо! Поставила скобки и все получилось!
Поделиться1312.08.2018 15:28:06
Здравствуйте, подскажите как раскрасить карту по следующему условию:
№ | Условие выбора | Цвет визуализации | Метка(символ) визуализации |
1 | Выдела с насаждениями сосны и ели, в возрасте более 20 лет. В составе насаждения хвойных пород (сумма коэффициентов сосны и ели) 9 единиц и более. За исключением выделов, где в составе присутствуют (1 единица и более) липа и дуб. | Разные для каждой позиции (условия выбора) | 1 |
2 | Выдела с насаждениями лиственницы, в возрасте более 20 лет. В составе насаждения лиственницы 9 единиц и более. За исключением выделов, где в составе присутствуют (1 единица и более) липа и дуб. | 2 | |
3 | Выдела с насаждениями березы, осины, ольхи черной, ольхи серой, ива древовидной в возрасте более 10 лет. В составе насаждения мелколиственных пород (сумма коэффициентов береза, осина, ольха черная, ольха серая, ива древовидная) 9 единиц и более. За исключением выделов, где в составе присутствуют (1 единица и более) липа и дуб. | 3 | |
4 | Выдела с насаждениями липы и дуба в возрасте более 10 лет. В составе насаждения широколиственных пород (сумма коэффициентов липы и дуба) 4 единицы и более. | 4 | |
5 | Выдела с насаждениями сосны и ели, в возрасте более 20 лет. В составе насаждения хвойных пород (сумма коэффициентов сосны и ели) от 5 до 8 единиц. За исключением выделов, где в составе присутствуют (1 единица и более) липа и дуб. | 5 | |
6 | Выдела с насаждениями березы, осины, ольхи черной, ольхи серой, ива древовидной в возрасте более 10 лет. В составе насаждения мелколиственных пород (сумма коэффициентов береза, осина, ольха черная, ольха серая, ива древовидная) от 6 до 8 единиц. За исключением выделов, где в составе присутствуют (1 единица и более) липа и дуб. | 6 | |
7 | Выдела с насаждениями липы и дуба в возрасте более 10 лет. В составе насаждения широколиственных пород (сумма коэффициентов липы и дуба) от 1 до 3 единиц. | 7 | |
8 | Выдела с насаждениями хвойных пород (сосна, ель, лиственница) в возрасте до 20 лет и лиственных пород (береза, осина, ольха черная, ольха серая, ива древовидная, липа, дуб) в возрасте до 10 лет. | 8 | |
9 | Выдела протаксированные как: Болота | 9 | |
10 | Выдела протаксированные как: Лесные поляны, прогалины | 10 | |
11 | Выдела протаксированные как: Пашни | 11 | |
12 | Выдела протаксированные как: Сенокосы и пастбища | 12 | |
13 | Выдела протаксированные как: Реки, ручьи, мелиоративные каналы | 13 | |
14 | Выдела протаксированные как: Озера, Пруды | 14 | |
15 | Выдела протаксированные как: Вырубка, лесосека, погибшие насаждение, гарь, несомкнумшиеся лесные культуры | 15 |
Пример карты как должно получиться.
Возможно, нужно воспользоваться макросом ToPas. Но как его писать, куда вставлять в программе TopoL, я не знаю. Подскажи как это сделать или где почитать инструкцию?
Поделиться1413.08.2018 12:40:37
по следующему условию
У Вас не одно условие. У Вас 15 совершенно разных и неоднородных запросов.
Возможно, нужно воспользоваться макросом ToPas.
Вряд ли. Возможно Д.А. посоветует что то иное, но на мой взгляд самое простое - через поиск по условиям заполнить какое то поле значениями 1-15 и уже по ним сделать откраску.
Видеоурок по "Построению тематических карт" можно скачать тут.
Как добавить тематическую карту в меню описано тут.
Поделиться1513.08.2018 14:18:24
Возможно, нужно воспользоваться макросом ToPas.
Для такой карты без этого - никак. То есть макрос проанализирует описание каждого выдела и вернёт код 0, 1-15, а Вам надо будет сделать легенду, которая в соответствие этим кодам поставит нужные условные знаки. Макрос проще всего переделать, взяв за образец, например, макрос для плана лесонасаждений. Там есть комментарии. Верхняя часть, где анализируется преобладающая порода и группа возраста, Вам, видимо, не будет нужна, а нижняя часть макроса, где идёт разбор по категориям земель, видимо существенно меняться не будет (можете поменять возвращаемый код ResultValue). Что касается анализа покрытых лесом - там предстоит существенная переработка - у Вас требуется анализ описаний ярусов и пород, связанным соотношением 1:N, чего в плане насаждений не делается. Лучше всего воспользоваться функцией SELECT(...), которая возвращает некоторый параметр поиском по условию в подчинённых записях (ярусах, породах), и вызывать её придётся, видимо, многократно. Использование функции SELECT(...) на форуме обсуждалось неоднократно, поищите по названию функции. И, если в выражении отбора выделов есть уровень отбора по параметрам, относящимся к самому выделу (по преобладающий породе, например), эти условия лучше ставить в начале, до вызова SELECT(...), это ускорит выполнение.
Вызывается макрос следующим выражением:
CALCVALUE('D:\LesIS\_Les\ToPas\dlh33avo_01.tps')
если Вы его разместите под именем dlh33avo_01.tps в стандартном каталоге макросов.
Отредактировано Дмитрий Александрович (13.08.2018 14:18:50)
Поделиться1614.08.2018 11:24:27
Большое спасибо за ответы! Попробовал сделать как посоветовал Сергей Петрович.
но на мой взгляд самое простое - через поиск по условиям заполнить какое то поле значениями 1-15 и уже по ним сделать откраску.
Для этого воспользовался пустым полем (в моей базе) MetodTaks, отредактировал для него справочник создав 15 позиций по указанным выше условиям выбора. Воспользовавшись функцией «Отбор по условию» поочередно отобрал все 15 позиций с внесением изменений в повыдельную таксацию по полю «Метод такс.» использовав функцию «Установить это значение во всех выбранных…». Далее создал тематическую карту по следующему выражению:
@1.METODTAKS.
Все получилось карта окрасилась по указанным условиям!
Но есть определенные вопросы:
1. Использовать поле MetodTaks не по назначению не совсем правильно.
2. Возможно, указанные критерии нужно внести в 23 макет «Особенности выдела», но при создании тематической карты, как правильно прописать выражение по отбору в 23 макете по нескольким параметрам? По одному есть пример в стандартных выражениях:
SELECT(@1.4.MAKET,(@1.4.MAKET = 23) and (@1.4.1.PARAMETR='9'))
По двум и более параметрам нет. Как правильно пишется (синтаксис) выражения по двум и более параметрам?
3. Возможно, нужно создать новый макет к примеру «макет 36 «Элементы среды обитания» создать для него справочник по указанным выше критериям (условиям отбора). Тогда при построении тематической карты выражение должно, наверное, иметь следующий вид:
SELECT(@1.4.MAKET,(@1.4.MAKET = 36)
Но как создать новый макет и внести его в повыдельную таксацию я, к сожалению, не знаю.
Но все эти действия подразумевают внесение изменений в повыдельную таксацию и не дают возможности использовать данную тематическую карту универсально для других баз (где не внесены изменения в повыдельную таксацию). Для построения универсальной тематической карты скорей всего нужно сделать так как предложил Дмитрий Александрович.
dlh33avo написал(а):
Возможно, нужно воспользоваться макросом ToPas.
Для такой карты без этого - никак. То есть макрос проанализирует описание каждого выдела и вернёт код 0, 1-15, а Вам надо будет сделать легенду, которая в соответствие этим кодам поставит нужные условные знаки. Макрос проще всего переделать, взяв за образец, например, макрос для плана лесонасаждений. Там есть комментарии. Верхняя часть, где анализируется преобладающая порода и группа возраста, Вам, видимо, не будет нужна, а нижняя часть макроса, где идёт разбор по категориям земель, видимо существенно меняться не будет (можете поменять возвращаемый код ResultValue). Что касается анализа покрытых лесом - там предстоит существенная переработка - у Вас требуется анализ описаний ярусов и пород, связанным соотношением 1:N, чего в плане насаждений не делается. Лучше всего воспользоваться функцией SELECT(...), которая возвращает некоторый параметр поиском по условию в подчинённых записях (ярусах, породах), и вызывать её придётся, видимо, многократно. Использование функции SELECT(...) на форуме обсуждалось неоднократно, поищите по названию функции. И, если в выражении отбора выделов есть уровень отбора по параметрам, относящимся к самому выделу (по преобладающий породе, например), эти условия лучше ставить в начале, до вызова SELECT(...), это ускорит выполнение.
Макросы ToPas для плана лесонасаждений находятся в папке: :\LesIS\_Les\ToPas\ PlanLss.tps
Но опять есть определенные вопросы:
1. Как правильно открыть макрос PlanLss.tps (имеется в виду какой программой)?
2. Как вносить изменения в макрос?
3. Как создать новый макрос?
4. Поиск использования функции SELECT(...) на форуме через меню «Поиск» не чего не дал - выдаёт ошибку поиска. Если можно сделайте ссылку.
5. Где почитать информацию по языку ToPas (синтаксис, обозначения и др.)?
Поделиться1714.08.2018 14:19:35
1. Использовать поле MetodTaks не по назначению не совсем правильно.
насколько я помню, эти пользовательские параметры введены в программу как раз для подобных случаев
Поделиться1814.08.2018 16:53:53
1. Использовать поле MetodTaks не по назначению не совсем правильно.
Действительно, это неправильно, но можно воспользоваться полями, которые советует Алексей, программа их точно не использует в своих интересах.
2. Возможно, указанные критерии нужно внести в 23 макет «Особенности выдела»
Именно этот макет использовать не надо, программа работает с ним специальным образом, так как описатели особенностей все равноправны и могут следовать в любом порядке, кроме того макетов особенностей может быть более одного.
3. Возможно, нужно создать новый макет
Это разрешено, макеты описаны в НСИ, свободные номера там есть. Прямо в редакторе НСИ добавляете описание в таблицу SisVydDopParam, появится возможность записывать в него, редактировать и использовать. Описание 36 макета будет начинаться со строки заголовка макета 3600, вслед за ним 3601, 3602, ... описываете параметры макета. Если поле со справочником, его тип 600, 200, 250 - числовые значения, 100 - текст, 400 - дата. Действуете по аналогии.
Поиск в доп. макетах для запроса значения конкретного описателя - примерно так (не проверял):
SELECT(@1.4.1.PARAMETR,(@1.4.MAKET = 36) and (@1.4.1.PARAMID=2))
возвращаемое значение будет текстом.
PlanLss.tps
Это вообще-то макрос плана для модуля Лесосек, просто план, это PlanL2.tps
1. Как правильно открыть макрос PlanLss.tps (имеется в виду какой программой)?
2. Как вносить изменения в макрос?
3. Как создать новый макрос?
Это обычный текстовый файл, создаёте и редактируете любым редактором типа Блокнота.
5. Где почитать информацию по языку ToPas
Что-то было в документации 6.8, обсуждалось на старом форуме и на этом. Специального руководства по нему на русском нет, мы предлагали пользователям вносить изменения в наши заготовки. Синтаксис языка - упрощённая версия Pascal, есть два режима его использования - встроенными выражениями (доступ к полям БД, простые вычисления и функции) и макросами в отдельном файле (где можно описывать переменные, использовать циклы и условия для разветвлений). Я знаю описания только на чешском, но мы консультируем, если возникают конкретные вопросы.
Чтобы использовать макрос из отдельного файла, программа должна его видеть - либо указывайте при вызове путь, либо размещайте в рабочем (кажется) каталоге, тогда без пути. Если программа его не видит, она Вам об этом скажет.
Отлаживать макросы проще всего, выводя вычисляемое им значение в качестве метки выдела - сразу видите, что он вычислил.
Поделиться1914.08.2018 18:27:00
Это разрешено, макеты описаны в НСИ, свободные номера там есть. Прямо в редакторе НСИ добавляете описание в таблицу SisVydDopParam, появится возможность записывать в него, редактировать и использовать. Описание 36 макета будет начинаться со строки заголовка макета 3600, вслед за ним 3601, 3602, ... описываете параметры макета. Если поле со справочником, его тип 600, 200, 250 - числовые значения, 100 - текст, 400 - дата. Действуете по аналогии.
Лучше бы это делать согласованно тут, обсуждая с другими пользователями. Можно сделать тему "Допмакеты". Иначе пойдет разносортица. Один 36 отведет под экотопы, другой под санатории, а третий под экотопы возьмет 37-й и т.д. и т.п.
Учитывать индивидуальные решения при последующих разработках мы не сможем. И помочь перекодировать тоже, если добавленный Вами персонально макет будет использован нами в дальнейшем для других целей.
Мне кажется лучше использовать пользовательские поля. Они и проще в использовании, так как сидят в разделе 1х1 базы.
Поделиться2024.08.2018 17:00:34
Добрый день, уважаемые разработчики. Пытаемся окрасить карту по дополнительному макету 21 по 1 столбцу (Типы ландшафта). Следовали поэтапно в соответствии с видеоуроком по составлению тематических карт. Составили таблицу преобразования цветов. При добавлении цвета в 1 столбце ("значение") задали значения цветов: 11, 12, 21, 22, 31, 32, 33 (такие коды в 1 столбце 21 макета). Далее, составили выражение для выбора типов ландшафта:
SELECT(@1.4.MAKET,(@1.4.MAKET = 21) and (@1.4.1.PARAMETR = '11') or (@1.4.1.PARAMETR = '12') or (@1.4.1.PARAMETR = '21') or (@1.4.1.PARAMETR = '22') or (@1.4.1.PARAMETR = '31') or (@1.4.1.PARAMETR = '32') or (@1.4.1.PARAMETR = '33'))
Проверили выражение. Все верно. Далее, нажали ок. Проверили еще раз, чтобы таблица преобразования цветов была наша. В итоге программа окрасила неверно: практически все окрасилось цветом 21 кода, некоторые выделы все-таки окрасились в свой цвет, но таких 2-3.
На каком этапе возникла ошибка?
Поделиться2124.08.2018 22:40:32
На каком этапе возникла ошибка?
Вы же запрашиваете по условию номер макета: SELECT(@1.4.MAKET, ... , то есть если условие в функции выполняется, то получите 21, номер макета. А хотите Вы, как я понял, первый параметр этого макета для всех выделов:
SELECT(@1.4.1.PARAMETR ,(@1.4.MAKET = 21 and @1.4.1.PARAMID = 1))
- выражение я не проверял, но думаю, что не ошибся.
Поделиться2328.08.2018 10:49:48
Ну, во-первых, я на Вашем выражении вижу @1.4.1.PARAMID = 11, а 11-го параметра там нет, их обычно не более 8.
А вообще Вам совет, который я тут уже неоднократно писал: если Вы подготовили выражение ToPas, сначала используйте его для вывода метки, Вы должны увидеть на выделах правильные цифры. Только после этого стройте легенды и всё остальное.
Поделиться2428.08.2018 12:21:13
Дмитрий Александрович, все получилось. Как Вы и посоветовали, проверили отображение меток, программа все правильно выбрала. В самом начале неправильно поставили вопрос. Нам необходимо было выбрать по кодировкам определенные типы ландшафта. Составили выражение
SELECT (@1.4.1.PARAMETR, (@1.4.1.PARAMETR = '11')) и программа выбрала все выделы по кодировке "11" (закрытые горизонтально сомкнутые) и окрасила по тем цветам, которые мы задали. Вроде решили проблему. Спасибо!
Поделиться2519.09.2018 15:57:33
Конечно можно, нужно просто сформулировать правильные условия в макросе с учетом номера мероприятия:
((@1.3.MERNOM = 1) AND (@1.3.MERKL = 1211) AND (@1.3.MERNOM = 2) AND (@1.3.MERKL = 3211))
- в таком виде работать не будет, так как строка применяется к мероприятию, а не к выделу; мероприятие не может быть одновременно разных кодов.Вот такой макрос возвратит уникальный код для каждого из сочетаний 1-го и 2-го мероприятий:
Valuemacro SelectMer;
{ Поучение информации о мероприятиях для полигонов - выделов.
Вер. 1.0 © Старостенко Д.А., 2017 год }var
ResultValue : string;
Kod1M, Kod2M : list of longint;begin
Kod1M := SELECT(@1.3.MERKL,@1.3.MERNOM = 1);
Kod2M := SELECT(@1.3.MERKL,@1.3.MERNOM = 2);
ResultValue := (Kod1M[1] + Kod2M[1]):C;
end.Примечание: макрос ToPas без указания пути TopoL ищет в каталоге _WorkingDirectory.\, то есть, например, в D:\LesIS
Отредактировано Дмитрий Александрович (13.12.2017 12:14:32)
Что то не получилось закрасить таким способом.
Поделиться2619.09.2018 18:04:40
Не пойму почему.
Поделиться2720.09.2018 10:59:37
ResultValue := (Kod1M[1] + Kod2M[1]):C;
В этом выражении что обозначает "С"?
Поделиться2920.09.2018 12:06:18
Это значит в легенде надо прописывать в строчку два значения? Я правильно понимаю? Например сплошная руб- 1200 и лесные культуры- 3200 в значении легенды писать 12003200?
Поделиться3020.09.2018 13:54:35
сделайте отображение меток на полигонах как CALCVALUE('SelectMer.tps') и посмотрите что он будет там выдавать
по идее, сначала выполнится сумма, потом :C
1200+3200 = 4400
4400:C = '4400'
Поделиться3120.09.2018 14:10:40
Ничего не выдает вообще! Выдел прописывает и на этом все!
Отредактировано EVK (20.09.2018 14:25:37)
Поделиться3320.09.2018 14:44:57
Срочно нужна помощь по окраске - данным макросом.
Поделиться3420.09.2018 16:57:05
Срочно нужна помощь по окраске - данным макросом.
Раньше чем на связи появится Дмитрий Александрович мы переключиться и Вам помочь не сможем, а он сейчас где то в дороге из отпуска. См. тут подробнее.
Поделиться3520.09.2018 17:40:59
Все получилось
Поделиться3625.11.2018 11:40:30
Конечно можно, нужно просто сформулировать правильные условия в макросе с учетом номера мероприятия:
((@1.3.MERNOM = 1) AND (@1.3.MERKL = 1211) AND (@1.3.MERNOM = 2) AND (@1.3.MERKL = 3211))
- в таком виде работать не будет, так как строка применяется к мероприятию, а не к выделу; мероприятие не может быть одновременно разных кодов.Вот такой макрос возвратит уникальный код для каждого из сочетаний 1-го и 2-го мероприятий:
Valuemacro SelectMer;
{ Поучение информации о мероприятиях для полигонов - выделов.
Вер. 1.0 © Старостенко Д.А., 2017 год }var
ResultValue : string;
Kod1M, Kod2M : list of longint;begin
Kod1M := SELECT(@1.3.MERKL,@1.3.MERNOM = 1);
Kod2M := SELECT(@1.3.MERKL,@1.3.MERNOM = 2);
ResultValue := (Kod1M[1] + Kod2M[1]):C;
end.Примечание: макрос ToPas без указания пути TopoL ищет в каталоге _WorkingDirectory.\, то есть, например, в D:\LesIS
Отредактировано Дмитрий Александрович (13.12.2017 09:14:32)
Не получается покрасить, от куда он должен брать цвета? это нужно прописывать ниже выражения как в плане лесонасаждений для каждой породы, только в нашем случае для каждого мероприятия?
Поделиться3726.11.2018 18:23:42
Не получается покрасить, от куда он должен брать цвета?
Макрос формирует некоторые коды, выведите их в качестве метки и посмотрите, устраивают ли они Вас, возможно, надо вместо (Kod1M[1] + Kod2M[1]) использовать какое-то другое вычисление, это зависит от значений, которые записаны в коды. Нужно, чтобы каждое сочетание давало уникальный код.
А на следующем шаге Вы делаете легенду окраски, где кодам, возвращаемым макросом, ставите в соответствие либо цвет, либо символ. Вот тогда Вы получите окраску, которую сами хотели бы получить.