我們在開發當中經常碰到這樣的問題,對將不足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;