调用FastReport Design设计器的问题

morliz子轩 2020-06-22 11:29:19


为什么我调用frx时,标题栏没有打开文件的路径和文件名呢?官方DEMO设计是完全有的。
这是哪的问题,有知道的大佬吗
...全文
3129 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
morliz子轩 2020-06-23
  • 打赏
  • 举报
回复
代码只是负责实现调用过程,没有动态时实改变Form.Text标题。我就是没明白,这个动态实时发生改变,是怎么实现的

//调用报表预览
        public void ActionRptPrev(int _rptbarid, FastReport.Preview.PreviewControl previewCtl)
        {
            if (textBox8.Text.Trim() == string.Empty)
            {
                MessageBox.Show("报表数据源不能为空", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            CusReportContext db = new CusReportContext();
            List<bgdatasrc> rBarlist = db.bgdatasrc.Where(x => x.rptbarid == _rptbarid).ToList();      //本级项目主表
            int _dsrctype = rBarlist.Select(c => c.dsrctype).FirstOrDefault();       //数据源类型
            string _rptfile = "Report/" + rBarlist.Select(d => d.rptfile).FirstOrDefault();     //报表文件名
            db.Dispose();

            if (!System.IO.File.Exists(_rptfile))
            {
                MessageBox.Show(_rptfile + "报表模板文件不存在,需创建该文件模板", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            pReport = new FastReport.Report();
            pReport.Load(_rptfile);
            pReport.Preview = previewCtl;
            DataSet ds = FrmDesign.BindingData(_rptbarid);

            pReport.RegisterData(ds.Tables[0], "自定义报表");
            pReport.Prepare();
            pReport.ShowPrepared();

        }
datafansbj 2020-06-23
  • 打赏
  • 举报
回复
你的报表怎么 load 进来的?贴一下代码吧,如果是 load 文件,应该显示文件名,如果 load 一个变量,应该无法显示的。
morliz子轩 2020-06-23
  • 打赏
  • 举报
回复
引用 6 楼 datafansbj 的回复:
你的代码是从文件 load 进来的,按理应该显示标题。你使用的报表组件与官方是一个版本吗?官方有 Demo 源码吗?比较一下,看看哪里不一致。也许官方 Demo 里使用代码设置了窗体的标题而你没有设置。
我已经找到原因了,官方的资料我也翻了很多。 实际上,直接拽一个可视控件PreviewControl1到Form上,它是不会去改变Form标题值的。 (Designer.cs会自行生成:private FastReport.Design.StandardDesigner.DesignerControl designerCtl; 对象) 只有直接通过代码: FastReport.Report dReport = new FastReport DataSet ds = ……; dReport.RegisterData(ds.Tables[0],"表名"); dReport.GetDataSource("表名").Enabled = true; dReport.Prepare(); dReport,Disign(); 生成出来的Form是能实现标题上的路径文件名。自己绘制Form怎么实现还没找到有效办法。
datafansbj 2020-06-23
  • 打赏
  • 举报
回复
你的代码是从文件 load 进来的,按理应该显示标题。你使用的报表组件与官方是一个版本吗?官方有 Demo 源码吗?比较一下,看看哪里不一致。也许官方 Demo 里使用代码设置了窗体的标题而你没有设置。
assky124 2020-06-23
  • 打赏
  • 举报
回复
找到Form直接指定标题不就行了
morliz子轩 2020-06-22
  • 打赏
  • 举报
回复
不对,调用的的frx模板,代码我写的,这不会错的。 只是模板文件名,存储在数据库里。和这有关系 ?
datafansbj 2020-06-22
  • 打赏
  • 举报
回复
可能你设计的报表不是来自文件,而是来自数据库的某个字段值。

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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