Delphi 报告上的打印字段对齐未对齐

Delphi 报告上的打印字段对齐未对齐,delphi,devexpress,delphi-xe2,pascal,Delphi,Devexpress,Delphi Xe2,Pascal,我有以下PrintValue代码,它将一行打印到报告(tbasedxreportlink)。它在标题的一行上打印两个字段,标题和m。问题是,对于多条直线,m永远不会直线对齐。它总是印得到处都是 如何使其向右对齐,甚至打印十进制对齐 打印数据 Caption One 4,685.33 Caption 2 4.99 Caption three 74,586.88 Caption 4 58.66 代码 报告中使用的字体是Segoe UI(如果有必要) 感谢您,最简单的

我有以下PrintValue代码,它将一行打印到报告(tbasedxreportlink)。它在标题的一行上打印两个字段,标题和m。问题是,对于多条直线,m永远不会直线对齐。它总是印得到处都是

如何使其向右对齐,甚至打印十进制对齐

打印数据

Caption One    4,685.33
Caption 2       4.99
Caption three    74,586.88
Caption 4     58.66
代码

报告中使用的字体是Segoe UI(如果有必要)


感谢您,最简单的方法是使用monospace(固定宽度)字体,例如Courier New或Lucida Console,我发现没有简单的方法格式化字符串以获得所需的效果。主要原因是使用LeftTitle、CenterTitle或RightTitle“框”非常简单,它们只允许插入简单的字符串文本。没有什么可以不提到真正的字体问题

为了解决这个问题,我在屏幕上添加了一个tPanel,并删除了我需要在网格打印上显示的所有屏幕字段。我添加了一个tdxCustomContainerReportLink链接到该面板。然后,当通过覆盖当前链接代码按下“打印”按钮时,我使用tdxCompositionReportLink将网格和tdxCustomContainerReportLink(面板)作为单个项目打印:

procedure TFrmViewAcct.dxBarBtnPrintClick(Sender: TObject);
begin
  dxCmpntPrtrDetail.CurrentLink := dxCmpntPrtrDetailLink2;
  inherited;
end;
因此,它会打印网格信息,然后打印面板上的任何内容。问题解决了,您可以看到此解决方案是如何灵活的

是的,我可以很容易地改成真正的字体,但就我而言,这是一个丑陋的解决办法,尤其是在需要遵守标准化字体的情况下

procedure TFrmViewAcct.dxBarBtnPrintClick(Sender: TObject);
begin
  dxCmpntPrtrDetail.CurrentLink := dxCmpntPrtrDetailLink2;
  inherited;
end;