Foxtable(狐表)用户栏目专家坐堂 → 转置后的临时表怎么用


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

主题:转置后的临时表怎么用

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/21 19:43:00 [显示全部帖子]

循环每一行,循环每一列。如果值为0,也就是答错,那就获取合计的值累加。

 

这个是基础语法。如果连这个都不会写,不建议你继续深入,请打好基础再说吧。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/22 12:27:00 [显示全部帖子]

参考代码,建议先去学基础语法吧。打好基础再继续。

 

Dim t As Table = Tables("表A")
Dim nms() As String = {"p1","p2","p3","p4","p5","p6","p7","p9","p8","p10","pc"}

For Each r As Row In t.Rows
    Dim sum As Double = 0
    For Each c As String In nms
        If r(c) = 0 Then
            sum += t.Compute("sum(" & c & ")", "")
        End If
    Next
    r("错误合计") = sum
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/22 18:27:00 [显示全部帖子]

以下是引用fytea在2018/11/22 16:08:00的发言:

列排序移动纯在的问题,帮我看看,甜老师

1.下面是列排序后移动列的码,排序有问题,移位起始不知怎么设。

2.答对次数相同的列,首先求出每一个题答错的学生的得分数之和,和较小的列排在左边,不会写

3.如何治遍历指定的列呢

 

 

设置两个数组。一个存放合计值,一个存放列名。

得到数组1、数组2以后,对两个数组排序,得到从小到大的列名,循环每一列,移动列,即可。

 

 

 

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/22 18:31:00 [显示全部帖子]

比如代码

 

Dim ary1() = {5,4,3,9,8}
Dim ary2() = {"第一列", "第二列", "第三列", "第四列", "第五列"}
array.sort(ary1, ary2)
For i As Integer = ary2.length-1 To 0 Step -1
    msgbox(ary2(i))
Next

 

这些都是基础知识。功能都是一个个基础知识叠加起来的。你还是先去打基础吧。你越做你越不会做的,不能总叫别人帮你做好。做好你也无法消化。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/23 9:01:00 [显示全部帖子]

参考代码

 

Dim ls1 As new List(Of String)
Dim dt As Table = Tables("表A")
For Each dc As Col In dt.Cols
    If dc.Caption.StartsWith("p") Then
        ls1.add(dt.name)
    End If
Next
Dim ary1(ls1.count-1) As Double
Dim ary2 = ls1.ToArray
For i As Integer = 0 To ary2.length-1
    ary1(i) = dt.Compute("sum(" & ary2(i) & ")")
Next
array.sort(ary1, ary2)
For i As Integer = ary2.length-1 To 0 Step -1
    msgbox(ary2(i))
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/28 10:10:00 [显示全部帖子]

回复楼上,是每次都生成?还是一开始才生成?

 

如果只是生成一次,你可以刷新表,比如做一个按钮,如 Tables("表A").Refresh

 

如果每次都生成,实例发上来测试。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/28 11:30:00 [显示全部帖子]

看不懂你的代码,比如s线,这样写,自己看懂代码改写。

 

e.StartDraw()
If e.Row.Index <= e.Table.Rows.count - 2 Then
    Dim hj As Double = e.Row("合计")
    If e.Col.Index = hj Then
        e.Graphics.DrawLine(Pens.Red, e.x+e.width, e.y, e.x+e.width, e.y+e.height)
    End If
    If e.Row.Index >= 0 AndAlso e.Row.Index < e.Table.Rows.count-2 Then
        Dim pr As Row = e.Table.Rows(e.Row.Index+1)
        If e.Col.Index > pr("合计") AndAlso e.Col.Index <= hj Then
            e.Graphics.DrawLine(Pens.Red, e.x, e.y+e.height, e.x+e.width, e.y+e.height)
        End If
    End If
End If
e.EndDraw()


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/28 12:38:00 [显示全部帖子]

mouseenter、mouseleave事件,写代码

 

e.table.refresh


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/29 17:21:00 [显示全部帖子]

1、你s线和p线,不要画在同一个地方即可,比如s画在底部,p线画在底部上面一点;

 

2、不明白你的计算逻辑,请具体说明。然后计算后的结果,要显示到哪里去。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/29 19:08:00 [显示全部帖子]

你要弄懂计算方式。

 

两线的纵坐标的差值的绝对值,就是所求内容。

 

比如 p7的计算,p线的合计值是10,而p7是第3列,找到合计列为2的行,是第14行。那么 10-(14-1)=-3 取绝对值,就是3

 

比如 p1的计算,p线的合计值是8,而p1是第6列,找到合计列为5的行,是第7行。那么8-(7-1)=2

 

比如 p4的计算,p线的合计值是9,而p4是第4列,找到合计列为3的行,是第13行。那么 9-(13-1)=-3

 

最后,你把各个列的值相加,就是所求。也就是循环每一个列计算。


 回到顶部
总数 55 上一页 1 2 3 4 5 6 下一页