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

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

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

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

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

Повідомлення Vetaley » 11 жовтня 2011, 11:38

NickS писав:Да просто я забыл подключить таблицу DM2.TbTypeRestrict. :D Я думаю, Вы это и сами сможете. :)

Видимо вы переоцениваете мои скромные возможности :oops: ))) В данных отчета я васче такой таблицы не нашель

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

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

Повідомлення NickS » 11 жовтня 2011, 14:15

Vetaley писав:
NickS писав:Да просто я забыл подключить таблицу DM2.TbTypeRestrict. :D Я думаю, Вы это и сами сможете. :)

Видимо вы переоцениваете мои скромные возможности :oops: ))) В данных отчета я васче такой таблицы не нашель

:shock:
TypeRestrict.jpg
TypeRestrict
TypeRestrict.jpg (26.52 Кіб) Переглянуто 1677 разів

А какая у Вас версия программы?

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

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

Повідомлення Vetaley » 11 жовтня 2011, 15:53

Вот блин, в чем дело! версия 1.2.7 такой тэйблы не имеет. Млин, нуно срочно обновлятся! Ща приготовлю карвалол и пойду "трусить" начальство! :lol:
Хех! Есть 1.3.6 - таже фигня! С какой версии ента фигня нарисовываеццо?!

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

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

Повідомлення Vetaley » 17 жовтня 2011, 12:30

Не подмогнете с кодом для экспликации? Под ФР3 такой не нашел, а мскофф на код не хватает
http://www.ex.ua/view_storage/474720859405

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

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

Повідомлення NickS » 17 жовтня 2011, 15:20

Vetaley писав:Не подмогнете с кодом для экспликации? Под ФР3 такой не нашел, а мскофф на код не хватает
http://www.ex.ua/view_storage/474720859405

Вы когда копируете код, то хоть обращайте внимание всё ли копируете. :)
Исправил, вроде работает.
Vist_План вiдведення.zip
Исправленный шаблон
(37.78 Кіб) Завантажено 48 разів

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

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

Повідомлення Vetaley » 17 жовтня 2011, 16:54

Гранд мерси!))) Дык вродь все скопировал :| . А от чего результат другой? Я ожидал только коды угодий, а получил названия.
отута оно было

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

sStr := <DM2.TbTypeLand."Name">;

Отлично все получилось! Теперь осталось только добавить данные, которые заносятся в: вкладка "документация"/ "Дополнительно".
Искал по табличке, в реестре документации ничего такого не нашел?

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

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

Повідомлення NickS » 17 жовтня 2011, 17:57

Vetaley писав:Я ожидал только коды угодий, а получил названия.
отута оно было

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

sStr := <DM2.TbTypeLand."Name">;


Я не понял, что Вы ожидали, потому вставил название, ато иначе оно ничего не вставляло, а вставляло последнего смежника. :D
Можно легко перправить на номер, достаточно изменить это поле

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

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

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

NickS писав:
Vetaley писав:Я ожидал только коды угодий, а получил названия.
отута оно было

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

sStr := <DM2.TbTypeLand."Name">;


Я не понял, что Вы ожидали, потому вставил название, ато иначе оно ничего не вставляло, а вставляло последнего смежника. :D
Можно легко перправить на номер, достаточно изменить это поле
<DM2.TbTypeLand."Number"> :D
Такие весчи мне вполне вполне по силам, спасибо)))
Скажитека мне лучче, откель взять данные по предыдусчему посту + "Докуметация"/
форма документа?

Аватар користувача
TiJester
Повідомлень: 39
З нами з: 28 жовтня 2010, 12:20
Контактна інформація:

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

Повідомлення TiJester » 07 листопада 2011, 16:00

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

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

    //Для всех отмеченных
   NDecis     := ''; //Документы подтверждающие право
   NDecis1    := ''; //Документы подтверждающие право
   NDecis2    := ''; //Документы подтверждающие право
   NDecis11   := ''; //Документы подтверждающие право
   NDecis22   := ''; //Документы подтверждающие право
   NameTest   := ''; //Владелец (для проверки повторяющихся)
   OneObject  := true; //Только один объект?
   Kol := ''; //количество людей в списке

   idObject := <DM1.QbObject."ID_Object">; //Присваиваем текущий указатель
   FILTERDATA('DM1.QbObject', 'OK = ''ю'''); //Фильтруем по отмеченным

   //Проверяем сколько отмечено участков и есть ли такие
   If RecordCount('DM1.QbObject') > 0 then
   begin
     If RecordCount('DM1.QbObject') > 1 then
       OneObject := false;
     DATAFIRST( 'DM1.QbObject');
   end
   else
   begin
     FILTERDATA('DM1.QbObject', ''); //Снимаем фильтр
     LOCATEDATA('DM1.QbObject', 'ID_Object', VarToStr(idObject)); //Возвращаем указатель на место
   end;

   // Начинаем цикл с участками
   Repeat
     //----------------
     //Субьект права

     QUERYSQL( 'Select * From UserRec Where (ID_Object = ' + IntToStr(<DM1.QbObject."ID_Object">) + ') And (DateFirst <= GETDATE()) And (DateLast Is Null Or DateLast > GETDATE()) Order By ID_People, ID_Firm');

     DATAFIRST( 'DM1.QuerySQL');
     g := 1;
     While DATAEOF( 'DM1.QuerySQL') = False Do
     begin
       //----------------
       //Владелец
       If (LOCATEDATA( 'DM2.TbTypeOwner', 'ID_TypeOwner', GetValue('DM1.QuerySQL', 'ID_TypeOwner')) = True)
          And (Pos(GetValue('DM1.QuerySQL', 'NameUser') + ', ', NameTest) = 0) Then
       begin
         NameTest := NameTest + GetValue('DM1.QuerySQL', 'NameUser') + ', ';

       //----------------
       //Документ подтверждающий право
       If (LOCATEDATA( 'DM1.QbDecision', 'ID_Decision', GetValue('DM1.QuerySQL', 'ID_Decision')) = true)
          and (Pos(IntToStr(GetValue('DM1.QuerySQL', 'ID_Decision')) + ', ', DecTest) = 0) Then
       Begin
//1
          If Length(Trim(NDecis)) > 0 then
          NDecis1 := NDecis1 + ', ';
          NDecis2 := NDecis2 + ', ';

          NDecis1 := Copy(NDecis1, 0, LENGTH(NDecis1)-2); //Удаляем последнюю запятую
          NDecis2 := Copy(NDecis2, 0, LENGTH(NDecis2)-2); //Удаляем последнюю запятую

          if Pos('ішення ', <DM1.QbDecision."Name">) > 0 then
          NDecis11 :='рішень ' + COPY(TRIM(<DM1.QbDecision."Name">), POS('iшення ', Trim(<DM1.QbDecision."Name">)) + 9, LENGTH(Trim(<DM1.QbDecision."Name">)));

          if Pos('ішення ', <DM1.QbDecision."Name">) > 0 then
          If Length( <DM1.QbDecision."Dec_Num">) > 0 Then
             NDecis1 := NDecis1 +' за №' +<DM1.QbDecision."Dec_Num">;

          if Pos('ішення ', <DM1.QbDecision."Name">) > 0 then
          If <DM1.QbDecision."Dec_Date"> > 0 Then
             NDecis1 := NDecis1 +' від ' + DateTimeToStr(<DM1.QbDecision."Dec_Date">) + ' року';
//2
          if Pos('озпорядження ', <DM1.QbDecision."Name">) > 0 then
          NDecis22 :=  'розпорядження ' + COPY(TRIM(<DM1.QbDecision."Name">), POS('озпорядження ', Trim(<DM1.QbDecision."Name">)) + 13, LENGTH(Trim(<DM1.QbDecision."Name">)));

          if Pos('озпорядження ', <DM1.QbDecision."Name">) > 0 then
          If Length( <DM1.QbDecision."Dec_Num">) > 0 Then
             NDecis2 := NDecis2 +' за №' +<DM1.QbDecision."Dec_Num">;

          if Pos('озпорядження ', <DM1.QbDecision."Name">) > 0 then
          If <DM1.QbDecision."Dec_Date"> > 0 Then
             NDecis2 := NDecis2 +' від ' + DateTimeToStr(<DM1.QbDecision."Dec_Date">) + ' року';
       End;

       If GetValue('DM1.QuerySQL', 'ID_Decision') <> null then
          DecTest := DecTest + IntToStr(GetValue('DM1.QuerySQL', 'ID_Decision')) + ', ';
       g := g +1;
       DATANEXT( 'DM1.QuerySQL');
     NDecis := NDecis11 + NDecis1 + NDecis22 + NDecis2;
     end;

...


добавил еще файл отчета для Переноса в натуру и Приемки передачи

http://upload.com.ua/get/902898951/Акты.fr3

Аватар користувача
TiJester
Повідомлень: 39
З нами з: 28 жовтня 2010, 12:20
Контактна інформація:

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

Повідомлення TiJester » 07 листопада 2011, 17:09

Вот этот код конечно можно применить но он не так гибко будет применяться(

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

       //----------------
       //Документ подтверждающий право

       If (LOCATEDATA( 'DM1.QbDecision', 'ID_Decision', GetValue('DM1.QuerySQL', 'ID_Decision')) = true)
          and (Pos(IntToStr(GetValue('DM1.QuerySQL', 'ID_Decision')) + ', ', DecTest) = 0) Then
       Begin

          If Length(Trim(NDecis)) > 0 then
          NDecis1 := NDecis1 + ', ';
          NDecis2 := NDecis2 + ', ';

          NDecis1 := Copy(NDecis1, 0, LENGTH(NDecis1)-2); //Удаляем последнюю запятую
          NDecis2 := Copy(NDecis2, 0, LENGTH(NDecis2)-2); //Удаляем последнюю запятую

          begin
          if Pos('ішення ', <DM1.QbDecision."Name">) > 0 then
          NDecis11 :='рішень ' + COPY(TRIM(<DM1.QbDecision."Name">), POS('iшення ', Trim(<DM1.QbDecision."Name">)) + 9, LENGTH(Trim(<DM1.QbDecision."Name">)))
          else
          NDecis22 :=  ' розпоряджень ' + COPY(TRIM(<DM1.QbDecision."Name">), POS('озпорядження ', Trim(<DM1.QbDecision."Name">)) + 15, LENGTH(Trim(<DM1.QbDecision."Name">)));
          end;

          If Length( <DM1.QbDecision."Dec_Num">) > 0 Then
          if Pos('ішення ', <DM1.QbDecision."Name">) > 0 then
             NDecis1 := NDecis1 +' за № ' +<DM1.QbDecision."Dec_Num">
          else
             NDecis2 := NDecis2 +' за № ' +<DM1.QbDecision."Dec_Num">;

          If <DM1.QbDecision."Dec_Date"> > 0 Then
          if Pos('ішення ', <DM1.QbDecision."Name">) > 0 then
             NDecis1 := NDecis1 +' від ' + DateTimeToStr(<DM1.QbDecision."Dec_Date">) + ' року,'
          else
             NDecis2 := NDecis2 +' від ' + DateTimeToStr(<DM1.QbDecision."Dec_Date">) + ' року,';

       End;

       If GetValue('DM1.QuerySQL', 'ID_Decision') <> null then
          DecTest := DecTest + IntToStr(GetValue('DM1.QuerySQL', 'ID_Decision')) + ', ';

       g := g +1;
       DATANEXT( 'DM1.QuerySQL');

     NDecis := NDecis11 + NDecis1 + NDecis22 + NDecis2;
     end;