以文本方式查看主题 - 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 [此贴子已经被作者于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:
下载时出现的错误提示 图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事件写代码合成路径打开。 |