Foxtable(狐表)用户栏目专家坐堂 → dlg.FileName


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

主题:dlg.FileName

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


加好友 发短信
等级:超级版主 帖子:113660 积分:578843 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/26 14:52:00 [显示全部帖子]

分别取
目录:GetParentPath
文件名:GetName
把文件名根据点号(.)拆分:Split,拆分后的数组项0就是文件名直接&1,

最后再把目录、&1后的文件名、拆分后的数组项1,使用&合并为一个字符串


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


加好友 发短信
等级:超级版主 帖子:113660 积分:578843 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/26 15:05:00 [显示全部帖子]

Book.Save("D:\data" & .LoadPage & “.xls”

With DataTables("table_3")
.loadfilter = Tables("table_3")filter
    .LoadTop = 200
    .LoadPage = 0
    .Load()

End With

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


加好友 发短信
等级:超级版主 帖子:113660 积分:578843 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/26 15:25:00 [显示全部帖子]

完整代码

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


加好友 发短信
等级:超级版主 帖子:113660 积分:578843 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/26 16:02:00 [显示全部帖子]

试试,不行就减少加载的数据

With DataTables("table_3")
    .loadfilter = Tables("table_3").filter
    .LoadTop = 200
    .LoadPage = 0
    .Load()
    Dim Book As New XLS.Book(ProjectPath & "Attachments\111.xls") '打开模板
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Book.Build() '生成细节区
    Book.Save("D:\data0.xls")
End With
gc.Collect
System.Threading.Thread.Sleep(1000)
With DataTables("table_3")
    Do While .LoadPage < .TotalPages - 1
        .LoadPage = .LoadPage + 1
        .Load()
        Dim Book As New XLS.Book(ProjectPath & "Attachments\111.xls") '打开模板
        Dim Sheet As XLS.Sheet = Book.Sheets(0)
        Book.Build() '生成细节区
        Book.Save("D:\data" & .LoadPage & ".xls")
        gc.Collect
        System.Threading.Thread.Sleep(1000)
    Loop
End With



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


加好友 发短信
等级:超级版主 帖子:113660 积分:578843 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/26 16:55:00 [显示全部帖子]

代码本来就是导出完,才加载下一页的。

报表事件还保留吗?图片都是多大的,如果都是大图,建议先全部保存一份小图,再根据小图输出报表吧。


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


加好友 发短信
等级:超级版主 帖子:113660 积分:578843 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/26 17:09:00 [显示全部帖子]

其实就是等于多等了几秒,或者试试


With DataTables("table_3")
Do While .LoadPage < .TotalPages - 1
        .LoadPage = .LoadPage + 1
Dim sdt As Date = Date.Now
Do While Date.Now < sdt.AddSeconds(2) ‘暂停2秒
    Application.DoEvents
Loop
Dim Book As New XLS.Book(ProjectPath & "Attachments\111.xls") '打开模板
Dim Sheet As XLS.Sheet = Book.Sheets(0)
gc.Collect

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


加好友 发短信
等级:超级版主 帖子:113660 积分:578843 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/28 10:26:00 [显示全部帖子]

建议预先生成小图使用把。报表事件处理压缩图片是非常耗内存的,如果一个原图有10M,估计5个图片可能就崩了

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


加好友 发短信
等级:超级版主 帖子:113660 积分:578843 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/28 10:45:00 [显示全部帖子]

Dim bmp1 As new bitmap(img, 200,200 * (img.height / img.width))
bmp1.save(ProjectPath & "Images\图片" & i+1 & ".jpg")
bmp1.Dispose

新建一个缩略图列,把所有已经上传的图片调用上面代码生成小图,放入缩略图列,然后根据这个列输出报表

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


加好友 发短信
等级:超级版主 帖子:113660 积分:578843 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/28 10:57:00 [显示全部帖子]

就是新增一个文件列,然后在上传原文件的时候,同时生成一个小图,把小图也上传到ftp,路径放入这个文件列

 回到顶部