在设计或者打印预览时,如果设置了FileName,可能反而出错。

procedure TfrxReport.ShowPreparedReport;
var
WndExStyles: Integer;
begin
FPreviewForm := nil;
if FPreview <> nil then
begin
FPreview.Init(Self, FPreviewPages); //进入
// FPreview.FReport := Self;
// FPreview.FPreviewPages := FPreviewPages;
// if not FPreview.Init then
// FPreview.AddPreviewTabOrSwitch(Report, '', '', False);
end
else
begin
FPreviewForm := TfrxPreviewForm.Create(Application);
with TfrxPreviewForm(FPreviewForm) do
begin
Preview.FReport := Self;
Preview.FPreviewPages := FPreviewPages;
function TfrxPreview.Init(aReport: TfrxReport; aPrevPages: TfrxCustomPreviewPages): Boolean;
begin
Result := False;
if FCalledFromPreview Then Exit;
Report := aReport;
PreviewPages := aPrevPages;
if FInitialized then
if EachReportInTab then
begin
AddPreviewTabOrSwitch(Report, '', '', False);
Exit;
end; if Parent is TfrxPreviewForm then
FPreviewForm := TForm(Parent); FWorkspace.PreviewPages := PreviewPages;
FThumbnail.PreviewPages := PreviewPages;
TextFound := False;
FWorkspace.FLastFoundPage := ;
LastFoundRecord := -;
FAllowF3 := False;
if not FInitialized then
begin
if Report.FileName <> '' then
AddPreviewTab(Report, ExtractFileName(Report.FileName)) //这里
else
AddPreviewTab(Report, Report.ReportOptions.Name);
end
else
begin
function ExtractFileName(const FileName: string): string;
var
I: Integer;
begin
I := LastDelimiter(PathDelim + DriveDelim, FileName);//这里
Result := Copy(FileName, I + , MaxInt);
end;
function LastDelimiter(const Delimiters, S: string): Integer;
var
P: PChar;
begin
Result := Length(S);
P := PChar(Delimiters);
while Result > do
begin
if (S[Result] <> #) and (StrScan(P, S[Result]) <> nil) then//这里
Exit;
Dec(Result);
end;
end;

奇怪的是单独 调用

ExtractFileName ,LastDelimiter
不会报错。

FR报表 FileName的更多相关文章

  1. FR报表 自动缩小的代码

    procedure TfrMemoView.Draw(Canvas: TCanvas); var newdx: Integer; OldScaleX, OldScaleY: Double; fs: i ...

  2. 报表开发之批量导入导出excel

    在日常使用报表过程中,会有这样一种情况,你将Excel表分发给各个员工,员工填完后,统一整理成多个Excel,你需要将这些数据,用报表的填报功能,提交录入到数据库中,这样一来可避免到服务器机房录数据的 ...

  3. Web报表工具FineReport的JS API开发(二)

    上次介绍FineReport的JS API中的第一类开发--FR,这次就来介绍一下FS和contentWindow类的开发. 1 FS FS是数据决策系统中的js接口,比如说FS.tabPane.ad ...

  4. 用FineReport报表系统构建资金监管平台

    一.应用背景 计算机的应用已经渗透到日常工作的许多方面,无论是其自身还是所发挥的作用,计算机都标志着一种高科技,使工作高效率和高水平.为了能更方便,更轻松,更好的管理,信息化建设正在日益发展壮大,更加 ...

  5. 报表嵌入到.net系统页面

    目录: 1. 问题描述 2. 情形一:报表整体嵌入在.net系统框架中 3. 情形二:报表嵌入.net系统的某个页面中 4.权限控制方式 5.嵌入问题解决 1. 问题描述编辑 报表部署到Web应用服务 ...

  6. 机器学习实战笔记(Python实现)-08-线性回归

    --------------------------------------------------------------------------------------- 本系列文章为<机器 ...

  7. 机器学习实战笔记(Python实现)-06-AdaBoost

    --------------------------------------------------------------------------------------- 本系列文章为<机器 ...

  8. 机器学习实战笔记(Python实现)-05-支持向量机(SVM)

    --------------------------------------------------------------------------------------- 本系列文章为<机器 ...

  9. 机器学习实战笔记--k近邻算法

    #encoding:utf-8 from numpy import * import operator import matplotlib import matplotlib.pyplot as pl ...

随机推荐

  1. [BZOJ3613][Heoi2014]南园满地堆轻絮 二分答案

    Description 小 Z 是 ZRP(Zombies’ Republic of Poetry,僵尸诗歌共和国)的一名诗歌爱好者,最近 他研究起了诗词音律的问题.   在过去,诗词是需要编成曲子唱 ...

  2. linq——group by

    多列排序&&聚合函数 var result = from i in                (from uh in db.UserHistories                ...

  3. java面试项目经验:框架及应用

    Java项目经验 Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1.掌握项目开发的基本步骤2.具备极强的面向对象的分析与设计技巧3 ...

  4. 分布式事务之——tcc-transaction分布式TCC型事务框架搭建与实战案例(基于Dubbo/Dubbox)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/73731363 一.背景 有一定分布式开发经验的朋友都知道,产品/项目/系统最初为了 ...

  5. mybatis generator插件系列--分页插件

    1.首先定义分页插件 MysqlPagePlugin.java package com.demo.mybatis.plugin; import org.mybatis.generator.api.Co ...

  6. python 进程锁

    1. #_*_coding:utf-8_*_ from multiprocessing import Process,Lock import os,time def f(l,i): #加锁 l.acq ...

  7. angular5 directive和component的区别

    指令分为三类,组件,属性指令和结构性指令 组件(Component directive):UI组件,继承于Directive: 属性指令(Attribute directive):改变组件的样式: 结 ...

  8. angular惰性加载拓展剖析

    最近把一个比较旧的业余项目重新升级了下,将主文件进行了剥离,增加了些惰性加载的配置,将过程中一些零散的知识点做个总结,同时尽量深入原理实现层面. 项目环境: 前端框架:angular2.0.0-bet ...

  9. Oracle 起诉 Google 事件

    最近,Google 和 Oracle 纠缠多年的“Java 侵权案”又有了新的判决结果.Google 在此次对决中败诉,并可能需要支付高达88亿美元的赔偿金.这个案件还引发关于 API(应用程序编程接 ...

  10. Linux下安装Phantomjs

    1. 安装linux系统的软件包 先来看一下官方网站的提示: Note: For this static build, the binary is self-contained. There is n ...