流水号自动加1

guess1975 2003-08-11 03:44:25
做了一个住院管理程序,上面出院结算上有一个出院时间,取了服务器的当前时间。
Edit21->Text=FormatDateTime("yyyyMMdd",Query2->FieldByName("sysdate")->AsDateTime);
这个结算上有一个流水号,我想这样取:如果当前服务器的时间是2003-07-24
那么今天出院的第一个患者的流水号是200307240001 (Edit21->Text=200307240001)
第二个患者的流水号是200307240002,(Edit21->Text=200307240002)
第三个患者的流水号是200307240003 (Edit21->Text=200307240003)
等等依次类推...
如果当前服务器时间是2003-07-25
那么今天出院的第一个患者的流水号是200307250001(Edit21->Text=200307250001)
第二个患者的流水号是200307050002,(Edit21->Text=200307250002)
第三个患者的流水号是200307250003,(Edit21->Text=200307250003)
等等依次类推...
请问如何实现?


...全文
194 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzhong2 2003-08-11
  • 打赏
  • 举报
回复
上贴有误int位数不够
AnsiString Snumber;

Edit21->Text=FormatDateTime("yyyyMMdd",Query2->FieldByName("sysdate")->AsDateTime);

for(i=1;i<=出院人数;++i)
{
Snumber=IntToStr(10000+i);
Snumber=Snumber.SubString(1,4);
Snumber=Edit21->Text+Snumber;//Snumber为出院编号
}
lvjack 2003-08-11
  • 打赏
  • 举报
回复
数据库设计有问题,出院时间这个字段都没有?

不管你的数据库,只说你流水号的问题
用注册表或ini文件记录上一个出院的日期lastDate:如20030725
和当前id:如0001

如果当前日期curDate!=lastDate
set lastDate=curDate
id=0001

if(curDate==lastDate)
id++
zzhong2 2003-08-11
  • 打赏
  • 举报
回复
AnsiString Snumber;
int number;
Edit21->Text=FormatDateTime("yyyyMMdd",Query2->FieldByName("sysdate")->AsDateTime);
number=StrToInt(Edit21->Text)*10000;
for(i=1;i<=出院人数;++i)
{
Snumber=IntToStr(number+i);//Snumber为出院编号
}
guess1975 2003-08-11
  • 打赏
  • 举报
回复
我的这些记录并不提交数据库,只不过要打印一个出院结算的单子而已,至于如何判断是否有人出院,我是这样设计的:
数据库上有一个ZYXX的表,这个表上有一个叫ZHUANGT 的字段,比如说表中有住院的有张三,李四等人,如果张三今天出院,(打印出院结算的单子),那么张三的ZYXX的ZHUANGT的字段有0 变为1 (所有刚刚入院的患者 ZHUANGT字段都是"0").
现在我要问的问题是,如何判断,ZYXX这个表中的ZHUANGT 字段,今天是否变由0变为1. 也就是说,如何判断今天提交的数据库信息中,在ZYXX这个表中的ZHUANGT字段中有没有由0变为1.(请注意,是当天).
EthanJiang0827 2003-08-11
  • 打赏
  • 举报
回复
那么你那些记录都记在哪里?你如何判断今天是否已经有人出院,出院了几个人?如果你已经有这样的判断,那还不是更简单?:)
guess1975 2003-08-11
  • 打赏
  • 举报
回复
在线等待!在线感谢!在线送分!!!!!!!!!!!!!
guess1975 2003-08-11
  • 打赏
  • 举报
回复
看不懂 另外,数据库中没有你所说的流水号啊
EthanJiang0827 2003-08-11
  • 打赏
  • 举报
回复
从数据库中取!
select max(流水号) as flownum from tablex where 条件!
如果这张表中用日期字段,那么条件可直接写日期等于日期,如果没有那么就写流水号like 20030725%。这些应该懂吧!
如果没有选到,则说明今天还没有出院的,那么就直接设置为:200307250001
如果已经找到,则flownum=string(int64(flownum)+1))
看得懂了吗?就这个意思,祝好运

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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