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

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

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

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

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

Повідомлення NickS » 06 липня 2020, 09:53

valik1996 писав:Добрый вечер. Интересует работа с CheckBox - например - если стоит "галочка" - то в текст добавит "підлягає", если "галки" нет - добавит "не підлягає".

1. Первый код будет работать, второй не будет писать "не підлягає".
2. Но в любом случае, оба кода избыточно сделаны. Для условия достаточно результата true, а свойство Ckecked как раз выдаёт это значение. Плюс, второе условие не нужно, так как оно будет выполнятся, если не отмечено. Потому правильный код такой:

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

  Zgrun := '';
   
  If CheckBox1.Checked then
    Zgrun := 'підлягає'
  else
    Zgrun := 'не підлягає';

3. Очень важно то, когда будет выполнятся этот код! Если Вы вставили его в главную часть инициализации (перед end.), то это бессмыслено, ведь сначала выполняется главная часть кода, а потом только открывается диалоговое окно. Потому, в диалоговом окне должна быть кнопка, типа ОК и уже в ней, в событии "OnClick" надо создать процедуру и уже в эту процедуру вставить код анализа птички. Вам же надо, чтобы анализировались введёные данные после нажатия кнопки ОК.

Вот пример всего кода:

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

var
   Zgrun : string;

// Это процедура, которая выполняется, когда нажимается кнопка "Button1" в диалоговом окне
procedure Button1OnClick(Sender: TfrxComponent);
begin
  Zgrun := '';

  If CheckBox1.Checked then
    Zgrun := 'підлягає'
  else
    Zgrun := 'не підлягає';
end;

// Это блок инициализации, он выполняется первым
begin

end.

Xoxol
Повідомлень: 5
З нами з: 27 березня 2020, 11:51

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

Повідомлення Xoxol » 12 липня 2020, 23:11

NickS писав:
NoViChoK писав:
NickS писав: Скорее всего, что Вы добавляли эти строки после, а это не правильно!

begin
// VisibleGisLayer(0, true); // участок
// VisibleGisLayer(1, true); // план
// VisibleGisLayer(2, false); // агрогруппы
// VisibleGisLayer(3, false); // таблица расчётов
// VisibleGisLayer(4, true); // обозначения
// VisibleGisLayer(5, true); // ситуация
// VisibleGisLayer(6, true); // чертёж
// VisibleGisLayer(7, false); // каталог координат
// VisibleGisLayer(8, true); // горизонтали
// VisibleGisLayer(9, true); // оформление
// VisibleGisLayer(10, false); // общий
// VisibleGisLayer(11, true); // сервитуты
// VisibleGisLayer(12, true); // ограничения
// VisibleGisLayer(13, true); // аренда
// VisibleGisLayer(14, false); // теодолитный ход
// VisibleGisLayer(15, false); // карта
// VisibleGisLayer(16, false); // проектные дороги
// VisibleGisLayer(17, false); // сторонние земли
// VisibleGisLayer(18, false); // секущая линия
// VisibleGisLayer(19, false); // межевые знаки
// VisibleGisLayer(20, false); // коммуникации
//    VisibleGisMenu('ShowOMLine', false); // стрелки смежеств
//    VisibleGisMenu('ShowOMLitera', false); // буквы смежества
//    VisibleGisMenu('ShowOMColor', false); // смежества цветом

DrawWmf(Width * 10 / (2560/6773), Height * 10 /(2560/6773), MainScale);
Loadfromfile( StartPath +'\gis.wmf');
end;
end;[/code]

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

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

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

Повідомлення NickS » 13 липня 2020, 10:31

Xoxol писав:Как в этом коде добавить да бы отображалась площадь участка, но не отображались площадя угодий, разделительная черта и их найменования.

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

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

VisibleGisMenu('ShowPlanArea', false);


Названия пунктов надо искать в файле "C:\Program Files (x86)\GIS6\_Описание переменных.txt". Располагать эту функцию надо до функции DrawWmf! Но если Вы хотите отключить только для шаблона, а в после, чтобы она была включена, то до функции DrawWmf отключаете, а после - включаете:

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

VisibleGisMenu('ShowPlanArea', false);

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

VisibleGisMenu('ShowPlanArea', true);


И таким образом можно настроить отображение как захочется, хоть для каждого рисунка отдельно (если в шаблоне несколько рисунков из камеральных).

Yura_Fox
Повідомлень: 10
З нами з: 21 жовтня 2014, 13:15

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

Повідомлення Yura_Fox » 13 липня 2020, 18:31

как отфильтровать каталог для плана только отмеченных точек, то есть если есть вырезка мне она не нужна нужны только внешние точки

//-----------------------------------------------------------------------------------------------
// Координаты

MaxCoord := 0; //Максимальное количество координат

DataFirst('DM1.TbPolygon');

While DataEOF('DM1.TbPolygon') = false do
begin
MaxCoord := MaxCoord + RecordCount('DM1.TbPoint');
DataNext('DM1.TbPolygon');
end;


//-----------------------------------------------------------------------------------------------

что добавить чтобы MaxCoord соответствовал количествку поворотных точек

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

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

Повідомлення NickS » 14 липня 2020, 09:26

Yura_Fox писав:как отфильтровать каталог для плана только отмеченных точек, то есть если есть вырезка мне она не нужна нужны только внешние точки

Плана, имеется ввиду угодия или речь идёт о координатах участка?

Yura_Fox
Повідомлень: 10
З нами з: 21 жовтня 2014, 13:15

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

Повідомлення Yura_Fox » 14 липня 2020, 13:33

координати участка на кадастровому плані

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

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

Повідомлення NickS » 14 липня 2020, 14:48

Yura_Fox писав:координати участка на кадастровому плані

Відіслав підправлений шаблон. Там багато маніпуляцій з кодом і залежить від самого шаблона.

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

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

Повідомлення NoViChoK » 22 грудня 2020, 18:01

Чи можливо прописати в коді шаблона вимкнення відображення всіх шарів карти (шари не знаходяться в групі)?

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

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

Повідомлення NickS » 23 грудня 2020, 09:17

NoViChoK писав:Чи можливо прописати в коді шаблона вимкнення відображення всіх шарів карти (шари не знаходяться в групі)?

Ні, нажаль, такої команди не має. Шари можна вимикати по номеру розташування (VisibleMapLayer), а також по імені (VisibleMapLayerByName).

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

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

Повідомлення NoViChoK » 23 грудня 2020, 14:02

NickS писав:
NoViChoK писав:Чи можливо прописати в коді шаблона вимкнення відображення всіх шарів карти (шари не знаходяться в групі)?

Ні, нажаль, такої команди не має. Шари можна вимикати по номеру розташування (VisibleMapLayer), а також по імені (VisibleMapLayerByName).

Ок. Тоді так.
Якшо використовувати (VisibleMapLayer), то чи можливо відразу прописати "вимкнути з першого по двадцятий"?
Чи потрібно кожен по черзі прописувати VisibleMapLayer(0,false), VisibleMapLayer(1,false) ... і т.д.?