Звітні форми. Площа, експлікація і т.д.

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

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

Sonik
Повідомлень: 3
З нами з: 03 жовтня 2018, 16:35

Re: Отчётные формы. Площадь, экспликация и т.д.

Повідомлення Sonik » 04 жовтня 2018, 09:28

NickS писав:Для начала скиньте свой код, который формирует вид угодий. Для этого по-любому должен быть какой-то код и в зависимости от нужд, он разный. А я уже подскажу как его исправить, чтобы только имя было.
В целом, вид угодий состоит из номера (классификатора) и имени. Они находятся в разных полях таблицы, потому чтобы их вместе написать составляется строка. Надо просто из этой строки убрать добавление номера.

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

Var
   sStr, Isp : string;
   OldX, OldY, MinX, MaxX, MinY, MaxY, Cut : double;
   Num : integer;

procedure DetailHeader1OnBeforePrint(Sender: TfrxComponent);
begin
  with DetailHeader1, Engine do
  begin
   Cut  := 1;
   Num  := 0;

   MinX := <DM1.TbPlanPoint."X">;
   MaxX := <DM1.TbPlanPoint."X">;
   MinY := <DM1.TbPlanPoint."Y">;
   MaxY := <DM1.TbPlanPoint."Y">;

   OldX := <DM1.TbPlanPoint."X">;
   OldY := <DM1.TbPlanPoint."Y">;
  end
end;

procedure DetailData1OnBeforePrint(Sender: TfrxComponent);
var
   SetUgol, X, Y : double;
begin
  with DetailData1, Engine do
  begin
   X := <DM1.TbPlanPoint."X">;
   Y := <DM1.TbPlanPoint."Y">;

   Memo44.Visible := (Num <> 0);
   Memo45.Visible := (Num <> 0);
   Memo46.Visible := (Num <> 0);

   If Num = 0 Then
      Num := <DM1.TbPlanPoint."Number">
   Else
      Begin
         If (OldY = 0) And (OldX = 0) Then
            SetUgol := 0
         Else
            If (Y -OldY = 0) Or (X -OldX = 0) Then
               SetUgol := Abs( ArcTan( 0))
            Else
               SetUgol := Abs( ArcTan( (Y -OldY) /(X -OldX)));

         If (X -OldX) >= 0 Then
            Begin
               If (Y -OldY) >= 0 Then
                  SetUgol := SetUgol
               Else
                  SetUgol := Pi*2 -SetUgol;
            End
         Else
            Begin
               If (Y -OldY)>= 0 Then
                  SetUgol := Pi -SetUgol
               Else
                  SetUgol := Pi +SetUgol;
            End;

         Cut := Abs( (180 /Pi) *SetUgol);

         If Num = <DM1.TbPlanPoint."Number"> Then
            Num := 0;
      End;

   If X < MinX Then MinX := X;
   If Y < MinY Then MinY := Y;
   If X > MaxX Then MaxX := X;
   If Y > MaxY Then MaxY := Y;

   OldX := X;
   OldY := Y;
  end
end;


procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
   sStr := '';

   If (<DM1.TbPlan."ID_TypeLand"> > 0) And (LOCATEDATA('DM2.TbTypeLand', 'ID_TypeLand', <DM1.TbPlan."ID_TypeLand">) = True) Then
      sStr := <DM2.TbTypeLand."Number">'. ' + UpperFirst(<DM2.TbTypeLand."Name">)
   Else
      sStr := <DM1.TbPlan."Name">;
end;

begin
   If RECORDCOUNT('DM1.QiTechDoc') > 0 Then
     If LOCATEDATA('DM1.QbFirm', 'ID_Firm', <DM1.QiTechDoc."ID_Firm">) Then
         If LOCATEDATA('DM1.TbWorking', 'ID_People', <DM1.QiTechDoc."ID_People">) then
            Isp := <DM1.TbWorking."People">;
end.

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

Re: Отчётные формы. Площадь, экспликация и т.д.

Повідомлення NickS » 04 жовтня 2018, 18:01

Вот код, который отвечает за вид угодий:

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

   sStr := '';

   If (<DM1.TbPlan."ID_TypeLand"> > 0) And (LOCATEDATA('DM2.TbTypeLand', 'ID_TypeLand', <DM1.TbPlan."ID_TypeLand">) = True) Then
      sStr := <DM2.TbTypeLand."Number">'. ' + UpperFirst(<DM2.TbTypeLand."Name">)
   Else
      sStr := <DM1.TbPlan."Name">;

Надо его заменить этим:

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

   sStr := '';

   If (<DM1.TbPlan."ID_TypeLand"> > 0) And (LOCATEDATA('DM2.TbTypeLand', 'ID_TypeLand', <DM1.TbPlan."ID_TypeLand">) = True) Then
      sStr := UpperFirst(<DM2.TbTypeLand."Name">)
   Else
      sStr := <DM1.TbPlan."Name">;

Тоесть, просто убрали вставку номера:

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

<DM2.TbTypeLand."Number">'. ' +

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

Re: Отчётные формы. Площадь, экспликация и т.д.

Повідомлення NoViChoK » 27 квітня 2019, 18:32

В отчете "Реестр договоров аренды по району (Земельные участки)" неправильно подсчитывает общую площадь, когда есть участки у которых несколько владельцев и для каждого создан договор аренды.

Даже если в договоре аренды указать что часть участка например 1/2 и вручную вписать половину площади - все равно в отчете будет считать два раза площадь всего участка.

То-есть если имеем 3 участка по 2 га. например и у одного участка два владельца и на каждого создан договор то отчет выдаст общую площадь не 6 га. в сумме, а 8 га.

Не проверял, но скорее всего тоже будет и с общей суммой нормативки.
Пример как прописаны договора прикрепил.
Вкладення
.PNG
.PNG (8.88 Кіб) Переглянуто 26413 разів

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

Re: Отчётные формы. Площадь, экспликация и т.д.

Повідомлення NickS » 02 травня 2019, 11:23

NoViChoK писав:В отчете "Реестр договоров аренды по району (Земельные участки)" неправильно подсчитывает общую площадь, когда есть участки у которых несколько владельцев и для каждого создан договор аренды.

Даже если в договоре аренды указать что часть участка например 1/2 и вручную вписать половину площади - все равно в отчете будет считать два раза площадь всего участка.

То-есть если имеем 3 участка по 2 га. например и у одного участка два владельца и на каждого создан договор то отчет выдаст общую площадь не 6 га. в сумме, а 8 га.

Не проверял, но скорее всего тоже будет и с общей суммой нормативки.
Пример как прописаны договора прикрепил.


Договора аренды напрямую не связаны с владельцами. Договора аренды связаны с участком. Потому не важно сколько на участке владельцев - если договор один и в нём указан один арендодатель, то и будет одна запись про аренду, одна площадь и одна оценка. Так же само может быть один владелец и несколько договоров аренды. Этот момент Вы должны контролировать. Если два владельца, то можно либо в один договор их вписать и площадь участка будет, либо развести по разным договорам, но тогда площадь аренды должна быть соответствующей, а не на весь участок. Конечно, как я увидел, шаблон выводит (а соответственно и суммирует) площадь участка, а не аренды. Это я исправлю. Видимо считалось, что это поле для площади участка, а не аренды.
Обновлённый шаблон можно скачать по адресу:
http://www.shels.com.ua/support/download/gis6/reports/gis6_reports0292.zip

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

Re: Отчётные формы. Площадь, экспликация и т.д.

Повідомлення NoViChoK » 11 травня 2019, 11:15

Какой код надо дописать в этот шаблон что бы вытащить дату подписи договора аренды?.
Ну или если это сложно то просьба дописать, думаю не только мне будет это полезно.

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

Re: Отчётные формы. Площадь, экспликация и т.д.

Повідомлення NickS » 17 травня 2019, 11:58

NoViChoK писав:Какой код надо дописать в этот шаблон что бы вытащить дату подписи договора аренды?.
Ну или если это сложно то просьба дописать, думаю не только мне будет это полезно.

Дату регистрации, как я понял?

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

  //----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  // Договор аренды

  DateReg := ''; // Дата регистрации

  If RecordCount('DM1.QiLease') > 0 then
  begin
    If <DM1.QiLease."Reg_Date"> > 0 then
      DateReg := DateToStr(<DM1.QiLease."Reg_Date">);
  end;

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

Re: Отчётные формы. Площадь, экспликация и т.д.

Повідомлення NoViChoK » 02 червня 2019, 19:20

NickS писав:Дату регистрации, как я понял?

Дату підписання.
Я то розібрався як її витягти окремим шаблоном.
А от в "Реестр договоров аренды по району (Земельные участки)" не втулю бо складно там якось )
Вкладення
.PNG
.PNG (5.05 Кіб) Переглянуто 27188 разів

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

Re: Отчётные формы. Площадь, экспликация и т.д.

Повідомлення NoViChoK » 02 червня 2019, 19:48

І ще прохання по шаблону "Акт приёмо-передачи межевых знаков 2017"

В списках межових знаків в колонці абрис та опис місцезнаходження межового знаку там де пишеться текст, що "межовий знак розташований за координатами ..." зробити шось типу такого: "межовий знак розташований за координатами X=1000 Y=1000 на відстані 142,34 м. від закріпленого теодолітного ходу, направлення 101°25’45’’ "
Тобто відтсань та кут з точки знімання до точки ділянки.

Якщо вважаєте це зайвим, то киньте код я його спробую сам втулити, бо деякі експерти активно юзають п. 3.9 інструкції по встановленню і це все приходиться писати вручну.
Востаннє редагувалось 03 червня 2019, 21:08 користувачем NoViChoK, всього редагувалось 1 раз.

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

Re: Отчётные формы. Площадь, экспликация и т.д.

Повідомлення NickS » 03 червня 2019, 17:32

NoViChoK писав:
NickS писав:Дату регистрации, как я понял?

Дату підписання.
Я то розібрався як її витягти окремим шаблоном.

Дата підписання, це поле "DateSecond"

NoViChoK писав:А от в "Реестр договоров аренды по району (Земельные участки)" не втулю бо складно там якось )

Так, там складніше. Треба спочатку знайти такий код формування таблиці оренд:

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

'Select DISTINCT L.Reg_Book, L.SumTax, L.Cost, L.Reg_Number, L.Reg_Date, L.DateFirst, L.DateLast, L.Termin, L.ID_LeaserType, L.ID_LeaserPeople, L.Area, ' +

і виправити його таким чином:

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

'Select DISTINCT L.Reg_Book, L.SumTax, L.Cost, L.Reg_Number, L.Reg_Date, L.DateFirst, L.DateLast, L.Termin, L.ID_LeaserType, L.ID_LeaserPeople, L.Area, L.DateSecond, ' +

Тобто, добавити вказане вище поле, щоб в таблю воно витягувалось.

А далі знайти код:

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

  If <LeaseSel."Reg_Date"> > 0 then
    Reg_Date := DateToStr(<LeaseSel."Reg_Date">);

і нижче нього добавити:

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

  If <LeaseSel."DateSecond"> > 0 then
    DateSecond := DateToStr(<LeaseSel."DateSecond">);

Звісно, в опис змінних також треба добавити нову змінну "DateSecond" і колонку нову добавити в таблицю.

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

Re: Отчётные формы. Площадь, экспликация и т.д.

Повідомлення NickS » 03 червня 2019, 17:41

NoViChoK писав:В списках межових знаків в колонці абрис та опис місцезнаходження межового знаку там де пишеться текст, що "межовий знак розташований за координатами ..." зробити шось типу такого: "межовий знак розташований за координатами X=1000 Y=1000 на відстані 142,34 м. від закріпленого теодолітного ходу, направлення 101°25’45’’ "
Тобто відтсань та кут з точки знімання до точки ділянки.

Там можна вивести відстань до ближчого межового знаку. Причому тут теодолітний хід? А якщо треба розраховувати відстань ще до теодолітного ходу, то спочатку потрібно визначитись ЗВІДКИ брати цю точку і яку саме?