|
本帖最后由 roych 于 2015-7-14 15:58 编辑
前天在图书馆借了本《Access 2013 web编程》,打算在培训群里装一下十三的。前面十四章都是关于Access Web应用程序,于是昨天就激活了小妖姐姐去年给的Office365账号【灰常感谢{:soso_e142:}】,打算具体测试一下SharePoint的,感觉Access web程序还行,应该是用ASP.NET来完成远程交互的。所以VBE被取消了,只能写数据宏或者普通宏来完成交互,而且增加了不少内置函数,比较接近JavaScript的内置函数,具体机制还没研究……可惜只有30天试用期,看来得抓紧时间测试了。
第二部分匆匆浏览一遍,觉得有些东西还是可以跟大家分享下的。稍稍消化下,就过来发帖了。{:soso_e113:}
第一个想说的是,使用XFDF填充表单。和论坛的导出PDF报表相比,优缺点如下:
项目 | 优点 | 缺点 | PDF导出报表 | | - 代码较为复杂,可能不易维护
- 由于引用第三方控件,部分电脑可能无法执行或出错
| XFDF填充表单 | | - 使用了域文本,只能按固定格式填充。
- 需要预先设置好表单格式。
|
具体做法是先设置好固定格式的表单,插入文本和域文本,保存为模板,然后创建XML格式的XFDF文件①,再执行即可生成PDF文件②,具体效果如下:
习惯上,还是先贴代码:- Private Sub 提交_Click()
- '
- Const strPDF As String = "PDFDemo.pdf"
- Const strXFDF As String = "theDBguy.xfdf"
- Dim strPath As String
- Dim intFile As Integer
- '加上控件方便写循环语句。
- Dim ctr As Control
- strPath = CurrentProject.Path
- intFile = FreeFile
- '需用二进制方式写入,用OpenTextFile方式测试没成功。
- Open strPath & "" & strXFDF For Output As #intFile
- 'UTF-8不支持汉字,需改为GB2312或者GBK编码。
- Print #intFile, "<?xml version=""1.0"" encoding=""GBK""?>"
- Print #intFile, "<xfdf xmlns=""http://ns.adobe.com/xfdf/"" xml:space=""preserve"">"
- Print #intFile, "<f href=""" & strPDF & """/>"
- Print #intFile, "<fields>"
- For Each ctr In Me.Controls
- If ctr.ControlType = acTextBox Or ctr.ControlType = acComboBox Then
- Print #intFile, "<field name=""" & ctr.Name & """>"
- Print #intFile, "<value>" & ctr.Value & "</value>"
- Print #intFile, "</field>"
- End If
- Next
- Print #intFile, "</fields>"
- Print #intFile, "</xfdf>"
- Close #intFile
- ShellEx strPath & "" & strXFDF
- 'ShellEx是封装后的ShellExecute API函数,这里就不贴了。详细见附件
- End Sub
复制代码
注:
①:源文件是一行行输入的。我嫌麻烦,就稍稍改了代码,使用了循环。另外,XFDF格式使用Name属性必须加上双引号【不加双引号时会出错,单引号没试过。】
②:生成PDF表单,详见二楼图解。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|