dwxx.pas

来自「销售帐目管理」· PAS 代码 · 共 201 行

PAS
201
字号
unit Dwxx;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, DBCtrls, SUIDBCtrls, SUIButton, ExtCtrls, Grids,
  DBGridEh, SUIForm, SUIDlg, ImgList, ActnList;

type
  TFrmDwxx = class(TForm)
    suiForm1: TsuiForm;
    grp1: TGroupBox;
    DBGridEh1: TDBGridEh;
    pnl2: TPanel;
    pnlControl: TPanel;
    suiButton1: TsuiButton;
    suiButton2: TsuiButton;
    suiButton3: TsuiButton;
    suiButton4: TsuiButton;
    suiButton5: TsuiButton;
    suiButton6: TsuiButton;
    DBGridEh2: TDBGridEh;
    actlst1: TActionList;
    actAdd: TAction;
    actEdit: TAction;
    actDel: TAction;
    actUndo: TAction;
    actSave: TAction;
    actExit: TAction;
    il1: TImageList;
    suiMessageDialog1: TsuiMessageDialog;
    pnl3: TPanel;
    Label3: TLabel;
    Label1: TLabel;
    suiDBEdit1: TsuiDBEdit;
    suiDBEdit2: TsuiDBEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure actAddExecute(Sender: TObject);
    procedure actEditExecute(Sender: TObject);
    procedure actDelExecute(Sender: TObject);
    procedure actUndoExecute(Sender: TObject);
    procedure actSaveExecute(Sender: TObject);
    procedure actExitExecute(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmDwxx: TFrmDwxx;

implementation

uses DataModule, PubUnit;

{$R *.dfm}

procedure TFrmDwxx.FormCreate(Sender: TObject);
begin
  ChangeInterface(Self, suiForm1);
  SetReadOnly(Self,True,suiForm1.Color);
end;

procedure TFrmDwxx.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    Key := #0 ;
    Perform(WM_NEXTDLGCTL,0,0);
  end;
end;

procedure TFrmDwxx.actAddExecute(Sender: TObject);
begin
  SetReadOnly(Self, False , clWhite);
  DataModule1.tbl_Dwxxb.Append ;
  suiDBEdit1.SetFocus ;
  DBGridEh1.Enabled := False ;
end;

procedure TFrmDwxx.actEditExecute(Sender: TObject);
begin
  DBGridEh1.Enabled := False ;
  SetReadOnly(Self, False , clWhite);
  DataModule1.tbl_Dwxxb.Edit ;
  suiDBEdit1.SetFocus ;
end;

procedure TFrmDwxx.actDelExecute(Sender: TObject);
var Str : string;
begin
  DBGridEh1.Enabled := False ;
  Str := DataModule1.tbl_Dwxxb.fieldByName('单位名称').AsString ;
  with suiMessageDialog1 do
  begin
    Caption := suiForm1.Caption ;
    ButtonCount := 2;
    Button1Caption := '是';
    Button2Caption := '否';
    IconType := suiHelp ;
    Text := '是否删除'+Str+'?';
    if ShowModal = mrCancel then Exit ;
  end;
  DataModule1.tbl_Dwxxb.Delete ;
  SetReadOnly(Self, True, suiForm1.Color);
end;

procedure TFrmDwxx.actUndoExecute(Sender: TObject);
begin
  DBGridEh1.Enabled := False ;
  with suiMessageDialog1 do
  begin
    Caption := suiForm1.Caption ;
    ButtonCount := 2;
    Button1Caption := '是';
    Button2Caption := '否';
    IconType := suiHelp ;
    Text := '是否撤销所有的单位信息变更?';
    if ShowModal = mrCancel then Exit ;
  end;
  DataModule1.tbl_Dwxxb.CancelUpdates ;
  DBGridEh1.Enabled := True ;
  SetReadOnly(Self, True, suiForm1.Color);
end;

procedure TFrmDwxx.actSaveExecute(Sender: TObject);
begin
  with DataModule1 do
  begin
    tbl_Dwxxb.Next ;
    if tbl_Dwxxb.UpdatesPending then
    begin
      try
        db1.StartTransaction ;
        tbl_Dwxxb.ApplyUpdates;
        tbl_Dwxxb.CommitUpdates;
        db1.Commit ;
        DBGridEh1.Enabled := True ;
        SetReadOnly(Self, True, suiForm1.Color);
      except
        on E : Exception do
        begin
          with suiMessageDialog1 do
          begin
            Caption := suiForm1.Caption ;
            ButtonCount := 1;
            Button1Caption := '确定';
            IconType := suiStop ;
            Text := '数据错误无法保存'+Chr(10)+Chr(13)+E.Message ;
            ShowModal ;
          end;
          tbl_Dwxxb.CancelUpdates ;
          db1.Rollback;
        end;
      end;
    end;
  end;
end;

procedure TFrmDwxx.actExitExecute(Sender: TObject);
begin
  Close ;
end;

procedure TFrmDwxx.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  with DataModule1 do
  begin
     tbl_Dwxxb.Next ;
     if DataModule1.tbl_Dwxxb.UpdatesPending then
       with suiMessageDialog1 do
       begin
         Caption := suiForm1.Caption ;
         ButtonCount := 2;
         Button1Caption := '是';
         Button2Caption := '否';
         IconType := suiHelp ;
         Text := '是否保存所编辑的数据?';
         if ShowModal = mrOk then actSave.Execute else tbl_Dwxxb.CancelUpdates ; 
       end;
  end;
end;

procedure TFrmDwxx.FormShow(Sender: TObject);
var ControlEnabled : Boolean ;
begin
  ControlEnabled := (DBGridEh1.DataSource.DataSet.RecordCount > 0);
  actAdd.Enabled := ControlEnabled ;
  actEdit.Enabled := ControlEnabled ;
  actDel.Enabled := ControlEnabled ;
  actUndo.Enabled := ControlEnabled ;
  actSave.Enabled := ControlEnabled ;
end;

end.

⌨️ 快捷键说明

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