亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rvproj.pas

?? 一套DELPHI病歷管理源碼
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
{*************************************************************************}
{ Rave Reports version 5.0                                                }
{ Copyright (c), 1995-2002, Nevrona Designs, all rights reserved          }
{*************************************************************************}

unit RvProj;

interface

{$I RpVer.inc}

uses
  Windows, Controls, ComCtrls, Forms, Dialogs, Graphics,
  TypInfo, SysUtils, Classes, RvDefine, RvUtil, RvClass, RvData,
  RpDefine, RpBase, RpSystem, RpDevice, RvSecurity;

type
  TTagKind = (tkProject,tkExport,tkDataView,tkPage,tkReport,tkReportPage,tkDataObject);

  TImportConflictEvent = procedure(CurrentItem: TRaveProjectItem;
                                   var ImportName: string) of object;

  TRaveProjectManager = class;

  TRaveReport = class(TRaveProjectItem)
  protected
    FCategory: string;
    FLastActivePage: string;
    SaveOnPrint: TNotifyEvent;
    SaveBeforePrint: TNotifyEvent;
    SaveAfterPrint: TNotifyEvent;
    LoadedList: TList; { Loaded pages for this report }
    FixUpList: TStrings; { List of loaded modules that may not be ready until
                           after all report items are loaded }
    FFirstPage: TRavePage; { Page to begin execution for }
    FCopies: integer;
    FPageList: TRaveComponentList; { List of pages to print }
    FAlwaysGenerate: boolean;
    FCollate: TRavePrinterCollate;
    FDuplex: TRavePrinterDuplex;
    FPrinter: string;
    FResolution: TRavePrinterResolution;
    FMaxPages: integer; { Max number of pages to print }
    FSecurityControl: TRaveBaseSecurity;
    FExecProject: TRaveProjectManager;

    procedure SetPageList(Value: TRaveComponentList);
    function GetLoadedCount: integer;
    function GetLoaded(Index: integer): TRavePage;
    procedure RSPrint(Sender: TObject);
    procedure RSBeforePrint(Sender: TObject);
    procedure RSAfterPrint(Sender: TObject);
    procedure Changing(OldItem: TRaveComponent;
                       NewItem: TRaveComponent); override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure SaveToStreamHelper(StreamHelper: TStreamHelper); override;
    procedure LoadFromStreamHelper(StreamHelper: TStreamHelper); override;
    procedure Open; override;
    procedure Close; override;
    procedure Compile; override;
    function NewPage: TRavePage;
    procedure LoadPage(Page: TRavePage);
    procedure UnloadPage(Page: TRavePage);
    procedure ProcessLoaded;
    procedure Execute(Engine: TRPComponent);
    procedure InternalExecute(Engine: TRPComponent);

    property LoadedPageCount: integer read GetLoadedCount;
    property LoadedPage[Index: integer]: TRavePage read GetLoaded;
    property LastActivePage: string read FLastActivePage write FLastActivePage;
    property ExecProject: TRaveProjectManager read FExecProject;
  published
    property AlwaysGenerate: boolean read FAlwaysGenerate write FAlwaysGenerate default false;
    property Category: string read FCategory write FCategory;
    property Copies: integer read FCopies write FCopies default 0;
    property FirstPage: TRavePage read FFirstPage write FFirstPage default nil;
    property PageList: TRaveComponentList read FPageList write SetPageList;
    property Collate: TRavePrinterCollate read FCollate write FCollate
     default pcDefault;
    property Duplex: TRavePrinterDuplex read FDuplex write FDuplex
     default pdDefault;
    property MaxPages: integer read FMaxPages write FMaxPages default 0;
    property Parameters;
    property PIVars;
    property Printer: string read FPrinter write FPrinter;
    property Resolution: TRavePrinterResolution read FResolution
     write FResolution default prDefault;
    property SecurityControl: TRaveBaseSecurity read FSecurityControl write
     FSecurityControl;
  end; { TRaveReport }

  TRaveModuleManager = class
  protected
    ModuleList: TList;
    FProjectManager: TRaveProjectManager;
    //
    function ModuleIndex(ModuleName: string): integer;
    function LoadModule(ModuleName: string): integer;
  public
    constructor Create(AProjectManager: TRaveProjectManager);
    destructor Destroy; override;
    function GetModule(ModuleName: string): TRaveModule;
    function FindModule(ModuleName: string): TRaveModule;
    procedure LoadModules(StreamHelper: TStreamHelper);
    procedure SaveModules(StreamHelper: TStreamHelper);
    procedure ReleaseModule(AModule: TRaveModule);
    //
    property ProjectManager: TRaveProjectManager read FProjectManager;
  end; { TRaveModuleManager }

  TRaveProjectManager = class(TRaveProjectItem)
  protected
    ForwardRefList: TStringList;
    RenameRefList: TStringList;
    LastActiveReport: string;
    FReportList: TList; { List of all reports }
    FGlobalPageList: TList; { List of all global pages }
    FDataObjectList: TList; { List of all data objects }
    FActiveReport: TRaveReport;
    FSaved: boolean; { Has this project ever been saved }
    FFileName: string; { Filename of this project }
    Signature: string;
    FDataChanged: boolean;
    FPrinting: boolean;
    ExportList: TList;
    Importing: boolean;
    ImportReplace: boolean;
    FOnImportConflict: TImportConflictEvent;
    FVersion: integer;
    FCategories: TStrings;
    Params: TStringList;
    FUnits: TPrintUnits; { Units type }
    FUnitsFactor: TRaveFloat; { Units factor }
    FStreamParamValues: boolean; { Put parameter values in save stream? }
    IsLoading: boolean;
    FMasterProject: TRaveProjectManager;
    FNoDesigner: boolean;
    FSecurityControl: TRaveBaseSecurity;
    FAdminPassword: string;
    FBaseReport: TBaseReport;
    FModuleManager: TRaveModuleManager;

    procedure SetDepth(Control: TRaveComponent;
                       Adjustment: integer); override;
    procedure SetCategories(Value: TStrings);
    procedure SetUnits(Value: TPrintUnits);
    procedure SetUnitsFactor(Value: double);
    procedure SetDataChanged(Value: boolean);
    procedure DefineProperties(Filer: TFiler); override;
    procedure ReadParamValues(Reader: TReader);
    procedure WriteParamValues(Writer: TWriter);
    procedure Changing(OldItem: TRaveComponent;
                       NewItem: TRaveComponent); override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure ReportToStream(AReport: TRaveReport;
                             AStream: TStream);
    function FindReport(const AName: string; const AIsFullName: boolean): TRaveReport;
    procedure AddForwardRef(AName: string; AOwner: TRaveComponent; AInstance: TPersistent;
     APropInfo: PPropInfo; AParam: longint);
    procedure AddRenameRef(OrigName: string; NewInstance: TRaveComponent);
    procedure FreeForwardRefs;
    procedure New;
    procedure RemoveForwardRefs(Target: TRaveComponent);
    procedure Save;
    procedure Load;
    procedure Unload;
    procedure Clear;
    procedure LoadFromStreamHelper(StreamHelper: TStreamHelper); override;
    procedure SaveToStreamHelper(StreamHelper: TStreamHelper); override;
    procedure LoadFromStream(Stream: TStream);
    procedure SaveToStream(Stream: TStream);
    procedure ExportProject(ExportFileName: string;
                            Items: TList);
    function ImportProject(ImportFileName: string;
                           AutoReplace: boolean): boolean;
    procedure DeactivateReport;
    procedure ActivateReport(Report: TRaveReport);
    function FindRaveComponent(Name: string;
                               DefRoot: TRaveComponent): TRaveComponent;
    function GetUniqueName(BaseName: string;
                           NameOwner: TRaveComponent;
                           UseCurrent: boolean): string;

    function NewReport: TRaveReport;
    function NewGlobalPage: TRavePage;
    function NewDataObject(DataObjectClass: TRaveDataObjectClass): TRaveDataObject;
    procedure DeleteItem(Item: TRaveProjectItem;
                         Notify: boolean);
    procedure SetParam(Param: string;
                       Value: string);
    function GetParam(Param: string): string;
    procedure ClearParams;
    procedure ClearChanged;
    procedure Compile; override;

    property ReportList: TList read FReportList;
    property GlobalPageList: TList read FGlobalPageList;
    property DataObjectList: TList read FDataObjectList;

    property ActiveReport: TRaveReport read FActiveReport;
    property Saved: boolean read FSaved write FSaved;
  { DataChanged will only change value when set to true, to clear call ClearChanged }
    property DataChanged: boolean read FDataChanged write SetDataChanged;
    property Printing: boolean read FPrinting;
    property Version: integer read FVersion;
    property OnImportConflict: TImportConflictEvent read FOnImportConflict write
     FOnImportConflict;
    property StreamParamValues: boolean read FStreamParamValues write FStreamParamValues;
    property FileName: string read FFileName write FFileName stored false;
    property MasterProject: TRaveProjectManager read FMasterProject write FMasterProject;
    property NoDesigner: boolean read FNoDesigner write FNoDesigner;
    property BaseReport: TBaseReport read FBaseReport write FBaseReport;
    property ModuleManager: TRaveModuleManager read FModuleManager;
  published
    property AdminPassword: string read FAdminPassword write FAdminPassword;
    property Categories: TStrings read FCategories write SetCategories;
    property Parameters;
    property PIVars;
    property SecurityControl: TRaveBaseSecurity read FSecurityControl write
     FSecurityControl;
    property Units: TPrintUnits read FUnits write SetUnits stored false;
    property UnitsFactor: TRaveFloat read FUnitsFactor write SetUnitsFactor;
  end; { TRaveProjectManager }

// Procs
  procedure RaveRegister;

var
  ProjectManager: TRaveProjectManager = nil;

implementation

uses
  {$IFNDEF RaveServer}RvDirectDataView,{$ENDIF} RvDataField, RpMBCS;

{ Forward References Handling }

type
  TRaveForwardRef = class
  protected
    FParam: longint;
    FInstance: TPersistent;
    FPropInfo: PPropInfo;
  public
    constructor Create(AInstance: TPersistent;
                       APropInfo: PPropInfo;
                       AParam: longint);
    property Param: longint read FParam;
    property Instance: TPersistent read FInstance;
    property PropInfo: PPropInfo read FPropInfo;
  end; { TRaveForwardRef }

constructor TRaveForwardRef.Create(AInstance: TPersistent; APropInfo: PPropInfo; AParam: longint);
begin { Create }
  FInstance := AInstance;
  FPropInfo := APropInfo;
  FParam := AParam;
end;  { Create }

procedure TRaveProjectManager.AddForwardRef(AName: string; AOwner: TRaveComponent; AInstance: TPersistent;
 APropInfo: PPropInfo; AParam: longint);
begin { AddForwardRef }
  if not Assigned(ForwardRefList) then begin
    ForwardRefList := TStringList.Create;
    ForwardRefList.Sorted := true;
    ForwardRefList.Duplicates := dupAccept;
  end; { if }
  if Pos('.',AName) = 0 then begin
    AName := AOwner.Name + '.' + AName;
  end; { if }
  ForwardRefList.AddObject(AName,TRaveForwardRef.Create(AInstance,APropInfo,AParam));
end;  { AddForwardRef }

procedure TRaveProjectManager.AddRenameRef(OrigName: string; NewInstance: TRaveComponent);
begin { AddRenameRef }
  if not Assigned(RenameRefList) then begin
    RenameRefList := TStringList.Create;
    RenameRefList.Sorted := true;
    RenameRefList.Duplicates := dupIgnore;
  end; { if }
  RenameRefList.AddObject(NewInstance.Owner.Name + '.' + OrigName,NewInstance);
end;  { AddRenameRef }

procedure TRaveProjectManager.RemoveForwardRefs(Target: TRaveComponent);
var
  TargetName: string;
  Index: integer;
begin { RemoveForwardRefs }
  TargetName := Target.Owner.Name + '.' + Target.Name;
  if Assigned(ForwardRefList) and ForwardRefList.Find(TargetName,Index) then begin
    repeat
      with TRaveForwardRef(ForwardRefList.Objects[Index]) do begin
        if not Assigned(PropInfo) then begin
          TRaveComponentList(Instance).Items[Param] := Target;
        end else begin
          SetOrdProp(Instance,PropInfo,integer(Target));
        end; { else }
      end; { with }
      ForwardRefList.Objects[Index].Free;
      ForwardRefList.Delete(Index);
    until (Index >= ForwardRefList.Count) or
     (AnsiCompareText(ForwardRefList[Index],TargetName) <> 0);
  end; { if }
end;  { RemoveForwardRefs }

procedure RaveRegister;
begin { RaveRegister }
  RegisterRaveComponents('',[TRaveReport,TRaveProjectManager]);
  RegisterRaveModuleClasses('RvProj',[TRaveReport,TRaveProjectManager]);
end;  { RaveRegister }

type
  TRaveComponentAccess = class(TRaveComponent)
  end; { TRaveComponentAccess }

{ class TRaveReport }

constructor TRaveReport.Create(AOwner: TComponent);
begin { Create }
  inherited Create(AOwner);
  LoadedList := TList.Create;
  FCopies := 0;
  FResolution := prDefault;
  FCollate := pcDefault;
  FDuplex := pdDefault;
end;  { Create }

destructor TRaveReport.Destroy;
begin { Destroy }
  FreeAndNil(LoadedList);
  FreeAndNil(FPageList);
  inherited Destroy;
end;  { Destroy }

procedure TRaveReport.Changing(OldItem: TRaveComponent;
                               NewItem: TRaveComponent);
var
  I1: integer;
begin { Changing }
  inherited Changing(OldItem,NewItem);
  if Assigned(FirstPage) and (FirstPage = OldItem) then begin
    FirstPage := NewItem as TRavePage;
  end; { if }
  if Assigned(SecurityControl) and (OldItem = SecurityControl) then begin
    SecurityControl := NewItem as TRaveBaseSecurity;
  end; { if }
  if Assigned(PageList) then begin
    I1 := 0;
    while I1 < PageList.Count do begin
      if Assigned(PageList[I1]) and (PageList[I1] = OldItem) then begin
        if Assigned(NewItem) then begin
          PageList[I1] := NewItem; { Replace with NewItem }
        end else begin
          PageList.Delete(I1); { Remove OldItem from PageList }
          Dec(I1);
        end; { else }
      end; { if }
      Inc(I1);
    end; { while }
  end; { if }
end;  { Changing }

procedure TRaveReport.SaveToStreamHelper(StreamHelper: TStreamHelper);
var
  I1: integer;
begin { SaveToStreamHelper }
  with StreamHelper do begin
    WriteString(LastActivePage);

  { Write out list of owned editors }
    WriteIndex(ChildCount);
    for I1 := 0 to (ChildCount - 1) do begin
      WriteByte(0); { Marker for TRaveProjectItem type }
      WriteString(Child[I1].Name);
    end; { for }

  { Write out list of loaded editors }
    WriteIndex(LoadedList.Count);
    for I1 := 0 to (LoadedList.Count - 1) do begin
      WriteString(TRavePage(LoadedList[I1]).Name);
    end; { for }

  { Write out report properties }
    with TRaveWriter.Create(StreamHelper) do try
      WriteComponent(self,false);
    finally
      Free;
    end; { with }

  { Write out pages }
    for I1 := 0 to (ChildCount - 1) do begin
      StreamHelper.StartWriteBlock;
      TRavePage(Child[I1]).SaveToStreamHelper(StreamHelper);
      StreamHelper.FinishWriteBlock;
    end; { for }
  end; { with }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区在线播放| 亚洲免费在线看| 制服丝袜亚洲色图| 欧美日韩视频在线第一区| 91在线精品一区二区| www.日韩av| 在线国产电影不卡| 欧美色综合久久| 91精品国产综合久久久久久漫画| 国产精品久久久久久久久久久免费看| 精品国产髙清在线看国产毛片| 日韩精品在线看片z| 日韩精品综合一本久道在线视频| 日韩欧美中文字幕制服| 欧美大片一区二区| 国产欧美一区二区精品性色| 国产精品美日韩| 亚洲一区二区成人在线观看| 婷婷开心久久网| 国模冰冰炮一区二区| 成人福利在线看| 欧美日韩国产高清一区| 久久综合色8888| 一区二区三区欧美激情| 日韩av一区二| 99国内精品久久| 91精品国产欧美日韩| 日本一区二区动态图| 亚洲一区二区在线视频| 国精产品一区一区三区mba桃花| 99精品视频在线观看免费| 欧美日韩国产一二三| 精品国产1区二区| 一区二区三区不卡视频| 精品在线免费视频| 色婷婷精品大在线视频| 日韩欧美国产综合一区 | 久久午夜免费电影| 中文字幕久久午夜不卡| 丝袜亚洲另类丝袜在线| 成人性视频免费网站| 欧美高清性hdvideosex| 国产精品无码永久免费888| 亚洲成人av一区二区三区| 成人激情免费网站| 日韩精品一区二区三区视频播放| 亚洲欧美日本韩国| 国产成人av影院| 69久久99精品久久久久婷婷| 国产精品成人免费在线| 国产在线视视频有精品| 91精选在线观看| 亚洲精品久久7777| 99在线精品视频| 国产欧美一区二区三区网站 | 亚洲国产精品一区二区久久恐怖片| 韩国女主播一区| 3d动漫精品啪啪一区二区竹菊| 综合在线观看色| 国产91丝袜在线观看| 日韩欧美一级精品久久| 首页亚洲欧美制服丝腿| 在线观看亚洲专区| 亚洲三级在线免费观看| www.在线欧美| 国产一区二区三区黄视频 | 国产成人精品免费看| 欧美tickling网站挠脚心| 无码av免费一区二区三区试看| av一区二区三区黑人| 国产亚洲婷婷免费| 久久不见久久见免费视频1| 91精品国产综合久久久久| 亚洲第一久久影院| 欧美丝袜丝nylons| 亚洲第四色夜色| 欧美日韩中文另类| 午夜精品久久久久影视| 欧美日韩免费在线视频| 日韩综合小视频| 91精品在线免费| 久久精品久久精品| 久久综合色鬼综合色| 国产福利一区在线| 中文字幕一区二区三区av| 99久久久无码国产精品| 中文字幕在线不卡视频| 在线观看亚洲专区| 日韩高清国产一区在线| 亚洲精品国产a| 欧美久久久久中文字幕| 久久精品国产精品亚洲红杏 | 99久久精品免费| 一区二区三区日韩欧美精品 | 欧美xfplay| 国产不卡高清在线观看视频| 国产精品久久久久久久久久久免费看| 99久久er热在这里只有精品15| 亚洲一区二区在线观看视频| 91麻豆精品久久久久蜜臀| 狠狠色丁香婷婷综合| 亚洲人吸女人奶水| 777亚洲妇女| 国产成人在线影院 | 欧美日韩mp4| 久久激情五月婷婷| 亚洲特黄一级片| 日韩一级免费观看| 不卡一卡二卡三乱码免费网站| 亚洲一区二区三区国产| www国产精品av| 精品视频一区 二区 三区| 经典三级一区二区| 一区二区三区欧美激情| 久久夜色精品国产噜噜av| 在线观看网站黄不卡| 国产精品一二三区| 性欧美大战久久久久久久久| 国产色婷婷亚洲99精品小说| 欧美久久久影院| 91网站在线播放| 国产电影一区二区三区| 视频一区免费在线观看| 国产精品超碰97尤物18| 久久久精品免费网站| 欧美三级日韩三级| 成人h精品动漫一区二区三区| 日韩和欧美一区二区| 亚洲日本va午夜在线影院| 精品噜噜噜噜久久久久久久久试看| 91成人在线免费观看| www.欧美.com| 国产成人免费视频一区| 久久精品国产一区二区三区免费看 | 91色乱码一区二区三区| 国产精品一区二区x88av| 日本网站在线观看一区二区三区| 亚洲色图在线看| 一区视频在线播放| 国产日韩精品一区| 欧美精品一区二区三区蜜桃| 在线电影一区二区三区| 欧美午夜电影网| 欧美影片第一页| 欧美视频一区二| 欧美视频一区在线| 在线观看不卡视频| 欧美视频一区二区三区在线观看 | 一区二区三区 在线观看视频| 国产色一区二区| 久久久.com| 日本一区二区三区四区在线视频| 精品1区2区在线观看| 久久亚洲捆绑美女| 久久久精品国产免费观看同学| 欧美变态tickle挠乳网站| 日韩欧美激情一区| 精品久久人人做人人爰| 亚洲精品一线二线三线| 久久久精品蜜桃| 国产精品黄色在线观看| 亚洲美女在线一区| 亚洲第一成年网| 久久精品国产99久久6| 黑人巨大精品欧美一区| 国产成人啪免费观看软件| 成人午夜私人影院| 一本色道久久综合亚洲aⅴ蜜桃| 91久久精品一区二区三| 欧美日韩不卡在线| 亚洲精品一区二区在线观看| 久久久久国产一区二区三区四区| 国产三级一区二区| 一区二区三区四区五区视频在线观看| 亚洲一线二线三线视频| 精品在线一区二区| 99久久99久久精品国产片果冻| 欧美系列日韩一区| 精品国产乱码久久久久久1区2区 | 99re在线精品| 欧美日韩国产首页在线观看| 日韩美女在线视频 | 欧美日韩激情一区二区三区| 日韩三级视频中文字幕| 国产精品网站在线观看| 亚洲图片欧美色图| 国产黄色精品网站| 欧美日韩免费视频| 欧美国产日产图区| 亚洲一区在线免费观看| 国产一区二区h| 91福利在线看| 国产欧美日韩三区| 亚瑟在线精品视频| 成人午夜电影网站| 日韩精品综合一本久道在线视频| 亚洲人成网站色在线观看| 久久国产三级精品| 91久久奴性调教| 国产精品天美传媒|