Foxtable(狐表)用户栏目专家坐堂 → 项目运行速度求教?


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

主题:项目运行速度求教?

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


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

做一个对应的实例发上来测试。

 

 


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


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

实例发上来才能测试。请做一个对应的,大数据量的项目发上来看看。

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


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

1、你的数据库是什么数据库?如果是sqlserver数据库,开启加载慢,看看 http://www.foxtable.com/webhelp/scr/2730.htm

 

2、开始不加载数据,不加载表呢?

 

http://www.foxtable.com/webhelp/scr/1268.htm

 

http://www.foxtable.com/webhelp/scr/2752.htm

 

http://www.foxtable.com/webhelp/scr/2757.htm

 

3、导出数据慢,是挺正常的情况的,你用什么方式导出?saveexcel?做个例子测试

 

4、新做一个项目,不输入任何代码,导入数据,测试加载等功能。是否也慢?


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


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

1、加载表格等需要时间的,加载完表格后,才会执行afterOpenProject等代码打开窗口的;

 

如果你需要【门脸】,试试 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=128250&replyID=858744&skin=1

 

2、3、4 导入代码尝试优化一下,比如用二维数组,如 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=114559&skin=0

 

具体导入的速度,发实例上来测试和优化。


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


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

测试了一下,已经没有办法再提升速度了。你加入一个进度条,显示导入进度,让其等待吧。

 

而且,还可以把代码写到异步函数里面,然后调用。这样,可以一遍导入,你还可以去做另外的事情,让其慢慢在后台导入数据。

 

http://www.foxtable.com/mobilehelp/scr/3269.htm

 


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


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

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:我的项目20181223.foxdb


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


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

以下是引用lisheng1971在2018/12/23 23:53:00的发言:
图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看文件版本过高!我打不开!

 

那你升级到最新版吧。


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


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

1、加入一个进度条控件;

 

2、导入按钮

 

鉴定管理_导入_Click

Dim tb As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim pg As WinForm.TabPage = tb.SelectedPage
Dim 表 As String = ""
If tb.SelectedPage.Text = "鉴定信息汇总" Then
    表 = "鉴定管理表"
ElseIf tb.SelectedPage.Text = "报名登记汇总" Then
    表 = "鉴定管理表"
ElseIf tb.SelectedPage.Text = "中高级工资审" Then
    表 = "鉴定管理表"
ElseIf tb.SelectedPage.Text = "中高级工考核" Then
    表 = "鉴定管理表"
ElseIf tb.SelectedPage.Text = "技师高技资审" Then
    表 = "鉴定管理表"
ElseIf tb.SelectedPage.Text = "技师高技理论" Then
    表 = "鉴定管理表"
ElseIf tb.SelectedPage.Text = "技师高技实潜" Then
    表 = "鉴定管理表"
ElseIf tb.SelectedPage.Text = "上会评审汇总" Then
    表 = "鉴定管理表"
ElseIf tb.SelectedPage.Text = "证书编号汇总" Then
    表 = "证书编号表"
End If
Dim Result As DialogResult
Result = MessageBox.Show("确定要导入吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
    Dim dlg As New OpenFileDialog
    dlg.Filter = "Excel文件|*.xls"
    dlg.MultiSelect = True '允许选择多个文件
    If dlg.ShowDialog =DialogResult.OK Then
        Functions.AsyncExecute("异步函数", 表, e.Form.controls("ProgressBar1"), dlg)
    End If
End If

 

3、内部函数【异步函数】代码

 

Dim 表 = args(0)
Dim p As WinForm.ProgressBar = args(1)
Dim dlg = args(2)
p.Minimum = 0 '设置最小值
p.Value = 0 '设置当前值


p.Visible = True
Dim Book As New XLS.Book(dlg.FileName)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
DataTables(表).ResumeRedraw()
DataTables(表).StopRedraw()
systemready = False

p.Maximum = sheet.Rows.count*2

Dim nms As New Dictionary(Of String, Integer)
Dim dic As new Dictionary(Of DataRow, Integer)
Dim ls As new List(Of Integer)
For c As Integer = 0 To sheet.Cols.Count - 1
    Dim str As String = sheet(1,c).Text.Replace(" ", "")
    If  DataTables(表).DataCols.Contains(str) Then
        nms.Add(str, c)
    End If
Next
For n As Integer = 2 To Sheet.Rows.Count -1
    Dim jdpc As String = sheet(n,6).Text
    Dim sfzhm As String = sheet(n,9).Text
    Dim dr As DataRow = DataTables(表).Find("鉴定批次 = '" & jdpc & "' And 身份证号码 = '" & sfzhm & "'")
    If dr Is Nothing Then
        ls.add(n)
    Else
        dic.Add(dr, n)
    End If
    p.value += 1
Next
For Each key As DataRow In dic.Keys
    For Each m As String In nms.keys
        If DataTables(表).DataCols(m).IsBoolean Then
            If Sheet(dic(key),nms(m)).Text = "" OrElse Sheet(dic(key),nms(m)).Text = "False" OrElse Sheet(dic(key),nms(m)).Value = 0 Then
                key(m) = False
            Else
                key(m) = True
            End If
        Else If DataTables(表).DataCols(m).Expression > "" Then
            '表达式列
        Else If DataTables(表).DataCols(m).IsNumeric Then
            key(m) = val(Sheet(dic(key),nms(m)).Value)
        Else
            key(m) = Sheet(dic(key),nms(m)).Value
        End If
        p.value += 1
    Next
Next
For Each l As Integer In ls
    Dim ndr As DataRow = DataTables(表).AddNew
    For Each m As String In nms.keys
        If DataTables(表).DataCols(m).IsBoolean Then
            If Sheet(l,nms(m)).Text = "" OrElse Sheet(l,nms(m)).Text = "False" OrElse Sheet(l,nms(m)).Value = 0 Then
                ndr (m) = False
            Else
                ndr (m) = True
            End If
        Else If DataTables(表).DataCols(m).Expression > "" Then
            '表达式列
        Else If DataTables(表).DataCols(m).IsNumeric Then
            ndr (m) = val(Sheet(l,nms(m)).Value)
        Else
            ndr (m) = Sheet(l,nms(m)).Value
        End If
    Next
    p.value += 1
Next
DataTables(表).ResumeRedraw()
systemready = True
msgbox("导入完成")
p.Visible = False


 回到顶部