Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 245
1

Fastreport: Распечатать простенький документ типа счёта или накладной

17.02.2019, 11:59. Показов 3748. Ответов 66
Метки нет (Все метки)

Добрый день, уважаемые.

Пришла необходимость освоить fastreport. И пришло понимание, что без помощи не обойтись )
Поиск в Яндексе даёт мало, так как я не профессионал и многие термины для меня - пустой звук.
---
Я сформулирую задачу и буду надеяться получить от вас пошаговую инструкцию (в самом-самом общем виде, пока без подробностей). А там - видно будет.

Итак, задача:
Распечатать простенький документ типа счёта или накладной.
Источник информации - компоненты на форме.
Предпросмотр документа не нужен.
Установки принтера - по умолчанию.
Использую Delphi 7 и fastreport 5.4.6

Большое спасибо.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2019, 11:59
Ответы с готовыми решениями:

Подбор позиций для накладной (счета)
Здравствуйте. Если при создании накладной (счета) воспользоваться кнопкой "Подбор", то...

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

В требовании-накладной в 1С 8.3 нет счета учета затрат
вот нет и всё тут. и галочки нет ( которую если ставишь/уюираешь, то можно вводить счета, ном...

Документ операция - не заполнены счета-фактур при свертке
Доброго времени суток. сделал свертку базы типовой обработкой. в итоге у меня получились несколько...

66
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 245
17.02.2019, 13:03  [ТС] 2
Возможно, проще будет поступить вот так: я подготовил тестовый проект. В нем при нажатии на кнопку нужно вывести на печать 3 компонента, присутствующих на форме.

Помогите пожалуйста с процедурой вывода на печать.
Вполне возможно, что дальше по аналогии я сделаю сам всё, что мне нужно.

Спасибо.
Вложения
Тип файла: rar Ex.rar (10.5 Кб, 3 просмотров)
0
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 245
18.02.2019, 17:30  [ТС] 3
Добрый день, уважаемые.

Если я прошу чего-то слишком сложного, то посоветуйте пожалуйста какие-то внятные обучающие материалы для самых-самых чайников для освоения fastreport.
Может, какие-нибудь файлы примеров. Только без баз данных (этого добра много).

Я сейчас просто не понимаю как подступиться к fastreport. Всё, что вижу в интернете ясности не добавляет, так как терминология почти всегда непонятна из-за отсутствия профильного образования. Мне нужно сделать первый шаг - там уже легче и понятнее будет.
А fastreport нужен просто "кровь из носу". Без него не могу запустить большой проект.

"Поможите, люди добрые !!!!!!!!!!!!"
0
883 / 403 / 174
Регистрация: 20.10.2016
Сообщений: 1,828
19.02.2019, 04:21 4
Кидаете на форму frxReport, кликаешь на него два раза, создаете файл (либо методом LoadFromFile загружаешь из внешнего файла в рантайме). Если надо - делаете связку через DataSet с источником данных. Еще можно внутрь передавать переменные, но сейчас не вспомню, как это делать, давненько с этим не работал.

Для просмотра результата вызываете frxReport.ShowReport(true), для печати frxReport.Print.

Не по теме:

Если все, что вы видите в интернете, ясности не прибавляет, то стоит вспомнить, что этот форум - тоже интернет, и на него тоже может распространяться это проклятие.

0
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 245
19.02.2019, 07:28  [ТС] 5
Спасибо. Я сегодня ночью покопался в интернете. Начал потихонечку понимать.
Вот, примерно то самое, что вы написали, и понял.

Теперь буду мелкими конкретными вопросами донимать по мере изучения.
Жаль только времени нет.
0
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 245
19.02.2019, 08:54  [ТС] 6
Добрый день.
У меня в формируемом отчёте есть картинка. Подскажите пожалуйста как сделать её непечатаемой.
Пока всё, что могу придумать - это frxReport1.Picture1.printable:=false;
Но выдаёт undeclared identifier.
Проект прилагаю.

Спасибо.

P.S.
По поводу "...тоже интернет, и на него тоже может распространяться это проклятие".
Полагаю, что я в этот раз ошибся, недооценив масштаб задачи, и задал слишком общий и потому пустой вопрос.
Чтобы правильно задать вопрос - нужно знать большую часть ответа. А потому - маленькими шажками и с Богом...
Вложения
Тип файла: rar EX_2.rar (535.2 Кб, 3 просмотров)
0
883 / 403 / 174
Регистрация: 20.10.2016
Сообщений: 1,828
19.02.2019, 09:15 7
Подобные вещи надо делать не через взаимодействие с frxReport, а внутри самого шаблона. Там, в редакторе шаблона, все его компоненты прекрасно доступны для редактирования. Выбираем картинку и ставим ее свойство Visible в false. Вся внутренняя логика шаблона должна обрабатываться внутри этого шаблона. Задача Делфи - передать в шаблон правильные данные, имхо.
0
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 245
19.02.2019, 17:10  [ТС] 8
То, что внутри шаблона видимость регулируется - я видел.
Хотелось именно снаружи программно показать/спрятать картинку.

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

Получается, чтобы реализовать мою задумку нужно сделать 2 шаблона?
0
883 / 403 / 174
Регистрация: 20.10.2016
Сообщений: 1,828
20.02.2019, 03:55 9
Цитата Сообщение от hsimpson Посмотреть сообщение
Хотелось именно снаружи программно показать/спрятать картинку.
Сделать внутри шаблона переменную PictureVisible. В нее передавать видимость картинки. Внутри шаблона в событии BeforePrint (тут могу ошибаться в названии события) обрабатывать видимость картинки в соответствии с этой переменной.
0
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 245
20.02.2019, 08:54  [ТС] 10
Попробую реализовать на днях.
0
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 245
01.03.2019, 18:36  [ТС] 11
Добрый день,

1.
сделал внутри FastReport переменную 'vision'

2.
на форме проекта присвоил этой переменной значение 'true' или 'false', в зависимости от значения чекбокса

3.
попытался внутри FastReport по событию Picture1.OnBeforePrint присвоить свойству Picture1.visible значение переменной 'vision'. Не получилось. Ошибки не выдаёт, но и команду
if 'vision'='true' then Picture1.visible:=true else Picture1.visible:=false;
не выполняет.

Проект прилагаю.
Помогите пожалуйста.
Вложения
Тип файла: rar EX_2.rar (557.7 Кб, 4 просмотров)
0
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 245
05.03.2019, 09:51  [ТС] 12
Добрый день. Я по-прежнему пытаюсь разобраться, но без помощи не получается (проблема указана в предыдущем посте).
Странным образом, в строке

Delphi
1
if 'vision'='true' then Picture1.visible:=true else Picture1.visible:=false;
выполняется только часть, связанная с присвоением значения (на картинке выделено синим цветом), а часть , содержащая условие просто игнорируется.

Я не понимаю что и как искать. Может быть там не на Delphi нужно писать?
Миниатюры
Fastreport: Распечатать простенький документ типа счёта или накладной  
0
883 / 403 / 174
Регистрация: 20.10.2016
Сообщений: 1,828
05.03.2019, 10:01 13
Цитата Сообщение от hsimpson Посмотреть сообщение
связанная с присвоением значения
это не присвоение, а сравнение
Цитата Сообщение от hsimpson Посмотреть сообщение
Может быть там не на Delphi нужно писать?
там, если мне память не изменяет, Object Pascal. Но он весьма похож на Delphi.
Цитата Сообщение от hsimpson Посмотреть сообщение
а часть , содержащая условие просто игнорируется
потому что не выполняется условие. Вы уверены, что слова vision и true равны?

Попробуйте
Delphi
1
if vision=true then
0
Модератор
7295 / 4774 / 2001
Регистрация: 21.01.2014
Сообщений: 20,284
Записей в блоге: 3
05.03.2019, 10:08 14
А что же тут непонятного-то? Вы сравниваете строку 'vision' со строкой 'true'. Естественно, это разные строки, поэтому код из then не выполнится никогда!
А вот если напишите нормально:
Delphi
1
Picture1.Visible := vision;
то все должно заработать!
0
5054 / 3940 / 1303
Регистрация: 14.04.2014
Сообщений: 18,137
Записей в блоге: 18
05.03.2019, 11:09 15
документация на FR написана на русском языке
поэтому желающих "помочь" (т.е.перевести доки с русского на русский находится не очень много)
ну и фанатов Д7 осталось не так уж много, чтобы лазить в ваши исходники

https://www.fast-report.com/do... html?2.htm
http://mirsovetov.net/fastreport-variables.html


я надеюсь, переменную вы завели через меню Report -- Variables

Тогда скорее всего скрипт должен быть такой
Delphi
1
Picture1.visible := Get('visible');
https://www.fast-report.com/do... s_list.htm
0
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 245
05.03.2019, 11:29  [ТС] 16
Цитата Сообщение от D1973 Посмотреть сообщение
А что же тут непонятного-то? Вы сравниваете строку 'vision' со строкой 'true'. Естественно, это разные строки, поэтому код из then не выполнится никогда!
А вот если напишите нормально:
DelphiВыделить код
1
Picture1.Visible := vision;
то все должно заработать!
переменная visible это строка. А применение strtobool('visible') выдаёт невозможность конвертации строки в bool, хотя значение строки либо true, либо false.
0
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 245
05.03.2019, 11:35  [ТС] 17
Цитата Сообщение от krapotkin Посмотреть сообщение
документация на FR написана на русском языке
поэтому желающих "помочь" (т.е.перевести доки с русского на русский находится не очень много)
ну и фанатов Д7 осталось не так уж много, чтобы лазить в ваши исходники
https://www.fast-report.com/do... html?2.htm
http://mirsovetov.net/fastreport-variables.html
я надеюсь, переменную вы завели через меню Report -- Variables
Тогда скорее всего скрипт должен быть такой
DelphiВыделить код
1
Picture1.visible := Get('visible');
https://www.fast-report.com/do... s_list.htm
Цитата Сообщение от krapotkin Посмотреть сообщение
документация на FR написана на русском языке
поэтому желающих "помочь" (т.е.перевести доки с русского на русский находится не очень много)
ну и фанатов Д7 осталось не так уж много, чтобы лазить в ваши исходники
https://www.fast-report.com/do... html?2.htm
http://mirsovetov.net/fastreport-variables.html
я надеюсь, переменную вы завели через меню Report -- Variables
Тогда скорее всего скрипт должен быть такой
DelphiВыделить код
1
Picture1.visible := Get('visible');
https://www.fast-report.com/do... s_list.htm

При применении вашего варианта выскакивает ошибка(см. картинку)

----------------------

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

За ссылки спасибо. Буду читать. Отступать мне некуда
Миниатюры
Fastreport: Распечатать простенький документ типа счёта или накладной  
0
5054 / 3940 / 1303
Регистрация: 14.04.2014
Сообщений: 18,137
Записей в блоге: 18
05.03.2019, 22:08 18
Цитата Сообщение от hsimpson Посмотреть сообщение
выскакивает ошибка(см. картинку)
поэтому я и спросил
что вот это вот обозначает
Цитата Сообщение от hsimpson Посмотреть сообщение
1.
сделал внутри FastReport переменную 'vision'
что конкретно имелось в виду?
повторю правильный маршрут
Цитата Сообщение от krapotkin Посмотреть сообщение
я надеюсь, переменную вы завели через меню Report -- Variables
0
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 245
05.03.2019, 23:00  [ТС] 19
Да, конечно. см. картинку.
И сам проектик я выложил чуть выше (01.03.2019, 20:36). Он совсем простенький.
Миниатюры
Fastreport: Распечатать простенький документ типа счёта или накладной  
0
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 245
05.03.2019, 23:11  [ТС] 20
Я думаю, мне имеет смысл отказаться от FastReport.
Сейчас сижу, побалуюсь с TPrinter и Convas. Вроде всё понятно пока. Знай себе переводи пиксели в миллиметры, сплошная арифметика .
Конечно, проблем и там достаточно, но я уверен, что справлюсь. А в FastReport я даже вопрос толком сформулировать не могу.

Подскажите, есть ли серьёзные минусы в создании накладной или счёта через TPrinter?
Или всё же упереться рогом и познать FastReport?
Порекомендуйте, уж извиняюсь за такую бабскую постановку вопроса...

Спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2019, 23:11

Распечатать документ
Всем привет. Программа типа интернет магазина. Человек выбрал товар, добавил в корзину. А как...

Как распечатать документ?
Создал вордовский файл через CreateOleObject('Word.Application');Надо его распечатать. Как? ...

Скидка по заказу покупателя или накладной
Доброго времени суток. Помогите разобраться. Есть 1С8.2 конфигурация Управление торговым...

Заполнить и распечатать документ Word
Нужно разместить на странице картинку и текст, затем вывести на печать. С помощью каких библиотек и...

Как распечатать документ А4 в формате А5
Можно ли документ А4 в формате документа А5? Картинки печатаются, документ нет.

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.