uni_workstation.~pas

来自「一个非常不错的经费报销管理软件」· ~PAS 代码 · 共 149 行

~PAS
149
字号
unit Uni_WorkStation;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, XPMenu, DB, Menus, Grids, DBGridEh, StdCtrls, Mask, DBCtrls,
  ExtCtrls, ComCtrls, ToolWin, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient;

type
  TFrm_WorkStation = class(TForm)
    TB_Main: TToolBar;
    TB_Insert: TToolButton;
    TB_Update: TToolButton;
    TB_Delete: TToolButton;
    TB_Post: TToolButton;
    TB_Cancel: TToolButton;
    TB_Refresh: TToolButton;
    TB_Help: TToolButton;
    TB_Close: TToolButton;
    Panel1: TPanel;
    P_Edit: TPanel;
    PopupMenu1: TPopupMenu;
    N_State: TMenuItem;
    DSbsWorkStation: TDataSource;
    XPMenu1: TXPMenu;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    TB_Ping: TToolButton;
    Ping: TIdTCPClient;
    CoolBar1: TCoolBar;
    Splitter1: TSplitter;
    DBGbsWorkStation: TDBGridEh;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    StatusBar1: TStatusBar;
    procedure N_StateClick(Sender: TObject);
    procedure TB_RefreshClick(Sender: TObject);
    procedure TB_InsertClick(Sender: TObject);
    procedure TB_UpdateClick(Sender: TObject);
    procedure TB_DeleteClick(Sender: TObject);
    procedure TB_PostClick(Sender: TObject);
    procedure TB_CancelClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TB_CloseClick(Sender: TObject);
    procedure TB_PingClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_WorkStation: TFrm_WorkStation;

implementation

{$R *.dfm}

uses Uni_dm,Uni_Main,Uni_Function;

procedure TFrm_WorkStation.N_StateClick(Sender: TObject);
var
  i:Integer;
begin
  for i :=0  to TB_Main.ButtonCount-1  do
    TB_Main.Buttons[i].Enabled:=not TB_Main.Buttons[i].Enabled;
  P_Edit.Visible:=TB_Post.Enabled;
end;

procedure TFrm_WorkStation.TB_RefreshClick(Sender: TObject);
begin
  DM.bsWorkStation.Close;
  DM.bsWorkStation.Open;
end;

procedure TFrm_WorkStation.TB_InsertClick(Sender: TObject);
begin
  N_StateClick(Sender);
  with DM do
  begin
    bsWorkStation.Insert;
    bsWorkStation.FieldByName('id').AsString:=GetGUID;
    bsWorkStation.FieldByName('istate').AsInteger:=0;
    bsWorkStation.Post;
  end;
end;

procedure TFrm_WorkStation.TB_UpdateClick(Sender: TObject);
begin
  N_StateClick(Sender);
end;

procedure TFrm_WorkStation.TB_DeleteClick(Sender: TObject);
begin
  if not DM.bsWorkStation.IsEmpty
  then begin
    DM.bsWorkStation.Edit;
    DM.bsWorkStation.FieldByName('iState').AsInteger:=-1;
    DM.bsWorkStation.Post;
  end;
  TB_RefreshClick(Sender);
end;

procedure TFrm_WorkStation.TB_PostClick(Sender: TObject);
begin
  N_StateClick(Sender);
  DM.bsWorkStation.Edit;
  DM.bsWorkStation.FieldByName('iState').AsInteger:=1;
  DM.bsWorkStation.Post;
  TB_RefreshClick(Sender);
end;

procedure TFrm_WorkStation.TB_CancelClick(Sender: TObject);
begin
  N_StateClick(Sender);
  TRY
    DM.bsWorkStation.Cancel;
    if DM.bsWorkStation.FieldByName('iState').AsInteger=0 then
      DM.bsWorkStation.Delete;
  EXCEPT
  END;
end;

procedure TFrm_WorkStation.FormShow(Sender: TObject);
begin
  TB_RefreshClick(Sender);
end;

procedure TFrm_WorkStation.TB_CloseClick(Sender: TObject);
begin
  Close;
end;

procedure TFrm_WorkStation.TB_PingClick(Sender: TObject);
begin
  Ping.Connected:=False;
  Ping.Host:=DM.bsWorkStation.FieldByName('cIP').AsString;
  Ping.Connected:=True;

end;

end.

⌨️ 快捷键说明

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