不用SQL给打印记录编号

以QUICKREPORT为例

页面设置如下:

其中ID为编号。

设置为表的ID字段。

QUICKREPORT所在的FORM添加一个变量:

var
FprnT6: TFprnT6;
Vxh:integer; //编号变量

公开一个方法,用以设置变量的初始值:

public
{ Public declarations }
procedure Setxh(Axh:integer);

procedure TFprnT6.Setxh(Axh:integer);
begin
Vxh:=Axh;
end;

在ID的ONPRINT方法添加如下代码:
procedure TFprnT6.QRPDBText1Print(sender: TObject; var Value: string);
begin
Vxh:=Vxh+1;
Value:=inttostr(Vxh);
end;

控制打印主程序如下:

procedure TFCountMain.DoCountT6(Gtitle,GTdate:string);
var
sqlstr:string;
begin

Application.CreateForm(TFprnT6, FprnT6);
FprnT6.QRLtitle.Caption:=Gtitle;
FprnT6.QRLreportdate.Caption:=GTdate;
FprnT6.Setxh(0); //序号清零
sqlstr:=‘select * from Tperson ‘;
dm.LoadPersonBySql(sqlstr);//提取数据记录
FprnT6.QuickRep1.Print;

end;

时间: 2024-08-24 07:46:15

不用SQL给打印记录编号的相关文章

SQL查询得到(按编号分组的日期最大的记录)

用SQL查询得到(按编号分组的日期最大的记录) 编号 F1 F2 日期 001 ... ... 2006-01-01 10:25:00 001 ... ... 2006-01-01 10:26:00 002 ... ... 2006-01-01 10:25:00 002 ... ... 2006-01-01 10:26:00 用SQL查询得到(按编号分组的日期最大的记录) 编号 F1 F2 日期 001 ... ... 2006-01-01 10:26:00 002 ... ... 2006-0

SQL 主键 自动编号 主键自增

1.新建一数据表,里面有字段id,将id设为为主键 代码如下: create table tb(id int,constraint pkid primary key (id)) create table tb(id int primary key ) 2.新建一数据表,里面有字段id,将id设为主键且自动编号 代码如下: create table tb(id int identity(1,1),constraint pkid primary key (id)) create table tb(i

sql语句查询同一表内多字段同时重复的记录 sql数据库重复记录删除

分享下用sql语句删除数据库中重复记录的方法.比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来select p1.* from persons p1,persons p2 where p1.id<>p2.id and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address可以实现上述效果.几个删除重复记录的SQL语句 1.用rowid方法2.用gr

使用SQL语句打印直角三角形五角星阵的N种方法

相信学习编程的,大多都做过下面或者类似下面的这样一道题: 打印如下图案: ★★★★★★★★★★★★★★★ 不管使用什么高级编程语言,都能很轻松地使用二重循环完成对该图形的打印,例如想使用C#语言在控制台程序实现, 可以在程序主函数里面这样写: 1 for (int i = 1; i <= 5; i++) 2 { 3 for (int j = 1; j <= i; j++) 4 { 5 Console.Write('★'); 6 } 7 Console.WriteLine(); 8 } 9 Co

log4j 突然不打印记录,提示:No appenders could be found for logge,处理方法

log4j 一直都在使用正常,log4j.xml配置.代码都没有修改,突然不打印记录,出现下面提示: log4j:WARN No appenders could be found for logger (com.fc.htgl.testcases.TestOrderPrice).log4j:WARN Please initialize the log4j system properly.log4j:WARN See http://logging.apache.org/log4j/1.2/faq.

Ibatis,Mybatis利用log4j将SQL语句打印在控制台

在做一个项目Demo的时候,使用MyBatis+Spring,发现写好的SQL查询出来不对劲,但是也没报错, 所以想到用日志把SQL语句打出来.也参考了部分网友的代码,最后总结了一下,发现正常运行. 本人项目为Mybatis+SpringMVC,所有都已配置好,且正常运行. 此过程无需配置,直接在classPath目录创建log4j.properties,文件,并将下列代码粘贴进去即可,此代码部分参考网友. ### set log levels ### log4j.rootLogger = de

sql查询重复记录的方法

1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people  where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.查找表中多个字段的重复记录 select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vita

Oracle SQL调优记录

目录 一.前言 二.注意点 三.Oracle执行计划 四.调优记录 @ 一.前言 本博客只记录工作中的一次oracle sql调优记录,因为数据量过多导致的查询缓慢,一方面是因为业务太过繁杂,关联了太多表.面对复杂的业务场景,确实有些情况是需要关联很多表的.当然有些情况是可以将业务实现放在Java代码里,有些情况可以不要关联很多表. 二.注意点 对于SQL调优,不要马上就说加索引什么的,加索引不一定就能解决问题的,加错索引,反而会导致查询变慢,注意加索引的同时也会影响数据库写数据的速度. 三.O

数据库优化之SQL语句优化-记录

1. 操作符优化 (a) IN 操作符 从Oracle执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别: ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询.由此可见用IN的SQL至少多了一个转换的过程.一般的SQL都可以转换成功,但对于含有分组统计等方面的SQL就不能转换了. 推荐方案:在业务密集的SQL当中尽量不采用IN操作符,用EXISTS 方案代替. (b) NOT IN操作符 不能应用