Снова подымаю тот же вопрос: можно ли как то передавать в Reports информацию о текущих единицах измерения (га. или кв.м), не обращая внимания на дескриптора и не пытаясь вычислить программно (если и вычислить, то какой нибудь способ отличный от вышеуказанного)?
И еще вопрос, уверен, что не последний:
Если в текстовом файле в папке List есть два поля, код и его значение. В дигиталс заполняется код, а как в репортс вывести значение этого кода?
Снова подымаю тот же вопрос: можно ли как то передавать в Reports информацию о текущих единицах измерения (га. или кв.м), не обращая внимания на дескриптора и не пытаясь вычислить программно (если и вычислить, то какой нибудь способ отличный от вышеуказанного)?
Попробуй так: [PARAM(‘SZ’,1,1)]
Снова подымаю тот же вопрос: можно ли как то передавать в Reports информацию о текущих единицах измерения (га. или кв.м), не обращая внимания на дескриптора и не пытаясь вычислить программно (если и вычислить, то какой нибудь способ отличный от вышеуказанного)?
Можете анализировать значения площади, допустим меньше 100 значит гектары, больше 100 значит кв.м. Нельзя будет использовать на участках больше 100 га или меньше 100кв.м. Но корявенький какой-то вариант получается, чем Вас предыдущий не устраивает?
И еще вопрос, уверен, что не последний:
Если в текстовом файле в папке List есть два поля, код и его значение. В дигиталс заполняется код, а как в репортс вывести значение этого кода?
SEF(Param(ID1111),‘filename.txt’)
где 1111 - ID параметра в котором содержится код
Всем привет!
И еще пару вопросов:
- У меня в Дилянке есть несколько Угидь. Мне нужно в репортс передать коды этих Угидь через запятую, как такое реализовать?
- У Угидь есть Обмеження, иногда Обмеження ставиться на всю Дилянку, иногда на одне Угиддя, иногда на несколько Угидь. Как мне вытащить в Репортс эти Обмеження. В случае, если оно принадлежит Дилянке, то понятно. Как это сделать, если Обмеження есть в Угидях?
Надеюсь, что понятно описал ![]()
Почти такой же вопрос я задавал. Вот ответ Формирорвание отчета в Reports - #137 від Dmitry_Zolotar
Все работает!
Да, вопрос правда похож и с Сумижниками у меня так и работает, а вот ответ 2) PARAM(‘LS’,N,I) , где N - номер участка /от 1 до OBJCOUNT/, I - номер угодья /от 1 до CHILDCOUNT(N) / мне немного не понятен. PARAM(‘LS’,N,I) где вводить? Что ставить на место N и I? Можно живой пример?
Как-то было озвучено обещание создать шаблончик приватизации для пофамильного режима на четыре участка. Так вот, можно скромно спросить:Что- нибудь делается в этом направлении или…? Спасибо за ответ.
Вариант требует небольшой доработки, выкладываю чтоб Вы попробовали.
Переменная TXAD формируется в зависимости от того совпадают ли адреса участков, ее значение присутствует практически на каждой странице документации. Попробуйте разные варианты (с одинаковыми адресами, с разными) и киньте на zolotar@vingeo.com как должно(может) выглядеть решение местного совета в случае множества участков
TD_priv_2d.zip (16.5 KB)
Да, вопрос правда похож и с Сумижниками у меня так и работает, а вот ответ 2) PARAM(‘LS’,N,I) , где N - номер участка /от 1 до OBJCOUNT/, I - номер угодья /от 1 до CHILDCOUNT(N) / мне немного не понятен. PARAM(‘LS’,N,I) где вводить? Что ставить на место N и I? Можно живой пример?
Работающие примеры в папке Digitals\Templates найдёте, посмотрите шаблоны для разных режимов (одиночный, пофамильный и групповой). Особенно актуальными для понимания окажутся функции GetParcelByCV и GetAreaByCN в скрипте экспликации пофамильного режима.
На вопрос “где вводить?” нет короткого ответа. PARAM( , , ) - одна из многих функций, которые можно использовать в скрипте или в тексте мемо, например.
Спасибо за подсказку. И правда, в файле примера отчета Vityag.fr3 есть ответ на вопрос, как вытащить обмеження и сервитуты с угидь. Они даже коментами такими помечены:
Проверка есть ли обмеження в участке. Если да, то выводим строку с данными обмеження по участку. Если нет, то проверяем, есть ли хотя бы в одном угодии обмеження. Если есть хоть в одном, выводим строку с данными по этому угодию
–
Проверка есть ли сервитут в участке. Если да, то выводим строку с данными сервитут по участку. Если нет, то проверяем, есть ли хотя бы в одном угодии сервитут. Если есть хоть в одном, выводим строку с данными по этому угодию.
Привожу их здесь, может понадобится кому, да и при поиске найти можно будет! ![]()
Хочу в Репортсі прописати видалення послідовності символів ,-
Var adresa:string;
i:integer;
begin
for i:=1 to Length(adresa) do
if adresa[i]=‘-’ then adresa:=Delete(adresa,i-1,2)
end
Зявляється повідомлення про несумісність типів в функції Delete.
Var adresa:string;
i:integer;
begin
for i:=1 to Length(adresa) do
if adresa[i]=‘-’ then Delete(adresa,i-1,2)
end
Погодите, господа..
С таким кодом вы рискуете получить “out of bounds”?! Длина строки задается в цикле, а в процессе явно будет уменьшаться..
Честно, не проверял.![]()
Хочу в Репортсі прописати видалення послідовності символів ,-
Var adresa:string;
i:integer;
begin
for i:=1 to Length(adresa) do
if adresa[i]=‘-’ then adresa:=Delete(adresa,i-1,2)
endЗявляється повідомлення про несумісність типів в функції Delete.
Удаляя символы из строки, Вы уменьшаете ее длину, при этом кол-во итераций в цикле задано в начале и остается неизменным
На какой-то итерации получите ситуацию когда i уже больше Length(adresa), цикл при этом не завершится. Да и значения вроде “Белгород-Днестровский” станут “БелгороДнестровский”
Попробуйте что-то вроде:
var adresa:String;
ip:Integer;
begin
…
adresa:=Param(‘..’);
ip:=Pos(‘,-’,adresa);
while ip>0 do
begin
adresa:=Copy(adresa,1,ip-1)+Copy(adresa,ip+2,Length(adresa)-2);
ip:=Pos(‘,-’,adresa);
end;
…
end.
Этот код не удалит первый минус ![]()
Погодите, господа..
С таким кодом вы рискуете получить “out of bounds”?! Длина строки задается в цикле, а в процессе явно будет уменьшаться..
Честно, не проверял.
Тем не менее и без проверки замечание справедливое. При вызове Delete длина строки уменьшается и символы смещаются влево.
Кроме того, а что если строка будет начинаться с “-”?
Учитывая вышесказанное предлагаю корректный и более производительный вариант:
function DeleteMinus(s:string):string;
var n: integer;
begin
if s[1]=‘-’ then Delete(s,1,1);
repeat
n:=Pos(‘,-’,s);
if n>0 then Delete(s,n,2);
until (n=0) or (Length(s)=0);
Result:=s;
end;
Дякую всім, особливо Антону Горпиничу
. Я думав він в основному по Геодезії, а виявляється і Репортс теж його коньок.
И все же первый минус надо удалять после остальных и вместе с запятой после него
function DeleteMinus(s:string):string;
var n: integer;
begin
repeat
n:=Pos(‘,-’,s);
if n>0 then Delete(s,n,2);
until (n=0) or (Length(s)=0);
if s[1]=‘-’ then if Length(s)>1 then Delete(s,1,2) else s:=‘’;
Result:=s;
end;
Дякую всім, особливо Антону Горпиничу
. Я думав він в основному по Геодезії, а виявляється і Репортс теж його коньок.
Не конёк, а детище
Ув. разработчики, подскажите пожалуйста, возможно такое что бы Репорт сам выставлял длины, номера точек и площадь когда загружает растр? СПС.