怎么写代码,或者用什么函数?

softwaredream 2003-02-28 05:36:09
我现在要实现的是:一个char(10)的字段,前六位代表的是年月,如200302,后四位则是一个编号,我要写段代码,让每次有新记录进去的时候,这个编号等加1,该怎么做?
...全文
60 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
softwaredream 2003-03-01
  • 打赏
  • 举报
回复
可这个数字你怎么取?
sixgj 2003-02-28
  • 打赏
  • 举报
回复
恩。这个用来做什么软件应用好呢?
ehom 2003-02-28
  • 打赏
  • 举报
回复
不就是用StrToInt转化为数字加一

longlonger 2003-02-28
  • 打赏
  • 举报
回复
留着后面看看年
softwaredream 2003-02-28
  • 打赏
  • 举报
回复
现在我就是想要取这个变化的值,因为前面的六位是系统取的,关键是后面的四位我要去在变的那个数字,然后inc(i),可是在判断数字是一位的还是二位的还是三位的?
softwaredream 2003-02-28
  • 打赏
  • 举报
回复
to duduwolf:代码怎么没了?
duduwolf 2003-02-28
  • 打赏
  • 举报
回复
你是要存到数据库的吧,这个我做个!
先得到当前时间,在用substring配合cast得到当前的六位数的年份+月份
然后再用max得到最大编号+1即可,大概代码为:
renzhm 2003-02-28
  • 打赏
  • 举报
回复
str:=formatdatetime('yyyymmdd',date);

'select a=isnull(max(单号),0) from table like '''+str+'%''';//省略写了

billno:=query.fieldbyname('a').asinteger;

if billno=0 then
maxbillno:=str+'0001'
else
maxbillno:=inttostr(billno+1);
撒加的天使 2003-02-28
  • 打赏
  • 举报
回复
var str1,str2:string
str:string;

begin
str1:=formatdatetime('yyyydd',date);//将当前日期转换为200302的形式
inc(i);//i:全程变量,初始化为 1
case i of
i<10: result:=str1+'000'+inttostr(i);
10<i<100 :result:=str1+'00'+inttostr(i);
100<i<1000:result:=str1+'0'+inttostr(i);
1000<i<9999:result:=str1+inttostr(i);
end;
bluemeteor 2003-02-28
  • 打赏
  • 举报
回复
最好用一个数据表来实现,每次取max()+1

或者存到一个INI文件里
Wnyu 2003-02-28
  • 打赏
  • 举报
回复
1.增加一个文本文件或数据库记录最后的数.
2.然后编号:= 年月 + (编号数 + 1)
3.更新文本文件或数据库中的最后记录数

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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