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:设置字段解析格式
- 右键报表上绑定该公式的字段,选择「设置字段格式」
- 切换到「段落」标签页
- 找到「文本解释」下拉选项,选择「HTML文本」后保存即可
补充说明
如果存在cardname为空的场景,需要保证第一个非空行自动加粗,可以在公式中增加首行标识判断,示例逻辑如下:
Local BooleanVar firstLine := True; // 拼接每一行内容时判断是否为首次非空行,是则加加粗标签,同时把firstLine设为False
内容的提问来源于stack exchange,提问作者Daniel Carreira
相关产品推荐
相关产品推荐

