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

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

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

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

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

Повідомлення feNICKs » 18 лютого 2013, 18:17

Поделитесь переменной плз, буду весьма благодарен

Чтоб вытянуть данные по новому классификатору КВЗУ, можно использовать след.пример:

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

var
   Code_KVZU : String;
BEGIN
....
    // расчет экспликации
    DataFirst( 'DM1.TbPlan');
   
   // перебор угодий
   While Not DataEOF( 'DM1.TbPlan') Do
   Begin
        // связь с новым классификатором КВЗУ
        If LoceteData( 'DM2.TbTypeLand', 'ID_TypeLand', <DM1.TbPlan."ID_TypeLand">) Then
           If LocateData( 'DM2.TbTypeLands', 'ID_TypeLands', <DM1.TbPlan."ID_TypeLands">) Then
               Code_KVZU := FormatMaskText('000',<DM2.TbTypeLands."Groupe">) + '.'+ FormatMaskText('000',<DM2.TbTypeLands."Number">)

        DataNext('DM1.TbPlan');
   End;
... 
END.


Данный пример только для одного элемента. Если Вы хотите вывести N-е количество элементов, Вам нужно огласить соответствующее количество переменных или один массив (для нужных видов КВЗКУ) и присваивать им значение в процессе расчета экспликации.

На данный момент есть только отчетная форма C:\Program Files\GIS6\Reports\Кадастровый план земельного участка.fr3

Аватар користувача
Vetaley
Повідомлень: 119
З нами з: 15 лютого 2010, 13:16
Звідки: ХарькОфф
Контактна інформація:

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

Повідомлення Vetaley » 18 лютого 2013, 18:54

:tnk: то, что нужно! Баальшущее спасибо!
взял на себя смелость поправить орхографічні памилки)))

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

    // расчет экспликации
    DataFirst( 'DM1.TbPlan');

   // перебор угодий
   While Not DataEOF( 'DM1.TbPlan') Do
   Begin
        // связь с новым классификатором КВЗУ
        If LOCATEDATA( 'DM2.TbTypeLand', 'ID_TypeLand', <DM1.TbPlan."ID_TypeLand">) Then
           If LOCATEDATA( 'DM2.TbTypeLands', 'ID_TypeLands', <DM1.TbPlan."ID_TypeLands">) Then
               Code_KVZU := FormatMaskText('000',<DM2.TbTypeLands."Groupe">) + '.'+ FormatMaskText('000',<DM2.TbTypeLands."Number">);
        DataNext('DM1.TbPlan');
   End;

Аватар користувача
Vetaley
Повідомлень: 119
З нами з: 15 лютого 2010, 13:16
Звідки: ХарькОфф
Контактна інформація:

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

Повідомлення Vetaley » 18 лютого 2013, 19:27

Сыроватый шаблон нуждающимся здеся: http://www.ex.ua/view_storage/355809368905
Респект товарищам feNICKs и NickS за оперативное содействие)))

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

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

Повідомлення feNICKs » 19 лютого 2013, 10:15

Добавил некоторые правки в оформлении отчетной формы т.к. некоторые поля накладывались друг на друга со смещениями. http://www.ex.ua/view_storage/355809368905
Файл "КП(A3p) 37(новый).fr3"

Аватар користувача
Vaho
Повідомлень: 130
З нами з: 21 жовтня 2011, 10:01

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

Повідомлення Vaho » 21 лютого 2013, 17:59

Здравствуйте! Подскажите пожалуйста как можно вывести в "Фаст репорт" собственника участка с сокращенными инициалами но инициалы не сзади а спереди, то-есть: Ходенков Валерий Сергеевич - В. С. Ходенков

Аватар користувача
shelsadmin
Администратор
Повідомлень: 130
З нами з: 29 лютого 2008, 12:46
Звідки: Компания ШЕЛС
Контактна інформація:

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

Повідомлення shelsadmin » 21 лютого 2013, 18:28

Используйте функцию ShortFamily
Function ShortFamily(FIO:String):String //Возвращает инициалы и фамилию

Vaho писав:Здравствуйте! Подскажите пожалуйста как можно вывести в "Фаст репорт" собственника участка с сокращенными инициалами но инициалы не сзади а спереди, то-есть: Ходенков Валерий Сергеевич - В. С. Ходенков

Аватар користувача
Vaho
Повідомлень: 130
З нами з: 21 жовтня 2011, 10:01

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

Повідомлення Vaho » 22 лютого 2013, 13:30

Здравствуйте, помогите пожалуйста! Можно как-то преобразовать: "Житомирська область, Радомишльський район, Великорадська сільська рада" в следующее - "Великорацької сільської ради, Радомишльського району району, Житомирської області".
*.fr3

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

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

Повідомлення feNICKs » 22 лютого 2013, 14:24

Vaho писав:Здравствуйте, помогите пожалуйста! Можно как-то преобразовать: "Житомирська область, Радомишльський район, Великорадська сільська рада" в следующее - "Великорацької сільської ради, Радомишльського району району, Житомирської області".
*.fr3

Если Вы имеете введу значение с поля "Адрес земельного участка" - то нет. Нужно вытягивать значения полей Области, Района, Совета и Населенного пункта по отдельности и уже их склонять и снова формировать в одну строку.

Вот пример:

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

Var
    Territory : String
BEGIN
 //-----> Місцезнаходження ділянки

    SeekIKN(<DM1.QbObject."IKN">);

   Territory         := 'на території '; // Місцезнаходження зем.ділянки

   //Рада
   If Length(Name_Advice) > 0 then
   begin
     If Pos('ька ', Name_Advice) > 0 then
       If Pos('сільська', Name_Advice) > 0 then
         Territory   := Territory + Copy(Name_Advice, 1, Pos('ька ', Name_Advice)) + 'кої сільської ради '
       else
         If Pos('міська', Name_Advice) > 0 then
           Territory := Territory + Copy(Name_Advice, 1, Pos('ька ', Name_Advice)) + 'кої міської ради '
         else
           If Pos('селищна', Name_Advice) > 0 then
              Territory := Territory + Copy(Name_Advice, 1, Pos('ька ', Name_Advice)) + 'кої селищної ради '
           else
              Territory := Territory + Name_Advice + ' '
     else
       Territory     := Territory + Name_Advice + ' ';
   end;

   //Район
   If (Length(Name_Region) > 0) Then
   begin
     If (Pos('ький ', Name_Region) > 0) Then
        Territory    := Territory + Copy(Name_Region, 1, Pos('ький ', Name_Region)) + 'кого району '
     else
       If (Pos('ний ', Name_Region) > 0) Then
         Territory   := Territory + Copy(Name_Region, 1, Pos('ний ', Name_Region)) + 'ного району '
       else
         Territory   := Territory + Name_Region + ' ';
   end;

   //Область
   If (Length(Name_Area) > 0) then
   begin
     If (Pos('ька ', Name_Area) > 0) then
       Territory     := Territory + Copy(Name_Area, 1, Pos('ька ', Name_Area)) + 'кої області '
     else
       Territory     := Territory + Name_Area + ' ';
   end;

   // Удаление запятой с пробелом в конце строки
   If Length(Trim(Territory)) > 1 then
     Territory       := Copy(Territory, 1, LENGTH(Territory)-1);
END.

Аватар користувача
Vaho
Повідомлень: 130
З нами з: 21 жовтня 2011, 10:01

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

Повідомлення Vaho » 27 лютого 2013, 16:27

Ну за это спасибо. А как можно перевернуть адрес прописки владельца. Я пробовал по разному:
1. С функцией GETADDRES - пишет "не визначений ідентифікатор GETADDRES"
2. Пробовал вытянуть по строкам с функцией преобразования КОАТУУ (SEEKIKN) и кода улицы (SEEKSTREET) - в поле DM1.QsPeople."ID_Kuatu" вообще никакой информации нету, высвечивает пустое поле. С улицей тоже самое. Но даже если КОАТУУ каким-то образом преобразую в админ деление, то как его перевернуть?

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

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

Повідомлення NickS » 27 лютого 2013, 18:15

Vaho писав:Ну за это спасибо. А как можно перевернуть адрес прописки владельца. Я пробовал по разному:
1. С функцией GETADDRES - пишет "не визначений ідентифікатор GETADDRES"

Так параметры же нужно задавать для этой функции :)
GetAddress(<10 цифр кода КОАТУ>, <код улицы>, <номер дома>, <номер корпуса>, <номер квартиры>, <тип формата>, <выводить запятую?>, <склонять админделения?>)
где тип формата: 0 - населённый пункт, улица, дом, корпус, квартира; 1 - населённый пункт, улица, дом, корпус, квартира, совет, район, область; 2 - улица, дом, корпус, квартира, населённый пункт, совет, район, область; 3 - область, район, совет, населённый пункт, улица, дом, корпус, квартира.

Например:
GetAddress(<DM1.QbObject."IKN">, <DM1.QbObject."ID_Street">, <DM1.QbObject."Num_House">, <DM1.QbObject."Num_Grphouse">, <DM1.QbObject."Num_Flat">, 0, true, false)