以文本方式查看主题

-  搭建论坛  (http://bbs.diylsoft.com:8118/starforum/index.asp)
--  数据库交流  (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=6)
----  [学习]得到没有分隔符的年、月、日  (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=6&id=8478)

--  作者:admin
--  发布时间:2007-6-29 15:51:40
--  [学习]得到没有分隔符的年、月、日

在为一些票据自动编写单号时,通常提取当前日期作为单号的组成部分,以避免单号重复。由于日期是由年、月、日以及分隔符“-”组成,因此要剔除分隔符“-”,得到没有分隔符的年月日。如将当前日期“2007-6-29”,剔除分隔符后的结果为“2007629”。

首先想到的方法,就是“截取”,先截取前四位字符年、再截取中间月,日后截取日。但由于月、日,位数有可能是两位,也有可能是一位,截取的结果,可能是错误的,因此不能使用“截取”的方式得到没有分隔符的年月日。

字符串操作构件提供了多段分解功能,这样就可以把日期的分隔符“-”,作为标记字符串,把当前日期赋给初始字符串,得到分解后的字符串再连接,这样就得到了没有分隔符的年月日了。事件设置,如图1所示


此主题相关图片如下:
按此在新窗口浏览图片

如图1所示很简单明了的得到了正确结果。但是,方法“得到指定字符串”的运用显得很繁复。

“字符串操作”构件提供的另一个方法“开始段字符串的循环”,可以得到分段后的每一个子符串,我们利用该特性,也可以巧妙的得到正确的结果。如图2所示。


此主题相关图片如下:
按此在新窗口浏览图片

在循环过程中,如图3所示。


此主题相关图片如下:
按此在新窗口浏览图片

在循环结束后,如图4所示。


此主题相关图片如下:
按此在新窗口浏览图片

解释:在循环过程中,可以想向共分了三段,因此循环三次。第一次循环,把分解的第一段子字符串(如2007)压进缓存;第二次循环,把分解的第二段子字符串(如6)压进缓存;第三次循环,把分解的第三段子字符串(如29)压进缓存;

循环结束后,把压入缓存中的三个字符串,连接起来赋给……


--  作者:chdrl
--  发布时间:2007-6-30 12:38:28
--  
我使用时在得到月、日后再使用字符串构件(设置成两位数字格式)转化一下,这样得到的格式便成为标准八位日期格式了,然后再连接几位自动编号的数字,一起组成自动编号的单据号,使用起来非常方便。
--  作者:kass
--  发布时间:2007-7-6 15:51:56
--  

这样不是更好:

参数> 系统值.当前:<当前日期>

设置> 窗口1.字符串操作1.属性:(替换参数.初始字符串)

执行> 窗口1.字符串操作1.取值方法:[得到替换后的字符串]

设置> 窗口1.普通标签1.属性:(标题)


--  作者:FSJM
--  发布时间:2007-7-6 15:57:05
--  
方法很多,只要肯动脑筋,就会有惊喜。