Foxtable(狐表)用户栏目专家坐堂 → 程序发生无法处理的异常错误


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

主题:程序发生无法处理的异常错误

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/11 9:13:00 [显示全部帖子]

1、做个例子上来测试;

 

2、为什么要建1000个表那么变态啊,你代码肯定有问题。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/11 17:14:00 [显示全部帖子]

 根本就不需要生成一个表,你这样做是多余的。

 

 如果要画图,你可以直接弄。请直接说你要做什么,做个实例上来。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/12 2:44:00 [显示全部帖子]

那你就不要循环build表格。

 

Dim arys1 As List(of String) = DataTables("测试").GetValues("考号") '记录第一分组列下有多少个不同值
Dim nb As new List(of String)
nb.add("A等级")
nb.add("B等级")
nb.add("C等级")
nb.add("D等级")
Dim shu1 As Integer =0

'建一个临时表,每一个表就作一个图
Dim dtb As New DataTableBuilder("作图")
dtb.AddDef("考号", Gettype(String), 32)
dtb.AddDef("成绩", Gettype(Single))
dtb.build

For Each na As String In arys1
    Tables("作图").DataTable.DataRows.Clear
    Dim drs As new List(of DataRow)
    drs = DataTables("测试").Select("[考号]='" & na & "'")
    For Each dr As DataRow In  drs
        Dim r As Row = Tables("作图").AddNew
        For i As Integer =0 To 3
            r("成绩") = dr(nb(i))
        Next
    Next
    shu1 =shu1+1
    If shu1 = 1100 Then
        messagebox.show("已执行1100次")
        Return
    End If
    '运行1000多次就会出错
    '对形成的每一个临时表,进行第二部分工作,也就是3000多个学生作3000多个图,所以生成3000多个临时表
    'Functions.Execute("ldtzcgths") '这个是作图函数
Next
messagebox.show("已完成作图!")


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/12 11:07:00 [显示全部帖子]

以下是引用兰天在2017/1/12 11:05:00的发言:
越用你会发现这样的问题越多,有时非常符合FT的编码规则,但程序就是报错,官方也不怎么解决或者解决不了

 

重复new和重复build,这个本身,就是非常错误的做法,本来几秒钟完成的事,增加几十倍时间和几十倍内存,连电脑都看不下去所以报错了。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/12 12:01:00 [显示全部帖子]

循环的时候,最好这样

 

Dim doc As New PrintDoc '定义一个报表

 

........


doc.dispose
doc = nothing


 回到顶部