Туплю. Как вынести код в процедуру?

astra32
Дата: 10.01.2020 01:41:42
Код обычный и простейший, но праздники не пошли на пользу
begin
  VodComDataModuleForm.frxReportmk1.PrintOptions.ShowDialog := false;
  VodComDataModuleForm.frxReportmk1.PrepareReport();
  if ReportPeriodSetForm.CheckBoxKarta.Checked = True then
    VodComDataModuleForm.frxReportmk1.ShowReport
  else
    VodComDataModuleForm.frxReportmk1.Print; 
end;

Как его вынести в процедуру PrintReport(frx), дабы вызывать так PrintReport(frxReportmk1)
ma1tus
Дата: 10.01.2020 01:45:47
astra32,
PrintReport(AReport: TfrxReport; AShow: Boolean)
astra32
Дата: 10.01.2020 01:50:52
ma1tus, а в общем виде как, в десятках отчетов VodComDataModuleForm.frxReportmk1.PrintOptions.ShowDialog := false; меняется только имя frxReportmk1
ёёёёё
Дата: 10.01.2020 02:03:35
astra32,

ерунда какая-то. Зачем экземпляр объекта отчета в параметрах, ты параллельно несколько отчетов генерируешь?

Указывай в качестве параметра шаблон отчета - стрим, имя файла, айди записи и т.п.
ma1tus
Дата: 10.01.2020 02:35:14
astra32, если у нескольких - True, это уже не "в общем"; третий параметр с умолчанием False.

Для общего: добавить два параметра-массива с названиями и значениями параметров отчета - для установки в общей процедуре; спилить диалоги там, где не нужны, и принять, что в этой общей процедуре, в переданном компоненте осуществляется поиск диалоговой страницы - если нашлась и параметры отчета установлены не все, то показывать. Как вариант )
astra32
Дата: 10.01.2020 02:55:58
ma1tus, там много форм, некоторые с двух сторон надо, иногда хотят предпросмотр или печатать только нужное, а процедурой красивее было бы, но не получается. Работает и так, но много букв. Еще упрощу вопрос, - как сделать код процедурой и вызывать процедуру PrintReport(XXX), где ХХХ название отчета
begin
VodComDataModuleForm.XXX.PrintOptions.ShowDialog := false;
VodComDataModuleForm.XXX.PrepareReport();
VodComDataModuleForm.XXX.Print;
end;
wadman
Дата: 10.01.2020 06:52:42
astra32,

убрать
astra32
VodComDataModuleForm.
DimaBr
Дата: 10.01.2020 08:57:29
procedure DoReport(R: TfrxReport);
begin
  R.PrintOptions.ShowDialog := false;
  R.PrepareReport();
  if ReportPeriodSetForm.CheckBoxKarta.Checked
    then R.ShowReport
    else R.Print; 
end;
astra32
Дата: 10.01.2020 17:59:02
DimaBr, спасибо, то,что надо