Foxtable(狐表)用户栏目专家坐堂 → 请教生成PDF与文件夹的思路


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

主题:请教生成PDF与文件夹的思路

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


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
请教生成PDF与文件夹的思路  发帖心情 Post By:2018/6/30 11:45:00 [只看该作者]

请教老师,想实现如下的想法,请老师给个思路,和参考帮助的指导

 

从WORD生成PDF的同时,在同表某列自动生成文件名称并上传到FTP指定的文件夹,如果下载该文件时,自动在指定盘符自动生成文件夹。

 

是否要使用到文件监视器?


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/30 11:55:00 [只看该作者]

1、使用文件监视器


Dim fl2 As String = ProjectPath & "Reports\" & Tables("出库").current("出库单号") & ".pdf" '指定目标PDF文件
Dim wrt As New WordReport(Tables("出库"),tm,fl1) '定义一个WordReport
wrt
.Build() '逐行生成报表
wrt
.SaveToPDF(fl2) '保存为PDF文件
wrt
.Quit() '退出
Dim
 Proc As New Process '打开PDF文件
Proc
.File = fl2
Proc
.Start()


Dim ftp1 As New FtpClient
ftp1
.Host="196.128.143.28"
ftp1
.Account = "foxuser"
ftp1
.Password = "138238110"
If 
ftp1.Upload(fl2,"\update\" & filesys.GetName(fl2)) = True Then
    Messagebox.show("上传完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
    
Messagebox.show("上传失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

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


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2018/7/2 9:17:00 [只看该作者]

根据上面老师指导的代码,运行时出现问题,还得麻烦老师看看下面代码的情况

 

问题,下面代码的写法,能在生成PDF的同时上传文件,指定的目标列也能自动填入字符,数据库中的文件夹也有文件,但是如果要在FTP窗口点击下载该文件,无法下载报错530......(应该是文件名错误吧)

         测试:如果直接在FTP窗口上传文件,点击下载,又能正常打开PDF

请老师指导,指导,谢谢!

 

1. 写在FileCreated 

Dim r As Row = Tables("会议纪要").Current

r("附件") =  r("会议议题") & ".pdf"

FileSys.CopyFile(e.FullPath, ProjectPath  & "项目/Reports/会议纪要/" & r("附件"),True)   '此行如果使用,点击生成报表的按钮后会出现报错提示“未能找到文件项目/Reports/会议纪要/mso.24B4.tmp" 有时是mso.1FE8

 

2.写在按钮

 

Dim tm As String  = ProjectPath & "Attachments\会议纪要.doc" '指定模板文件

Dim fl1 As String = ProjectPath & "Reports\会议纪要.doc" '指定目标文件

Dim fl2 As String = ProjectPath & "Reports\会议纪要\ " & Tables("会议纪要").current("会议议题") & ".pdf" '指定目标pdf文件

Dim wrt As New WordReport(Tables("会议纪要"),tm,fl1) '定义一个WordReport

    wrt.Build() '逐行生成报表

  

    wrt.SaveToPDF(fl2) '保存为PDF文件

    wrt.Quit() '退出

   

 

    Dim ftp1 As New FtpClient

    ftp1.Host="XXX"

    ftp1.Account = "XXX"

    ftp1.Password = "XXX"

    If ftp1.Upload(fl2,"\RQNHFJ\" & filesys.GetName(fl2)) = True Then

    Messagebox.show("上传完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)

     Else

    Messagebox.show("上传失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)

 

3. 如果以下代码写在FileCreated ,点击按钮报错 WD0000002.tmp

Dim ftp1 As New FtpClient
ftp1.Host="XXX"
ftp1.Account = "XXX"
ftp1.Password = "XXX"
If ftp1.Upload(e.FullPath,"\RQNHFJ\" & r("附件")) = True Then
   Messagebox.show("上传完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
    Messagebox.show("上传失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

[此贴子已经被作者于2018/7/2 9:19:41编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/2 9:25:00 [只看该作者]

1、你FileCreated要判断e.FullPath的后缀名吧?是pdf的类型再拷贝。

 

msgbox(e.fullpath) 弹出看看都出现什么值。

 

2、只要能正确上传,肯定都能正确下载。你打开ftp窗口,上传的文件是否正确?文件名是否正确?

 

如果提示下载错误,出错截图发上来看看。


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


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2018/7/2 11:21:00 [只看该作者]

点击按钮出现的错误提示,此时本地文件夹已经生成PDF文件,文件也上传到数据库,目标列也有文件名和文件后缀.PDF   msgbox(e.fullpath)不弹出任何路径显示

下面图片因为加了这行代码FileSys.CopyFile(e.FullPath, ProjectPath  & "瑞勤研发/Reports/内部会议纪要/" & r("附件"),True) ,才出现的错误提示,如果不加这行代码不会出现图1错误提示,只是另存或打开文件时出现图2错误提示

图1:


图片点击可在新窗口打开查看此主题相关图片如下:无标题1.jpg
图片点击可在新窗口打开查看

 

下载时出现的错误提示

 图2:


图片点击可在新窗口打开查看此主题相关图片如下:无标题2.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/7/2 11:21:41编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/2 11:34:00 [只看该作者]

点击【管理】,打开ftp管理器,看上传了文件没有,文件叫什么名字。


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


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2018/7/2 11:38:00 [只看该作者]

上传了,文件名和图2是一致的,BIN也删除重启多次了

 

[此贴子已经被作者于2018/7/2 11:38:41编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/2 11:46:00 [只看该作者]

1、你FileCreated要判断e.FullPath的后缀名啊,是pdf的类型再拷贝,不然不要处理啊。

 

msgbox(e.fullpath) 弹出看看都出现什么值。

 

2、你ftp列的文件名,尝试改成 "RQNHFJ\" & r("附件") 或者是自己在beforeOpenFile事件写代码合成路径打开。


 回到顶部