对齐 SQR 中的列值

Align column values in SQR

我正在尝试对齐列值,但它们的长度不同。我不能只使用 Print '123' (+1, 9) 然后 Print '123456' (+1, 9) 因为它看起来像这样:

123456790123456790123456790123456790123456790123456790 <- Ignore this line
       123
       123456

请注意最右边的数字如何彼此不对齐。我希望输出是这样的:

123456790123456790123456790123456790123456790123456790 <- Ignore this line
     123
  123456

所以我想在某个索引处停止打印。我如何使用 SQR 实现此目的?

我尝试了 Print '123' (+1, 9)Print '1234' (+1, 9),但给出了错误的结果。

我对SQR不是很熟悉,但这里有一个建议:因为SQR支持LPAD功能(参见String functions):

Pads the source_value on the left to a length of length_value using pad_value and returns the result.

Syntax: dst_var = lpad(source_value, length_value, pad_value)

您可以将其应用于您打印的字符串。例如(再一次:请注意,我不知道 SQR,您可能需要调整它):

Print lpad('123', 6, ' ') (+1, 9)

这将使...123(每个点代表一个space)。

为什么 LPAD 长度为 6 个字符?好吧,因为您的其他字符串 ('123456') 的长度为 6 个字符。如有必要,请更改它。

首先,您似乎想结束第 9 列中的值。lPad 函数对此不起作用,因为 (+1,9) 在第 9 列中表示开始。此外,您不能将lPad 函数到打印语句中。

改为使用从第 1 列开始打印的编辑​​参数:

Print 123    (+1,1) edit 999999999
Print 123456 (+1,1) edit 999999999

现在这对数字很有效,但对包含数字的字符串也很有效。所以这也有效:

Print '123'    (+1,1) edit 999999999
Print '123456' (+1,1) edit 999999999

我已经在 SQR 中测试了这些语句并且它们有效,但是,这会产生丑陋的结果:

Print 'ABC'    (+1,1) edit 999999999
Print 'ABCDEF' (+1,1) edit 999999999

如果必须打印字符串而不是数字,则使用 lPad 命令格式化变量:

Let $String = lPad($String, 9, ' ')
Print $String (+1,1) ! <--- start at column 1