初级问题,请问怎么在WEB上导出PDF格式文档,各位大侠帮忙指导指导!

zbw_2006 2006-03-13 01:09:15
我查资料,说得用邮箱,那代码怎么编呢?
还有如果我想让客户端直接打开PDF格式文档,就是说传过去的是PDF格式文档,而不是HTML。那么代码怎么编呢?
请各位高手指点!
在此感激不尽!
...全文
196 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
echoxue 2006-04-07
  • 打赏
  • 举报
回复
up
zbw_2006 2006-03-21
  • 打赏
  • 举报
回复
谢谢楼上,我是CSDN中新的成员,感觉到这里太棒了,所有问题都得到了回答,太谢谢你们了,希望以后多多指教。
再问一下。怎么结贴,散分呢?
Pek_zfs 2006-03-15
  • 打赏
  • 举报
回复
这是我现在正在用的代码,希望对你有帮助。

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
Dim strDeptCode As String = "-1"
Dim strAcTypeID As String = "-1"
Dim ds As New DsCOAInfoByDeptCode
Dim strSql As String
Dim strCon As String

'自行填充数据集ds()
strCon = System.Configuration.ConfigurationSettings.AppSettings.Get("CMPSDBConnection")
Dim CN As New Data.OracleClient.OracleConnection(strCon)

CN.Open()

If strDeptCode = "-1" And strAcTypeID = "-1" Then
strSql = "SELECT rownum Row_Num,c.TECH_AUTH_NAME,c.TECH_AUTH_ID,d.C_NAME as P_NUMBER,d.COMP_AUTH_ID,e.DEPT_NAME,e.DEPT_CODE" & _
" FROM CM_T5004 c," & _
" (SELECT a.COMP_AUTH_ID,b.C_NAME,b.DEPT_CODE" & _
" FROM CM_T5001 a,CM_T1002 b" & _
" WHERE b.DEPT_CODE IS NOT NULL AND a.AC_TYPE_ID IS NOT NULL AND a.P_CODE = b.P_CODE) d," & _
" (SELECT * FROM CM_T1001) e" & _
" WHERE c.TECH_AUTH_ID=d.COMP_AUTH_ID AND c.IN_EX='I' AND e.DEPT_CODE=d.DEPT_CODE" & _
" ORDER BY c.TECH_LEVEL,c.TECH_AUTH_NAME"
Else
strSql = "SELECT rownum Row_Num,c.TECH_AUTH_NAME,c.TECH_AUTH_ID,d.C_NAME as P_NUMBER,d.COMP_AUTH_ID,e.DEPT_NAME,e.DEPT_CODE" & _
" FROM CM_T5004 c," & _
" (SELECT a.COMP_AUTH_ID,b.C_NAME,b.DEPT_CODE" & _
" FROM CM_T5001 a,CM_T1002 b" & _
" WHERE b.DEPT_CODE='" & strDeptCode & "' AND a.AC_TYPE_ID='" & strAcTypeID & "' AND a.P_CODE = b.P_CODE) d," & _
" (SELECT * FROM CM_T1001) e" & _
" WHERE c.TECH_AUTH_ID=d.COMP_AUTH_ID AND c.IN_EX='I' AND e.DEPT_CODE=d.DEPT_CODE" & _
" ORDER BY c.TECH_LEVEL,c.TECH_AUTH_NAME"
End If

Dim da As New Data.OracleClient.OracleDataAdapter(strSql, CN)
da.Fill(ds, "CM_T5001")

oRptd.Load("D:\MyWork-zfs\CMPS-CrystalReport\CMPSCrystalReport\Report\RptFlyerTechnicAnalyse.rpt")
oRptd.Refresh()

'使用“报表引擎”对象模型将填充的数据集,传递给报表

oRptd.SetDataSource(ds)

CrystalReportViewer1.ReportSource = oRptd
'把水晶报表文件生成打印文件
SavetoDoc(3, "RptFlyerTechnicAnalyse")
End Sub

Public Sub SavetoDoc(ByVal Format As Integer, _
ByVal strRptFN As String)
Dim Fname As String
Dim r As New Random
Dim iflag As Integer = r.Next(10000)

Fname = strRptFN
Fname += iflag.ToString()

Dim ExportPath As String
ExportPath = Request.PhysicalApplicationPath + "Exported\"
If (Not Directory.Exists(ExportPath)) Then
System.IO.Directory.CreateDirectory(Request.PhysicalApplicationPath + "Exported\")
End If

Dim crDiskFileDestinationOptions As New DiskFileDestinationOptions
Dim crExportOptions As ExportOptions = oRptd.ExportOptions
With crExportOptions
.DestinationOptions = crDiskFileDestinationOptions
.ExportDestinationType = ExportDestinationType.DiskFile
Select Case Format
Case 0
.ExportFormatType = ExportFormatType.Excel

Dim excelFormatOpts As New ExcelFormatOptions
excelFormatOpts.ExcelTabHasColumnHeadings = False
excelFormatOpts.ExcelAreaType = AreaSectionKind.Detail
excelFormatOpts.ExcelUseConstantColumnWidth = True
excelFormatOpts.ExcelConstantColumnWidth = 2500.0
.FormatOptions = excelFormatOpts

Fname = Fname + ".xls"
Case 1
.ExportFormatType = ExportFormatType.WordForWindows
Fname = Fname + ".doc"
Case 2
.ExportFormatType = ExportFormatType.HTML40
Dim HTML40Formatopts As New HTMLFormatOptions
With HTML40Formatopts
.HTMLBaseFolderName = ExportPath
.HTMLEnableSeparatedPages = True
.HTMLHasPageNavigator = True
End With
crExportOptions.FormatOptions = HTML40Formatopts

'Dim rptFileFolder As String = strStoreProcedure + "/"
Dim rptFileFolder As String = Fname + "/"
Fname = rptFileFolder + ".htm"
Case 3
.ExportFormatType = ExportFormatType.PortableDocFormat
Fname = Fname + ".pdf"
End Select
End With

'get valid filename
Fname = Fname.Replace("/", "_")

crDiskFileDestinationOptions.DiskFileName = ExportPath + Fname
oRptd.Export()
Response.Redirect("../../CMPSCrystalReport/Exported/" + Fname)
'Response.Flush()
'Response.Close()

'System.IO.File.Delete("../../CMPSCrystalReport/Exported/" + Fname)
File.Delete(Request.PhysicalApplicationPath + "Exported\" + Fname)
End Sub
xwdd129 2006-03-13
  • 打赏
  • 举报
回复
参考:

如何让Web应用程序在Client端实现导出报表功能
http://blog.csdn.net/xwdd129/archive/2005/07/22/431647.aspx

4,819

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧