Foxtable(狐表)用户栏目专家坐堂 → [灌水] 如何让Output的显示效果排整齐点


  共有14209人关注过本帖树形打印复制链接

主题:[灌水] 如何让Output的显示效果排整齐点

帅哥哟,离线,有人找我吗?
mr725
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
[灌水] 如何让Output的显示效果排整齐点  发帖心情 Post By:2011/10/23 0:31:00 [只看该作者]

For Each dc As DataCol In DataTables("表A").DataCols
nn = nn + 1
    Output.Show("第 " & format(nn,"000") & " 列:  " & "【" & dc.name & "】" & _
    "  的字符长度是:   " &  dc.name.length)
Next

 

上面代码是要显示列名的字符长度来,其结果是(不整齐):


第 001 列:  【v1】  的字符长度是:   2
第 002 列:  【v2】  的字符长度是:   2
第 003 列:  【计划号】  的字符长度是:   3
..........
第 015 列:  【半成品合格率】  的字符长度是:   6
第 016 列:  【装窑合格率】  的字符长度是:   5

 

想要显示这样整齐的效果(整齐),怎么做? : 


此主题相关图片如下:未命名.jpg
按此在新窗口浏览图片

 

这是例子:

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:output.rar

[此贴子已经被作者于2011-10-23 0:31:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
hanxuntx
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2011/10/23 6:59:00 [只看该作者]

For Each dc As DataCol In DataTables("表A").DataCols
nn = nn + 1
    Output.Show("第 " & format(nn,"000") & " 列:  " & "【" & dc.name.PadRight(你要达到的长度,比如7个字符,也可以编列所有字段,取最大值) & "】" & _
    "  的字符长度是:   " &  dc.name.length)
Next

[此贴子已经被作者于2011-10-23 6:58:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2011/10/23 13:22:00 [只看该作者]

楼上的思路是对的。

不过这个问题好像无解,狐表中英文和数字都算一个字符,空格也是一个字符,这样用PadRight就补不齐了。


 回到顶部
帅哥哟,离线,有人找我吗?
gdlgh
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:449 积分:3506 威望:0 精华:5 注册:2008/9/1 2:32:00
  发帖心情 Post By:2011/10/23 14:42:00 [只看该作者]

'这个System.Text.Encoding.Default.GetByteCount可以解决

 

Dim n1,n2,n3 As Integer
Dim str As String
For Each dc As DataCol In DataTables("表A").DataCols
    n1=System.Text.Encoding.Default.GetByteCount(dc.name)
    If n1>n2 Then
        n2=n1
    End If
Next
For Each dc As DataCol In DataTables("表A").DataCols
    n1=System.Text.Encoding.Default.GetByteCount(dc.name)
    str = "第 " & format(n3,"000") & " 列:  "
    str &= "【" & dc.name & left("                 ",n2-n1) & "】"
    str &=  "  的字符个数是:   " &  dc.name.length
    n3 +=1
    Output.Show(str)
Next

[此贴子已经被作者于2011-10-23 14:43:31编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2011/10/23 18:05:00 [只看该作者]

学习了。

 回到顶部
帅哥哟,离线,有人找我吗?
qtcks
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:485 积分:3926 威望:0 精华:6 注册:2009/3/29 13:25:00
  发帖心情 Post By:2011/10/23 19:12:00 [只看该作者]

Dim a As String = "123"
a=a.padleft(10)
output.show("["+a+"]")

 

[       123]


 回到顶部
帅哥哟,离线,有人找我吗?
qtcks
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:485 积分:3926 威望:0 精华:6 注册:2009/3/29 13:25:00
  发帖心情 Post By:2011/10/23 19:13:00 [只看该作者]

PadLeft

在字符串左侧填充空格或指定的字符,使得字符串的长度达到指定的长度。

语法:

PadLeft(Length)
PadLeft(Length, Char)

参数:

Length: 希望字符串达到的长度。
Char: 可选参数,指定用于填充的字符,如果省略,则用空格填充。

例如:

Dim

s1 As String ="abcd"
Dim
s2 As String = s1.PadLeft(6,"0")
Dim
s3 As String = s1.PadLeft(6)
Output.Show(
"s2 = """ & s2 & """")
Output.Show(
"s3 = """ & s3 & """")

在命令窗口执行上述代码,输出结果是:

s2 = "00abcd"
s3 = " abcd"

再例如我们要定义一个字符串,并将字符串的值设为100个空格,这还真是一个难题,因为100个空格可不是那么好数的。
如果用PadLeft,那么就很简单:

Dim s1 As String = " ".PadLeft(100)


 回到顶部
帅哥哟,离线,有人找我吗?
qtcks
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:485 积分:3926 威望:0 精华:6 注册:2009/3/29 13:25:00
  发帖心情 Post By:2011/10/23 19:16:00 [只看该作者]

 

PadRight

在字符串右侧填充空格或指定的字符,使得字符串的长度达到指定的长度。


 回到顶部
帅哥哟,离线,有人找我吗?
布莱克朱
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:623 积分:3897 威望:0 精华:0 注册:2011/8/3 22:13:00
  发帖心情 Post By:2011/10/23 19:25:00 [只看该作者]

这个好

 回到顶部
帅哥哟,离线,有人找我吗?
e-png
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2011/10/24 0:22:00 [只看该作者]

4楼好。学习。

这 str &= "【" & dc.name & left("                     ",n2-n1) & "】"  中间的空格太妙了。


 回到顶部
总数 12 1 2 下一页