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

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

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

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

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

Повідомлення NoViChoK » 19 грудня 2013, 09:41

Такая проблем: в шаблоне "Договор аренды земли" не хочет выводить улицу участка. Там задана переменная Objectstreet и так вот написано: Objectstreet := <DM2.TbStreet."NameStreet">; В обменнике ставлю в строке "улица" - №123 (договора на паи), пробовал без номера (просто 123) - результат тот же. Иногда "пробивает" :) и в одном договоре ставит № пая, но этот номер потом не меняется (тоесть если задать на "печать по отмеченым" то во всех договорах будет один и тот же номер)
Может можно как то по другому прописать или как исправить такую ошибку?

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

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

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

NoViChoK писав:Такая проблем: в шаблоне "Договор аренды земли" не хочет выводить улицу участка. Там задана переменная Objectstreet и так вот написано: Objectstreet := <DM2.TbStreet."NameStreet">; В обменнике ставлю в строке "улица" - №123 (договора на паи), пробовал без номера (просто 123) - результат тот же. Иногда "пробивает" :) и в одном договоре ставит № пая, но этот номер потом не меняется (тоесть если задать на "печать по отмеченым" то во всех договорах будет один и тот же номер)
Может можно как то по другому прописать или как исправить такую ошибку?

Ничего не понял. Причём тут обменник к шаблону? Разберитесь что у Вас в улице написано, про обменник забудьте! Шаблоны вытягивают данные из базы данных, как там внесено или проимпортировано, так и попадёт в шаблон.

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

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

Повідомлення NoViChoK » 19 грудня 2013, 10:07

Ничего не понял. Причём тут обменник к шаблону? Разберитесь что у Вас в улице написано, про обменник забудьте! Шаблоны вытягивают данные из базы данных, как там внесено или проимпортировано, так и попадёт в шаблон.

Например: Поскольку это пай то я пишу в строке "улица" №123 - не выводит это. А эсли выводит то потом остаётся тот же номер при печати договора для других участков.
Вот шаблон: https://drive.google.com/file/d/0B1qrIOC4bct0b1JUTzFKcFJwWG8/edit?usp=sharing

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

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

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

NoViChoK писав:Например: Поскольку это пай то я пишу в строке "улица" №123 - не выводит это. А эсли выводит то потом остаётся тот же номер при печати договора для других участков.
Вот шаблон: https://drive.google.com/file/d/0B1qrIOC4bct0b1JUTzFKcFJwWG8/edit?usp=sharing

Всё из-за того, что нельзя брать то поле таблицы, которая ни с чем не связана! Да, это название улицы, но какой? Прописывая вот так код:

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

Objectstreet := <DM2.TbStreet."NameStreet">;

Вы берёте первую попавшуюся запись. Именно потому она не меняется, если переходите на другой участок. Для того, чтобы получить улицу правильно, рекомендую либо пользоваться sql-запросом либо функцией SeekStreet(), которая возвращает полностью название улицы вместе с проездом (например, вул. Шевченка). Чтобы получить название улицы и убрать название проезда, надо сделать такой код:

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

Objectstreet := Copy(SeekStreet(<DM1.QbObject."ID_Street">), Pos(' ', SeekStreet(<DM1.QbObject."ID_Street">)), Length(SeekStreet(<DM1.QbObject."ID_Street">)));

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

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

Повідомлення Dorochenko_iv » 09 лютого 2014, 13:10

Добрый день форумчане.
Подскажите, почему при использовании такого кода:

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

    //Данные землевладельца
  NameKto    := ''; //Владелец (кто?)
  NameKomy   := ''; //Владелец (кому?)
  NameKomyGr := ''; //Гр. владелец (кому?)
  NameKogo   := ''; //Владелец (кого?)
  Gender     := ''; //пол владельца
 begin
    If (<DM2.TbTypeOwner."ID_TypeUser"> = True) And (LocateData( 'DM1.QsFirm', 'ID_Firm', <DM1.TbUser."ID_Firm">) = True) Then
    begin
      NameKto    := <DM1.QsFirm."Name_Who">;
      NameKomy   := <DM1.QsFirm."Name_Towhom">;
      NameKomyGr := <DM1.QsFirm."Name_Towhom">;
      NameKogo   := <DM1.QsFirm."Name_Whom">;
    end;
    If (<DM2.TbTypeOwner."ID_TypeUser"> = False) And (LocateData( 'DM1.QsPeople', 'ID_People', <DM1.TbUser."ID_People">) = True) Then
    begin
      NameKto    := <DM1.QsPeople."Family">;
      NameKomy   := <DM1.QsPeople."Family2">;
      NameKomyGr := 'гр. ' + <DM1.QsPeople."Family2">;
      NameKogo   := 'гр. ' + <DM1.QsPeople."Family3">;
    end;
    begin
    If LocateData( 'DM2.TbTypeOwner', 'ID_TypeOwner', <DM1.TbUser."ID_TypeOwner">) = True Then
      Case <DM1.QsPeople."Gender"> of
       '0' : Gender :=  NameKto + ' звернувся(лась)';
       '1' : Gender :=  NameKto + ' звернувся';
       '2' : Gender :=  NameKto + ' звернулась';
    end;
 end;

пока вручную не зайдешь в списки физ.лиц и не выберешь пол владельца определяет как "0", хотя в списке стоит мужской/женский ?

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

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

Повідомлення NickS » 10 лютого 2014, 09:42

Dorochenko_iv писав:пока вручную не зайдешь в списки физ.лиц и не выберешь пол владельца определяет как "0", хотя в списке стоит мужской/женский ?

Потому что значение пола добавлено только недавно, а списки физлиц ведутся у вас уже давно. Следовательно, на старых записях не присвоено значение пола и оно = 0. Да, когда вы заходите в параметры физлица, то программа автоматически определяет его пол и выводит в это поле, но она не присваивает значение до тех пор, пока не сохраните параметры.

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

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

Повідомлення TiJester » 10 лютого 2014, 16:28

Имеется шаблон кадастрового планчика.
Надо сделать чтобы при наличии ограничение рисунок был (отображался и печатался), а при отсутствии ограничении не печатался.
Как текстовое поле это не сложно

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

[IIf(Length(Trim(LimArea)) > 0, 'під обмеженнями', '')]


А как условие для Picture сделать, чтобы управлять параметром visible?

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

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

Повідомлення NickS » 11 лютого 2014, 09:21

TiJester писав:А как условие для Picture сделать, чтобы управлять параметром visible?

В главном коде пишем:

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

If Length(Trim(LimArea)) > 0 then
  Picture1.Visible := true
else
  Picture1.Visible := false;

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

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

Повідомлення TiJester » 11 лютого 2014, 10:56

TiJester писав:If Length(Trim(LimArea)) > 0 then
Picture1.Visible := true
else
Picture1.Visible := false;


Этим условием проверяется наличие ограничение, затем по условию отображается или нет на чертеже.
А мне надо включать либо отображать изображение к примеру Picture5 которая является элементом условного обозначения.
Вот в чем проблема.
http://clip2net.com/s/6NvQqn

LeViK
Повідомлень: 63
З нами з: 25 січня 2012, 09:52
Звідки: BeerDyansk

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

Повідомлення LeViK » 11 лютого 2014, 11:19

А мне надо включать либо отображать изображение к примеру Picture5 которая является элементом условного обозначения.
Вот в чем проблема.


Много непонятных слов. Если бы не картинка, то и не разобрался бы.
В вашем случае выделенный объект называется не Picture1, а по иному. Его название можно посмотреть в инспекторе отчёта: F11 либо вид>панели инструментов>инспектор. Смотреть нужно параметр Name, его значением нужно нужно заменить "Picture1"

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

If Length(Trim(LimArea)) > 0 then
  Picture1.Visible := true
else
  Picture1.Visible := false;