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

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

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

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

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

Повідомлення NickS » 06 березня 2018, 09:36

chzemlemir писав:На приклад. Юридична особа ДП "Укргеоінформ", яку представляє Іванченко замовляє в мене документацію. Іванченка необхідно відобразити. Він же знаходиться в параметрах підприємства, як керівник.

Ви не зрозуміли. Яке відношення має ця юр.особа до ділянки? Чим вона являється? Ну ладно, якщо не кажете, то і код буде умовним :-)

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

  NamePeople := ''; // ПІБ представника
  NameWork   := ''; // Посада представника

  If LocateData('DM1.QbFirm', 'ID_Firm', <код юр. особи>) then
  begin
    If LocateData('DM1.TbWorking', 'ID_People', <код фіз. особи>) then
    begin
      If LocateData('DM1.QsPeople', 'ID_People', <DM1.TbWorking."ID_People">) then
      begin
        NamePeople := <DM1.QsPeople."Family">;
      end;

      If LocateData('DM2.TbTypeWorking', 'ID_TypeWorking', <DM1.TbWorking."ID_TypeWorking">) then
      begin
        NameWork := <DM2.TbTypeWorking."Name">;
      end;
    end;
  end;


Замість <код юр. особи> та <код фіз. особи> потрібно підставити відповідні значення з технічки, параметрів району, обмеження чи суб'єкту.

chzemlemir
Повідомлень: 71
З нами з: 25 листопада 2016, 11:43

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

Повідомлення chzemlemir » 06 березня 2018, 16:57

Яке відношення має ця юр.особа до ділянки?

в майбутньому після затвердження документації стане орендарем(власником) земельної ділянки
Чим вона являється?

суб'єктом права на якого оформляться право власності(оренди) на земельну ділянку (перший скрін)
Ну ладно, якщо не кажете, то і код буде умовним :-)

... і таким, що не несе користі :(
Замість <код юр. особи> та <код фіз. особи> потрібно підставити відповідні значення з технічки, параметрів району, обмеження чи суб'єкту.

Розумію, що підставляти необхідно з екселів що в папці book, але що куди та звідки для мене загадка.
Можна замість вудки дати рибку ;)

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

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

Повідомлення NickS » 07 березня 2018, 11:38

chzemlemir писав:
Яке відношення має ця юр.особа до ділянки?

в майбутньому після затвердження документації стане орендарем(власником) земельної ділянки

Так власником чи орендарем? Бо код буде різним.

chzemlemir писав:
Ну ладно, якщо не кажете, то і код буде умовним :-)

... і таким, що не несе користі :(

Насправді там більше користі, ніж Ви думаєте. Інша справа: навіщо Вам код, якщо Ви не можете ним скористатись? :))

chzemlemir писав:Можна замість вудки дати рибку ;)

Якщо у Вас є підтримка і Вам потрібно тільки це в свій шаблон, то давайте шаблон, я зроблю.

chzemlemir
Повідомлень: 71
З нами з: 25 листопада 2016, 11:43

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

Повідомлення chzemlemir » 12 березня 2018, 16:36

NickS писав:Так власником чи орендарем? Бо код буде різним.

це тільки якщо потрібно щось з блоку оренди чи ДА
NickS писав:Насправді там більше користі, ніж Ви думаєте. Інша справа: навіщо Вам код, якщо Ви не можете ним скористатись? :))

На перспективу багато користі, а по-факту мені потрібно вирішувати інші задачі, які створені для мене державою. Ви дивитеся на проблему як розробник ПЗ, а я як керівник підприємства та розробник документації, враховуючи принцип Парето кожен має займатися тим чим вміє та продуктивно використовує свій час. Готовий код мені допоможе швидко внести правки в шаблони і саме так як у нас тут люблять :D
NickS писав: Якщо у Вас є підтримка і Вам потрібно тільки це в свій шаблон, то давайте шаблон, я зроблю.

підтримка є. Скинув на info@gis.org.ua

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

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

Повідомлення NickS » 13 березня 2018, 09:56

chzemlemir писав: а по-факту мені потрібно вирішувати інші задачі, які створені для мене державою. Ви дивитеся на проблему як розробник ПЗ, а я як керівник підприємства та розробник документації, враховуючи принцип Парето кожен має займатися тим чим вміє та продуктивно використовує свій час.

Не сперечаюсь. Але в такому випадку, як керівник підприємства, посадіть людину яка більш-менш знає ази програмування і готова розбиратись зі створенням шаблонів і нехай вона в це вникає та займається. Ви ж, коли хочете свій будинок трохи змінити (виломати стіну, чи добудувати ще один поверх), Ви не беретесь це робити самому? Також Ви не звертаєтесь до того, хто Вам продав будинок, вірно? Ви просто наймаєте людей, які знають що роблять і зроблять це правильно. Ну або закочуєте рукава, вчитесь, консультуєтесь і самі все робите так, як би це зробили будівельники. Різниця тільки в тому, що коли Ви змінюєте шаблони і щось зробите не правильно, програма не зіпсується (на відміну від будинку :-) ).

chzemlemir писав:підтримка є. Скинув на info@gis.org.ua

Підправив шаблон і вислав на Вашу електронку.

chzemlemir
Повідомлень: 71
З нами з: 25 листопада 2016, 11:43

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

Повідомлення chzemlemir » 19 березня 2018, 15:40

NickS писав:Але в такому випадку, як керівник підприємства, посадіть людину яка більш-менш знає ази програмування і готова розбиратись зі створенням шаблонів і нехай вона в це вникає та займається.

для цього потрібно найняти цю людину. Враховуючи співвідношення фізичних/юридичних осіб, найм ще одної людини є економічно не доцільним. Тим більше колись вчив для себе ПХП і в школі бейсік :D
NickS писав:Ви не звертаєтесь до того, хто Вам продав будинок, вірно?

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

Завдяки погоді в мене є час щоб додати в три схожих шаблоничики 1 змінну, 3 три стрічки вашого коду і одну свою
NickS писав:Підправив шаблон і вислав на Вашу електронку.

дякую!

007stas
Повідомлень: 82
З нами з: 03 червня 2011, 09:15

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

Повідомлення 007stas » 21 березня 2018, 09:39

Доброго дня. Перший раз за всі "оновлення" ГІС таке повідомлення:
Вкладення
Screenshot_5.jpg

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

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

Повідомлення NickS » 22 березня 2018, 09:18

007stas писав:Доброго дня. Перший раз за всі "оновлення" ГІС таке повідомлення:

Ось результат онлайн-перевірки різними антивірусами:
https://www.virustotal.com/uk/file/58cc5237b420027ebcb9f0ee957104c9519304d3f159aada50090c3599752755/analysis/1521702887/

Швидше за все, це типова ситуація. В файлі програми (gis6prof.exe) є певний код, що захищає від взлому, плюс програма перевіряє наявність технічної підтримки і оновлень. Це все вкупі може антивірусниками розцінюватись як підозрілі дії або навіть троян. Як бачите згідно перевірки вище, вірусів не має, тому ми завжди радимо в антивірусній програмі файл gis6prof.exe (gis6zem.exe та gis6client.exe) добавляти в список виключень.

Ось результат перевірки самого екзешніка:
https://www.virustotal.com/uk/file/b25796523cbcebd1af563703ec55c16e5cca5ef3f00655257840e45c9e5c178b/analysis/1521703215/

Так, де-які антивіруси щось бачуть схоже на вірус... Ми ще дослідимо, але підозрюю, що це як і завжди - через самі дії програми.

vitalok_mzo
Повідомлень: 9
З нами з: 19 серпня 2016, 10:45

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

Повідомлення vitalok_mzo » 29 березня 2018, 10:54

Подскажите пожалуйста.
Если название документации "Проект ......" то нужно чтоб выдавало "проекту"
Если название документации "Техническая документ........" то нужно чтоб выдавало "технической документации ........"
А выдает только первую часть названия.
Спасибо!!!
Где ошибка?

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

   //-----------------------------------------------------------------------------------------------
  // Техническая документация

  TechDocInfo := ''; // Информация о технической документации

    TechDoc_Name := TechDoc_Name + <DM1.QiTechDoc."Name"> ;

    //ТехДок
      If Length(TechDoc_Name) > 0 then
  begin

    begin
          If Pos('Проект', TechDoc_Name) > 0 then
        TechDocInfo:= TechDocInfo + Copy(TechDoc_Name, 1, Pos('ект ', TechDoc_Name)) + 'кту  '
      else

    begin
          If Pos('Технічна', TechDoc_Name) > 0 then
          TechDocInfo := TechDocInfo+ Copy(TechDoc_Name, 1, Pos('чна ', TechDoc_Name)) + 'ної документації '
        else
        begin
          If Pos('Технічний звіт', TechDoc_Name) > 0 then
            TechDocInfo  := TechDocInfo  + Copy(TechDoc_Name, 1, Pos('чний ', TechDoc_Name)) + 'чного звіта '
          else
            TechDocInfo := TechDocInfo  + TechDoc_Name + ' ';
        end;
      end;
    end

  end;

  end;

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

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

Повідомлення NickS » 29 березня 2018, 14:04

vitalok_mzo писав:Подскажите пожалуйста.
Если название документации "Проект ......" то нужно чтоб выдавало "проекту"
Если название документации "Техническая документ........" то нужно чтоб выдавало "технической документации ........"
А выдает только первую часть названия.
Спасибо!!!
Где ошибка?

1. Вот здесь почему Вы добавляете до переменной? Ведь там могут быть какие-то левые значения:

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

TechDoc_Name := TechDoc_Name + <DM1.QiTechDoc."Name"> ;

Правильно делать так:

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

TechDoc_Name := <DM1.QiTechDoc."Name">;

2. Не понятно зачем лишние опреторные скобки:

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

  If Length(TechDoc_Name) > 0 then
  begin
    begin
...

3. Не совсем правильно искать текст по окончанию слова. У Вас в названии ещё где-то оно может встречаться и тогда "вылезет боком".
4. Название может быть написано и с маленькой буквы, потому надо предварительно первую букву сделать большой:

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

  TechDoc_Name := UpperFirst(<DM1.QiTechDoc."Name">);

5. При поиске надо проверять чтобы первой была фраза (= 1) а не > 0, потому что "проект" может быть написано и где-то в середине:

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

If Pos('Проект', TechDoc_Name) = 1 then

6. А сама ошибка вот здесь:

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

      If Pos('Проект', TechDoc_Name) > 0 then
        TechDocInfo:= TechDocInfo + Copy(TechDoc_Name, 1, Pos('ект ', TechDoc_Name)) + 'кту  '
      else
      begin
        If Pos('Технічна', TechDoc_Name) > 0 then
          TechDocInfo := TechDocInfo+ Copy(TechDoc_Name, 1, Pos('чна ', TechDoc_Name)) + 'ної документації '
        else
        begin
          If Pos('Технічний звіт', TechDoc_Name) > 0 then
            TechDocInfo  := TechDocInfo  + Copy(TechDoc_Name, 1, Pos('чний ', TechDoc_Name)) + 'чного звіта '
          else
            TechDocInfo := TechDocInfo  + TechDoc_Name + ' ';
        end;
      end;

После условия Вы ни где не присваиваете вторую часть названия технички! У Вас так и остаётся первая часть. Вторую часть надо либо после либо во время условия присваивать. Так как длина текста различная, значит надо во время условия. Правильный код вот:

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

  //-----------------------------------------------------------------------------------------------
  // Техническая документация

  TechDocInfo := ''; // Информация о технической документации

  TechDoc_Name := UpperFirst(<DM1.QiTechDoc."Name">);

  // ТехДок
  If Length(TechDoc_Name) > 0 then
  begin
    If Pos('Проект', TechDoc_Name) = 1 then
      TechDocInfo := TechDocInfo + 'Проекту' + Copy(TechDoc_Name, 7, Length(TechDoc_Name))
    else
    begin
      If Pos('Технічна документація', TechDoc_Name) > 0 then
        TechDocInfo := TechDocInfo + 'Технічної документації' + Copy(TechDoc_Name, 22, Length(TechDoc_Name))
      else
      begin
        If Pos('Технічний звіт', TechDoc_Name) > 0 then
          TechDocInfo  := TechDocInfo  + 'Технічного звіта' + Copy(TechDoc_Name, 15, Length(TechDoc_Name))
        else
          TechDocInfo := TechDocInfo  + TechDoc_Name;
      end;
    end;
  end;