来自Visual Fox的表格不正确

时间:2015-02-21 18:28:39

标签: visual-foxpro

我在visual foxpro中编写了一个程序,我试图在表格中对齐一些数据。现在它看起来像这样:

============================================================================                        
No.     Last Name                |  Number book              |    Price              |
=====================================================================================                             
|    1 | JOHN SMITH               | ISBN12345678945643489       |      26       |
-------------------------------------------------------------------------------------
|    2 | SAMUEL LEE JACKSON          | ISBN1466487264826384       |     208       |

我正在尝试正确对齐所有列。但如果名称更长或更短,那么第二个单元格也会移动。

我正在使用的代码行是:

? '|',STR(N,4),'|',(ALLTRIM(NAME)),'|      ',ALLTRIM(BOOKNO),'|',+STR(PRICE,7),'      |'

我给这个名字最多30个字符。

1 个答案:

答案 0 :(得分:3)

您可以使用PadL()/ PadR()从单个字符串或数字表达式中获取大小相等的字符串。

对于列对齐,由于您的代码看起来好像要在VFP _screenForm之类的内容上输出,因此您需要使用单倍间距字体在那个对象上。

命令窗口示例:

lcPreviousFont = _screen.FontName
_screen.FontName = "Courier"
SCAN
    ? TEXTMERGE("|<<PADR(n, 4)>>|<<PADR(name, 20)>>|<<PADR(bookno, 30)>>|<<PADL(price, 7)>>|")
ENDSCAN
_screen.FontName = m.lcPreviousFont