Звіти в ГІС 6

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

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

feNICKs
Повідомлень: 412
З нами з: 13 січня 2012, 16:03
Контактна інформація:

Re: Отчеты в GIS6

Повідомлення feNICKs » 20 вересня 2013, 12:39

Vaho писав:Здравствуйте! Подскажите пожалуйста, как в отчет *.fr3 вытянуть значение масштаба с окна "камеральные функции", если на этом же отчете присутствуют две картинки (с окна "камеральные функции" и с окна "карта"). Я пробовал переменной "[Scale]", но увы, вытягивает с окна "карта".

Функция Scale() задает масштаб рисунка - возвращает значение масштаба с активного окна т.е. с которого Вы открыли отчетную форму.
Запустите отчетную форму с окна "Камеральные функции". Функция Scale() вернет значение масштаба рисунка установленного в данном окне. А если нужно вывести масштаб с окна Карта - используйте функцию GetScale() - Возвращает масштаб рисунка.
п.с. детальное описание служебных переменных и функций: C:\Program Files\GIS6\_Описание переменных.txt

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

Re: Отчеты в GIS6

Повідомлення NickS » 20 вересня 2013, 13:29

Vaho писав:Здравствуйте! Подскажите пожалуйста, как в отчет *.fr3 вытянуть значение масштаба с окна "камеральные функции", если на этом же отчете присутствуют две картинки (с окна "камеральные функции" и с окна "карта"). Я пробовал переменной "[Scale]", но увы, вытягивает с окна "карта".

Запускайте отчётную форму из окна "Камеральные функции", тогда переменная [Scale] вернёт масштаб камеральных, а функция [GetScale()] - масштаб из окна "Карта".

Аватар користувача
Vaho
Повідомлень: 130
З нами з: 21 жовтня 2011, 10:01

Re: Отчеты в GIS6

Повідомлення Vaho » 24 вересня 2013, 10:36

NickS писав:
Vaho писав:Здравствуйте! Подскажите пожалуйста, как в отчет *.fr3 вытянуть значение масштаба с окна "камеральные функции", если на этом же отчете присутствуют две картинки (с окна "камеральные функции" и с окна "карта"). Я пробовал переменной "[Scale]", но увы, вытягивает с окна "карта".

Запускайте отчётную форму из окна "Камеральные функции", тогда переменная [Scale] вернёт масштаб камеральных, а функция [GetScale()] - масштаб из окна "Карта".

Запускаю я шаблон с окна "Камеральные функции", а он все ровно масштаб вытягивает с окна "карта"!!!

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

Re: Отчеты в GIS6

Повідомлення NickS » 24 вересня 2013, 16:00

Vaho писав:Запускаю я шаблон с окна "Камеральные функции", а он все ровно масштаб вытягивает с окна "карта"!!!

Переменная [Scale] всёравно вытягивает масштаб карты? Дайте свой шаблон.

Аватар користувача
Vaho
Повідомлень: 130
З нами з: 21 жовтня 2011, 10:01

Re: Отчеты в GIS6

Повідомлення Vaho » 25 вересня 2013, 10:00

NickS писав:Переменная [Scale] всёравно вытягивает масштаб карты? Дайте свой шаблон.

Отправил на support@gis.org.ua

feNICKs
Повідомлень: 412
З нами з: 13 січня 2012, 16:03
Контактна інформація:

Re: Отчеты в GIS6

Повідомлення feNICKs » 30 вересня 2013, 09:40

Vaho писав:
NickS писав:Переменная [Scale] всёравно вытягивает масштаб карты? Дайте свой шаблон.

Отправил на support@gis.org.ua

Вы в коде, в процедуре загрузки изображения (Picture2OnBeforePrint), задаете вручную значение масштаба (SETSCALE(50000);) поэтому конечно у Вас переменная [Scale()] будет выводить масштаб с окна карты = 50000. Почему тогда Вы выводите масштаб с окна камерал.функции, если рисунок с окна карта да и еще задан вручную?
Вы же можете сформировать и загрузить изображение в нужном масштабе и не меняя значения масштаба в самом окне:
DRAWWMF(<Длинна>,<Высота>,<Масштаб>) - Выполняет формирование рисунка для активного земельного участка
DRAWMAP(<Длинна>,<Высота>,<Масштаб>) - Выполняет формирование рисунка (окно Карта)

GENYA
Повідомлень: 68
З нами з: 23 грудня 2010, 08:51

Re: Отчеты в GIS6

Повідомлення GENYA » 13 січня 2014, 17:20

Всем привет. Поскажите есть ли у кого отчетная форма на акт переноса в натуру..... ограничений, чтобы в нем подтягивало и площадь и название ограничений? Буду очень благодарен.

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

Re: Отчеты в GIS6

Повідомлення NickS » 13 січня 2014, 17:27

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

Смотрите здесь. http://gis.org.ua/gis6_reports.htm Как раз недавно выставляли много новых шаблонов (отмечены белым цветом)

zigura_a
Повідомлень: 37
З нами з: 19 березня 2014, 08:26

Re: Отчеты в GIS6

Повідомлення zigura_a » 19 березня 2014, 08:54

Підскажіть якщо в мене є два участка в гіс6 то чи можу я роздруквати технічну документацію щоб програма сама сплюсувала площі обох участків і вивела загальну площу і щоб в адресі розміщення ділянки також вказувались адреси обох участків. Дякую за відповідь

feNICKs
Повідомлень: 412
З нами з: 13 січня 2012, 16:03
Контактна інформація:

Re: Отчеты в GIS6

Повідомлення feNICKs » 19 березня 2014, 09:26

zigura_a писав:Підскажіть якщо в мене є два участка в гіс6 то чи можу я роздруквати технічну документацію щоб програма сама сплюсувала площі обох участків і вивела загальну площу і щоб в адресі розміщення ділянки також вказувались адреси обох участків. Дякую за відповідь

Ну тут не все так просто... Это нужно делать отчетную форму (техничку) для помеченных участков зеленной меткой т.е. применить фильтр + в цикле перебирать все участки с зеленной меткой и суммировать площадь( например, ObjectArea := ObjectArea + <DM1.QbObject."Area">). А с адресом, либо так (ObjectAdress := ObjectAdress + <DM1.QbObject."Address">), либо делать анализ по кадастровому номеру и собирать адрес по кусочкам (область, район, совет, нас.пункт, улица, дом).

Цикл по отмеченным:

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

VAR
   ObjectArea : Double;
   City, Street, StreetTo, Address, Numb_House : String;

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;

     //-----> Цикл по відміченим (початок)
    Repeat
       
        ObjectArea := ObjectArea + <DM1.QbObject."Area">; // Площа

        SeekIKN( <DM1.QbObject."IKN">);
         
         City := '';
         Street := '';
         StreetTo := '';
         Numb_House := '';

        // Адреса
        If <DM1.QbObject."ID_TypeLocation"> = 0 Then
        Begin
           //Населений пункт
           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)
              Else
              If (Length( Name_Advice) > 0) And ((Pos( 'м.', Name_Advice) > 0) Or (Pos( 'с.', Name_Advice) > 0) Or (Pos( 'смт',Name_Advice) > 0) Or (Pos( 'c-', Name_Advice) > 0)) Then
                 City := ( Name_Advice)
              Else
                 If (Length( Name_Region) > 0) And ((Pos( 'м.', Name_Region) > 0) Or (Pos( 'с.', Name_Region) > 0) Or (Pos( 'смт',Name_Region) > 0) Or (Pos( 'c-', Name_Region) > 0)) Then
                    City := ( Name_Region)
                 Else
                    If (Length( Name_Area) > 0) And ((Pos( 'м.', Name_Area) > 0) Or (Pos( 'с.', Name_Area) > 0) Or (Pos( 'смт',Name_Area) > 0) Or (Pos( 'c-', Name_Area) > 0)) Then
                       City := ( Name_Area);


           // Назва вулиці
           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) And (Length( GetValue( 'DM1.Query','NameWhom')) > 0) Then
                 Street := Street +  GetValue( 'DM1.Query','NameWhom')
              Else
                 Street := Street +  GetValue( 'DM1.Query','NameStreet');
              End;

           // Номер вулиці/будинку
           Numb_House              := <DM1.QbObject."Num_House">;

           // Адреса зем.ділянки
           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;
        //-------------------------------------------->

        If Not OneObject Then
           DataNext( 'DM1.QbObject');

    Until DataEOF( 'DM1.QbObject') or OneObject;
     // кінець цикла
    //------------------------------------------------>
END. // основное тело(конец)


п.с. не обращайте внимание на рус. и укр. комменты - набросал быстренько с разных форм.