社区
VB基础类
帖子详情
如何在VB中調用Crystal Report中的Rpt檔而不是DSR檔. 希望提供Sample,在線等待..急..一定給分
jxxiaojian
2002-04-23 10:59:37
如何在VB中調用Crystal Report中的Rpt檔而不是DSR檔. 希望提供Sample,
...全文
69
2
打赏
收藏
如何在VB中調用Crystal Report中的Rpt檔而不是DSR檔. 希望提供Sample,在線等待..急..一定給分
如何在VB中調用Crystal Report中的Rpt檔而不是DSR檔. 希望提供Sample,
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jxxiaojian
2002-04-23
打赏
举报
回复
不好意思剛剛被我給試出來..
不過你給我的資料還是蠻有用..
謝謝..
wangsitao
2002-04-23
打赏
举报
回复
只能详细说明一下我的程序的API,你最好自己查一下CrystalReport的开发文档资料在CrystalReport8.0的安装目录下有
以下方法必须用CrystalReport编辑生成文件而不使用CrystalReport对象
1)PEOpenEngine打开引擎
无参数,有返回值 =1成功=0失败
2)EOpenPrintJob设定打印文件
jobnum = PEOpenPrintJob(App.Path + "\ducu.rpt")
参数为字符串 传入你的.RPT文件的全路径,返回值 jobnum为工作队列号
3)PESelectPrinterEX选择打印机
参数为PEOpenPrintJob的返回值
有返回值 =1成功=0失败
result = PESelectPrinterEX(jobnum)
4)得到.RPT文件中使用到的TABLE表的数量
tablecount = PEGetNTables(jobnum)
参数为PEOpenPrintJob的返回值
返回值TABLE表的数量
5)PESetNthTableLogOnInfo设定ODBC名
用PEGetNthTableLogOnInfo得到PELogOnInfo结构体
result = PEGetNthTableLogOnInfo(jobnum, i, PELogOnInfo1)
参数1为PEOpenPrintJob的返回值
参数2为第几个TABLE表(0是第一个)
参数3为PELogOnInfo结构体,是传出参数,不必赋值
有返回值 =1成功=0失败
PELogOnInfo1.ServerName = "MDB" + Chr(0)
"MDB"是我作成的ODBC连接的名称
result = PESetNthTableLogOnInfo(jobnum, i, PELogOnInfo1, 1)
参数1为PEOpenPrintJob的返回值
参数2为第几个TABLE表(0是第一个)
参数3为PELogOnInfo结构体,从PEGetNthTableLogOnInfo得到
参数4忘了,好象传1就可以了
6)result = PESetMargins(jobnum, RepLeft, RepRight, RepTop, RepBottom)设定报表的Margin
参数1为PEOpenPrintJob的返回值
参数2为报表左顶点X轴的值
参数3为报表右下点X轴的值
参数4报表左顶点Y轴的值
参数5报表右下点Y轴的值
有返回值 =1成功=0失败
7)PESetFormula设定报表文件参数值
formulacount = PEGetNFormulas(jobnum)得到.RPT文件Formula的数量
参数1为PEOpenPrintJob的返回值
返回值为Formula的数量
result = PEGetNthFormula(jobnum, FormulaN, nameHandle, nameLength, TextHandle, TextLength)
参数1为PEOpenPrintJob的返回值,FormulaN是第几个Formula(0是第一个)其他是传出参数,不必赋值
有返回值 =1成功=0失败
formulaName = String$(nameLength, 0)
result = crvbHandleToBStr(formulaName, nameHandle, nameLength)
此时formulaName为.RPT文件第FormulaN个Formula的名称,有返回值 =1成功=0失败
FormulaText="'"+"A"+"'"
result = PESetFormula(jobnum, formulaName, FormulaText)将A传给名称为formulaName的Formula
参数1为PEOpenPrintJob的返回值, 参数2为Formula的名称,参数3为Formula的值(字符)
有返回值 =1成功=0失败
8)PEDiscardSavedData使报表文件重新取数据
result = PEDiscardSavedData(jobnum)
参数1为PEOpenPrintJob的返回值, 有返回值 =1成功=0失败
9)PEOutputToWindow报表文件以Window打开
result = PEOutputToWindow(jobnum, "貸出期限超過者一覧", CW_USEDEFAULT, _
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, _
CW_USEDEFAULT + WS_BORDER + WS_SYSMENU + WS_VISIBLE + WS_MAXIMIZE, printhwnd)
参数1为PEOpenPrintJob的返回值,
参数2为WINDOW的标题,
参数3,4,5,6传就可以了
参数7为WINDOW的风格,
参数8为传出值,LONG型窗口句柄,
有返回值 =1成功=0失败
Dim PEWOptions As PEWindowOptions
PEWOptions.StructSize = PE_SIZEOF_WINDOW_OPTIONS
PEWOptions.hasGroupTree = 0
PEWOptions.canDrillDown = 0
PEWOptions.hasNavigationControls = 1
PEWOptions.hasCancelButton = 0
PEWOptions.hasPrintButton = 1
PEWOptions.hasExportButton = 0
PEWOptions.hasZoomControl = 1
PEWOptions.hasCloseButton = 1
PEWOptions.hasProgressControls = 1
PEWOptions.hasSearchButton = 1
PEWOptions.hasPrintSetupButton = 1
PEWOptions.hasRefreshButton = 1
PEWOptions.showToolbarTips = 1
PEWOptions.showDocumentTips = 0
PEWOptions.hasLaunchButton = 0
result = PESetWindowOptions(jobnum, PEWOptions)设定预览窗口上的控件
其他与报表文件输出到打印机一样
PEOutputToPrinter报表文件输出到打印机
result = PEOutputToPrinter(jobnum, Printer.Copies)
参数1为PEOpenPrintJob的返回值,参数2为印刷数量, 有返回值 =1成功=0失败
Dim PEPOptions As PEPrintOptions
PEPOptions.StructSize = PE_SIZEOF_PRINT_OPTIONS
result = PEGetPrintOptions(jobnum, PEPOptions)
PEPOptions.StructSize = PE_SIZEOF_PRINT_OPTIONS
PEPOptions.nReportCopies = nReportCopies报表印刷数量
PEPOptions.StartPageN = StartPageN印刷开始页
PEPOptions.stopPageN = stopPageN印刷结束页
PEPOptions.collation = PE_DEFAULTCOLLATION
result = PESetPrintOptions(jobnum, PEPOptions)设定打印式样
Dim PESOptions As PESectionOptions
Dim code As Integer
PESOptions.StructSize = PE_SIZEOF_SECTION_OPTIONS
PESOptions.Visible = PE_UNCHANGED
PESOptions.NewPageBefore = PE_UNCHANGED
If systotal2.Reg1.System.Other.Tokusoku = 0 Then
PESOptions.NewPageAfter = 1
Else
PESOptions.NewPageAfter = 0
End If
PESOptions.KeepTogether = PE_UNCHANGED
PESOptions.SuppressBlankSection = PE_UNCHANGED
PESOptions.ResetPageNAfter = PE_UNCHANGED
PESOptions.PrintAtBottomOfPage = PE_UNCHANGED
PESOptions.backgroundColor = PE_UNCHANGED_COLOR
PESOptions.underlaySection = PE_UNCHANGED
PESOptions.showArea = PE_UNCHANGED
PESOptions.freeFormPlacement = PE_UNCHANGED
PESOptions.reserveMinimumPageFooter = PE_UNCHANGED
code = PE_SECTION_CODE(PE_SECT_GROUP_FOOTER, 0, 0)
result = PESetSectionFormat(jobnum, 5000, PESOptions)设定REPORT式样
10)PEStartPrintJob打印报表
result = PEStartPrintJob(jobnum, True)
参数1为PEOpenPrintJob的返回值, 有返回值 =1成功=0失败
11)PEClosePrintJob关闭打印文件
result = PEClosePrintJob(jobnum)
参数1为PEOpenPrintJob的返回值, 有返回值 =1成功=0失败
12PECloseEngine关闭引擎
无参数,有返回值 =1成功=0失败
crystal
Report
Viewer+Receive
Crystal
Report
.
rpt
+DataSet.xsd做报表
crystal
Report
Viewer(报表查看器)+Receive
Crystal
Report
.
rpt
(报表文件)+DataSet.xsd(数据集) 1.
crystal
Report
Viewer 的
Report
Source属性指定一个Receive
Crystal
Report
.
rpt
文件 2.添加一个dataset.xsd文件,添加报表要显示的字段信息(
一定
要与数据库
中
一致) 3.打开Recei
浅谈
crystal
report
s在
VB
中
的调用
环境:
VB
6.0,
crystal
report
s 9.0 在一个项目
中
用到了
crystal
report
s,总结一些经验和教训。 以做一张单据的套打为例。 单据包括单据头,单据体。单据头和单据体可能是一对多的关系。并且他们分别存在于两张表当
中
,用字段FID做关联。要求能够动态的传入参数FID,显示不同的结果。 首先,打开
crystal
rep
jsp运行
crystal
report
报错:
Report
file
Crystal
Report
1.
rpt
not found---- Error code:-2147215356 Error code
com.
crystal
decisions.sdk.occa.
report
.lib.
Report
SDKException:
Report
file
Crystal
Report
1.
rpt
not found---- Error code:-2147215356 Error code name:fileNotOpened 解决办法: 把报表文件*.
rpt
放在WEB-INF/c
.
rpt
文件怎麽打開?
Crystal
Report
s 打開.
rpt
失敗 ?
.
rpt
是SAP
Crystal
Report
s 製作出來的
檔
案的後綴名, 可以通過 SAP
Crystal
Report
s Viewer 打開,也可以直接用記事本(notepad / Notepad++ 等)直接打開未加密的
檔
案,如果已加密需要解密。 SAP
Crystal
Report
s Viewer 下載Download 下載鏈接:https://wiki.scn.sap.com...
在
vb
中
动态加载水晶报表
rpt
文件的方法
这个问题在很多论坛里边都有问到。但是一直没找到满意的答案。下边写出一个解决办法 Dim sql As String Dim rstLiuShui As New ADODB.Recordset Dim
Rpt
As New CRAXDDRT.
Report
Dim PrintApp As New CRAXDDRT.Application If Option2.V
VB基础类
7,785
社区成员
197,585
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章