Componentes.Terceros.SDAC/internal/4.10.0.10/1/Source/Design/DADataEditor.pas
2007-10-05 14:48:18 +00:00

138 lines
3.4 KiB
ObjectPascal

//////////////////////////////////////////////////
// DB Access Components
// Copyright © 1998-2007 Core Lab. All right reserved.
// Base Component Editor
//////////////////////////////////////////////////
{$IFNDEF CLR}
{$I Dac.inc}
unit DADataEditor;
{$ENDIF}
interface
uses
{$IFDEF MSWINDOWS}
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, DBGrids, Dialogs,
StdCtrls, ExtCtrls, Buttons, ComCtrls, Grids, DBCtrls,
{$ENDIF}
{$IFDEF LINUX}
SysUtils, Types, Classes, QGraphics, QControls, QForms, QDBGrids, QDialogs, QStdCtrls,
QExtCtrls, QButtons, QDBCtrls, QComCtrls, QGrids,
{$ENDIF}
DB, CRDataEditor, DBAccess, DADesignUtils;
type
TDADataEditorForm = class(TCRDataEditorForm)
btOpen: TSpeedButton;
btnExit: TSpeedButton;
btSaveToFile: TSpeedButton;
SaveDialog: TSaveDialog;
procedure btOpenClick(Sender: TObject);
procedure btCloseClick(Sender: TObject);
procedure btSaveToFileClick(Sender: TObject);
private
// fields to store old DataSet properties
FOldAutoCommit: boolean;
FOldFilterOptions: TFilterOptions;
FOldFilterSQL: string;
FOldSQL: string;
FOldActive: boolean;
FOldFilter: string;
FOldFiltered: boolean;
protected
procedure DoInit; override;
procedure DoSave; override;
procedure DoFinish; override;
end;
implementation
{$IFDEF IDE}
{$R *.dfm}
{$ENDIF}
{$IFDEF MSWINDOWS}
{$R DADataEditor.dfm}
{$ENDIF}
{$IFDEF LINUX}
{$R *.xfm}
{$ENDIF}
uses
{$IFDEF CLR}
Variants,
{$ENDIF}
TypInfo;
{ TDADataEditorForm }
procedure TDADataEditorForm.DoInit;
begin
inherited;
FOldAutoCommit := TDBAccessUtils.GetAutoCommit(TCustomDADataSet(FDataSet));
FOldFilterOptions := TCustomDADataSet(FDataSet).FilterOptions;
FOldFilterSQL := TCustomDADataSet(FDataSet).FilterSQL;
FOldSQL := TCustomDADataSet(FDataSet).SQL.Text;
FOldActive := FDataSet.Active;
TDBAccessUtils.SetAutoCommit(TCustomDADataSet(FDataSet), True);
FOldFilter := FDataSet.Filter;
FOldFiltered := FDataSet.Filtered;
FOldActive := FDataSet.Active;
try
FDataSet.Open;
except
Application.HandleException(Self);
end;
btOpen.Enabled := not FDataSet.Active;
btClose.Enabled := FDataSet.Active;
end;
procedure TDADataEditorForm.DoSave;
begin
end;
procedure TDADataEditorForm.DoFinish;
begin
TDBAccessUtils.SetAutoCommit(TCustomDADataSet(FDataSet), FOldAutoCommit);
TCustomDADataSet(FDataSet).FilterOptions := FOldFilterOptions;
TCustomDADataSet(FDataSet).FilterSQL := FOldFilterSQL;
if TCustomDADataSet(FDataSet).SQL.Text <> FOldSQL then
TCustomDADataSet(FDataSet).SQL.Text := FOldSQL;
FDataSet.Filter := FOldFilter;
FDataSet.Filtered := FOldFiltered;
FDataSet.Active := FOldActive;
inherited;
end;
procedure TDADataEditorForm.btOpenClick(Sender: TObject);
begin
FDataSet.Open;
btOpen.Enabled := not FDataSet.Active;
btClose.Enabled := FDataSet.Active;
end;
procedure TDADataEditorForm.btCloseClick(Sender: TObject);
begin
FDataSet.Close;
btOpen.Enabled := not FDataSet.Active;
btClose.Enabled := FDataSet.Active;
end;
procedure TDADataEditorForm.btSaveToFileClick(Sender: TObject);
begin
if SaveDialog.Execute then
FDataSet.SaveToXML(SaveDialog.FileName);
end;
{$IFDEF CLR}
initialization
RegisterClass(TDBGrid);
{$ENDIF}
end.