如何将FastReport加入Delphi中使用

如何将FastReport加入Delphi中使用,第1张

FastReport 是一款比较好用的报表设计软件,带有报表设计器。

通常的做法,先在 delphi 工程里添加 TfrxReport 报表组件,如果需要读取数据库数据,再添加数据库组件。 双击 TfrxReport 组件会d出报表设计器,然后再进行设计就可以了。

在取报表格式之前,应该先把数据集对象放好,这样才能保证在报表控件在取格式文件后,安置报表对象时,可以拿到数据对象,如果 *** 作顺序搞反了,则报表对象就无法拿到数据对象,在预览数据时,就会产生“没有数据集”的错误了!!

var

tmpDataSet: T数据集;

DataSource: TDataSource;

frxDBDataSet: TfrxDBDataset;

begin

tmpDataSet:=T数据集Create(Self);

DataSource:=TDataSourceCreate(Self);

frxDBDataSet:=TfrxDBDatasetCreate(Self);

DataSourceDataSet:=tmpDataSet;

frxDBDataSetDataSource:=DataSource;

//frxDBDataSetDataSet:=tmpDataSet; //这条语句与上一条都可用,我也不知道区别在哪

frxDBDataSetUserName:='数据项名称'; //好用在于可以用中文名

frxReport1DataSetsAdd(frxDBDataSet);

-------------注意:在把报表格式LoadFromFile或LoadFromStream之前,必须完成上面这几条语句的程序

这个问题应该是和网站服务器的IIS设置有关,通过ODBC访问数据库可能服务器设置了限制,比如连接数限制、timeout时限限制等等。你的站点访问量低但是有可能那台F上别人的站点频繁的访问数据库,造成odbc驱动处理压力太大也是有可能的。最好找系统管理员问清楚。

你可以试试换一个服务器看看还没有没有这种情况出现,因为你在本地是没有问题的,所以基本上不大可能是程序导致的。

另外:你最好要确认一下你在本地使用的odbc驱动版本和在服务器上的odbc驱动版本是否是一致的。

刚做了测试,我是参考这位大神的网页链接

private void button1_Click(object sender, EventArgs e)

        {

            Report rep = new Report();

            SqlConnection conn = new SqlConnection(@"Data Source=;Integrated Security=true;Initial Catalog=SD11812N_Sample;");

            string filename = @"C:\Users\Administrator\Desktop\测试frx";

            try

            {

                string sql = "select code,name,specs,unit from goods";

                connOpen();

                SqlCommand cmd = new SqlCommand(sql, conn);

                SqlDataAdapter sd = new SqlDataAdapter(cmd);

                DataSet ds = new DataSet();

                sdFill(ds);

                connClose();//关闭数据库连接

                sdDispose();//释放资源

                repLoad(filename);//加载模版

                repRegisterData(ds);

                repGetDataSource(dsTables[0]TableName)Enabled = true;

                repShow();//显示报表

            }

            catch (Exception er)

            {

                MessageBoxShow(erMessage);

                connClose();

                throw;

            }

        }

报表模版

打印预览 效果

我觉得最好别写如数据库,把路径写进表里,用的事后直接连接就行了

private JTable getJTable() {

if (jTable == null) {

jTable = new JTable();

jTablesetForeground(Colorblue);

jTablesetGridColor(Colorblack);

Object[][] p=null;

ay=getstudent();

p=new Object[aysize()][7];

for(int i=0;i<aysize();i++){

student stu=(student)ayget(i);

p[i][0]=StringvalueOf(stugetStu_id());

p[i][1]=stugetStu_name();

p[i][2]=stugetStu_pass();

p[i][3]=stugetStu_sex();

p[i][4]=stugetStu_tel();

p[i][5]=stugetStu_address();

p[i][6]=stugetStu_photo();

}

Object[] table={"编号","姓名","密码","性别","电话","地址","照片"};

jTable = new JTable(p,table);

jTableaddMouseListener(new javaawteventMouseAdapter() {

public void mouseClicked(javaawteventMouseEvent e) {

int rows=getrows();//得到选中的行

String img=StringvalueOf(jTablegetValueAt(rows, 6));

jLabel3setIcon(new ImageIcon(img));

// Systemoutprintln("您选择的行是"+rows+"截取的列是"+img);

}

});

}

return jTable;

}

这是java截取路径的类

如果在 FastReport 中使用 MySQL 数据库时没有找到 MySQLConnect 对象,可能是因为没有正确安装或配置 FastReport 的 MySQL 数据库驱动程序。您可以尝试以下方法解决问题:

1 确认已正确安装 MySQL 数据库驱动程序。可以尝试重新安装或更新 MySQL 数据库驱动程序,或者查找最新版本的驱动程序。

2 确认已正确配置 FastReport 的 MySQL 数据库驱动程序。可以尝试在 FastReport 的“数据源配置”中重新配置 MySQL 数据库驱动程序,确保数据库连接字符串、用户名和密码等信息正确。

3 确认已正确设置 MySQL 数据库驱动程序的环境变量。可以尝试在系统环境变量中添加 MySQL 数据库驱动程序的路径,确保 FastReport 能够正确找到 MySQLConnect 对象。

以上就是关于如何将FastReport加入Delphi中使用全部的内容,包括:如何将FastReport加入Delphi中使用、如何在FastReport报表中动态添加数据集、用FASTREPORT可以生成如图所示的标签打印程序和数据库吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9479609.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存