Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.06.2017, 13:22
kolio kolio вне форума
Прохожий
 
Регистрация: 22.06.2017
Сообщения: 5
Версия Delphi: XE 10.1
Репутация: 10
Вопрос Форма для печати + заполнения на ходу как в Medoc

подскажите пожалуйста, есть ли какие-то компоненты типа FastReport, чтобы форму можно было построить как в FastReport, но чтобы можно было не только формировать её в виде отчета+ печать, но и заполнять на ходу, как это сделано в программе Medoc:



там типа для заполнения + потом её же можно распечатать

я почему-то думал, что в FastReport есть такое , а потом почитал более подробно и ничего такого не нашел
Ответить с цитированием
  #2  
Старый 22.06.2017, 13:32
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Страницы в FastReport можно редактировать перед и после печати в rt. Нужно лишь компонент кинуть на форму с его вкладки.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 22.06.2017, 14:59
kolio kolio вне форума
Прохожий
 
Регистрация: 22.06.2017
Сообщения: 5
Версия Delphi: XE 10.1
Репутация: 10
По умолчанию

или вы меня не поняли или я вас

мне нужно отобразить юзеру в окне программы форму, чтобы он заполнил поля и нажал ОК, условно говоря. Никаких "редактировать форму" меня не интересует - я знаю, что с формой можно делать и до и после.
То, что вы говорите "Нужно лишь компонент кинуть на форму с его вкладки." - это невидимый компонент для обработки отчетов, а не для его заполнения

поправьте, если я ошибаюсь в вашем ответе
Ответить с цитированием
  #4  
Старый 22.06.2017, 22:14
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, я делал что-то подобное в свое время.
Если по простому, то бросаешь панель на форму, убираешь border, делаешь ее белого цвета. Далее кидаешь нужные компоненты, у Edit'ов настраиваешь правильный вид - тоже убираешь бордюры и указываешь нужный цвет.
Далее фокус - у панели вызывешь метод PaintTo (кажется так) для отрисовки на Bitmap'е. Далее переразмериваешь этот битмап в соответсвии с разрешением принтера и печатаешь его на принтере через Printer.BeginDoc/Printer.Canvas.Draw()/Printer.EndDoc.
Если надо спрятать Edit'ы, то перед печатью на битмап пробегаешься по ним и устанавливаешь нужный цвет. Что-то типа:
Код:
For I := 0 To pnDocCanvas.ComponentCount-1 Do
  If pnDocCanvas.Components[i] Is TEdit Then
    (pnDocCanvas.Components[i] As TEdit).Color  := clWhite;

Во всем этом есть одна засада - нынче есть проблемы при автоматическом использовании тем винды - тогда, м.б. придется подкрутить компоненты, что бы они не реагировали на темы, бо как тут ты внешним видом управляешь сам.
Ответить с цитированием
  #5  
Старый 27.06.2017, 10:01
kolio kolio вне форума
Прохожий
 
Регистрация: 22.06.2017
Сообщения: 5
Версия Delphi: XE 10.1
Репутация: 10
По умолчанию

не, ваш метод естественно не подходит. Через одно место всё
зачем мне на форме делать имитацию печатной формы если для этого fast report. Нужен лишь функционал заполнения этих форм

вы же не думаете, что в программах типа той, что я привел в пример печатные формы вшиты в программу намертво?
Ответить с цитированием
  #6  
Старый 27.06.2017, 15:34
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Для той программы что делается достаточно средств редактирования самого отчёта.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 30.06.2017, 13:59
kolio kolio вне форума
Прохожий
 
Регистрация: 22.06.2017
Сообщения: 5
Версия Delphi: XE 10.1
Репутация: 10
По умолчанию

я могу аналогично "отвечать" на вопросы юзеров хоть днями - если сайт именно для этого тогда я попутал адресом

вы или приведите пример или просто молчите
Ответить с цитированием
  #8  
Старый 30.06.2017, 17:19
kolio kolio вне форума
Прохожий
 
Регистрация: 22.06.2017
Сообщения: 5
Версия Delphi: XE 10.1
Репутация: 10
По умолчанию

тем кто столкнется с такой же задачей:
https://www.fastreport.ru/public_dow...rManual-ru.pdf

1.10 Интерактивные отчеты
В интерактивных отчетах можно определить реакцию на щелчок мышью на
том или ином объекте отчета в окне предварительного просмотра. Например,
пользователь может щелкнуть мышью на строке данных и тем самым сформировать новый отчет с детальными данными по выбранной строке.
Интерактивным можно сделать любой отчет. Для этого надо всего лишь
создать обработчик для события TfrxReport.OnClickObject. Ниже приведен пример такого обработчика:

Код:
procedure TForm1.frxReport1ClickObject(Sender: TfrxView; Button: TMouseButton; Shift: TShiftState; var Modified: Boolean);
begin
  if Sender.Name = 'Memo1' then ShowMessage('Memo1 contents:' + #13#10 + TfrxMemoView(Sender).Text);
  if Sender.Name = 'Memo2' then begin
    TfrxMemoView(Sender).Text := InputBox('Edit', 'Edit Memo2 text:', TfrxMemoView(Sender).Text);
    Modified := True;
  end;
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:12.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter