delphi 如何根据详细信息段中的其他字段有条件地设置详细信息段中ReportBuilder字段的格式?

6ojccjat  于 2022-12-29  发布在  其他
关注(0)|答案(1)|浏览(402)

我的DBText 5包含0或1,我想根据DBText 5设置DBText 3的格式-我使用的代码(How set font properties in calculated field using Digital-Metaphors Report Builder RAP):

if (DBText5.FieldValue=1) then begin
  DBText3.Font.Bold := True;
end;

DBText 3和DBText 5都驻留在Detail带中。我尝试将此代码放在以下事件中(当然,我检查了在每个给定时间只有一个事件处于活动状态):

DBText3.OnPrint
DetailBand.OnBeforePrint
CustomVariableOnDetailsBand.Calculate

但在每种情况下,DBText 3在报表的所有行中都显示为粗体。我的目的是仅在那些hase DBText 5 =1的行中使DBText 3为粗体。我应该使用哪个事件,或者应该进行哪些其他调整?
数字隐喻自己的解决方案是使用Band.OnBeforePrint https://www.digital-metaphors.com/forums/discussion/9962/conditional-format,但Detail.OnBeforePrint不是工作表单,正如我所说的。

sbtkgmzw

sbtkgmzw1#

我创建了一个快速测试项目,并确认了它的工作原理。
我使用的是报表生成器19、Build 76和 Delphi 10.2。

procedure TForm1.ppDetailBand1BeforePrint(Sender: TObject);
begin
  if DBText5.fieldvalue = 20  then
    DbText5.Font.Style := [fsBold]
  else
    DbText5.Font.Style := [];
end;

您需要为true和false条件设置样式。
由于您使用的是RAP,因此可以使用

if DbText5.Fieldvalue = 1 then
  DbText5.Font.Bold := true
else
  DbText5.Font.Bold := false;

相关问题