根据CustomBrowser和CustomED中均有过程SetReportAction
procedure TfrmCustomBrowser.SetReportAction;
begin
Processor.ReportOptions.CanPrint := aPrint.Enabled;
Processor.ReportOptions.CanDesign := SameText(AppManager.AppUser.UserNO, 'Sys') or AppManager.AppUser.CanDesignReport;
end;
可知,是否可以打印其实就看aPrint.Enabled的属性
【Browse窗体】
继承SetActionEnabled过程
procedure TfrmXXX.SetActionEnabled;
begin
//由于CustomBrowser中的SetActionEnabled没有对aPrint.Enabled进行处理,这行是必须的。
aPrint.Enabled := IsEnabledAction(aPrint) and MasterDataSet.Active and (MasterDataSet.RecordCount > 0);
inherited;
if 条件成立 then
begin
aPrint.Enabled := False;
end;
end;
【Editor或Bill窗体】
procedure TfrmXXXBill.SetActionEnabled;
begin
inherited;
if 条件成立 then
begin
aPrint.Enabled := False;
end;
end;
注意:
由于CustomED中的SetActionEnabled已对aPrint.Enabled作了处理,所以无需象Browse窗体那样在Inherited之前对aPrint.Enabled属性进行设置。