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

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

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

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

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

Повідомлення feNICKs » 13 грудня 2013, 15:02

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

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

Вместо Flag пропишите Control т.е. If <DM1.TbPoint."Control"> Then То я на автомате прописал не то поле.

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

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

Повідомлення NoViChoK » 16 грудня 2013, 08:36

Можно ли сделать так что бы в шаблоне "Список межевых знаков" в колонке "№ кутів повороту межі" был список точек отмеченых как "закреплён на местности"? И как вытащить их координаты (каждой точки отдельно) ? какие кода надо использовать?
Хочу сделать что-то тип такого но не выходит:

Зображення

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

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

Повідомлення NickS » 16 грудня 2013, 10:11

NoViChoK писав:Можно ли сделать так что бы в шаблоне "Список межевых знаков" в колонке "№ кутів повороту межі" был список точек отмеченых как "закреплён на местности"? И как вытащить их координаты (каждой точки отдельно) ? какие кода надо использовать?

Для начала надо научиться пользоваться бендами. Чтобы сделать список только точек закреплённых на местности, есть два варианта:
1. Использовать специальный sql-запрос:

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

Select P.*
From Point P, Polygon L
Where L.ID_Object = <код участка> and P.ID_Polygon = L.ID_Polygon and P.Control = 1

И подключить его к бенду.
2. Перебирать в бенде все координаты, но проверять их в OnBeforePrint - если точка не закреплена, то отключать видимость бенда

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

  If <DM1.TbPoint."Control"> = true then
    MasterData1.Visible := true
  else
    MasterData1.Visible := false;


А вывести координаты точки - никаких проблем:
Х - [DM1.TbPoint."X"]
Y - [DM1.TbPoint."Y"]

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

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

Повідомлення NoViChoK » 16 грудня 2013, 11:25

За sql даже не берусь, я вообще не понимаю как, куда и что... :(

Перебирать в бенде все координаты, но проверять их в OnBeforePrint - если точка не закреплена, то отключать видимость бенда


А можно для особо одарённых :) написать как эту проверку делать, а то я в кодах этих нуб полный.
Востаннє редагувалось 16 грудня 2013, 12:14 користувачем NoViChoK, всього редагувалось 2 разів.

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

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

Повідомлення NoViChoK » 16 грудня 2013, 11:32

и ещё: добавл в подшивку "План отведения участка". При печати подшивки печатает не весь план на а4 (мне надо на а4) Если печатать только один план то всё на а4 получается а так - только часть. Можно ли в настройках поставить чтобы именно этот шаблон печатало на а4.

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

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

Повідомлення NickS » 16 грудня 2013, 15:41

NoViChoK писав:А можно для особо одарённых :) написать как эту проверку делать, а то я в кодах этих нуб полный.

Тогда обращайтесь в нашу техподдержку. Если у Вас есть годовая поддержка, то Вам помогут подправить шаблон.

NoViChoK писав:и ещё: добавл в подшивку "План отведения участка". При печати подшивки печатает не весь план на а4 (мне надо на а4) Если печатать только один план то всё на а4 получается а так - только часть. Можно ли в настройках поставить чтобы именно этот шаблон печатало на а4.

Не совсем понял. Как это так получается, что в подшивке шаблон печатается не полностью? Передайте в техподдержку сканы и, желательно, саму подшивку. Может что-то не так в самом шаблоне. Вы из "камеральных функций" его запускаете?

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

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

Повідомлення NoViChoK » 17 грудня 2013, 08:05

Не совсем понял. Как это так получается, что в подшивке шаблон печатается не полностью?


Шаблон "План отведения участка" - формат А3. Раньше я его печатал отдельно от подшивки на А4 (принтер у меня только для А4). Сейчас хочу добавить в подшивку, но при печати на А4 печатается только часть. Ну, если разделить А3 на 2 части по А4 то печатается только 1 часть. Не знаю как ещё обьяснить... Вот и спрашиваю, можно ли что то в настройках шаблона подправить?

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

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

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

NoViChoK писав:
Не совсем понял. Как это так получается, что в подшивке шаблон печатается не полностью?


Шаблон "План отведения участка" - формат А3. Раньше я его печатал отдельно от подшивки на А4 (принтер у меня только для А4). Сейчас хочу добавить в подшивку, но при печати на А4 печатается только часть. Ну, если разделить А3 на 2 части по А4 то печатается только 1 часть. Не знаю как ещё обьяснить... Вот и спрашиваю, можно ли что то в настройках шаблона подправить?

Откройте шаблон в редакторе, перетяните объекты так, чтобы они влезали на формат А4. Дважды щёлкните по пустому месту, чтобы отобразить параметры страницы и задайте формат А4. Сохраните шаблон.

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

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

Повідомлення NoViChoK » 17 грудня 2013, 11:51

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

2. Перебирать в бенде все координаты, но проверять их в OnBeforePrint - если точка не закреплена, то отключать видимость бенда
КОД: ВЫДЕЛИТЬ ВСЁ
  If <DM1.TbPoint."Control"> = true then
    MasterData1.Visible := true
  else
    MasterData1.Visible := false;


Разобрался я с этим :) Всё фильтрует как надо. Но теперь в столбце "№3/п" тоже ставит номера закреплённых точек (использую [Line#]):

Зображення

Как сделать что бы номера ставило по порядку: 1,2,3... и т.д.?

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

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

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

NoViChoK писав:Всё фильтрует как надо. Но теперь в столбце "№3/п" тоже ставит номера закреплённых точек (использую [Line#]):
Как сделать что бы номера ставило по порядку: 1,2,3... и т.д.?

Если Вы используете включение/отключение бендов, то тогда не надо использовать [Line#], а надо ввести свой счётчик. Создадим новую переменную:

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

var
     iCount : integer;


В коде, перед end. вставим обнуление её:

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

   iCount := 0;
end.


А теперь, в OnBeforePrint, где мы включаем или отключаем наш бенд, внесём счётчик, который будет увеличиваться только когда бенд включен:

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

  If <DM1.TbPoint."Control"> = true then
  begin
     MasterData1.Visible := true;
     iCount := iCount + 1;
  end
  else
    MasterData1.Visible := false;


Конечно, теперь в таблице, вместо [Line#] надо прописать [iCount].