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

📄 umasterdetail.pas

📁 Crlab公司用来连接MySQL数据库的控件
💻 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, MyAccess, IWDBStdCtrls, IWCompButton, IWContainer, IWRegion;

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: TMyQuery;
    quDetail: TMyQuery;
    dsMaster: TDataSource;
    dsDetail: TDataSource;
    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.Connection := DM.Connection;
  quDetail.Connection := 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 + -