⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umasterdetail.pas

📁 ODAC 6 最新版的﹐網上找了好久才找到﹐不太好找啊﹐大家一起共享
💻 PAS
字号:
unit uMasterDetail;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uBase, IWHTMLControls, IWCompLabel, IWControl, IWCompRectangle,
  IWCompCheckbox, IWCompEdit, IWCompMemo, IWGrids, IWDBGrids, DB, MemDS,
  DBAccess, Ora, IWDBStdCtrls, IWCompButton, IWContainer, IWRegion,
  IWVCLBaseContainer, IWHTMLContainer, IWVCLBaseControl, IWBaseControl,
  IWBaseHTMLControl;

type
  TfmMasterDetail = class(TfmBase)
    cbLocalMasterDetail: TIWCheckBox;
    IWLabel1: TIWLabel;
    IWLabel2: TIWLabel;
    edMasterFields: TIWEdit;
    IWDBGrid1: TIWDBGrid;
    IWDBGrid2: TIWDBGrid;
    IWLabel3: TIWLabel;
    IWLabel4: TIWLabel;
    edDetailFields: TIWEdit;
    IWDBNavigator1: TIWDBNavigator;
    quMaster: TOraQuery;
    quDetail: TOraQuery;
    dsMaster: TOraDataSource;
    dsDetail: TOraDataSource;
    cbCachedCalcFields: TIWCheckBox;
    btOpen: TIWButton;
    btClose: TIWButton;
    IWRegion1: TIWRegion;
    IWRegion2: TIWRegion;
    IWRegion3: TIWRegion;
    IWRectangle1: TIWRectangle;
    IWRectangle2: TIWRectangle;
    IWRectangle3: TIWRectangle;
    lbResult: TIWLabel;
    IWRegion4: TIWRegion;
    meMaster: TIWMemo;
    IWRegion5: TIWRegion;
    meDetail: TIWMemo;
    procedure IWAppFormCreate(Sender: TObject);
    procedure btOpenClick(Sender: TObject);
    procedure IWAppFormRender(Sender: TObject);
    procedure btCloseClick(Sender: TObject);
    procedure IWDBNavigator1Refresh(Sender: TObject);
  protected
    procedure ReadFromControls; override;
  end;

implementation

{$R *.dfm}

uses
  ServerController, StdConvs;

procedure TfmMasterDetail.IWAppFormCreate(Sender: TObject);
begin
  inherited;
  quMaster.Session := DM.Connection;
  quDetail.Session := DM.Connection;
end;

procedure TfmMasterDetail.btOpenClick(Sender: TObject);
begin
  ReadFromControls;
  UserSession.IsGoodMasterDetail := False;
  try
    quMaster.SQL.Text := UserSession.MasterSQL;
    quDetail.SQL.Text := UserSession.DetailSQL;
    quDetail.MasterFields := UserSession.MasterFields;
    quDetail.DetailFields := UserSession.DetailFields;
    quMaster.Options.LocalMasterDetail := UserSession.LocalMasterDetail;
    quDetail.Options.LocalMasterDetail := UserSession.LocalMasterDetail;
    quMaster.Options.CacheCalcFields := UserSession.CacheCalcFields;
    quDetail.Options.CacheCalcFields := UserSession.CacheCalcFields;
    quMaster.Open;
    quDetail.Open;
    UserSession.IsGoodMasterDetail := True;
    UserSession.MasterDetailResult := 'Tables are opened';
  except
    on E:Exception do
      UserSession.MasterDetailResult := 'Error: '+ E.Message;
  end;
end;

procedure TfmMasterDetail.btCloseClick(Sender: TObject);
begin
  ReadFromControls;
  quMaster.Close;
  quDetail.Close;
end;

procedure TfmMasterDetail.IWAppFormRender(Sender: TObject);
begin
  inherited;
  cbLocalMasterDetail.Checked := UserSession.LocalMasterDetail;
  cbCachedCalcFields.Checked := UserSession.CacheCalcFields;
  edMasterFields.Text := UserSession.MasterFields;
  edDetailFields.Text := UserSession.DetailFields;
  meMaster.Lines.Text := UserSession.MasterSQL;
  meDetail.Lines.Text := UserSession.DetailSQL;
  IWDBGrid1.Visible := quMaster.Active;
  IWDBNavigator1.Enabled := quMaster.Active;
  IWDBGrid2.Visible := quDetail.Active;
  lbResult.Font.Color := ResultColors[UserSession.IsGoodMasterDetail];
  lbResult.Caption := UserSession.MasterDetailResult;
end;

procedure TfmMasterDetail.ReadFromControls;
begin
  inherited;
  UserSession.LocalMasterDetail := cbLocalMasterDetail.Checked;
  UserSession.CacheCalcFields := cbCachedCalcFields.Checked;
  UserSession.MasterFields := edMasterFields.Text;
  UserSession.DetailFields := edDetailFields.Text;
  UserSession.MasterSQL := meMaster.Lines.Text;
  UserSession.DetailSQL := meDetail.Lines.Text;
end;

procedure TfmMasterDetail.IWDBNavigator1Refresh(Sender: TObject);
begin
  ReadFromControls;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -