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

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

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

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

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

Повідомлення NickS » 24 червня 2015, 17:29

Vaho писав:Здравствуйте! У меня такая проблема: помечаю зеленой меткой несколько участков, нажимаю "печать - по отмеченным" и происходит следующее.
- Окно выбора принтера не выдает (у нас их много).
- Синяя строчка, в окне земельные участки, по очереди переходит с участка на участок (как-будто формирует листы печати).
- Печатает только один (последний) документ (с последней записи).
Что можно сделать?

Сделано специально так, чтобы в результате получился набор всех листов в предварительном просмотре, потому принтер выбирается уже во время печати. Почему у Вас только последний документ - не знаю. Я у себя по пробовал, то все отмеченные видно.

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

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

Повідомлення Vaho » 25 червня 2015, 11:45

Извините, я немного не правильно написал!
Печатает не один экземпляр, а все (у меня их 141), но 141 экземпляр последнего примера. То-есть 141 экземпляр одного и того же плана, последнего по списку. И в добавок, масштаб пишет 1:0

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

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

Повідомлення NickS » 25 червня 2015, 15:07

Vaho писав:Извините, я немного не правильно написал!
Печатает не один экземпляр, а все (у меня их 141), но 141 экземпляр последнего примера. То-есть 141 экземпляр одного и того же плана, последнего по списку. И в добавок, масштаб пишет 1:0

Если надо напечатать отчётные формы с рисунком из камеральных, то обязательно надо эту функцию запускать из окна камеральных функций!

Аватар користувача
NoViChoK
Повідомлень: 140
З нами з: 10 вересня 2012, 18:09

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

Повідомлення NoViChoK » 27 листопада 2015, 13:10

В стандартному шаблоні: "Акт приёмо-передачи межевых знаков 2013.fr3" в таблиці "Кроки межового знака" замість [MejnZN."Visible"] хочу щоб писало так (приклад): Межовий знак має пряму видимість на межові знаки №2015.07-000-00001 (попередній межовий знак) та 2015.07-000-00003 (наступний межовий знак), та знаходиться на відстані 97,50 м. (на попередній межовий знак) та 106,16 м. (на наступний межовий знак) відповідно.

Знаю, що можна вручну вписати це в вікні "Изменение точки для земельного участка", просто хочется трішки автоматизувати. Але не придумаю як це все кодом прописати :? Не підскажете? :)

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

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

Повідомлення feNICKs » 01 грудня 2015, 09:27

Але не придумаю як це все кодом прописати :? Не підскажете?

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

procedure DetailData2OnBeforePrint(Sender: TfrxComponent);
Var
   idPoint,  N1, N2 : Integer;
   L1, L2: Double;
   MarkNum1, MarkNum2: String;
begin
    MarkInfo  := '';
    MarkInfo2 := '';
    MarkNum1  := '';
    MarkNum2  := '';

    If RadioButton1.Checked Then
       MarkInfo := <MejnZN."Note">
    Else
       MarkInfo := Trim( Memo62.Lines.Text);

    If LocateData( 'DM1.TbPoint', 'ID_Point', <MejnZN."ID_Point">) Then
    Begin
       idPoint := <DM1.TbPoint."ID_Point">;

       If <DM1.TbPoint."SortNumber"> = 1 Then
          Begin
             DataNext( 'DM1.TbPoint');

             L1 := <DM1.TbPoint."LenLine">;
             N1 := <DM1.TbPoint."Number">;

             If LocateData( 'DM1.QiLandMark', 'ID_LandMark', <DM1.TbPoint."ID_LandMark">) Then
                MarkNum1 := DValue( 'DM1.QiLandMark', 'MarkNumber');

             DataLast( 'DM1.TbPoint');
             L2 := <DM1.TbPoint."LenLine">;

             DataPrior( 'DM1.TbPoint');
             N2 := <DM1.TbPoint."Number">;

             If LocateData( 'DM1.QiLandMark', 'ID_LandMark', <DM1.TbPoint."ID_LandMark">) Then
                MarkNum2 := DValue( 'DM1.QiLandMark', 'MarkNumber');

             MarkInfo2 := 'Розташований на відстані ' + FormatFloat( '0.00', L1) +
                          ' від знаку № '+IIF( MarkNum1<>'', MarkNum1, IntToStr( N1)) +' та ' + FormatFloat( '0.00', L2) +' від знаку № '+ IIF( MarkNum2<>'', MarkNum2, IntToStr( N2));
          End
       Else
          If Not DataEOF( 'DM1.TbPoint') Then
          Begin
             L2 := <DM1.TbPoint."LenLine">;
             DataPrior( 'DM1.TbPoint');
             N2 := <DM1.TbPoint."Number">;

             If LocateData( 'DM1.QiLandMark', 'ID_LandMark', <DM1.TbPoint."ID_LandMark">) Then
                MarkNum2 := DValue( 'DM1.QiLandMark', 'MarkNumber');

             LocateData( 'DM1.TbPoint', 'ID_Point', IntToStr( idPoint));
             DataNext( 'DM1.TbPoint');

             L1 := <DM1.TbPoint."LenLine">;
             N1 := <DM1.TbPoint."Number">;

             If LocateData( 'DM1.QiLandMark', 'ID_LandMark', <DM1.TbPoint."ID_LandMark">) Then
                MarkNum1 := DValue( 'DM1.QiLandMark', 'MarkNumber');

             MarkInfo2 := 'Розташований на відстані ' + FormatFloat( '0.00', L1) +
                          ' від знаку № '+IIF( MarkNum1<>'', MarkNum1, IntToStr( N1)) +' та ' + FormatFloat( '0.00', L2) +' від знаку № '+ IIF( MarkNum2<>'', MarkNum2, IntToStr( N2));
          End;
    End;
end;

Аватар користувача
Dorochenko_iv
Повідомлень: 162
З нами з: 12 березня 2010, 21:55
Звідки: м.Чернігів
Контактна інформація:

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

Повідомлення Dorochenko_iv » 22 березня 2016, 10:03

feNICKs писав: If RadioButton1.Checked Then

Подскажите пожалуйста, из примера последнего кода куда вставляется кнопка RadioButton1 если в шаблоне "Акт приёмо-передачи межевых знаков 2013.fr3" у нас нету диалоговой формы ?

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

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

Повідомлення feNICKs » 23 березня 2016, 08:29

Подскажите пожалуйста, из примера последнего кода куда вставляется кнопка RadioButton1 если в шаблоне "Акт приёмо-передачи межевых знаков 2013.fr3" у нас нету диалоговой формы ?

Просто создаете диалоговое окно (в верхней панельке кнопка "Добавить форму в отчет"). В диалог.окно добавляете компоненты "RadioButton" и кнопку "Button". В кнопке Button, нужно указать для параметра ModelResult = mrOk + нужно перенести на события кнопки "procedure Button1OnClick(Sender: TfrxComponent);" программный код, в котором будет использоваться условие с RadioButton1.

Аватар користувача
NoViChoK
Повідомлень: 140
З нами з: 10 вересня 2012, 18:09

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

Повідомлення NoViChoK » 20 квітня 2016, 13:19

Как прописать что бы от [Date] отнималось/плюсовалось определенное количество дней. Например: DateNew := [Date] + 5 дней

007stas
Повідомлень: 82
З нами з: 03 червня 2011, 09:15

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

Повідомлення 007stas » 20 квітня 2016, 15:05

NoViChoK писав:Как прописать что бы от [Date] отнималось/плюсовалось определенное количество дней. Например: DateNew := [Date] + 5 дней

[Date+5], или [IntToStr(DayOf(Date)+5)+'.'+IntToStr(MonthOf(Date))+'.'+IntToStr(YearOf(Date))]. Можно и по другому.

milcom
Повідомлень: 51
З нами з: 12 вересня 2012, 09:29

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

Повідомлення milcom » 15 серпня 2017, 19:26

Тільки начав розбиратися в створенні своїх звітів. В мене виникло таке питання: як на звіт витягнути землевпорядника і голову сільської ради? Вірніше яке ім'я бази данних підключити і які поля з нього взяти?