Foxtable(狐表)用户栏目专家坐堂 → 专业报表问题请教老师


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

主题:专业报表问题请教老师

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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/2/5 11:56:00 [只看该作者]

林老师没明白我的意思,把代码再贴出来,代码如下:

 

Dim colNames() As String = {"金额|第五列|bind", "金额2|第六列", "金额3|第七列", "金额4|第八列"}   
Dim count As Integer = 0
For Each colname As String In colNames               

With Tables("表A")
        Dim money As String = .Current(colname.split("|")(0))  
        If money <> 0 Then
            rt.Cells(count+2,4).Text = iif(colname.split("|").Length=3, .Current(colname.split("|")(1)), colname.split("|")(1))
 rt.Cells(count+2, 10 - money.length).Text = GetDigit(CInt(money), money.Length) '等于"¥"
            For i As Integer = 10 To 11 - money.Length Step -1
                rt.Cells(count+2, i).Text = GetDigit(CInt(money), 10-i)
            Next
            count += 1
        End If
    End With
Next

 

 

上面的代码执行后"金额|第五列|bind" 这个指的内容是一个是"金额,一个为"第五列"输入的内容,比如金额为1000,第五列内容为出差费  显示出来为: 出差费  1000  这个没错了

 

金额2|第六列这个代码一个指的是"金额2",一个指的是第六列的列名,比如金额2为500,第六列列名为工钱   显示出来为: 工钱  500,如果"金额2|工钱"在打印的时候不以"工钱"显示,而是改

 

为以"工资"显示,又不指定列内容,也就是不用"金额2|工钱|bind",代码改为 金额2|工资  会提示工资不输入表A


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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/2/5 12:06:00 [只看该作者]

{"金额|第五列|bind", "金额2|第六列", "金额3|第七列", "金额4|第八列"}    这行代码正常来说是可用的,就是要更改列名,更改列名的话表中跟窗口的代码也要改,就相当的麻烦

 

也可以把代码都改为"金额|第五列|bind"形式,就是要多几个列出来,能否再改下去?就是代码中又可以以"金额|第五列|bind"文本内容指定为列内容,又可以以"金额4|第八列"文本内容不为列

 

名,而是自己设定好,因为这个是固定的文本,比如 "金额5|金额"  表中并没有名为"金额"的列,显示出来为  金额  XXXX


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/2/5 12:28:00 [只看该作者]

 确实,iif是所有的都运算一遍的,用if判断吧。

Dim colNames() As String = {"金额|第五列|bind", "金额2|第列", "金额3|第七列", "金额4|第八列"}
Dim count As Integer = 0
For Each colname As String In colNames
   
    With Tables("表A")
        Dim money As String = .Current(colname.split("|")(0))
        If money <> 0 Then
            If colname.split("|").Length=3 Then
                rt.Cells(count+2,4).Text =  .Current(colname.split("|")(1))
            Else
                rt.Cells(count+2,4).Text = colname.split("|")(1)
            End If
            rt.Cells(count+2, 10 - money.length).Text = GetDigit(CInt(money), money.Length) '等于"¥"
            For i As Integer = 10 To 11 - money.Length Step -1
                rt.Cells(count+2, i).Text = GetDigit(CInt(money), 10-i)
            Next
            count += 1
        End If
    End With
Next

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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/2/5 15:48:00 [只看该作者]

图片点击可在新窗口打开查看OK了,感谢林老师,林老师辛苦了,一直麻烦林老师

 回到顶部
总数 24 上一页 1 2 3