Foxtable(狐表)用户栏目专家坐堂 → 动态绑定副表列设置格式


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

主题:动态绑定副表列设置格式

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
动态绑定副表列设置格式  发帖心情 Post By:2018/8/8 23:55:00 [只看该作者]

Tables("标录分析_Table01")是动态绑定的副表,下面代码只能整列设置,但我的需求是其中一列中小于1的值设置格式“0.00%”,大于1的值设置格式“0.00”,但动态绑定的副表没有drawcell事件,如何处理??谢谢


Dim tb1 As Table = Tables("标录分析_Table01")
Dim r As Row = tb1.Current
'For Each r As Row In tb1.Rows
    For Each cl As Col In tb1.Cols
        If cl.IsNumeric Then
            If r(cl.Name) <= 1 Then
                tb1.Cols(cl.Name).DataCol.SetFormat("0.00%")
            End If
            If r(cl.Name) > 1 Then
                tb1.Cols(cl.Name).DataCol.SetFormat("0.00")
            End If
        End If
    Next
'Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/9 9:29:00 [只看该作者]

Dim tb1 As Table = Tables("标录分析_Table01")
Dim r As Row = tb1.Current

For Each cl As Col In tb1.Cols
    If cl.IsNumeric Then
        Dim max As Double = tb1.Compute("sum(" & cl.Name & ")")
        If max <= 1 Then
            tb1.Cols(cl.Name).DataCol.SetFormat("0.00%")
        End If
        If max > 1 Then
            tb1.Cols(cl.Name).DataCol.SetFormat("0.00")
        End If
    End If
Next


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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/8/9 13:29:00 [只看该作者]

老师还是不对,

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:aaakkk.table




图片点击可在新窗口打开查看此主题相关图片如下:qq浏览器截图20180809132920.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/9 14:43:00 [只看该作者]

Dim tb1 As Table = Tables("标录分析_Table01")
Dim r As Row = tb1.Current

For Each cl As Col In tb1.Cols
    If cl.IsNumeric Then
        Dim max As Double = tb1.Compute("max(" & cl.Name & ")")
        If max <= 1 Then
            tb1.Cols(cl.Name).DataCol.SetFormat("0.00%")
        End If
        If max > 1 Then
            tb1.Cols(cl.Name).DataCol.SetFormat("0.00")
        End If
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/9 14:55:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:aaakkk.table


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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/8/9 15:01:00 [只看该作者]

老师还是不对,我的需求是一列中小于1的值设置格式“0.00%”,大于1的值设置格式“0.00”
下面代码出错:

Dim tb1 As Table = Tables("窗口1_Table1")
For Each r As Row In tb1.Rows
    For Each cl As Col In tb1.Cols
        If cl.IsNumeric Then
            If r(cl.Name) <= 1 Then
                r(cl.Name) = Format(r(cl.Name),"0.00%")
            Else
                r(cl.Name) = Format(r(cl.Name),"0.00")
            End If
        End If
    Next
Next

错误提示:
.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.7.23.1
错误所在事件:窗口,窗口1,Button1,Click
详细错误信息:
类型不匹配。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/9 15:18:00 [只看该作者]

下载信息  [文件大小:304.0 KB  下载次数:0]
图片点击可在新窗口打开查看点击浏览该文件:aaakkk.table

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/8/9 22:50:00 [只看该作者]

老师:
如果把其中一个数据类型改为整数型时,就出现错误,如何处理?

.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.7.9.1
错误所在事件:全局表事件,DrawCell
详细错误信息:
调用的目标发生了异常。
从字符串“”到类型“Double”的转换无效。
输入字符串的格式不正确。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/9 23:04:00 [只看该作者]

贴出你写的代码,或者改成

 

If e.Table.name = "窗口1_Table1" Then
    If e.Col.IsNumeric Then
        If val(e.text) < 1 Then
            e.text = format(val(e.text), "0.00%")
        Else
            e.text = format(val(e.text), "0.00")
        End If
    End If
End If


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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/8/11 17:05:00 [只看该作者]

老师你好:
1、我在全局表事件中:

'''''========标录分析中动态加载表单元格格式设置=========
If e.Table.Name = "标录分析_Table01" Then
    If e.Col.IsNumeric AndAlso e.Col.Name <> "中标球号" AndAlso e.Col.Name <> "公司球号" AndAlso e.Col.Name <> "投标家数" Then
        If Val(e.Text) = 0 Then
        e.Text = Nothing
        Else
        If Val(e.Text) <= 1 Then
            e.Text = Format(Val(e.Text), "0.00%")
        Else
            e.Text = Format(Val(e.Text), "0")
        End If
        End If
    End If
End If

2、在窗口按钮中写入:
'自动取消窗口表中空值列的隐藏
With Tables("标录分析_Table01")
    For Each cl As Col In .Cols
        cl.Visible = True
    Next
    For Each c2 As Col In .Cols
        Dim p As Integer = .FindRow(c2.Name & " Is Not Null")
        If P = -1 Then
            c2.Visible = False
        End If
    Next
End With

问题是窗口按钮没有删除空值列,如何处理?


图片点击可在新窗口打开查看此主题相关图片如下:88870841.png
图片点击可在新窗口打开查看



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