您的位置:首页 > 编程语言 > Qt开发

在Qt中生成单号的方法

2014-10-27 10:38 309 查看
生成单号的格式定义为:单号标示+年月日+当天单号的顺序号,如20141025日的第三张采购单(假设数据库中已经存在当天两张采购单):P201410250003

方法1:

QString inoutNo;
inoutNo = QString("P"+QDate::currentDate().toString("yyyyMMdd"));
QSqlQuery query;
int count = 1;
query.exec("SELECT COUNT(Inoutno) FROM tc_inoutmaster WHERE convert(varchar(10),convert(datetime,CreateDate),120)>convert(varchar(10),convert(datetime,dateadd(day,-1,getdate())),120) and InoutProperty='J'");
if (query.next()) { // 如果今天已存在采购记录
count = query.value(0).toInt() + 1;<span style="white-space:pre"> </span>//那么就在今天生成单号数的基础上加1
}
QString tmp = QString("0000%1").arg(count); // 保证后面占4位
tmp = tmp.right(4);
inoutNo += tmp;

方法2:
QString inoutNo;
inoutNo = QString("P"+QDate::currentDate().toString("yyMMdd"));
QSqlQuery query;
int count = 1;
QString queryS = QString("SELECT MAX(Inoutno) as New_NO From tc_inoutmaster WHERE Inoutno LIKE '%1%' ").arg(inoutNo);
query.exec(queryS);
if(query.next())
{
qDebug()<<query.value(0).toString();
QString temp = QString("000%1").arg(query.value(0).toString().mid(13,1).toInt()+1) ;
temp = temp.mid(temp.length()-4,4);
inoutNo += temp;
}
else
inoutNo +=QString("0001");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt 单号 数据库