关于VB中调用报表控件FASTREPORT 4.6.8的各类问题
看到有个软件使用了FASTREPORT报表,可提供二次打印接口给客户自行设置.
研究了几天,也没整明白.
1.那个软件调用FP的时候,数据源的连接信息(比如指定某个ACCESS文件或SQL数据库的地址账号密码)和SQL查询,再由软件通过FP调用一个预先设计好的打印模板FR3文件,直接使用FP3文件的是话用不了的,没有数据源,那将通过软件来去先调FR3文件再传入数据源和SQL查询.
FP界面中,无法追踪到数据源信息和SQL查询信息,只可直接调用相关的字段.
已测来测去相关代码,但都无法实现效果.
Dim frx As New FastReport.TfrxReport
Dim designer As New FastReport.TfrxDesigner
Dim page As FastReport.IfrxReportPage
Dim sql_query As FastReport.IfrxADOQuery
Dim database As FastReport.IfrxADODatabase
Dim table As FastReport.IfrxADOTable
Private Sub Command1_Click()
'Set frx = CreateObject("FastReport.TfrxReport")
'frx.EngineOptions.SilentMode = simMessageBoxes
Set dst = CreateObject("FastReport.TfrxUserDataSet")
'Set database = CreateObject("FastReport.IfrxADODatabase")
frx.LoadReportFromFile (App.Path & "\fr_and_access.fr3")
Set table = frx.FindObjectEx("at1")
'Set db1 = frx.CreateReportObjectEx(frx, "TfrxADODatabase", "ADODatabase1")
'Set database = frx.CreateReportObjectEx(frx, "TfrxADODatabase", "ADODatabase1")
'Set db2 = frx.FindObjectEx("ADODatabase1")
dbs = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" & App.Path & "\db1.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"
table.database = dst
VB中如何实现?
[解决办法]
好像是叫虚拟数据集?
怎么用?
[解决办法]
此问题已解决.
自带的DEMO代码\Examples\VisualBasic\VB6_Demo\VB6_UserDataset_Demo
生成EXE后就正常了.
可能VB不是正规的编程和具备调试功能,所以在编程模式下,无法进行内存数据的很好兼容.
现在遇到的问题是.
使用虚拟数据集后,传递了图片信息,模板中也建立好了对应的dataset和datafield.
检查过数据也是BM开头的信息.
但无法显示图片?
[解决办法]
我也在找VB打开fr3格式的方法