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

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

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

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

Re: Вопросы по базам данных в отчётных формах.

Повідомлення Vetaley » 17 травня 2011, 13:17

shels_chorny писав:
можно ли его как-нить подправить, чтобы блок рада был активен только в случае, если участок находится вне нас. пункта?


Можно, но для этого нужно проверять значение поля в участке ID_TypeLocation = 0 (в нас.пункте), ID_TypeLocation = 1 (за пределом нас.пункте)

Логично. Мне ужасно неловко за свою необразованность :oops: , но, не могли бы вы мне помочь с таким кодом (честное слово, мне не лень, просто не владею)!!!
Я уже перебрал все шаблоны, что шли в комплекте, но кода, где б, в случае нахождения участка в н.п. писалось (за адресою: адрес_участка, ... району ...области), иначе (на територии адрес_участка ...району ... области) так и не нашел. Неужели у Вас его никто не пробовал писать?

shels_chorny
Повідомлень: 41
З нами з: 31 березня 2011, 15:17
Звідки: Кировоград
Контактна інформація:

Re: Вопросы по базам данных в отчётных формах.

Повідомлення shels_chorny » 18 травня 2011, 17:49

Логично. Мне ужасно неловко за свою необразованность :oops: , но, не могли бы вы мне помочь с таким кодом (честное слово, мне не лень, просто не владею)!!!
Я уже перебрал все шаблоны, что шли в комплекте, но кода, где б, в случае нахождения участка в н.п. писалось (за адресою: адрес_участка, ... району ...области), иначе (на територии адрес_участка ...району ... области) так и не нашел. Неужели у Вас его никто не пробовал писать?


Кусок кода писать здесь нету смысла т.к. он может не подойти к шаблону.
Высылайте пример вашего шаблона на почту report@gis.org.ua.
В письме укажите что именно вы хотите добавить и укажите место в шаблоне(выделите красным цветом).

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

Re: Вопросы по базам данных в отчётных формах.

Повідомлення Vetaley » 20 травня 2011, 12:34

Большое спасибо! Отправил Вам письмо, но! Хочу уточнить. Мне не нужен какой-то конкретный отчет. Мне нужен фрагмент кода, в котором будет просто сортировка значений. Я смогу его вставить в отчет самостоятельно))). В письме есть такой фрагмент под переменную teritory (взял из Ваших шаблонов), но там нет сортировки.

shels_chorny
Повідомлень: 41
З нами з: 31 березня 2011, 15:17
Звідки: Кировоград
Контактна інформація:

Re: Вопросы по базам данных в отчётных формах.

Повідомлення shels_chorny » 23 травня 2011, 09:18

Мне нужен фрагмент кода, в котором будет просто сортировка значений. Я смогу его вставить в отчет самостоятельно))). В письме есть такой фрагмент под переменную teritory (взял из Ваших шаблонов), но там нет сортировки.

Фрагмент кода зависит по крайней мере от окна из которого запускается отчёт, есть более общие фрагменты которые подойдут для всех. А сможете вы вставить или нет мы рассуждать не можем :roll:

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

Re: Вопросы по базам данных в отчётных формах.

Повідомлення Vetaley » 23 травня 2011, 13:04

Фрагмент кода зависит по крайней мере от окна из которого запускается отчёт
это не касается фрагмента, приведенного мною выше, там нет графики.
есть более общие фрагменты которые подойдут для всех
Так почему бы Вам не дописать в него сортировку и выложить его здесь? Думаю эта тема будет интересна не только мне.

shels_chorny
Повідомлень: 41
З нами з: 31 березня 2011, 15:17
Звідки: Кировоград
Контактна інформація:

Re: Вопросы по базам данных в отчётных формах.

Повідомлення shels_chorny » 23 травня 2011, 18:04

это не касается фрагмента, приведенного мною выше, там нет графики.

Это не зависит от графики, когда меняются окна то в ГИС происходит установка указателей на определённый таблицы в БД, поетому некотрорые шаблоны могут от вас потребовать чтобы была например открыта соответственная табличка
Так почему бы Вам не дописать в него сортировку и выложить его здесь? Думаю эта тема будет интересна не только мне.


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

   Teritor := '';
   //в нас.пункте
   if (<DM1.QbObject."ID_TypeLocation"> = 0) then
       Teritor := 'за адресою: ';
   //за пределом нас.пункта
   if (<DM1.QbObject."ID_TypeLocation"> = 1) then
       Teritor := 'на території ';

   //Район
   if LENGTH(Name_Region) > 0 then
   begin
     if Pos('ький ', Name_Region) > 0 then
       Teritor := Teritor + Copy(Name_Region, 1, Pos('ький ', Name_Region)) + 'кого району '
     else
       if Pos('ний ', Name_Region) > 0 then
         Teritor := Teritor + Copy(Name_Region, 1, Pos('ний ', Name_Region)) + 'ного району '
       else
         Teritor := Teritor + Name_Region + ' ';
   end;

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

Аватар користувача
Dorochenko_iv
Повідомлень: 162
З нами з: 12 березня 2010, 21:55
Звідки: м.Чернігів
Контактна інформація:

Re: Вопросы по базам данных в отчётных формах.

Повідомлення Dorochenko_iv » 25 травня 2011, 08:41

Если еще дописать таким образом :

//в нас.пункте
if (<DM1.QbObject."ID_TypeLocation"> = 0) then
Teritor := 'за адресою ' + (<DM1.QbObject."Address">) ;

то в случае нахождения участка в нас.пункте будет и его адрес писать 8-)

shels_chorny
Повідомлень: 41
З нами з: 31 березня 2011, 15:17
Звідки: Кировоград
Контактна інформація:

Re: Вопросы по базам данных в отчётных формах.

Повідомлення shels_chorny » 25 травня 2011, 09:36

Если еще дописать таким образом :

//в нас.пункте
if (<DM1.QbObject."ID_TypeLocation"> = 0) then
Teritor := 'за адресою ' + (<DM1.QbObject."Address">) ;

то в случае нахождения участка в нас.пункте будет и его адрес писать

Именно :geek:

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

Re: Вопросы по базам данных в отчётных формах.

Повідомлення Vetaley » 27 травня 2011, 12:41

Отлично получилось! Спасибо!

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

 //---------------------------------------------------------------------------------------------------
   //Де знаходиться ділянка

   Teritor := '';
   //в нас.пункте
   if (<DM1.QbObject."ID_TypeLocation"> = 0) then
       Teritor := 'за адресою: ';
   //за пределом нас.пункта
   if (<DM1.QbObject."ID_TypeLocation"> = 1) then
       Teritor := 'на території ';

   //Район
   if LENGTH(Name_Region) > 0 then
   begin
     if Pos('ький ', Name_Region) > 0 then
       Teritor := Teritor + <DM1.QbObject."Address"> + ' ' + Copy(Name_Region, 1, Pos('ький ', Name_Region)) + 'кого району '
     else
       if Pos('ний ', Name_Region) > 0 then
         Teritor := Teritor + <DM1.QbObject."Address"> + ' ' + Copy(Name_Region, 1, Pos('ний ', Name_Region)) + 'ного району '
       else
         Teritor := Teritor + <DM1.QbObject."Address"> + ' ' + Name_Region + ' ';
   end;

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

теперь нужно добавить условие изменения падежа вслучае, если участок за нас пуктом!
т.е. <DM1.QbObject."Address"> например с/т "Малятко" Забірська сільська рада, можно ли сюда пристроить чтонить такое: , 1, Pos('ька рада', ???????????)) + 'кої ради' ?

shels_chorny
Повідомлень: 41
З нами з: 31 березня 2011, 15:17
Звідки: Кировоград
Контактна інформація:

Re: Вопросы по базам данных в отчётных формах.

Повідомлення shels_chorny » 30 травня 2011, 16:08

Для этого необходимо определить новою переменную MyAddress чтобы можно было удобней управлять

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

   //---------------------------------------------------------------------------------------------------
   //Де знаходиться ділянка

   Teritor := '';
   MyAddress := '';

   //в нас.пункте
   MyAddress := <DM1.QbObject."Address">;

   if (<DM1.QbObject."ID_TypeLocation"> = 0) then
   begin
       Teritor := 'за адресою: ';
   end;
   //за пределом нас.пункта
   if (<DM1.QbObject."ID_TypeLocation"> = 1) then
   begin
       Teritor := 'на території ';
       MyAddress := Copy(MyAddress , 1, Pos('ька рада', MyAddress)) + 'кої ради' ;
   end;
   //Район
   if LENGTH(Name_Region) > 0 then
   begin
     if Pos('ький ', Name_Region) > 0 then
       Teritor := Teritor + MyAddress + ' ' + Copy(Name_Region, 1, Pos('ький ', Name_Region)) + 'кого району '
     else
       if Pos('ний ', Name_Region) > 0 then
         Teritor := Teritor + MyAddress + ' ' + Copy(Name_Region, 1, Pos('ний ', Name_Region)) + 'ного району '
       else
         Teritor := Teritor + MyAddress  + ' ' + Name_Region + ' ';
   end;

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