function TRMDesignerForm.FileSave: Boolean;
var
  lSaved: Boolean;
  lFileName: string;
begin
  Result := False;
  if DesignerRestrictions * [rmdrDontSaveReport] <> [] then Exit;

  if not FCodeMemo.ReadOnly then
    Report.Script.Assign(FCodeMemo.CreateStringList);

  UseDefaultSave := True;
  if (not (csDesigning in Report.ComponentState)) and (RMDesignerComp <> nil) and
    Assigned(RMDesignerComp.OnSaveReport) then // 自定义保存
  begin
    lFileName := CurDocName; lSaved := True;
    RMDesignerComp.OnSaveReport(Report, lFileName, False, lSaved);
    if lSaved then
    begin
      Modified := False;
      CurDocName := lFileName;
      Result := True;
    end;
  end;

  if (not Result) and UseDefaultSave then
  begin
    if AnsiCompareText(FCurDocName, RMLoadStr(SUntitled)) <> 0 then //关键是这里,当报表文件名 是默认的
    begin
      Report.SaveToFile(FCurDocName);
      Modified := False;
      SetOpenFileMenuItems(FCurDocName);
      Result := True;
    end
    else
      Result := FileSaveAs;  //关键是这里,当报表文件名 是默认的
end; if Result then begin ClearUndoBuffer; ClearRedoBuffer; end; end;

 

 posted on 2015-06-03 21:43  宝兰  阅读(411)  评论(0编辑  收藏  举报