Спасибо 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), где номера - это количество страниц документов и их можно или оставить без изменения нажав ок, или изменить и нажать ок. И дальше использовать эти данные для проставления страниц документов. Заранее спасибо за помощь
Пример диалогового окна можете увидеть шаблоне “Витяг з бази даних”.
В этом примере можно увидеть, как сделать так чтоб диалоговое окно появлялось в зависимости от условий.
В инспекторе объектов объекту Report устанавливаем EngineOptions.DoublePass равным True
В обработчиках событий OnBeforePrint некоторых memo(richedit, picture и проч) устанавливаем “якорь” с помощью AddAnchor(‘AnchorName’);
В обработчике событий OnBeforePrint “целевого” memo(richedit, picture и проч) получаем номер страницы, на которой расположен “якорь” с помощью GetAnchor(‘AnchorName’)
Во вложении пример использования (в техдокументации установлены якоря на пояснительной записке, ТЗ и решении, а на первой странице выведено “содержание” ) Anchor.zip (17.3 KB)
Возможность изменение стиля шрифта программно
В Delphi эта запись имеет вид Memo1.Font.Style:=[fsBold]; Memo2.Font.Style:=[]; и т.д. Reports почему-то ругается…
Как правильно обратиться к стилю?
Если событие уже было вызвано и удалено - не удаляется запись в инспекторе объектов, приходится удалять вручную, но при повторном вызове код вставляется на предыдущую позицию (в уже существующий код, разбивая его).
при пошаговой отладке все-таки хотелось бы видеть значения переменных
и пожалуйста, добавьте Program Reset… а то всяко бывает…
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 цифрам кода КОАТУУ(районный уровень) выбирать какие-то значения, я правильно понял?
Для одиночного типа отчета (один участок - один отчет): Param(‘1’) по порядковому номеру параметра Param(‘ID106’) по ID параметра Param(‘NM’) по имени дескриптора
Для пофамильного (все участки одного собственника попадают в один отчет) или группового (все помеченные участки попадают в один отчет): Param(‘1’,N) по порядковому номеру параметра Param(‘ID106’,N) по ID параметра Param(‘NM’,N) по имени дескриптора
Второй параметр - номер участка(от 1 до ObjCount), если не указан, то считается равным единице, т.е. возвращаются параметры первого участка
Угодье - дочерний объект участка, доступ к его параметрам осуществляется по его номеру (третий параметр)
Param(‘CN’,N,M)
N - номер участка, значение от 1 до ObjCount
M - номер угодья, значение от 1 до ChildCount(N)