|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Форма для печати + заполнения на ходу как в Medoc
подскажите пожалуйста, есть ли какие-то компоненты типа FastReport, чтобы форму можно было построить как в FastReport, но чтобы можно было не только формировать её в виде отчета+ печать, но и заполнять на ходу, как это сделано в программе Medoc:
там типа для заполнения + потом её же можно распечатать я почему-то думал, что в FastReport есть такое , а потом почитал более подробно и ничего такого не нашел |
#2
|
||||
|
||||
Страницы в FastReport можно редактировать перед и после печати в rt. Нужно лишь компонент кинуть на форму с его вкладки.
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
или вы меня не поняли или я вас
мне нужно отобразить юзеру в окне программы форму, чтобы он заполнил поля и нажал ОК, условно говоря. Никаких "редактировать форму" меня не интересует - я знаю, что с формой можно делать и до и после. То, что вы говорите "Нужно лишь компонент кинуть на форму с его вкладки." - это невидимый компонент для обработки отчетов, а не для его заполнения поправьте, если я ошибаюсь в вашем ответе |
#4
|
|||
|
|||
Ну, я делал что-то подобное в свое время.
Если по простому, то бросаешь панель на форму, убираешь 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
|
|||
|
|||
не, ваш метод естественно не подходит. Через одно место всё
зачем мне на форме делать имитацию печатной формы если для этого fast report. Нужен лишь функционал заполнения этих форм вы же не думаете, что в программах типа той, что я привел в пример печатные формы вшиты в программу намертво? |
#6
|
||||
|
||||
Для той программы что делается достаточно средств редактирования самого отчёта.
Пишу программы за еду. __________________ |
#7
|
|||
|
|||
я могу аналогично "отвечать" на вопросы юзеров хоть днями - если сайт именно для этого тогда я попутал адресом
вы или приведите пример или просто молчите |
#8
|
|||
|
|||
тем кто столкнется с такой же задачей:
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; |