Foxtable(狐表)用户栏目专家坐堂 → System.OutOfMemoryException”的异常


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

主题:System.OutOfMemoryException”的异常

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
System.OutOfMemoryException”的异常  发帖心情 Post By:2014/9/17 16:33:00 [显示全部帖子]

这些错误怎么回事   
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.9.16.1
错误所在事件:窗口,产品游览,Button03,Click
详细错误信息:
引发类型为“System.OutOfMemoryException”的异常。



Forms("稍后窗").Show()
Dim Book As New XLS.Book(ProjectPath & "Attachments\产品报价单.xls")
Dim fl As String = "D:\" & "报价预览\" & User.Name & "\ " & Format(Date.Now, "yyyyMMddHHmmss") & "系统产品报价.xls" 
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()
Forms("稍后窗").Close()


数据量超过20行就会出现


[此贴子已经被作者于2014-9-17 20:06:23编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/17 16:55:00 [显示全部帖子]

fox  重装正常了

该死的360 把文件干掉了
[此贴子已经被作者于2014-9-17 16:56:59编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/17 20:07:00 [显示全部帖子]

Forms("稍后窗").Show()
Dim Book As New XLS.Book(ProjectPath & "Attachments\产品报价单.xls")
Dim fl As String = "D:\" & "报价预览\" & User.Name & "\ " & Format(Date.Now, "yyyyMMddHHmmss") & "系统产品报价.xls" 
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()
Forms("稍后窗").Close()


数据量超过20行就会出现

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/17 20:12:00 [显示全部帖子]

那有没有办法在在导入前将文件压缩大小 成定义的大小 然后生成报表

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/17 20:32:00 [显示全部帖子]

以下是引用有点甜在2014-9-17 20:16:00的发言:

 你的图片都很大吗?或者很多吗?

 

 调整尺寸大小参考

 

Dim bmp As new bitmap(getImage("d:\test.jpg"), 50, 50)
bmp.save("d:\test2.jpg")




能和下面结合在一起吗    调用的是   产品图片   列的图  都是5M高清图


如果可以我的ListView  图标也一起缩小好了  应该会提高很多的效率


Forms("稍后窗").Show()
Dim Book As New XLS.Book(ProjectPath & "Attachments\产品报价单.xls")
Dim fl As String = "D:\" & "报价预览\" & User.Name & "\ " & Format(Date.Now, "yyyyMMddHHmmss") & "系统产品报价.xls" 
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()
Forms("稍后窗").Close()

[此贴子已经被作者于2014-9-17 20:34:19编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/17 20:37:00 [显示全部帖子]

好的  今天休息了  明天上例子请教

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/18 10:18:00 [显示全部帖子]

问题: 
1图片列的内容文件比较大  都在2-5M之间  
 2.在刷新 ListView  图标时会影响效率   
3.在导出EXCEL报表时文件比较大  在导出大量图片时造成内存不足而死机。比如20行正常导出  50  100 就会死机
      
需要解决的问题: 
 
1.导出报表时,需要将图片压缩到指定像素并保存在  D盘\缩略图\ 下   下次导出时检查是否有压缩图如果有 调用           没有产生新的压缩图。

1.生产 ListView 时,需要将图片压缩到指定像素并保存在  D盘\缩略图\ 下   下次生产时检查是否有压缩图如果有 调用      没有产生新的压缩图。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:listview压缩图请教.foxdb

Attachments  文件夹下载地址
提取码 94c1

http://yunpan.cn/Q796dtRhRb4hV  提取码 94c1
[此贴子已经被作者于2014-9-18 10:24:11编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/18 10:30:00 [显示全部帖子]

Attachments  可以下载吗

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/18 12:03:00 [显示全部帖子]

缩略图文件填充无效


If e.DataCol.Name = "产品效果图" Then

    If e.NewValue <> Nothing Then

        Dim file As String = format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("产品名称") & "\" & "A 效果图片"  & e.NewValue

        Dim img As image = getImage(file)

        Dim bmp As new bitmap(getImage(file), img.width / 20, img.height / 20)

        bmp.save(ProjectPath & "Attachments\缩略图\" & e.NewValue)

        bmp.Dispose  这句不明白意思

    End If

    e.DataRow("效果缩略图") = e.NewValue

End If


是不是下面的代码影响


BeforeAttachFile



Dim dr As DataRow = e.DataRow
If  dr.IsNull("产品名称")  OrElse  dr.IsNull("产品编号")Then
    MessageBox.Show("产品名称, 编号 都不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel = True
Else
    Select Case e.DataCol.Name
        Case "产品效果图"
            e.SubFolder = format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("产品名称") & "\" & "A 效果图片"        
    End Select
End If

Dim s As String = e.filename
Dim Index As Integer = s.LastIndexOf(".")
Dim hz As String = s.SubString(Index,s.length-Index)
e.filename=e.DataRow("产品编号") & e.DataRow("产品名称")& hz
[此贴子已经被作者于2014-9-18 12:25:49编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/18 12:58:00 [显示全部帖子]

我注释了这段代码后
还是能生效   而且奇怪的是  随便新增扩展列  都会执行下面的合并代码

Dim s As String = e.filename
Dim Index As Integer = s.LastIndexOf(".")
Dim hz As String = s.SubString(Index,s.length-Index)
e.filename=e.DataRow("产品编号") & e.DataRow("产品名称")& hz

我注释了这段代码后
存储文件还是按照代码位置存储?

Dim dr As DataRow = e.DataRow
If  dr.IsNull("产品名称")  OrElse  dr.IsNull("产品编号")Then
    MessageBox.Show("产品名称, 编号 都不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel = True
Else
    Select Case e.DataCol.Name
        Case "产品效果图"
            e.SubFolder = format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("产品名称") & "\" & "A 效果图片"        
    End Select
End If

Dim s As String = e.filename
Dim Index As Integer = s.LastIndexOf(".")
Dim hz As String = s.SubString(Index,s.length-Index)
e.filename=e.DataRow("产品编号") & e.DataRow("产品名称")& hz

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