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

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

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

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

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

Повідомлення feNICKs » 26 квітня 2013, 15:53

Zloy писав:А если у меня "спільна-сумсісна оренда", как двух арендаторов отобразить в отчетной форме в одну строчу
например: "гр. Іванов Іван Іванович, гр. Петров Петро Петрович"?

Чтоб отобразить в одну строчку, нужно их записать в одну перемененную (в цикле).
Например

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

Var   
   LeaserList : String;
BEGIN
   
      IF (RecordCount( 'DM1.QiLease')>0) Then
      Begin
         DataFirst( 'DM1.QiLease');

         While Not DataEOF( 'DM1.QiLease')Do
         Begin
            IF (Pos( <DM1.QiLease."LeaserName"> + ', ', LeaserList) = 0) Then
            Begin

               IF (Length( Trim( LeaserList)) > 0) Then
                   LeaserList := LeaserList + ', ';

               IF (<DM1.QiLease."ID_LeaserType"> < 3) And (LocateData( 'DM1.QbPeople', 'ID_People', <DM1.QiLease."ID_LeaserPeople">)) Then
                   LeaserList := LeaserList + ' ãð. '+ (<DM1.QbPeople."Family">);

               IF (<DM1.QiLease."ID_LeaserType"> > 2) And (LocateData( 'DM1.QbFirm', 'ID_Firm', <DM1.QiLease."ID_LeaserFirm">)) Then
                   LeaserList := LeaserList + <DM1.QbFirm."Name_Who">;
            End;

            DataNext('DM1.QiLease');
         End;

         LeaserList := Trim(LeaserList);
      End;
END.

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

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

Повідомлення Vaho » 29 квітня 2013, 16:19

Доброго времени суток! Помогите пожалуйста. Как можно выключить диалоговое окно в отчете если оно не нужно. Постараюсь объяснить. У меня на участках есть сервитуты и ограничения, но в отчет мне нужно выводить иногда сервитуты, иногда ограничения но не в коем случае оба сразу. Поэтому пришлось создать такой шаблон с переключателем, но есть участки там где только сервитуты или ограничения. Хотелось бы чтоб код проверял нужно выдавать диалоговое окно или нет, то-есть: если присутствуют и одно и другое то выкинуть диалоговое окно, а если что-то одно, то именно с него делать.

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

procedure Button1OnClick(Sender: TfrxComponent);

begin
plosh4a :='';
TypeLinija :=''; // тип лінії
NomerOporu := ''; //Номер опоры
nazva1     := ''; //
nazva2     := ''; //
IF RAES.Checked then
 begin
   VISIBLEMAPLAYER(0, false);  //
   VISIBLEMAPLAYER(1, true);   // участок
   VISIBLEMAPLAYER(2, true);   //
   VISIBLEMAPLAYER(3, true);   // центры опор РАЕС
   VISIBLEMAPLAYER(4, false);  //
   VISIBLEMAPLAYER(5, false);  //
   VISIBLEMAPLAYER(6, false);   // центры опор ХАЕС
   VISIBLEMAPLAYER(7, false);  // охранная зона ХАЕС
   VISIBLEMAPLAYER(8, true);   // охранная зона РАЕС
   VISIBLEMAPLAYER(9, true);   // оформление
   VISIBLEMAPLAYER(10, true);  // границы советов
   VISIBLEMAPLAYER(11, true);  // 100 тысячка
   VISIBLEMAPLAYER(12, true);  //
   Subreport4.Visible := false;
   Subreport3.Visible := false;
   Subreport5.Visible := true;
   Subreport2.Visible := true;
   VisibleGisLayer(11, true);  // сервитуты
   VisibleGisLayer(12, false);  // ограничения
    TypeLinija := 'ПЛ 750 кВ Рівненська АЕС - Київська  ДП "НЕК" Укренерго"';
    plosh4a := FormatFloat(fdLandAreaG,(<DM1.TbServitut."Area">/10000));
    Polygon1.FillType  := <DM1.TbServitut."BrushStyle">;
    Polygon1.FillColor := <DM1.TbServitut."BrushColor">;
    begin
        IF  Length(<DM1.QbObject."Note">) = 0 Then
          begin
            NomerOporu := '';
            nazva1     := '';
            nazva2     := '';
            Opora.Visible := false;
          end;
        IF  Length(<DM1.QbObject."Note">) > 0 Then
          begin
            NomerOporu := <DM1.QbObject."Note">;
            nazva1     := 'земельна ділянка, яка підлягає викупу або відчуженню для суспільних потреб чи з мотивів суспільної необхідності із послідуючим наданням її у постійне користування ДП "НЕК"Укренерго"';
            nazva2     := 'номер опори ПЛ 750 кВ';
            Opora.Visible := true;
          end;
     end;
 end;
IF HAES.Checked then
 Begin
   VISIBLEMAPLAYER(0, false);  //
   VISIBLEMAPLAYER(1, true);   // участок
   VISIBLEMAPLAYER(2, true);   //
   VISIBLEMAPLAYER(3, false);   // центры опор РАЕС
   VISIBLEMAPLAYER(4, false);  //
   VISIBLEMAPLAYER(5, false);  //
   VISIBLEMAPLAYER(6, true);   // центры опор ХАЕС
   VISIBLEMAPLAYER(7, true);  // охранная зона ХАЕС
   VISIBLEMAPLAYER(8, false);   // охранная зона РАЕС
   VISIBLEMAPLAYER(9, true);   //
   VISIBLEMAPLAYER(10, true);  // границы советов
   VISIBLEMAPLAYER(11, true);  // 100 тысячка
   VISIBLEMAPLAYER(12, true);  //
     Subreport4.Visible := true;
     Subreport3.Visible := true;
     Subreport5.Visible := false;
     Subreport2.Visible := false;
     VisibleGisLayer(11, false);  // сервитуты
     VisibleGisLayer(12, true);  // ограничения
           TypeLinija := 'заходу ПЛ 750 кВ Хмельницька АЕС-Чорнобильська АЕС на ПС 750 кВ "Київська"';
           plosh4a := FormatFloat(fdLandAreaG,(<DM1.TbLimination."Area">/10000));
           Polygon1.FillType  := <DM1.TbLimination."BrushStyle">;
           Polygon1.FillColor := <DM1.TbLimination."BrushColor">;
     begin
        IF  Length(<DM1.QbObject."AddInfo">) = 0 Then
          begin
            NomerOporu := '';
            nazva1     := '';
            nazva2     := '';
            Opora.Visible := false;
          end;
        IF  Length(<DM1.QbObject."AddInfo">) > 0 Then
          begin
            NomerOporu := <DM1.QbObject."AddInfo">;
            nazva1     := 'земельна ділянка, яка підлягає викупу або відчуженню для суспільних потреб чи з мотивів суспільної необхідності із послідуючим наданням її у постійне користування ДП "НЕК"Укренерго"';
            nazva2     := 'номер опори ПЛ 750 кВ';
            Opora.Visible := true;
          end;
     end;
  end;
end;

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

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

Повідомлення NickS » 29 квітня 2013, 18:06

Vaho писав:Как можно выключить диалоговое окно в отчете если оно не нужно.

Всё зависит от того, что у Вас там в шаблоне. Если не поймёте, то что я объясню ниже, тогда лучше пришлите в поддержку свой шаблон и мы поможем подправить. Нужно просто отключать видимость этого диалогового окна и тем значениям, которые из него читаются присваивать какое-то по-умолчанию. Видимость любого объекта - свойство Visible. True - объект видим, false - объект не видим.

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

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

Повідомлення Vaho » 30 квітня 2013, 12:12

Это я понял, а вот какое условие на проверку существования сервитутов и ограничений прописать и куда его втулить - перед процедурой

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

procedure Button1OnClick(Sender: TfrxComponent);
или внутри?
Если перед, то постоянно выдает ошибку типа не хватает ";" и курсор мигает напротив строки

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

procedure Button1OnClick(Sender: TfrxComponent);
, а если внутри - не работает.
Помогите пожалуйста!

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

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

Повідомлення feNICKs » 30 квітня 2013, 15:58

1. Все операции с данными нужно выполнять в теле процедуры или функции, а не за пределами (ошибка).
2. Какую Вы делаете проверку?
Пример

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

Procedure <Название процедуры> (<список возможных параметров>);
Var
    LimitList, ServitutList   : String;
BEGIN
     LimitList                     := ''; // Список обмежень
   ServitutList                  := ''; // Список сервітутів

   If (RecordCount('DM1.TbLimination')>0) Then
   Begin
      DataFirst('DM1.TbLimination');
      While NOT DataEOF('DM1.TbLimination') Do
      Begin
          IF (LocateData('DM2.TbTypeRestrict','ID_TypeRestrict',<DM1.TbLimination."ID_TypeRestrict">)) Then
              IF (Pos(<DM2.TbTypeRestrict."Name">, LimitList)=0) Then
                  LimitList      := LimitList + <DM2.TbTypeRestrict."Name"> +', код('+<DM2.TbTypeRestrict."Number">+'),'+
                                   ' дія обмеження - '+ (IIF(<DM1.TbLimination."ID_TypeTermin">=0,'постійний', 'тимчасовий'));

          IF ((Length(LimitList)>0) And(Copy(Trim(LimitList),Length(Trim(LimitList)), 1)<>';')) Then
              LimitList          := LimitList + '; ';
          DataNext('DM1.TbLimination');
      End;
      LimitList                  := Copy(Trim(LimitList),0, Length(Trim(LimitList))-1);
   End;
   //---------------------------------------------------->
   If (RecordCount('DM1.TbServitut')>0) Then
   Begin
      DataFirst('DM1.TbServitut');
      While NOT DataEOF('DM1.TbServitut') Do
      Begin
          IF (LocateData('DM2.TbTypeRestrict','ID_TypeRestrict',<DM1.TbServitut."ID_TypeRestrict">)) Then
              IF (Pos(<DM2.TbTypeRestrict."Name">, ServitutList)=0) Then
                  ServitutList   := ServitutList + <DM2.TbTypeRestrict."Name"> +', код('+<DM2.TbTypeRestrict."Number">+'),'+
                                   ' дія сервітуту - '+ (IIF(<DM1.TbServitut."ID_TypeTermin">=0,'постійний', 'тимчасовий')) ;
          IF ((Length(ServitutList)>0) And(Copy(Trim(ServitutList),Length(Trim(ServitutList)), 1)<>';')) Then
              ServitutList       := ServitutList + '; ';
          DataNext('DM1.TbServitut');
      End;
      ServitutList               := Copy(Trim(ServitutList),0, Length(Trim(ServitutList))-1);
   End;
END;

Не забываем подключать используемые таблицы

Аватар користувача
roofoos
Повідомлень: 15
З нами з: 08 липня 2010, 12:53
Звідки: Cевастополь
Контактна інформація:

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

Повідомлення roofoos » 12 червня 2013, 09:53

Народ, подскажите имя таблицы и переменной вот этой фени из файла XML:
<OwnershipInfo>
<Code>200</Code>
</OwnershipInfo>

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

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

Повідомлення feNICKs » 12 червня 2013, 10:15

roofoos писав:Народ, подскажите имя таблицы и переменной вот этой фени из файла XML:
<OwnershipInfo>
<Code>200</Code>
</OwnershipInfo>

Таблица субъектов права - <DM1.TbUser."ID_TypeOwner">.
Таблица Видов форм собственности - TypeOwner поле - ID_TypePrivate (значение для тега <Code>)

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

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

Повідомлення Vaho » 19 серпня 2013, 11:00

Помогите пожалуйста с отчетом! Создал отчет с диалоговым окном - все работает. Но есть одно но. Мне нужно что-бы код проверял нужно ли выдавать диалоговое окно перед формирование отчета или нет. Проверка осуществляется следующим образом: если на земельном участке присутствуют ограничения и сервитуты -выдавать диалоговое окно, если присутствует что-то одно - не выдавать диалоговое окно и делать именно с того, что присутствует. Проверку я осуществил на присутствие ограничений и сервитутов, а вот как привязать результаты этой проверки к диалоговому окну и заставить делать именно с того что присутствует на участке - не знаю. Пробовал привязать к параметру "Visible" диалогового окна - не получилось. Что-то делаю не так. Помогите пожалуйста!
PS. spdrudenko - срок техподдержки активен.

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

var
   NomZ1, NomZ2, NameWho, NaznFunk, NaznCelName, NaznCelNom,//NameTowhom,
   NaznCelFull, LndPeople, plosh4a, NameZ, LandPost, sMej, sStr,
   TypePravo, LimitList, TypeUser, NomerDilyanku, ServitutList, TypeLinija, NomerOporu, nazva1, nazva2, TypeUserSml, ListUsers : string;

   iStr, sVal11, sVal12, sVal13, sVal14, sVal15, sVal16, sVal17, sVal18,
   iMej,
   I, C : integer;

   Other : boolean;
procedure Button1OnClick(Sender: TfrxComponent);

begin
   LimitList                     := ''; // Список обмежень
   ServitutList                  := ''; // Список сервітутів

   If (RecordCount('DM1.TbLimination')>0) Then
   Begin
      DataFirst('DM1.TbLimination');
      While NOT DataEOF('DM1.TbLimination') Do
      Begin
          IF (LocateData('DM2.TbTypeRestrict','ID_TypeRestrict',<DM1.TbLimination."ID_TypeRestrict">)) Then
              IF (Pos(<DM2.TbTypeRestrict."Name">, LimitList)=0) Then
                  LimitList      := LimitList + <DM2.TbTypeRestrict."Name"> +', код('+<DM2.TbTypeRestrict."Number">+'),'+
                                   ' дія обмеження - '+ (IIF(<DM1.TbLimination."ID_TypeTermin">=0,'постійний', 'тимчасовий'));

          IF ((Length(LimitList)>0) And(Copy(Trim(LimitList),Length(Trim(LimitList)), 1)<>';')) Then
              LimitList          := LimitList + '; ';
          DataNext('DM1.TbLimination');
      End;
      LimitList                  := Copy(Trim(LimitList),0, Length(Trim(LimitList))-1);
   End;
   //---------------------------------------------------->
   If (RecordCount('DM1.TbServitut')>0) Then
   Begin
      DataFirst('DM1.TbServitut');
      While NOT DataEOF('DM1.TbServitut') Do
      Begin
          IF (LocateData('DM2.TbTypeRestrict','ID_TypeRestrict',<DM1.TbServitut."ID_TypeRestrict">)) Then
              IF (Pos(<DM2.TbTypeRestrict."Name">, ServitutList)=0) Then
                  ServitutList   := ServitutList + <DM2.TbTypeRestrict."Name"> +', код('+<DM2.TbTypeRestrict."Number">+'),'+
                                   ' дія сервітуту - '+ (IIF(<DM1.TbServitut."ID_TypeTermin">=0,'постійний', 'тимчасовий')) ;
          IF ((Length(ServitutList)>0) And(Copy(Trim(ServitutList),Length(Trim(ServitutList)), 1)<>';')) Then
              ServitutList       := ServitutList + '; ';
              DataNext('DM1.TbServitut');
      End;
      ServitutList               := Copy(Trim(ServitutList),0, Length(Trim(ServitutList))-1);
     End;
plosh4a :='';
TypeLinija :=''; // тип лінії
NomerOporu := ''; //Номер опоры
nazva1     := ''; //
nazva2     := ''; //

IF RAES.Checked then
 begin
   VISIBLEMAPLAYER(1, false);  // участок
   VISIBLEMAPLAYER(2, true);   //
   VISIBLEMAPLAYER(3, false);  // центры опор РАЕС
   VISIBLEMAPLAYER(4, true);   // обозначения
   VISIBLEMAPLAYER(5, false);  //
   VISIBLEMAPLAYER(6, false);  // центры опор ХАЕС
   VISIBLEMAPLAYER(7, false);  // охранная зона ХАЕС
   VISIBLEMAPLAYER(8, false);  // охранная зона РАЕС
   VISIBLEMAPLAYER(9, true);   // оформление
   VISIBLEMAPLAYER(10, true);  // границы советов
   VISIBLEMAPLAYER(11,true);   // 100 тысячка
   VISIBLEMAPLAYER(12, true);  // ограничения
   VISIBLEMAPLAYER(13, true);
   Subreport4.Visible := false;
   Subreport3.Visible := false;
   Subreport5.Visible := true;
   Subreport2.Visible := true;
   VisibleGisLayer(11, true);   // сервитуты
   VisibleGisLayer(12, false);  // ограничения
    TypeLinija := 'ПЛ 750 кВ Рівненська АЕС - Київська  ДП "НЕК" Укренерго"';
    plosh4a := FormatFloat(fdLandAreaG,(<DM1.TbServitut."Area">/10000));
    Polygon1.FillType  := <DM1.TbServitut."BrushStyle">;
    Polygon1.FillColor := <DM1.TbServitut."BrushColor">;
    NomerDilyanku := <DM1.QbObject."Num_Zaris">;
    begin
        IF  Length(<DM1.QbObject."Note">) = 0 Then
          begin
            NomerOporu := '';
            nazva1     := '';
            nazva2     := '';
            Opora.Visible := false;
          end;
        IF  Length(<DM1.QbObject."Note">) > 0 Then
          begin
            NomerOporu := <DM1.QbObject."Note">;
            nazva1     := 'земельна ділянка, яка підлягає викупу або відчуженню для суспільних потреб чи з мотивів суспільної необхідності із послідуючим наданням її у постійне користування ДП "НЕК"Укренерго"';
            nazva2     := 'номер опори ПЛ 750 кВ';
            Opora.Visible := true;
          end;
     end;
 end;

IF HAES.Checked then
 Begin
   VISIBLEMAPLAYER(0, false);  //
   VISIBLEMAPLAYER(1, true);   // участок
   VISIBLEMAPLAYER(2, false);  //
   VISIBLEMAPLAYER(3, true);   // центры опор РАЕС
   VISIBLEMAPLAYER(4, false);  // обозначения
   VISIBLEMAPLAYER(5, false);  //
   VISIBLEMAPLAYER(6, false);
   VISIBLEMAPLAYER(7, true);   // центры опор ХАЕС
   VISIBLEMAPLAYER(8, true);   // охранная зона ХАЕС
   VISIBLEMAPLAYER(9, false);  // охранная зона РАЕС
   VISIBLEMAPLAYER(10, true);  //
   VISIBLEMAPLAYER(11, true);  //
   VISIBLEMAPLAYER(12, true);  //
   VISIBLEMAPLAYER(13, true);  //
   Subreport4.Visible := true;
   Subreport3.Visible := true;
   Subreport5.Visible := false;
   Subreport2.Visible := false;
   VisibleGisLayer(11, false);  // сервитуты
   VisibleGisLayer(12, true);   // ограничения
           TypeLinija := 'заходу ПЛ 750 кВ Хмельницька АЕС-Чорнобильська АЕС на ПС 750 кВ "Київська"';
           plosh4a := FormatFloat(fdLandAreaG,(<DM1.TbLimination."Area">/10000));
           Polygon1.FillType  := <DM1.TbLimination."BrushStyle">;
           Polygon1.FillColor := <DM1.TbLimination."BrushColor">;
     NomerDilyanku := <DM1.QbObject."Num_Planshet">;
     begin
        IF  Length(<DM1.QbObject."AddInfo">) = 0 Then
          begin
            NomerOporu := '';
            nazva1     := '';
            nazva2     := '';
            Opora.Visible := false;
          end;
        IF  Length(<DM1.QbObject."AddInfo">) > 0 Then
          begin
            NomerOporu := <DM1.QbObject."AddInfo">;
            nazva1     := 'земельна ділянка, яка підлягає викупу або відчуженню для суспільних потреб чи з мотивів суспільної необхідності із послідуючим наданням її у постійне користування ДП "НЕК"Укренерго"';
            nazva2     := 'номер опори ПЛ 750 кВ';
            Opora.Visible := true;
          end;
     end;
  end;
end;
procedure Picture1OnBeforePrint(Sender: TfrxComponent);
begin
   with Picture1, Engine do
   begin
      DrawWmf(Width * 100 /3.77953, Height * 100 /3.77953, 0);
      Loadfromfile( StartPath +'\gis.wmf');
   end;
end;
procedure Picture2OnBeforePrint(Sender: TfrxComponent);

     begin
      SetShift(<DM1.QbObject."XCenter">, <DM1.QbObject."YCenter">);

      SetShift(<DM1.QbObject."XCenter">, <DM1.QbObject."YCenter">);
      SETSCALE(50000);
   with Picture2, Engine do
   begin
      DrawMap(Width * 10 / (2560/6773), Height * 10 /(2560/6773), 0);
      Loadfromfile( StartPath +'\map.wmf');
   end;
end;

begin
   //-----------------------------------------------------------------------------------------------
   //Данные землевладельца

   //NameTowhom   := ''; //Владелец (кому?)
   NameWho      := ''; //Владелец (кто?)
   //NameWhoSmall := ''; //Владелец (кто?)

   If LocateData( 'DM2.TbTypeOwner', 'ID_TypeOwner', <DM1.TbUser."ID_TypeOwner">) = True Then
   begin
     If (<DM2.TbTypeOwner."ID_TypeUser"> = True) And (LocateData( 'DM1.QsFirm', 'ID_Firm', <DM1.TbUser."ID_Firm">) = True) Then
     begin
       //NameTowhom   := <DM1.QsFirm."Name_Small">;
       //NameWhoSmall := <DM1.QsFirm."Name_Small">;
       NameWho      := <DM1.QsFirm."Name_Who">;
     end;

     If (<DM2.TbTypeOwner."ID_TypeUser"> = False) And (LocateData( 'DM1.QsPeople', 'ID_People', <DM1.TbUser."ID_People">) = True) Then
     begin
       //NameTowhom   := FamilyShort(<DM1.QsPeople."Family2">);
       //NameWhoSmall := ShortFamily(<DM1.QsPeople."Family">);
       NameWho      := <DM1.QsPeople."Family">;
     end;
   end;
    //---------------------------------------------------------------------------------------------------
   //Описание смежеств

   MemoOpisMej2.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;
      If Length(sStr) + 4 > 95 then iMej := iMej +1;

      MemoOpisMej2.Lines.Add('Від ' + Copy(sStr, 1, 7) + '- ' + Copy(sStr, 8, Length(sStr)-7));
   End;

   MemoOpisMej2.Height := 17 *iMej;
   If iMej > 1 then  {для страници 1}
   begin
     MemoOpis2.Top    := MemoOpis2.Top -17 *(iMej -1);
     MemoOpisMej2.Top := MemoOpisMej2.Top -17 *(iMej -1);
   end;

   //-----------------------------------------------------------------------------------------------

end.

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

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

Повідомлення LeViK » 19 серпня 2013, 11:38

Vaho писав:Помогите пожалуйста с отчетом!

На комментарии, конечно же поскупились... Эх.... Проверка наличия или отсутствия сервитутов должна быть в основном теле кода, он выполняется первым, её я там не увидел. В методических рекомендациях к FastRepor-ту красиво расписана последовательность обработки различных событий. Чтиво, прямо скажу, неприятное, ни разу не весёлое, но прочесть его стоит.

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

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

Повідомлення Vaho » 19 серпня 2013, 12:46

LeViK писав:
Vaho писав:Помогите пожалуйста с отчетом!

На комментарии, конечно же поскупились... Эх.... Проверка наличия или отсутствия сервитутов должна быть в основном теле кода, он выполняется первым, её я там не увидел. В методических рекомендациях к FastRepor-ту красиво расписана последовательность обработки различных событий. Чтиво, прямо скажу, неприятное, ни разу не весёлое, но прочесть его стоит.

Да блин! Помощь - так помощь!!!