Приклади робочих скриптів у звітових формах
Re: Примеры рабочих скриптов в отчётных формах
какой код нужно прописать в шаблоне кадастрового плана (fr3) что бы при наличии нескольких владельцев прописывало всех владельцев а не какого то одного?
Re: Примеры рабочих скриптов в отчётных формах
Вариантов реализации такого алгоритма может бить несколько. Один из них:
Код: Виділити все
Var
CustomerWho : String;
BEGIN
DataFirst( 'DM1.ListUser');
//----- Перебор списка субъектов
While DataEof( 'DM1.ListUser') = False Do
Bbegin
If LocateData( 'DM2.TbTypeOwner', 'ID_TypeOwner', <DM1.ListUser."ID_TypeOwner">) = True Then
begin
//----- Юр.лицо
IF ( <DM2.TbTypeOwner."ID_TypeUser"> = True) And (LocateData( 'DM1.QsFirm', 'ID_Firm', <DM1.ListUser."ID_Firm">) = True) Then
CustomerWho := CustomerWho + IIF (Length(CustomerWho ) > 0, ', '+<DM1.QsFirm."Name_Who">, <DM1.QsFirm."Name_Who">);
//----- Физ лицо
IF (<DM2.TbTypeOwner."ID_TypeUser"> = False) And (LocateData( 'DM1.QsPeople', 'ID_People', <DM1.ListUser."ID_People">) = True) Then
CustomerWho := CustomerWho + IIF (Length(CustomerWho ) > 0, ', ' + <DM1.QsPeople."Family">, <DM1.QsPeople."Family">);
end;
DataNext( 'DM1.ListUser');
end;
END.
Re: Примеры рабочих скриптов в отчётных формах
подскажите, как правильно добавить в Ваш отчет "Список арендаторов" выборку только по отмеченным часткам.
Re: Примеры рабочих скриптов в отчётных формах
ozkc писав:подскажите, как правильно добавить в Ваш отчет "Список арендаторов" выборку только по отмеченным часткам.
В какой именно наш отчет? Вы имеете введу в пред.посте? Там наведен пример кода для выборки всех субъектов права для текущего зем.участка. Чтоб создать список всех Арендаторов для отмеченных, в цикле для отмеченных зем.участков делаете перебор по таблице Аренды.
В своем примере я делаю поиск в списке Арендаторов, если таковых нету - тогда в списке Субъектов права. Если поиск в списке Субъектов права лишний - просто удалите его.
Код: Виділити все
Var
CustomerWho2, NameTest : Streeng;
OneObject : Boolean;
BEGIN
OneObject := True;
//-----> Для відмічених
ID_Object := <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(ID_Object)); //Возвращаем указатель на место
End;
//------------------------------------------------>
CustomerWho2 := ''; // Власник/Орендатор
NameTest := ''; // для перевірки на повтор
//-----> Цикл по відміченим
Repeat
//-----> Пошук по орендавцям
IF (RecordCount('DM1.QiLease')>0) Then
Begin
DataFirst('DM1.QiLease');
While Not DataEOF('DM1.QiLease')Do
Begin
IF (Pos(<DM1.QiLease."LeaserName"> + ', ',NameTest) = 0) Then
Begin
NameTest := NameTest + <DM1.QiLease."LeaserName"> + ', ';
IF (Length(Trim(CustomerWho)) > 0) Then
CustomerWho := CustomerWho + ' та ';
IF (<DM1.QiLease."ID_LeaserType"> < 3) And (LocateData( 'DM1.QbPeople', 'ID_People', <DM1.QiLease."ID_LeaserPeople">)) Then
CustomerWho := CustomerWho + ' гр. '+ (<DM1.QbPeople."Family">);
IF (<DM1.QiLease."ID_LeaserType"> > 2) And (LocateData( 'DM1.QbFirm', 'ID_Firm', <DM1.QiLease."ID_LeaserFirm">)) Then
CustomerWho := CustomerWho + <DM1.QbFirm."Name_Who">;
End;
DataNext('DM1.QiLease');
End;
CustomerWho := Trim(CustomerWho);
End
Else
//----->Якщо дані в табл. Оренда відсутні - тоді вибірка із списка Суб"єктів права
Begin
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');
While (DataEOF('DM1.QuerySQL') = False) Do
Begin
IF (LocateData( 'DM2.TbTypeOwner', 'ID_TypeOwner', GetValue('DM1.QuerySQL', 'ID_TypeOwner'))) And (Pos(GetValue('DM1.QuerySQL', 'NameUser') + ', ',NameTest) = 0) Then
Begin
NameTest := NameTest + GetValue('DM1.QuerySQL', 'NameUser') + ', ';
Property := True;
If (Length(Trim(CustomerWho)) > 0) Then
CustomerWho := CustomerWho + ' та ';
IF (<DM2.TbTypeOwner."ID_TypeUser"> = False) And (LocateData('DM1.QbPeople','ID_People',GetValue('DM1.QuerySQL', 'ID_People'))) Then
CustomerWho := CustomerWho + ' гр. '+ {FamilyShort}(<DM1.QbPeople."Family">);
IF (<DM2.TbTypeOwner."ID_TypeUser"> = True) AND (LocateData('DM1.QbFirm','ID_Firm',GetValue('DM1.QuerySQL', 'ID_Firm'))) Then
CustomerWho := CustomerWho + <DM1.QbFirm."Name_Who">;
End;
DataNext('DM1.QuerySQL');
End;
CustomerWho := Trim(CustomerWho);
End;
//---------------------------------------------->
IF (OneObject = False) Then
DataNext('DM1.QbObject');
Until (DataEOF('DM1.QbObject') = True) or OneObject;
//------------------------------------------------>
END.
-
- Повідомлень: 11
- З нами з: 30 січня 2013, 11:34
- Звідки: Харьков
Re: Примеры рабочих скриптов в отчётных формах
а есть где-нибудь типа словарик с расшифровками выражений БД? а то не шурупая в шаблонах да ещё и методом "научного тыка" очень долгое получается редактирование шаблонов
- Dorochenko_iv
- Повідомлень: 162
- З нами з: 12 березня 2010, 21:55
- Звідки: м.Чернігів
- Контактна інформація:
Re: Примеры рабочих скриптов в отчётных формах
anchous814 писав:а есть где-нибудь типа словарик с расшифровками выражений БД? а то не шурупая в шаблонах да ещё и методом "научного тыка" очень долгое получается редактирование шаблонов
В папочке Gis6, есть папочка Reports. В ней файлик "База данных GIS6.xls", либо на сайте http://www.gis.org.ua/gis6_reports.htm.
Re: Примеры рабочих скриптов в отчётных формах
anchous814 писав:а есть где-нибудь типа словарик с расшифровками выражений БД? а то не шурупая в шаблонах да ещё и методом "научного тыка" очень долгое получается редактирование шаблонов
Также на установочном диске :\Book\Метод доступа до полей 5 и 6.pdf - примеры наиболее часто используемых процедур обработки данных в отчетных формах, в "Базы данных GIS6.xls" - описание полей основных таблиц БД ГИС - понадобиться Вам для составления SQL запросов или для работы с теми же отчетными формами.
-
- Повідомлень: 11
- З нами з: 30 січня 2013, 11:34
- Звідки: Харьков
Re: Примеры рабочих скриптов в отчётных формах
feNICKs писав:anchous814 писав:а есть где-нибудь типа словарик с расшифровками выражений БД? а то не шурупая в шаблонах да ещё и методом "научного тыка" очень долгое получается редактирование шаблонов
Также на установочном диске :\Book\Метод доступа до полей 5 и 6.pdf - примеры наиболее часто используемых процедур обработки данных в отчетных формах, в "Базы данных GIS6.xls" - описание полей основных таблиц БД ГИС - понадобиться Вам для составления SQL запросов или для работы с теми же отчетными формами.
действительно. дякую. только не в "reports", а в "book".
- Dorochenko_iv
- Повідомлень: 162
- З нами з: 12 березня 2010, 21:55
- Звідки: м.Чернігів
- Контактна інформація:
Re: Примеры рабочих скриптов в отчётных формах
anchous814 писав:действительно. дякую. только не в "reports", а в "book".
В Reports также есть, только не на диске, а в Program Files\gis6\Reports
Re: Примеры рабочих скриптов в отчётных формах
Всем привет!
В связи с вступлением в действие постановы 1051 и переходом на КВЗУ земагенство желает видеть вышеуказанный код (формат ххх.уу) в экспликации на кад.плане.
Кто-нибудь уже предпринимал шаги в этом направлении (Универсальная экспликация предлагает только название угодия)? Поделитесь переменной плз, буду весьма благодарен .
P.S. Я так понимаю, что будут внесены соответсвующие изменения в GIS6.xls . Где можно будет ознакомится?
В связи с вступлением в действие постановы 1051 и переходом на КВЗУ земагенство желает видеть вышеуказанный код (формат ххх.уу) в экспликации на кад.плане.
Кто-нибудь уже предпринимал шаги в этом направлении (Универсальная экспликация предлагает только название угодия)? Поделитесь переменной плз, буду весьма благодарен .
P.S. Я так понимаю, что будут внесены соответсвующие изменения в GIS6.xls . Где можно будет ознакомится?