我们在开发当中经常碰到这样的问题,对将不足3位的数前补零 ,如1 =〉001 ,12 = 〉012等等,这样的处理 在genexus中可以很方便的处理。
我们可以用genexus自带函数PadL(s,Len,[c])
参数说明 s 需要转换的原字符串
Len 格式长度
c 补位字符,可选
我们来举个例子:
&str1 = '1'
&str2 = PadL(&str1,5)
显然&str2 = '00001'
同样我们来对日期型的转换如2007-09-11的日期型变量也可以转换
&date //日期型
我们需要转换把&date 为yyyymmdd的字符串
&datestr = Trim(str(&date.Year())) + PadL(Trim(str(&date.Month())),2) + PadL(Trim(str(&date.Day())),2)
我们得到&datestr = '20070911'
同理genexus中还有函数PadR.
下面是padl函数的原型描述,大家可以看看这个函数内在是怎么实现的。
padl(数值,长度,字符)
如:padl(8,3,'0') ->008
padl(12,3) ->012
padl(8,3,' ') -> 8
function padl(n,ln:integer;c:string='0'):string;
var i:integer;
begin
Result:=inttostr(n);
for i:=ln-1 downto Length(Result) do
Result:=c+Result;
end;