Foxtable(狐表)用户栏目专家坐堂 → 交叉统计表可以绘制单元格按钮吗?


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

主题:交叉统计表可以绘制单元格按钮吗?

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5702 威望:0 精华:0 注册:2017/4/7 12:15:00
交叉统计表可以绘制单元格按钮吗?  发帖心情 Post By:2017/8/5 9:05:00 [显示全部帖子]

在全局表事件的cellbuttonclick中这样写代码无效。
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170805085759.jpg
图片点击可在新窗口打开查看

If e.Table.Name = "A1销控"  Then
    If e.Col.IsNumeric AndAlso e.Col.Name <> "楼层" Then
        If e.Row.IsNull(e.Col.Name) = False '且该列已经输入内容
           e.Cancel = True '取消默认动作
              Forms("窗口1").Open()            
        End If
    End If
End If

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5702 威望:0 精华:0 注册:2017/4/7 12:15:00
  发帖心情 Post By:2017/8/5 10:06:00 [显示全部帖子]

已经给统计表指定了窗口了还是不能生效,是否跟我开启了drawcell事件有关?

DataTables("统计表").GlobalHandler.drawcell = True

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5702 威望:0 精华:0 注册:2017/4/7 12:15:00
  发帖心情 Post By:2017/8/5 10:26:00 [显示全部帖子]

DataTables("A1销控
此主题相关图片如下:qq截图20170805101935.jpg
按此在新窗口浏览图片
").GlobalHandler.drawcell = True
DataTables("A1销控").GlobalHandler.CellButtonClick = True
都加了,drawcell事件生效了,CellButtonClick事件不生效

代码如下:

If e.Table.Name = "A1销控"  Then
    If e.Col.IsNumeric AndAlso e.Col.Name <> "楼层" Then
        If e.Row.IsNull(e.Col.Name) = False '且该列已经输入内容
e.form.controls("A1销控").Table.Datatable.GlobalHandler.CellButtonClick = True
           e.Cancel = True '取消默认动作
              Forms("窗口1").Open()            
        End If
    End If
End If



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


加好友 发短信
等级:三尾狐 帖子:647 积分:5702 威望:0 精华:0 注册:2017/4/7 12:15:00
  发帖心情 Post By:2017/8/5 10:39:00 [显示全部帖子]

就是加在统计表生成之后的啊,PrepareEdit事件和DrawCell事件都可以生效,就是CellButtonClick不行

AfterOpenProject代码:

Dim g1 As New CrossTableBuilder("A1销控", DataTables("总表"), "[楼号]='A1'")

g1.HGroups.AddDef("楼层")

g1.VGroups.AddDef("楼号")

g1.VGroups.AddDef("单元")

g1.VGroups.AddDef("位置")

g1.Totals.AddDef("房间状态", AggregateEnum.Max, "房间状态")

g1.Filter = "[楼号]='A1'"

g1.Build()

DataTables("A1销控").GlobalHandler.PrepareEdit = True

DataTables("A1销控").GlobalHandler.CellButtonClick = True

DataTables("A1销控").GlobalHandler.DrawCell = True


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


加好友 发短信
等级:三尾狐 帖子:647 积分:5702 威望:0 精华:0 注册:2017/4/7 12:15:00
  发帖心情 Post By:2017/8/5 11:34:00 [显示全部帖子]

这样点击楼层是可以了,但是如何实现点击哪一套就可以弹出哪一套的信息呢?

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5702 威望:0 精华:0 注册:2017/4/7 12:15:00
  发帖心情 Post By:2017/8/5 11:39:00 [显示全部帖子]

DrawCell的区域好像无法弹出窗口

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5702 威望:0 精华:0 注册:2017/4/7 12:15:00
  发帖心情 Post By:2017/8/5 11:40:00 [显示全部帖子]

DrawCell代码如下

If e.Table.Name = "A1销控"  Then
    If e.Col.IsNumeric AndAlso e.Col.Name <> "楼层" Then
        If e.Row.IsNull(e.Col.Name) = False '且该列已经输入内容
            If e.Row(e.Col.Name) =1 Then '如果该列的值小于60
                e.Text = "已售"
            End If
            If e.Row(e.Col.Name) =2 Then '如果该列的值小于60
                e.Text = "抵账"
            End If
            If e.Row(e.Col.Name) =3 Then '如果该列的值小于60
                e.Text = "销控"
            End If
            
        End If
    End If
End If

 回到顶部