社区
VB基础类
帖子详情
如何在VB中調用Crystal Report中的Rpt檔而不是DSR檔. 希望提供Sample,在線等待..急..一定給分
jxxiaojian
2002-04-23 10:59:37
如何在VB中調用Crystal Report中的Rpt檔而不是DSR檔. 希望提供Sample,
...全文
60
2
打赏
收藏
如何在VB中調用Crystal Report中的Rpt檔而不是DSR檔. 希望提供Sample,在線等待..急..一定給分
如何在VB中調用Crystal Report中的Rpt檔而不是DSR檔. 希望提供Sample,
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
s在
VB
中
的调用
环境:
VB
6.0,
crystal
report
s 9.0 在一个项目
中
用到了
crystal
report
s,总结一些经验和教训。 以做一张单据的套打为例。 单据包括单据头,单据体。单据头和单据体可能是一对多的关系。并且他们分别存在于两张表...
jsp运行
crystal
report
报错:
Report
file
Crystal
Report
1.
rpt
not found---- Error code:-2147215356 Error code
Report
file
Crystal
Report
1.
rpt
not found---- Error code:-2147215356 Error code name:fileNotOpened 解决办法: 把报表文件*.
rpt
放在WEB-INF/c
crystal
Report
Viewer+Receive
Crystal
Report
.
rpt
+DataSet.xsd做报表
crystal
Report
Viewer(报表查看器)+...1.
crystal
Report
Viewer 的
Report
Source属性指定一个Receive
Crystal
Report
.
rpt
文件 2.添加一个dataset.xsd文件,添加报表要显示的字段信息(
一定
要与数据库
中
一致) 3.打开Recei
在 Visual Studio .NET
中
使用
Crystal
Report
(
中
)
Crystal
Report
演示-使用Pull Model我们可以用以下步骤来实现
Crystal
Report
s的Pull Model的使用:(1) 创建一个.
rpt
文件,设定必要的数据库联接。...(3) 在你的code behind page文件
中
调用databind方法。创
基于
VB
-
Crystal
Report
的C/S报表架构讨论
在这里我主要想和大家讨论一下
Crystal
Report
的总体框架模式方面的问题,重点是如何使用
VB
有效的融合报表和数据,快速的进行报表开发工作。
希望
抛砖引玉,找到几种最好最快的开发模式。本文暂不涉及技术细节,所以您...
VB基础类
7,763
社区成员
197,609
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章