双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

QuickReport报表中QRLabel显示的数据的换行问题

sunliwen780502 sunliwen780502 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在用QuickReport做报表时,用QRLabel显示数据,但是QRLabel并不直接支持换行,需要用属性设置
WordWrap为true, 和AotoStretch 属性为true.为了能随着内容的变化动态的换行.我写的程序和修改后的程序,代码如下:

int iLength; //要显示的文字的总长度
int iRows; //行数
int iY; //余数
AnsiString temp = ""; //存放临时字符串
String Str;

//使报表值自动换行
iLength = strlen(Str.c_str());
iRows = iLength / 100;
iY = iLength % 100;

if (iRows == 0)
{
lbl->Caption = Str;
}

if ((iRows == 1) && (iY > 0))
{
lbl->Caption = Str.SubString(1, 100) + " ";
}

if ((iRows > 1) && (iY >= 0))
{
for (int i = 0; i < iRows; i++)
{
temp += Str.SubString(i * n + 1, (i + 1) * n) + " ";
lbl->Caption = temp;
}



/*******************************************************************************
FunctionName: AutoNewLine
Description: 报表组件QRLabel的显示的信息的自动换行函数
Date: 2004-11-13
参数说明:lbl TQRLabel 类型
Str 要显示的字符串
n 组件每行显示的字符的长度
********************************************************************************/
void AutoNewLine(TQRLabel *lbl, AnsiString Str, int n)
{
int iLength; //要显示的文字的总长度
int iRows; //行数
int iY; //余数
AnsiString temp = ""; //存放临时字符串

iLength = strlen(Str.c_str());
iRows = iLength / n;
iY = iLength % n;

if ((iRows == 0) || ((iRows == 1) && (iY == 0)))
{
lbl->Caption = Str;
}

if ((iRows == 1) && (iY >= 0)) //表示有余数,还不够两行
{
lbl->Caption = Str.SubString(1, n) + " ";
}

if ((iRows > 1) && (iY >= 0))
{
for (int i = 0; i < iRows; i++)
{
temp += Str.SubString(i * n + 1, (i + 1) * n) + " ";
lbl->Caption = temp;
}
}

/*
if (((iRows == 0) && (iY > 0)) || ((iRows == 1) && (iY == 0)))
{
lbl->Caption = Str;
}

else
{
for (int i = 0; i < iRows; i++)
{
temp += Str.SubString(i * n + 1, (i + 1) * n) + " ";
lbl->Caption = temp;
}
}
*/
}
请大家帮忙看一看,如果分数不够,可以再加.
...全文

相关推荐

Delphi 实现报表的横向分组打印

数据库应用开发中,有些报表需要横向列印,这是在很多书上没讲到的。在这里跟大家分享。希望对你有帮助。

sccdljm

基于Delphi的开发实例(帮助新手掌握Delphi和sql server)

delphi 教程 代码 课设

xl5517579

产业园区运营负责人在组织科技活动时,如何实现线上化管理与高效转化?.docx

产业园区运营负责人在组织科技活动时,如何实现线上化管理与高效转化?

BIZKEEN

高校技术转移办公室人员如何高效管理并发布科技成果信息?.docx

高校技术转移办公室人员如何高效管理并发布科技成果信息?

BIZKEEN

CSDN首页 发布文章 CSDN同步助手 基于脉冲神经网络SNN的无人机编队控制研究(Matlab代码实现) 33 100 摘要:会在推荐、列表等场景外露,帮助读者快速了解内容,支持一键将正

内容概要:本文围绕基于密度的聚类算法展开,重点介绍了其在含有噪声的数据集中识别任意形状和大小簇的强大能力。文章系统阐述了该类算法的核心思想、技术优势及其相较于传统聚类方法在处理复杂数据结构时的突出表现。通过结合Matlab代码实现,详细展示了算法的应用流程与实际运行效果,帮助读者深入理解其工作机制与性能特点,并提供了直观的结果分析与可视化支持。; 适合人群:具备一定数据分析与编程基础,对机器学习、数据挖掘及模式识别感兴趣的科研人员、高校研究生以及工程技术人员。; 使用场景及目标:①应用于图像分割、异常检测、客户细分、地理信息系统等需要发现不规则聚类结构的实际问题;②通过Matlab编程实践掌握基于密度聚类算法(如DBSCAN、OPTICS等)的实现细节与参数调优策略;③提升在现实世界含噪数据中进行有效聚类分析的能力,解决传统方法难以应对的复杂聚类任务。; 阅读建议:建议读者在阅读过程中结合所提供的Matlab代码进行动手实践,尝试在不同数据集上运行算法并调整关键参数(如邻域半径、最小点数等),观察聚类结果的变化,从而加深对算法行为的理解。同时可参考文中提及的相关文献,进一步拓展对密度聚类理论体系与发展前沿的认识。

程序猿鑫
评论 14
收藏 已收藏
分享
返回顶部