Формирорвание отчета в Reports

Спасибо Dmitry_Zolotar за ответ. Получилось и это. Надеялся , что будет нормально работаться, но где там… Теперь ставят наши правители в такие условия, что нужно срочно подстраиваться под местные земотделы, причем в пожарном порядке. Просто злости не хватает и… умения. Теперь , после предисловия прошу помощи. Надеюсь все подробно изложил в архиве с вложенными файлах.

PS. Совсем не откажусь и от другого решения, а не то которое предполагаю я себе - главное, чтобы результат был
Documents.zip (62.1 KB)

Выделите Rich4 на Page14 и в инспекторе на закладке события дважды щелкните в строке OnBeforePrint
В скрипте есть procedure Rich4OnBeforePrint(Sender: TfrxComponent); но она (процедура) не назначена обработчиком события OnBeforePrint для Rich4. Все заработает.

А по поводу System error. Code: 1722. Сервер RPC - недоступен скорей всего проблема со службой Windows “Удаленный вызов процедур (RPC)”, а она если не ошибаюсь нужна для печати в том числе. Это не проблема, если эта ошибка выскакивала только в демо-режиме (в этом режиме Reports работает без принтера).

Спасибо Dmitry_Zolotar! Работает! Самому мне скорей всего не удалось бы догадаться. Не дружиться мне с паскалем. может где то можно найти , ну совсем уж “для чайников” информацию по паскалю или дельфям ну или что то, что могло бы мне помочь ну уж в самом начале такого ознакомления.

Подскажите пожалуйста. Необходима автонумерация страниц, но в средине есть документы, кол-во страниц которых переменно - паспорт, решение, документы БТИ и т.д. Как сделать так, чтобы в репортс появлялось диалоговое окно с значениями по умолчанию (например 1,2,1,3), где номера - это количество страниц документов и их можно или оставить без изменения нажав ок, или изменить и нажать ок. И дальше использовать эти данные для проставления страниц документов. Заранее спасибо за помощь

Пример диалогового окна можете увидеть шаблоне “Витяг з бази даних”.
В этом примере можно увидеть, как сделать так чтоб диалоговое окно появлялось в зависимости от условий.

Подскажите, пожалуйста, как использовать якорь

Engine.DoublePass;
AddAnchor(Text: String);
GetAnchorPage(Text: String);

:question:

  1. В инспекторе объектов объекту Report устанавливаем EngineOptions.DoublePass равным True
  2. В обработчиках событий OnBeforePrint некоторых memo(richedit, picture и проч) устанавливаем “якорь” с помощью AddAnchor(‘AnchorName’);
  3. В обработчике событий OnBeforePrint “целевого” memo(richedit, picture и проч) получаем номер страницы, на которой расположен “якорь” с помощью GetAnchor(‘AnchorName’)

Во вложении пример использования (в техдокументации установлены якоря на пояснительной записке, ТЗ и решении, а на первой странице выведено “содержание” )
Anchor.zip (17.3 KB)

Пребольшое Вам, Дмитрий, спасибо!

Забыла добавить Engine :unamused:

не пойму почему так…

Открыла пример Maps/Пример для генератора отчетов.dmf

выделяю участок, вставляю экспликацию. Получается, что из придомовой территории здания не вырезаны, площадь считается для полигона без дыр.

Вызываю генератор отчета.
Там обращаюсь к параметрам
Param[0] и Param[‘AL’] - площади разные - для Param[0] вычитаются площади зданий.

то что площади здания вычитаются меня конечно устраивает :slight_smile: но почему так?

Digitals build 15.02.2010
Reports build 11.01.2010

:slight_smile: и еще пара просьб/пожеланий

  1. Возможность изменение стиля шрифта программно
    В Delphi эта запись имеет вид Memo1.Font.Style:=[fsBold]; Memo2.Font.Style:=[]; и т.д. Reports почему-то ругается…
    Как правильно обратиться к стилю?

  2. Если событие уже было вызвано и удалено - не удаляется запись в инспекторе объектов, приходится удалять вручную, но при повторном вызове код вставляется на предыдущую позицию (в уже существующий код, разбивая его).

  3. при пошаговой отладке все-таки хотелось бы видеть значения переменных :slight_smile:

  4. и пожалуйста, добавьте Program Reset… а то всяко бывает…

procedure Memo1OnBeforePrint(Sender: TfrxComponent);
begin
Memo1.Font.Name:=‘Arial’;
Memo1.Font.Size:=28;
Memo1.Font.Style:=fsItalic+fsBold;
end;

Не очевидно, но для нормального стиля шрифта
Memo1.Font.Style:=0;

На мониторе с разрешением 1024х768 в Reports высвечиваются не все типы отчетов :frowning: что робыть?
.bmp (2.25 MB)

Уважаемые разработчики! Подскажите пожалуйста:
Существует Формула в шаблонах Digitals " CUT(1,5,Parent[DS]) " , как ее прописать в FastRtport ?

Copy(Param(‘ID106’),1,5)
При условии что параметр с ID равным 106 содержит формулу =Parent[23]:Parent[24]:Parent[25]:CUT(4,4,P[34]), в стандартном normal.dmf так и есть.

Вообще посмотрите файл Digitals/Templates/Setup.ini, там уже есть подобные формулы. Используя Сервис-Документы-Текстовые константы можно добавить текстовый справочник “районного уровня” и отредактировать значения в нем. Вам ведь понадобилось по первым 5 цифрам кода КОАТУУ(районный уровень) выбирать какие-то значения, я правильно понял?

А не подскажете, как обратиться к параметрам “In4_угіддя” в Reports? Спасибо.

Для одиночного типа отчета (один участок - один отчет):
Param(‘1’) по порядковому номеру параметра
Param(‘ID106’) по ID параметра
Param(‘NM’) по имени дескриптора

Для пофамильного (все участки одного собственника попадают в один отчет) или группового (все помеченные участки попадают в один отчет):
Param(‘1’,N) по порядковому номеру параметра
Param(‘ID106’,N) по ID параметра
Param(‘NM’,N) по имени дескриптора
Второй параметр - номер участка(от 1 до ObjCount), если не указан, то считается равным единице, т.е. возвращаются параметры первого участка

Я извиняюсь, ошибся в одном слове. Исправился, но видно поздновато. :blush:

Угодье - дочерний объект участка, доступ к его параметрам осуществляется по его номеру (третий параметр)
Param(‘CN’,N,M)
N - номер участка, значение от 1 до ObjCount
M - номер угодья, значение от 1 до ChildCount(N)

День добрый, а подскажите, пожалуйста, как подсчитать количество строк в таблице?