Тех. документація на дві ділянки

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

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

simon4ik
Повідомлень: 9
З нами з: 09 серпня 2011, 16:33

Re: Тех. документация на два участка

Повідомлення simon4ik » 11 липня 2012, 15:21

:facepalm:
Востаннє редагувалось 11 липня 2012, 15:52 користувачем simon4ik, всього редагувалось 1 раз.

simon4ik
Повідомлень: 9
З нами з: 09 серпня 2011, 16:33

Re: Тех. документация на два участка

Повідомлення simon4ik » 11 липня 2012, 15:23

С планами уже разобралсяю А вот как быть со смежниками?

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

Re: Тех. документация на два участка

Повідомлення feNICKs » 11 липня 2012, 17:46

Если Вам нужно вывести описание границ (т.е. смежников) посмотрите для примера в отчетной форме "Описание границ земельного участка.fr3" поле "MemoOpisMej" в обработчике событий определена процедура для вывода такого списка. Попробуйте добавить в своей отчетной форме в бэнд (ниже рисунка) поле MemoOpisMej и скопируйте процедуру тоже. Получается бэнд будет перечислять все из списка главной таблицы зем.участки и для каждого из них будет вытягивать с БД список смежников.

simon4ik
Повідомлень: 9
З нами з: 09 серпня 2011, 16:33

Re: Тех. документация на два участка

Повідомлення simon4ik » 11 липня 2012, 18:42

Если я правильно понял, то это

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

  procedure MemoOpisMejOnBeforePrint(Sender: TfrxComponent);
Var
  sMej, sStr : String;
  iMej : Integer;
begin
  with MemoOpisMej, Engine do
  begin
   MemoOpisMej.Lines.Clear;

   sMej := OpisMej;
   sStr := '';
   iMej := 0;

   While Length( sMej) > 0 Do
   Begin
      If Pos( ';', sMej) > 0 Then
         Begin
            sStr := Trim( Copy( sMej, 1, Pos( ';', sMej)));
            sMej := Trim( Copy( sMej, Pos( ';', sMej) +1, Length( sMej) -Pos( ';', sMej)));
         End
      Else
         Begin
            sStr := Trim( sMej);
            sMej := '';
         End;

      iMej := iMej +1;
      MemoOpisMej.Lines.Add( sStr);
   End;

   If iMej > 0 then
   begin
     MemoOpisMej.Height := 15 *iMej;

     MemoOpis.Top     := MemoOpis.Top     -15 *(iMej -1);
     MemoOpisMej.Top  := MemoOpisMej.Top  -15 *(iMej -1);
     MemoOpisFrom.Top := MemoOpisFrom.Top -15 *(iMej -1);
   end;
  end
end;

вставляем в код и копируем поле "MemoOpisMej".
Не работает :neuk:

Аватар користувача
shelsadmin
Администратор
Повідомлень: 130
З нами з: 29 лютого 2008, 12:46
Звідки: Компания ШЕЛС
Контактна інформація:

Re: Тех. документация на два участка

Повідомлення shelsadmin » 12 липня 2012, 11:07

simon4ik писав:Если я правильно понял,
вставляем в код и копируем поле "MemoOpisMej".
Не работает :neuk:


У Вас в коде есть также текстовые объекты MemoOpis и MemoOpisFrom.
Код будет рабочим если их добавить как и MemoOpisMej или наоборот убрать(закомментировать) из кода, как в примере ниже:

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

procedure MemoOpisMejOnBeforePrint(Sender: TfrxComponent);
Var
  sMej, sStr : String;
  iMej : Integer;
begin
  with MemoOpisMej, Engine do
  begin
   MemoOpisMej.Lines.Clear;

   sMej := OpisMej;
   sStr := '';
   iMej := 0;

   While Length( sMej) > 0 Do
   Begin
      If Pos( ';', sMej) > 0 Then
         Begin
            sStr := Trim( Copy( sMej, 1, Pos( ';', sMej)));
            sMej := Trim( Copy( sMej, Pos( ';', sMej) +1, Length( sMej) -Pos( ';', sMej)));
         End
      Else
         Begin
            sStr := Trim( sMej);
            sMej := '';
         End;

      iMej := iMej +1;
      MemoOpisMej.Lines.Add( sStr);
   End;

   If iMej > 0 then
   begin
     MemoOpisMej.Height := 15 *iMej;

     //MemoOpis.Top     := MemoOpis.Top     -15 *(iMej -1);
     MemoOpisMej.Top  := MemoOpisMej.Top  -15 *(iMej -1);
     //MemoOpisFrom.Top := MemoOpisFrom.Top -15 *(iMej -1);
   end;
  end
end;