不足4位就补4位 - Progress 4GL

问题描述 投票:0回答:2

如果数据少于 4 位,我想将其转换为 4 位值。例如,data1 是 145 那么程序应该将它转换为 0145。需要在数字前面加上 0 使其成为 4。我尝试了以下查询,但我觉得这不是正确的方法。注意 - 我使用变量 cdata 来存储数据,但不知道将数据存储到表字段时应该存储为 4 位数字值。

即如果用户输入值 1 那么它应该在表字段中存储 0001。如果用户输入四位和四位以上的值,需要原样存储..不加前缀

define variable cdata as character no-undo.
cdata = "183".
if length(cdata) < 4 then cdata = "0" + cdata.
else if length(cdata) < 3 then cdata = "00" + cdata.
else if length(cdata) < 2 then cdata = "000" + cdata.
openedge progress-4gl
2个回答
3
投票

您可以使用 STRING 功能 -

STRING(145, "9999")
会做你想做的事。

数字数据将在没有前导 0 的情况下存储,但您不必担心。


0
投票

以防万一您确实需要字符变量中的前导零:

cdata = fill( '0', 4 - length( cdata ) ) + cdata.
© www.soinside.com 2019 - 2024. All rights reserved.