FRレポートFileName
6707 ワード
プレビューのデザインや印刷時に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 := 0;
LastFoundRecord := -1;
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 + 1, MaxInt);
end;
function LastDelimiter(const Delimiters, S: string): Integer;
var
P: PChar;
begin
Result := Length(S);
P := PChar(Delimiters);
while Result > 0 do
begin
if (S[Result] <> #0) and (StrScan(P, S[Result]) <> nil) then//
Exit;
Dec(Result);
end;
end;
不思議なことに単独呼び出し
ExtractFileName ,LastDelimiter
。