Звіти в ГІС 6

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

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

Gorek
Повідомлень: 3
З нами з: 10 червня 2021, 21:42

Re: Отчеты в GIS6

Повідомлення Gorek » 10 червня 2021, 22:05

Добрый день!

Пытаюсь добавить в свой отчет "Кадастровый план" еще один листик с межевыми знаками. Часть кода и фрагмент отчетной формы переношу из стандартного "Акт приёмо-передачи межевых знаков 2017.fr3" в нужные места. Добавляю объявление необходимых переменных, уточняю наименование вставленных объектов, компилирую и ... получаю ошибку "Неопределенный идентификатор:'MejnZN'".
Я понимаю, чтобы работать с этой таблицой БД мне нужно добавить её в "Поля БД". Однако, где это сделать, найти не могу.
Помогите, пожалуйста! :tnk:

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

//===================================================================================================================================================================
// Страница 3 ведомость межових знаков
//===================================================================================================================================================================

procedure MasterDataMOnBeforePrint(Sender: TfrxComponent);
begin
  LineMejnNumb := LineMejnNumb + 1;
  MarkNote     := ''; // Описание межевого знака
  CBVisKoord:=false;

  If (LineMejnNumb >= 1) and (LineMejnNumb <= StrToInt(MejnZN.RecordCount)) then
  begin
    MasterDataM.Visible := true;

    //---------------------------------------------------------------------------------------------------------------------------------------------------------------
    // Рисунок

//    With Picture2, Engine do
//    begin
//      GisShift(<MejnZN."X">, <MejnZN."Y">);

//      DrawWmf(Width * 10 / (2560/6773), Height * 10 /(2560/6773), StrToInt(LDScale.Text));
//      Loadfromfile( StartPath +'\gis.wmf');
//    end;

    //---------------------------------------------------------------------------------------------------------------------------------------------------------------
    // Описание межевого знака

    MarkNote := Trim(<MejnZN."Note">);

    If CBVisKoord then
    begin
      If Length(MarkNote) > 0 then
      MarkNote := MarkNote + #13;
      MarkNote := MarkNote + 'Межовий знак розташований за координатами: X - ';
      MarkNote := MarkNote + FormatFloat(fdPoint, <MejnZN."X">) + ' Y - ';
      MarkNote := MarkNote + FormatFloat(fdPoint, <MejnZN."Y">);
    end;
  end
  else
    MasterDataM.Visible := false;
end;


MejnZN.jpg

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

Re: Отчеты в GIS6

Повідомлення NickS » 11 червня 2021, 09:28

Gorek писав:компилирую и ... получаю ошибку "Неопределенный идентификатор:'MejnZN'".
Я понимаю, чтобы работать с этой таблицой БД мне нужно добавить её в "Поля БД". Однако, где это сделать, найти не могу.
Помогите, пожалуйста! :tnk:


В отчётах я часто использую временные таблицы ADO. Это нужно, когда мы хотим использовать какой-то особенный отбор или сортировку для стандартных таблиц или использовать те таблицы из базы, которые не подключены к FastReport. Как создать такую таблицу? Есть два варианта:
1. Становимся на первую страницу шаблона. С левой стороны в редакторе выбираем компонент "Компоненты ADO" - "Запрос ADO". Внизу страницы появится этот компонент. Надо его выделить и в поле "Name" вставить нужное название, например "MejnZN". Нажимаем Enter.
2. Если копируем код из другого шаблона, это значит что в том шаблоне эти таблицы есть, потому можно сдеть проще. Выделяем внизу страницы этот компонент, нажимаем на клавиатуре Ctrl+C. Становимся на свой шаблон и первую страницу, нажимаем Ctrl+V.
Всё. Таблица готова. Теперь надо правильно вставлять её код (создание запроса, открытие таблицы, закрытие таблицы и т.д.), на странице "Код".

Gorek
Повідомлень: 3
З нами з: 10 червня 2021, 21:42

Re: Отчеты в GIS6

Повідомлення Gorek » 14 червня 2021, 13:19

Спасибо огромное! Получилось!

В продолжении темы нового оформления кадастрового плана, на который теперь нужно втулить еще и
"відомості про перенесення в натуру (на місцевість) меж охоронних зон, прибережних захисних смуг і пляжних зон, зон санітарної охорони, санітарно-захисних зон і зон особливого режиму використання земель (за наявності) та меж земельної ділянки (у разі формування земельної ділянки);
, пожалуйста, если возможно, подскажите еще один момент:
Как я понимаю, в данном запросе формируется таблица MejnZN со всеми межовими знаками земельного участка:

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

 
// Главная таблица межевых знаков
  MejnZN.SQL.Text := 'Select M.MarkNumber, M.Note, M.Visible, P.* ' +
            'From Point P, Polygon L, LandMark M ' +
            'Where (L.ID_Object = ' + IntToStr(<DM1.QbObject."ID_Object">) + ') and (P.ID_Polygon = L.ID_Polygon) and (M.ID_LandMark = P.ID_LandMark) ' +
            'Order by P.Number';
  MejnZN.Open;

А как получить, подобную таблицу MejnZNLimitation, ТОЛЬКО с теми межовими знаками, которые СОВПАДАЮТ с точками контуров ограничения?
Заранее благодарю!!!

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

Re: Отчеты в GIS6

Повідомлення NickS » 14 червня 2021, 17:09

Gorek писав:А как получить, подобную таблицу MejnZNLimitation, ТОЛЬКО с теми межовими знаками, которые СОВПАДАЮТ с точками контуров ограничения?
Заранее благодарю!!!

У ограничений есть отдельная таблица координат и в этой таблице нету никакой связи с межевыми знаками на участке. Просто потому что ограничения - это условные точки и они не обязаны закрепляться вообще. Но, в целом, вы можете это проделать, если написать такой запрос, который отберёт межевые знаки на участке, потом точки на ограничении и сравнит координаты в обоих таблицах, отобрав только совпадающие. Да, это можно сделать. Вот навожу пример, как сделать такую таблицу:

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

  MejnZNLimitation.SQL.Text := 'Select M.MarkNumber, N.X, N.Y, N.Z ' +
              'From Polygon L, Point P, LandMark M, LimPoint N ' +
              'Where (L.ID_Object = ' + IntToStr(<DM1.QbObject."ID_Object">) + ') and (P.ID_Polygon = L.ID_Polygon) and (M.ID_LandMark = P.ID_LandMark) and ' +
                  '(N.ID_Limination = ' + IntToStr(<DM1.TbLimination."ID_Limination">) + ') and (N.X = P.X) and (N.Y = P.Y)';
  MejnZNLimitation.Open;


Но есть один нюанс. Если вы используйте такую технологию, что недотягиваете ограничение на 1-2 мм к участку (чтобы потом не было выходов за границы участка), тогда этот запрос не найдёт вам межевые знаки. Просто потому что идёт проверка на точное совпадение. Можно, конечно сравнивать и несколько округлённые значения... но это уже надо над этим подумать...

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

Re: Отчеты в GIS6

Повідомлення NickS » 25 червня 2021, 10:11

Згідно нововведень в законодавстві, розробили новий шаблон кадастрового плану:
https://www.shels.com.ua/support/downlo ... ts0479.zip
Буде доступний всім в оновленні 6.2.2.4

Victor
Повідомлень: 26
З нами з: 22 квітня 2020, 08:24

Re: Отчеты в GIS6

Повідомлення Victor » 28 липня 2021, 15:58

Доброго дня. Потрібно зробити вивід умовних позначень з даними теодолітного ходу та пікетами (вивід горизонтального прокладання пікетів та відстань між точками теодолітного ходу). З виводом пікетів все "ок" а от з відстаннями теодолітного ходу виводить всі проміри. Можливо зробити щоб виводило min. чи max. значення або проміри між заданими точками?
Вкладення
11.JPG
Таблиця

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

Re: Отчеты в GIS6

Повідомлення NickS » 29 липня 2021, 09:15

Victor писав:Доброго дня. Потрібно зробити вивід умовних позначень з даними теодолітного ходу та пікетами (вивід горизонтального прокладання пікетів та відстань між точками теодолітного ходу). З виводом пікетів все "ок" а от з відстаннями теодолітного ходу виводить всі проміри. Можливо зробити щоб виводило min. чи max. значення або проміри між заданими точками?

Звертайтесь в технічну підтримку, показуйте свій шаблон та розповідайте детальніше що хочете зробити. Зараз у мене до вашого прохання купа запитань і незрозуміло як формується таблиця.

Victor
Повідомлень: 26
З нами з: 22 квітня 2020, 08:24

Re: Отчеты в GIS6

Повідомлення Victor » 16 серпня 2021, 13:26

Доброго дня. В новому оновлені будуть зміни згідно Постанови КМУ від 28 липня 2021 р. № 821?

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

Re: Отчеты в GIS6

Повідомлення NickS » 16 серпня 2021, 14:15

Victor писав:Доброго дня. В новому оновлені будуть зміни згідно Постанови КМУ від 28 липня 2021 р. № 821?

Будуть, але вже в оновленні 6.2.2.5. Ця постанова ще не ввійшла в силу. Має ж бути якийсь перехідний період.