以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教生成PDF与文件夹的思路  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=121167)

--  作者:douglas738888
--  发布时间:2018/6/30 11:45:00
--  请教生成PDF与文件夹的思路

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

 

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

 

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


--  作者:有点蓝
--  发布时间: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
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间:2018/7/2 9:25:00
--  

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

 

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

 

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

 

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


--  作者:douglas738888
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间:2018/7/2 11:34:00
--  

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


--  作者:douglas738888
--  发布时间:2018/7/2 11:38:00
--  

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

 

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

--  作者:有点甜
--  发布时间:2018/7/2 11:46:00
--  

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

 

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

 

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