Приклади робочих скриптів у звітових формах

Геодезична інформаційна система 6 та Геодезична інформаційна система 6 Агро

Модератори: NickS, feNICKs

LeViK
Повідомлень: 63
З нами з: 25 січня 2012, 09:52
Звідки: BeerDyansk

Re: Примеры рабочих скриптов в отчётных формах

Повідомлення LeViK » 21 листопада 2013, 10:53

Такие данные можно получить, хотя я не уверен, что это предусмотрено, в случае если расчёты координат точек вы проводите в GISе, если же координаты поворотных точек взяты из другой программы, то получить такое значение возможно лишь указывая точность определения координат по каждой точке в отдельности или же на все скопом. Немного не в тему, но тоже интересно: http://archive.nbuv.gov.ua/portal/chem_biol/Vnuvgp/tekhn/2012_2/Vt5830.pdf
Востаннє редагувалось 02 грудня 2014, 09:14 користувачем LeViK, всього редагувалось 1 раз.

Fater
Повідомлень: 72
З нами з: 21 грудня 2011, 21:26
Звідки: Донецкая область

Re: Примеры рабочих скриптов в отчётных формах

Повідомлення Fater » 27 листопада 2013, 11:30

скажите пожалуйста, как в экспликации (универсальная КЗВУ) сделать чтобы сумма площадей всех зон обмэжэнь не превышала площадь земельного участка?
например. участок 100% в охранной зоне ПЗФ или водоохранной зоне + охранная зона ЛЕП.
экспликация заполняется следующим образом: площадь участка (угодия) 10 га, в том числе в зоне ограничений 11 га.

feNICKs
Повідомлень: 412
З нами з: 13 січня 2012, 16:03
Контактна інформація:

Re: Примеры рабочих скриптов в отчётных формах

Повідомлення feNICKs » 27 листопада 2013, 11:47

Fater писав:скажите пожалуйста, как в экспликации (универсальная КЗВУ) сделать чтобы сумма площадей всех зон обмэжэнь не превышала площадь земельного участка?
например. участок 100% в охранной зоне ПЗФ или водоохранной зоне + охранная зона ЛЕП.
экспликация заполняется следующим образом: площадь участка (угодия) 10 га, в том числе в зоне ограничений 11 га.

1. проверьте сам расчет площадей - чтоб площадь была макс.точной - сперва суммируете площади в кв.м, а потом переводите в га.
2. проверьте тип данных переменных для площадей ограничений. Должен бить тип Double. Возможно у Вас стоит Integer, присвоение значение которому уже округляется до целого числа

Аватар користувача
NickS
Повідомлень: 1393
З нами з: 04 квітня 2008, 12:21

Re: Примеры рабочих скриптов в отчётных формах

Повідомлення NickS » 27 листопада 2013, 12:10

Fater писав:скажите пожалуйста, как в экспликации (универсальная КЗВУ) сделать чтобы сумма площадей всех зон обмэжэнь не превышала площадь земельного участка?

А что Вы будете делать, если у Вас идёт трубопровод и ЛЭП и она накладываются? :)
Сумма площадей всех зон или сервитутов может быть меньше площади участка (если они не заполняют весь участок), а может быть и больше (если они накладываются друг на друга) и это ВПОЛНЕ НОРМАЛЬНО! Если же какие-то уникумы решают проверять баланс ограничений, тогда старайтесь делать так, чтобы ограничения НЕ ПЕРЕСЕКАЛИСЬ. Тогда и сумма площадей их не будет больше участка, но это всёравно глупость. :facepalm:

LeViK
Повідомлень: 63
З нами з: 25 січня 2012, 09:52
Звідки: BeerDyansk

Re: Примеры рабочих скриптов в отчётных формах

Повідомлення LeViK » 27 листопада 2013, 16:45

Fater писав:........... площадь участка (угодия) 10 га, в том числе в зоне ограничений 11 га.

Неверно построена экспликация. Такие вопросы нужно лучше задавать на форуме землеустроителей. Если же хотите составлять экспликацию, то у вас будет два замкнутых полигона, на одном из них действует два ограничения, а на одном одно. сумма площадей их всё равно будет 10 га.

Аватар користувача
NickS
Повідомлень: 1393
З нами з: 04 квітня 2008, 12:21

Re: Примеры рабочих скриптов в отчётных формах

Повідомлення NickS » 28 листопада 2013, 10:02

LeViK писав:Если же хотите составлять экспликацию, то у вас будет два замкнутых полигона, на одном из них действует два ограничения, а на одном одно. сумма площадей их всё равно будет 10 га.

Если два ограничения пересекаются (а это вполне возможно! я уже наводил пример с лэп и трубопроводом) то каким боком сумма их площадей будет равна участку?

3.jpg
Два ограничения на участке пересекаются

LeViK
Повідомлень: 63
З нами з: 25 січня 2012, 09:52
Звідки: BeerDyansk

Re: Примеры рабочих скриптов в отчётных формах

Повідомлення LeViK » 02 грудня 2013, 09:43

NickS писав:Если два ограничения пересекаются (а это вполне возможно! я уже наводил пример с лэп и трубопроводом) то каким боком сумма их площадей будет равна участку?

Я вижу три фигуры, на двух по одному ограничению, а внутри фигуры ограниченной точками 2,3,6,7 действуют два ограничения. Да, для формирования XML необходимо отображение информации виде представленном на картинке, но использовать его для создания экспликации, в которой будет сводится общая площадь нельзя. Это как определять длину десяти килограмм воды. Безсмыслица. Если нужно показать количество земель на которые распространяется охранные обязательства в разрезе площадей, то основной в таблице должна быть площадь, а участки могут быть и с двумя и с тремя ограничениями. А если же нужно показать площади каждого обязательства, то суммировать их в итоге просто нельзя.

Аватар користувача
NoViChoK
Повідомлень: 140
З нами з: 10 вересня 2012, 18:09

Re: Примеры рабочих скриптов в отчётных формах

Повідомлення NoViChoK » 12 грудня 2013, 15:40

Может уже спрашивали, но я не нашёл. Подскажите какой код использовать в отчётах (fr3) что бы выводить новый код целевого назначения (например: вместо 1.8 - 02.01)

и ещё: можно ли зделать так чтобы в отчёте (fr3) "Акт пиёма-передачи межевых знаков" в строке - "Межові знаки передані на зберігання землекористувачу в кількості 12 штук." количество межевых знаков ровнялось не общему количеству точек участка (в даном примере 12), а подщитывало количество точек которые помечены как "закреплён на местности". Какой код надо использовать?

feNICKs
Повідомлень: 412
З нами з: 13 січня 2012, 16:03
Контактна інформація:

Re: Примеры рабочих скриптов в отчётных формах

Повідомлення feNICKs » 12 грудня 2013, 17:07

NoViChoK писав:Может уже спрашивали, но я не нашёл. Подскажите какой код использовать в отчётах (fr3) что бы выводить новый код целевого назначения (например: вместо 1.8 - 02.01)

и ещё: можно ли зделать так чтобы в отчёте (fr3) "Акт пиёма-передачи межевых знаков" в строке - "Межові знаки передані на зберігання землекористувачу в кількості 12 штук." количество межевых знаков ровнялось не общему количеству точек участка (в даном примере 12), а подщитывало количество точек которые помечены как "закреплён на местности". Какой код надо использовать?

1. Код для целевого

Код: Виділити все

        If (LocateData( 'DM2.TbUses', 'ID_Uses',  <DM1.TbUser."ID_Uses">)) Then
           If (RecordCount('DM2.TbUsesLnk') > 0) Then
              If (LocateData( 'DM2.TbTypeUse', 'ID_TypeUse', GetValue('DM2.TbUsesLnk', 'ID_TypeUse')) = True) And (Pos(Lowercase(<DM2.TbTypeUse."Name">), FunkName) = 0) Then
              Begin
                 If (Length(Trim(FunkName)) > 0) Then
                    FunkName := FunkName + ' та ';
                 FunkName    := FunkName + 'Код цільового - ' + <DM2.TbTypeUse."Number"> + IIF ( Pos('для ', Lowercase(<DM2.TbUses."Name">))=0, 'для '+Lowercase(<DM2.TbUses."Name">), Lowercase(<DM2.TbUses."Name">)) ;
              End;


2. количество знаков

Код: Виділити все

    DataFirst( 'DM1.TbPoint')
    PointCount := 0;
     
    While Not DataEOF( 'DM1.TbPoint')Do
    Begin
       If <DM1.TbPoint."Flag"> Then
           Inc( PointCount);                     
       DataNext( 'DM1.TbPoint');                               
    End;

Аватар користувача
NoViChoK
Повідомлень: 140
З нами з: 10 вересня 2012, 18:09

Re: Примеры рабочих скриптов в отчётных формах

Повідомлення NoViChoK » 13 грудня 2013, 12:30

Код: Виділити все

    DataFirst( 'DM1.TbPoint')
    PointCount := 0;
     
    While Not DataEOF( 'DM1.TbPoint')Do
    Begin
       If <DM1.TbPoint."Flag"> Then
           Inc( PointCount);                     
       DataNext( 'DM1.TbPoint');                               
    End;


Вставляю код, прописываю значение PointCount в integer, пишет: нет возможности преобразовать тип variant (String) в тип (Boolean). Что я делаю не так?