delphi7 比较两个qrdbtext显示的内容是否相同

siwuge 2018-12-02 07:24:38
想这样显示:

组标头
项目名称   数量   金额    项目名称     数量   金额   项目名称   数量   金额
qrdbtxet1 qrdbtxet2 qrdbtxet3   qrdbtxet4 qrdbtxet5 qrdbtxet6  qrdbtxet7 qrdbtxet8 qrdbtxet9
...
...
qrdbtxet1 qrdbtxet2 qrdbtxet3   qrdbtxet4 qrdbtxet5 qrdbtxet6  qrdbtxet7 qrdbtxet8 qrdbtxet9
组注脚
现在问题是在最后一行,如果一共有三的整数倍数的数据(如18条记录),显示正常
如果有19条记录,最后一行会显示三个相同的 项目名称   数量   金额
如果有20条记录,最后一行的后两个会显示相同的 项目名称   数量   金额

我想用 
if qrdbtxet.?=qrdbtxet4.? then
begin
qrdbtxet4.dataset:='';



去判断,可不知道那个?处应该选什么。请指教。
...全文
467 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
doloopcn 2019-01-15
  • 打赏
  • 举报
回复
引用 2 楼 siwuge 的回复:
我试了,如果qrdbtxet4.dataset:=''会整列qrdbtxet4都看不到了。我现在想用动态创建QRLABEL来实现,但会报错。我根据查出来的记录数来决定创建QRLABEL的数量,但不知道应该在什么时间去创建合适,在QRSubDetail2的NeedData、BeforePrint和ADOQuery1的BeforeScroll都不行,愁死了。


DataSet.AfterOpen

if DataSet.RecordCount=0 then
begin
............
end;
siwuge 2019-01-14
  • 打赏
  • 举报
回复
我试了,如果qrdbtxet4.dataset:=''会整列qrdbtxet4都看不到了。我现在想用动态创建QRLABEL来实现,但会报错。我根据查出来的记录数来决定创建QRLABEL的数量,但不知道应该在什么时间去创建合适,在QRSubDetail2的NeedData、BeforePrint和ADOQuery1的BeforeScroll都不行,愁死了。
doloopcn 2018-12-02
  • 打赏
  • 举报
回复
就算是在QuickRep中,控件的用法也是一样的吧
如果,字段没有在OnGetText或OnSetText中写代码的话可以直接比较,Field.Value:
if qrDBText.Field.Value=qrDBText4.Field.Value then
...............//你的代码

如果只是对一般的字符或数字类型,你可以直接比较Text:
if Trim(LowerCase(qrDBText.Text))=Trim(LowerCase(qrDBText4.Text)) then
..................//你的代码

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧