umasterdetail.pas
来自「Crlab公司用来连接MySQL数据库的控件」· PAS 代码 · 共 129 行
PAS
129 行
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,
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: 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 + =
减小字号Ctrl + -
显示快捷键?