You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Crystal Report公式中如何将首个输出字符串设置为粗体

Crystal Report 公式输出首行加粗解决方案

实现逻辑

Crystal Report 支持公式内嵌套HTML标签实现局部格式控制,只需给需要加粗的内容套上<b>、</b>标签,再设置公式字段按HTML解析即可。

步骤1:修改公式代码

把待调整的cardname拼接逻辑改为包裹HTML粗体标签,修改后的完整公式如下:

WhilePrintingRecords;
Local StringVar InvAddr;
InvAddr:="";

if ({IIS_EPC_EML_MDOC.cardname}) <> "" then 
    InvAddr:=InvAddr + chr(13) + "<b>" + {IIS_EPC_EML_MDOC.cardname} + "</b>" + ChrW(13) ; 

if not isnull({IIS_EPC_EML_MDOC.address}) then
    InvAddr:=InvAddr + {IIS_EPC_EML_MDOC.address} + ChrW(13); 
//if not isnull({IIS_EPC_EML_MDOC.VatNo}) then
//    InvAddr:=InvAddr + 'VAT No:'+{IIS_EPC_EML_MDOC.VatNo}; 


//Add EORI Number
if ({IIS_EPC_EML_MDOC.BPEORINumber}) <> "" then
    InvAddr:=InvAddr + chr(13) + "EORI No.: " + {IIS_EPC_EML_MDOC.BPEORINumber}; 


//Add VAT Number
if ({IIS_EPC_EML_MDOC.vatno}) <> "" then
    InvAddr:=InvAddr + chr(13) + "VAT No.: " + {IIS_EPC_EML_MDOC.vatno}; 

//Strip out trailing blank spaces from address block
while instr(InvAddr," "+Chr(13)) > 0 do
(
    InvAddr:=Replace(InvAddr," "+Chr(13),Chr(13));
);

//Strip out blank lines from address block
while instr(InvAddr,Chr(13)+Chr(13)) > 0 do
(
    InvAddr:=Replace(InvAddr,Chr(13)+Chr(13),Chr(13));
);
 
InvAddr

步骤2:设置字段解析格式

  1. 右键报表上绑定该公式的字段,选择「设置字段格式」
  2. 切换到「段落」标签页
  3. 找到「文本解释」下拉选项,选择「HTML文本」后保存即可

补充说明

如果存在cardname为空的场景,需要保证第一个非空行自动加粗,可以在公式中增加首行标识判断,示例逻辑如下:

Local BooleanVar firstLine := True;
// 拼接每一行内容时判断是否为首次非空行,是则加加粗标签,同时把firstLine设为False

内容的提问来源于stack exchange,提问作者Daniel Carreira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:30:06