Приклади робочих скриптів у звітових формах
Re: Примеры рабочих скриптов в отчётных формах
Вам необходимо связаться с нашей службой тех.поддержки http://www.shels.ru/contact.htm т.к. стоимость заказа зависит от объема, сложности формирования выборки данных и содержания отчетной формы.
Re: Примеры рабочих скриптов в отчётных формах
NoViChoK писав:Допоможіть з кодом. Потрібно ось що: наприклад - є дві ділянки. Одна знаходиться за адоесою: Житомирська область Коростишівський район с.Кмитів вул. Жовтнева 55, а друга ділянка - Житомирська область Коростишівський район с.Кмитів тобто якийсь город десь на території села...Як написати код щоб якщо вулиця однієї ділянки прописана а іншої ні то писало так: ділянки знаходятся за адресою Житомирська область Коростишівський район с.Кмитів вул. Жовтнева 55 та на території Кмитівської сільської ради.
Я так розумію мова йде про шаблон, який повинен виводити інформацію по відміченим ділянкам? І в даному випадку є дві відмічені, вірно? Спочатку потрібно більш детальніше продумати алгоритм:
1. Ділянки відмічаються лише в даній раді?
2. Вулиці ставляться лише як "вул."?
3. Чи може краще орієнтуватись по заповненим полям "вулиця", "номер будинку"?
4. Відмічаються лише дві ділянки чи може бути більше?
Від варіантів відповідей буде залежати код.
Re: Примеры рабочих скриптов в отчётных формах
Ділянки відмічаються лише у даній раді. Так, напевно краще орієнтуватись на заповнені поля "вулиця та "будинок". Ділянок може бути більше.
Re: Примеры рабочих скриптов в отчётных формах
Ділянки відмічаються лише у даній раді. Так, напевно краще орієнтуватись на заповнені поля "вулиця та "будинок". Ділянок може бути більше.
Вот пример программного кода, для формирования адреса зем.участка по полям: нас.пункт, улица, номер дома.
Если зем.участок находиться за пределами населенного пункта, тогда к адресу прибавляется название совета (совет, района, области).
Код: Виділити все
Var
City, Street, StreetTo, Address, Numb_House, Territory : String;
ID_Object : Byte;
OneObject : Boolean;
BEGIN
//-----> Для відмічених
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;
//------------------------------------------------>
SeekIKN(<DM1.QbObject."IKN">);
Territory := 'на території '; // Місцезнаходження зем.ділянки
//Рада
If Length(Name_Advice) > 0 then
begin
If Pos('ька ', Name_Advice) > 0 then
If Pos('сільська', Name_Advice) > 0 then
Territory := Territory + Copy(Name_Advice, 1, Pos('ька ', Name_Advice)) + 'кої сільської ради '
else
If Pos('міська', Name_Advice) > 0 then
Territory := Territory + Copy(Name_Advice, 1, Pos('ька ', Name_Advice)) + 'кої міської ради '
else
If Pos('селищна', Name_Advice) > 0 then
Territory := Territory + Copy(Name_Advice, 1, Pos('ька ', Name_Advice)) + 'кої селищної ради '
else
Territory := Territory + Name_Advice + ' '
else
Territory := Territory + Name_Advice + ' ';
end;
//Район
If (Length(Name_Region) > 0) Then
begin
If (Pos('ький ', Name_Region) > 0) Then
Territory := Territory + Copy(Name_Region, 1, Pos('ький ', Name_Region)) + 'кого району '
else
If (Pos('ний ', Name_Region) > 0) Then
Territory := Territory + Copy(Name_Region, 1, Pos('ний ', Name_Region)) + 'ного району '
else
Territory := Territory + Name_Region + ' ';
end;
//Область
If (Length(Name_Area) > 0) then
begin
If (Pos('ька ', Name_Area) > 0) then
Territory := Territory + Copy(Name_Area, 1, Pos('ька ', Name_Area)) + 'кої області '
else
Territory := Territory + Name_Area + ' ';
end;
// Удаление запятой с пробелом в конце строки
If Length(Trim(Territory)) > 1 then
Territory := Copy(Territory, 1, LENGTH(Territory)-1);
//------------------------------------------------>
//-----> Цикл по відміченим (формування адреси)
Repeat
SeekIKN(<DM1.QbObject."IKN">);
//Населений пункт
If (Length(Name_Place) > 0) And ((Pos( 'м.', Name_Place) > 0) Or (Pos( 'с.', Name_Place) > 0) Or (Pos( 'смт',Name_Place) > 0) Or (Pos( 'c-', Name_Place) > 0)) Then
City := Name_Place;
// Назва вулиці
// Street := SeekStreet(<DM1.QbObject."ID_Street">);
Query('Select S.* From Street S Where S.ID_Street='+IntToStr(<DM1.QbObject."ID_Street">));
If (RecordCount('DM1.Query')>0) Then
Begin
If(LocateData('DM2.TbTypeStreet','ID_TypeStreet', GetValue('DM1.Query','ID_TypeStreet'))) Then
Street := GetValue('DM2.TbTypeStreet','NameSmall');
IF (GetValue('DM1.Query','NameWhom') <> Null) Then
Street := Street + GetValue('DM1.Query','NameWhom')
Else
Street := Street + GetValue('DM1.Query','NameStreet');
End;
// Номер вулиці/будинку
Numb_House := <DM1.QbObject."Num_House">;
//Якщо зем.ділянка в нас.пункті
IF (<DM1.QbObject."ID_TypeLocation"> = 0) Then
Begin
// Адреса зем.ділянки
IF (Length(Address) = 0) Then
Begin
Address := Address + ' в ' +City;
Address := Address + ' по ' +Street;
Address := Address + IIF(Length(Numb_House)>0,', '+ Numb_House, '');
End
Else
Begin
IF (Pos(City,Address)=0) Then
Begin
Address := Address + ' та в ' +City;
IF (Pos(Street,Address)=0) Then
Address := Address + ' по ' +Street;
End;
IF (Pos(Street,Address)=0) Then
Address := Address + ' та по ' +Street;
IF (Pos(Numb_House,Address)=0) Then
Address := Address + IIF(Length(Numb_House)>0,', '+ Numb_House, '');
End;
End
Else
// якщо за межами населенного пункта
Begin
IF (Length(Address) = 0) Then
Address := Territory
Else
Address := Address + ' та ' + Territory;
End;
If (OneObject = False) Then
DataNext('DM1.QbObject');
Until (DataEOF('DM1.QbObject') = True) or OneObject;
End.
Re: Примеры рабочих скриптов в отчётных формах
Допоможіть ще раз будьласка
Хочу щоб в кадастровому плані автоматично прописувало сільску раду та П.І.Б. голови, тобто так:
"Погоджено"
Голова Синявської сільської ради______________П.І. Лавський
Як реалізувати це за допомогою коду? Які дані треба підключити? (використовую шаблон fr3)
Хочу щоб в кадастровому плані автоматично прописувало сільску раду та П.І.Б. голови, тобто так:
"Погоджено"
Голова Синявської сільської ради______________П.І. Лавський
Як реалізувати це за допомогою коду? Які дані треба підключити? (використовую шаблон fr3)
Re: Примеры рабочих скриптов в отчётных формах
NoViChoK писав:Допоможіть ще раз будьласка
Хочу щоб в кадастровому плані автоматично прописувало сільску раду та П.І.Б. голови, тобто так:
"Погоджено"
Голова Синявської сільської ради______________П.І. Лавський
Як реалізувати це за допомогою коду? Які дані треба підключити? (використовую шаблон fr3)
Код:
Код: Виділити все
RdaFirmKogo := ''; //Название территориального органа (кого?)
RdaPostPred := ''; //Должность представителя территориального органа
RdaFIOPred := ''; //ФИО представителя территориального органа
If (RecordCount('DM1.QiGosakt') > 0) then
begin
If (<DM1.QiGosAkt."Dec_Firm"> > 0) And LOCATEDATA( 'DM1.QbFirm', 'ID_Firm', <DM1.QiGosAkt."Dec_Firm">) Then
If LocateData('DM1.TbWorking', 'ID_People', <DM1.QiGosAkt."Dec_People">) = true then
begin
RdaFirmKogo := <DM1.QbFirm."Name_Whom">;
If LocateData('DM2.TbTypeWorking', 'ID_TypeWorking', <DM1.TbWorking."ID_TypeWorking">)= true then
RdaPostPred := Trim(<DM2.TbTypeWorking."Name">);
If LocateData('DM1.QbPeople', 'ID_People', <DM1.TbWorking."ID_People">)= true then
RdaFIOPred := <DM1.QbPeople."Family">;
end;
end
else
begin
RdaFirmKogo := Rda_Firm_Whom;
RdaPostPred := Rda_Post;
RdaFIOPred := Rda_People;
end;
Описуємо змінні:
Код: Виділити все
RdaFirmKogo, RdaPostPred, RdaFIOPred : string;
Підключаємо таблиці: DM1.QbPeople, DM1.QbFirm, DM1.TbWorking, DM2.TbTypeWorking, DM1.QiGosAkt
В тексті посада: [UpperFirst(RdaPostPred)] [RdaFirmKogo]
ФІО: [ShortFamily(RdaFIOPred)]
Re: Примеры рабочих скриптов в отчётных формах
Скажіть будьласка, в чому може бути причина? Для формування адреси в шаблонах використовую даний код:
Але він чомусь не відображає назву вулиці, хоча номер будинку відображає, тобто: при вводі [Address] відображає так - "...в с. Синявка по вул.,21". Якщо ввести [Street ] то - "вул."
В чому може бути причина? (ну дані по земельній ділянці звісно заповнені).
Код: Виділити все
BEGIN
//-----> Для відмічених
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;
//------------------------------------------------>
SeekIKN(<DM1.QbObject."IKN">);
Territory := 'на території '; // Місцезнаходження зем.ділянки
//Рада
If Length(Name_Advice) > 0 then
begin
If Pos('ька ', Name_Advice) > 0 then
If Pos('сільська', Name_Advice) > 0 then
Territory := Territory + Copy(Name_Advice, 1, Pos('ька ', Name_Advice)) + 'кої сільської ради '
else
If Pos('міська', Name_Advice) > 0 then
Territory := Territory + Copy(Name_Advice, 1, Pos('ька ', Name_Advice)) + 'кої міської ради '
else
If Pos('селищна', Name_Advice) > 0 then
Territory := Territory + Copy(Name_Advice, 1, Pos('ька ', Name_Advice)) + 'кої селищної ради '
else
Territory := Territory + Name_Advice + ' '
else
Territory := Territory + Name_Advice + ' ';
end;
//Район
If (Length(Name_Region) > 0) Then
begin
If (Pos('ький ', Name_Region) > 0) Then
Territory := Territory + Copy(Name_Region, 1, Pos('ький ', Name_Region)) + 'кого району '
else
If (Pos('ний ', Name_Region) > 0) Then
Territory := Territory + Copy(Name_Region, 1, Pos('ний ', Name_Region)) + 'ного району '
else
Territory := Territory + Name_Region + ' ';
end;
//Область
If (Length(Name_Area) > 0) then
begin
If (Pos('ька ', Name_Area) > 0) then
Territory := Territory + Copy(Name_Area, 1, Pos('ька ', Name_Area)) + 'кої області '
else
Territory := Territory + Name_Area + ' ';
end;
// Удаление запятой с пробелом в конце строки
If Length(Trim(Territory)) > 1 then
Territory := Copy(Territory, 1, LENGTH(Territory)-1);
//------------------------------------------------>
//-----> Цикл по відміченим (формування адреси)
Repeat
SeekIKN(<DM1.QbObject."IKN">);
//Населений пункт
If (Length(Name_Place) > 0) And ((Pos( 'м.', Name_Place) > 0) Or (Pos( 'с.', Name_Place) > 0) Or (Pos( 'смт',Name_Place) > 0) Or (Pos( 'c-', Name_Place) > 0)) Then
City := Name_Place;
// Назва вулиці
// Street := SeekStreet(<DM1.QbObject."ID_Street">);
Query('Select S.* From Street S Where S.ID_Street='+IntToStr(<DM1.QbObject."ID_Street">));
If (RecordCount('DM1.Query')>0) Then
Begin
If(LocateData('DM2.TbTypeStreet','ID_TypeStreet', GetValue('DM1.Query','ID_TypeStreet'))) Then
Street := GetValue('DM2.TbTypeStreet','NameSmall');
IF (GetValue('DM1.Query','NameWhom') <> Null) Then
Street := Street + GetValue('DM1.Query','NameWhom')
Else
Street := Street + GetValue('DM1.Query','NameStreet');
End;
// Номер вулиці/будинку
Numb_House := <DM1.QbObject."Num_House">;
//Якщо зем.ділянка в нас.пункті
IF (<DM1.QbObject."ID_TypeLocation"> = 0) Then
Begin
// Адреса зем.ділянки
IF (Length(Address) = 0) Then
Begin
Address := Address + ' в ' +City;
Address := Address + ' по ' +Street;
Address := Address + IIF(Length(Numb_House)>0,', '+ Numb_House, '');
End
Else
Begin
IF (Pos(City,Address)=0) Then
Begin
Address := Address + ' та в ' +City;
IF (Pos(Street,Address)=0) Then
Address := Address + ' по ' +Street;
End;
IF (Pos(Street,Address)=0) Then
Address := Address + ' та по ' +Street;
IF (Pos(Numb_House,Address)=0) Then
Address := Address + IIF(Length(Numb_House)>0,', '+ Numb_House, '');
End;
End
Else
// якщо за межами населенного пункта
Begin
IF (Length(Address) = 0) Then
Address := Territory
Else
Address := Address + ' та ' + Territory;
End;
If (OneObject = False) Then
DataNext('DM1.QbObject');
Until (DataEOF('DM1.QbObject') = True) or OneObject;
End.
Але він чомусь не відображає назву вулиці, хоча номер будинку відображає, тобто: при вводі [Address] відображає так - "...в с. Синявка по вул.,21". Якщо ввести [Street ] то - "вул."
В чому може бути причина? (ну дані по земельній ділянці звісно заповнені).
Re: Примеры рабочих скриптов в отчётных формах
NoViChoK писав:Але він чомусь не відображає назву вулиці, хоча номер будинку відображає, тобто: при вводі [Address] відображає так - "...в с. Синявка по вул.,21". Якщо ввести [Street ] то - "вул."
В чому може бути причина? (ну дані по земельній ділянці звісно заповнені).
Через оцей шмат коду:
Код: Виділити все
IF (GetValue('DM1.Query','NameWhom') <> Null) Then
Street := Street + GetValue('DM1.Query','NameWhom')
Else
Street := Street + GetValue('DM1.Query','NameStreet');
Тут говориться про те, що якщо існує поле з відміненою (кого?) вулицею, то воно вставляє її, якщо ні, то вставляє без відмінка. Треба або прибрати відмінок, бо я сумніваюсь, що Ви записуєте відмінок вулиці:
Код: Виділити все
Street := Street + GetValue('DM1.Query','NameStreet');
Або переробити на іншу перевірку:
Код: Виділити все
IF (Length(Trim(GetValue('DM1.Query','NameWhom'))) > 0) Then
Street := Street + GetValue('DM1.Query','NameWhom')
Else
Street := Street + GetValue('DM1.Query','NameStreet');
Re: Примеры рабочих скриптов в отчётных формах
Подскажите как распечатать характеристику земельного участка по агрогруппам в табличной форме: 1. Наименование агрогруппы, 2. Площадь, 3. Денежная оценка агрогруппы.
Re: Примеры рабочих скриптов в отчётных формах
NTD писав:Подскажите как распечатать характеристику земельного участка по агрогруппам в табличной форме: 1. Наименование агрогруппы, 2. Площадь, 3. Денежная оценка агрогруппы.
Для начала надо подключить таблицу DM1.TbAgro, потом создать бэнд (MasterData) и установить источником эту таблицу. На бенд кинуть поля:
1 - [DM1.TbAgro."Name"]
2 - [DM1.TbAgro."Area"] (оформить по желанию)
3 - [DM1.TbAgro."Cost"]