departmentworfrm.pas

来自「一个电力企业的后台管理程序」· PAS 代码 · 共 536 行

PAS
536
字号
unit DepartmentWorFrm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ActnList, TB97Ctls, TB97, TB97Tlbr, ExtCtrls, ComCtrls, Menus, Buttons,
  StdCtrls, Mask, DBCtrls, Db, DbTables, ToolWin, ImgList, Grids, DBGrids;

type
  TTableStatus=(TableInsert,TablePost);

  TForm_DepartmentWork = class(TForm)
    ImageList_Tab: TImageList;
    ToolBar1: TToolBar;
    ToolButton5: TToolButton;
    TB_new: TToolButton;
    TB_edit: TToolButton;
    TB_save: TToolButton;
    TB_delete: TToolButton;
    ToolButton10: TToolButton;
    TB_close: TToolButton;
    ActionList_Tab: TActionList;
    Action_First: TAction;
    Action_prior: TAction;
    Action_next: TAction;
    Action_last: TAction;
    Action_new: TAction;
    Action_edit: TAction;
    Action_save: TAction;
    Action_delete: TAction;
    Action_clsoe: TAction;
    PC_Main: TPageControl;
    Tab_GzbxDepart: TTabSheet;
    Tab_YhtsDepart: TTabSheet;
    Tab_YhtsClass: TTabSheet;
    Tab_ZxdjDepart: TTabSheet;
    Tab_YdsqDepart: TTabSheet;
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    DBGrid1: TDBGrid;
    Panel3: TPanel;
    Panel4: TPanel;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    DBGrid2: TDBGrid;
    Panel5: TPanel;
    Panel6: TPanel;
    Label3: TLabel;
    DBEdit3: TDBEdit;
    DBGrid3: TDBGrid;
    Panel7: TPanel;
    Panel8: TPanel;
    Label4: TLabel;
    DBEdit4: TDBEdit;
    DBGrid4: TDBGrid;
    Panel9: TPanel;
    Panel10: TPanel;
    Label5: TLabel;
    DBEdit5: TDBEdit;
    DBGrid5: TDBGrid;
    Tab_WorkName: TTabSheet;
    Panel11: TPanel;
    Panel12: TPanel;
    Label6: TLabel;
    DBEdit6: TDBEdit;
    DBGrid6: TDBGrid;
    DBEdit7: TDBEdit;
    Label7: TLabel;
    Label8: TLabel;
    DBEdit8: TDBEdit;
    Label9: TLabel;
    DBEdit9: TDBEdit;
    Label10: TLabel;
    DBEdit10: TDBEdit;
    DBEdit11: TDBEdit;
    Label11: TLabel;
    Label12: TLabel;
    DBEdit12: TDBEdit;
    Label13: TLabel;
    DBEdit13: TDBEdit;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure Action_newExecute(Sender: TObject);
    procedure Action_editExecute(Sender: TObject);
    procedure Action_saveExecute(Sender: TObject);
    procedure Action_deleteExecute(Sender: TObject);
    procedure Action_clsoeExecute(Sender: TObject);
    procedure PC_MainChange(Sender: TObject);
    procedure DBEdit9KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
    TableStatus:TTableStatus;
    procedure SetCommitStatus(TableStatus:TTableStatus);
    function GetSerialNoQry(AnyQuery:TQuery;SerialName:string):integer;
                                                        //SerialName字段必须排序
  end;

var
  Form_DepartmentWork: TForm_DepartmentWork;

implementation
uses systemDM,ManagData,EcscMain,SystemPH, DepartmentFrm;
{$R *.DFM}

function TForm_DepartmentWork.GetSerialNoQry(AnyQuery: TQuery;
  SerialName: string): integer;
var
  i,No,LastNO,CurNo:integer;
begin
   i:=0;
   No:=1;
   with Self do
   begin
      AnyQuery.First;
      LastNo:=AnyQuery.Fieldbyname(SerialName).asinteger;

      while not AnyQuery.Eof do  //给BitNo字段分配序号,
      begin
         if AnyQuery.Bof then
         begin
            if LastNo>1 then
            begin
               No:=1;
               break;
            end;
         end;
         AnyQuery.Next;
         CurNo:=AnyQuery.Fieldbyname(SerialName).asinteger;
         if (CurNo-LastNo)>1 then
         begin
            No:=LastNo+1;
            break;
         end else
         begin
            LastNo:=CurNo;
         end;
         i:=i+1;
      end;
      if i>=AnyQuery.RecordCount then
         No:=AnyQuery.Fieldbyname(SerialName).asinteger+1;
   end;
   Result:=No;
end;

procedure TForm_DepartmentWork.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  if screen.FormCount=2 then WebIsHide(0);
  with ManagDM do
  begin
    Tbl_ElecOutDepart.close;
    Tbl_CompDepart.close;
    Tbl_CompType.close;
    Tbl_AskDepart.Close;
    Tbl_AskElecDepart.Close;
    Tbl_WorkName.Close;
  end;
  Action:=CaFree;
  Form_Department:=nil;
end;

procedure TForm_DepartmentWork.FormCreate(Sender: TObject);
begin
  PC_Main.ActivePageIndex :=0;
  ManagDM.Tbl_ElecOutDepart.open;
end;

procedure TForm_DepartmentWork.SetCommitStatus(TableStatus: TTableStatus);
begin
  if TableStatus=TableInsert then
  begin
    Action_new.Enabled :=false;
    Action_edit.Enabled :=false;
    Action_save.Enabled :=true;
    case pc_main.ActivePageIndex of
      0:
      begin
        DBGrid1.Enabled :=false;
        if ManagDM.Tbl_ElecOutDepart.IsEmpty  then Action_delete.Enabled :=false
        else Action_delete.Enabled :=true;
      end;
      1:
      begin
        DBGrid2.Enabled :=false;
        if ManagDM.Tbl_CompDepart.IsEmpty  then Action_delete.Enabled :=false
        else Action_delete.Enabled :=true;
      end;
      2:
      begin
        DBGrid3.Enabled :=false;
        if ManagDM.Tbl_CompType.IsEmpty  then Action_delete.Enabled :=false
        else Action_delete.Enabled :=true;
      end;
      3:
      begin
        DBGrid4.Enabled :=false;
        if ManagDM.Tbl_AskDepart.IsEmpty  then Action_delete.Enabled :=false
        else Action_delete.Enabled :=true;
      end;
      4:
      begin
        DBGrid5.Enabled :=false;
        if ManagDM.Tbl_AskElecDepart.IsEmpty  then Action_delete.Enabled :=false
        else Action_delete.Enabled :=true;
      end;
      5:
      begin
        DBGrid6.Enabled :=false;
        if ManagDM.Tbl_WorkName.IsEmpty  then Action_delete.Enabled :=false
        else Action_delete.Enabled :=true;
      end;
    end;
  end;
  if TableStatus=TablePost then
  begin
    Action_new.Enabled :=true;
    Action_edit.Enabled :=true;
    Action_save.Enabled :=false;
    case pc_main.ActivePageIndex of
      0:
      begin
        DBGrid1.Enabled :=true;
        if ManagDM.Tbl_ElecOutDepart.IsEmpty  then Action_delete.Enabled :=false
        else Action_delete.Enabled :=true;
      end;
      1:
      begin
        DBGrid2.Enabled :=true;
        if ManagDM.Tbl_CompDepart.IsEmpty  then Action_delete.Enabled :=false
        else Action_delete.Enabled :=true;
      end;
      2:
      begin
        DBGrid3.Enabled :=true;
        if ManagDM.Tbl_CompType.IsEmpty  then Action_delete.Enabled :=false
        else Action_delete.Enabled :=true;
      end;
      3:
      begin
        DBGrid4.Enabled :=true;
        if ManagDM.Tbl_AskDepart.IsEmpty  then Action_delete.Enabled :=false
        else Action_delete.Enabled :=true;
      end;
      4:
      begin
        DBGrid5.Enabled :=true;
        if ManagDM.Tbl_AskElecDepart.IsEmpty  then Action_delete.Enabled :=false
        else Action_delete.Enabled :=true;
      end;
      5:
      begin
        DBGrid6.Enabled :=true;
        if ManagDM.Tbl_WorkName.IsEmpty  then Action_delete.Enabled :=false
        else Action_delete.Enabled :=true;
      end;
    end;
  end;
end;

procedure TForm_DepartmentWork.Action_newExecute(Sender: TObject);
begin
  case pc_main.ActivePageIndex of
    0:
    begin
      ManagDM.Tbl_ElecOutDepart.Append ;
    end;
    1:
    begin
      ManagDM.Tbl_CompDepart.Append ;
    end;
    2:
    begin
      ManagDM.Tbl_CompType.Append ;
    end;
    3:
    begin
      ManagDM.Tbl_AskDepart.Append ;
    end;
    4:
    begin
      ManagDM.Tbl_AskElecDepart.Append ;
    end;
    5:
    begin
      ManagDM.Tbl_WorkName.Append ;
    end;
  end;
  //SetCommitStatus(TableInsert);
end;

procedure TForm_DepartmentWork.Action_editExecute(Sender: TObject);
begin
  case pc_main.ActivePageIndex of
    0:
    begin
      ManagDM.Tbl_ElecOutDepart.edit ;
    end;
    1:
    begin
      ManagDM.Tbl_CompDepart.edit ;
    end;
    2:
    begin
      ManagDM.Tbl_CompType.edit ;
    end;
    3:
    begin
      ManagDM.Tbl_AskDepart.edit ;
    end;
    4:
    begin
      ManagDM.Tbl_AskElecDepart.edit ;
    end;
    5:
    begin
      ManagDM.Tbl_WorkName.edit ;
    end;
  end;
end;

procedure TForm_DepartmentWork.Action_saveExecute(Sender: TObject);
begin
  case pc_main.ActivePageIndex of
    0:
    begin
      if (ManagDM.Tbl_ElecOutDepart.State in [dsinsert,dsedit]) then
      begin
        ManagDM.Tbl_ElecOutDepart.Post ;
        ManagDM.Tbl_ElecOutDepart.ApplyUpdates ;
        ManagDM.Tbl_ElecOutDepart.CommitUpdates ;
      end;
    end;
    1:
    begin
      if (ManagDM.Tbl_CompDepart.State in [dsinsert,dsedit]) then
      begin
        ManagDM.Tbl_CompDepart.Post ;
        ManagDM.Tbl_CompDepart.ApplyUpdates ;
        ManagDM.Tbl_CompDepart.CommitUpdates ;
      end;
    end;
    2:
    begin
      if (ManagDM.Tbl_CompType.State in [dsinsert,dsedit]) then
      begin
        ManagDM.Tbl_CompType.Post ;
        ManagDM.Tbl_CompType.ApplyUpdates ;
        ManagDM.Tbl_CompType.CommitUpdates ;
      end;
    end;
    3:
    begin
      if (ManagDM.Tbl_AskDepart.State in [dsinsert,dsedit]) then
      begin
        ManagDM.Tbl_AskDepart.Post ;
        ManagDM.Tbl_AskDepart.ApplyUpdates ;
        ManagDM.Tbl_AskDepart.CommitUpdates ;
      end;
    end;
    4:
    begin
      if (ManagDM.Tbl_AskElecDepart.State in [dsinsert,dsedit]) then
      begin
        ManagDM.Tbl_AskElecDepart.Post ;
        ManagDM.Tbl_AskElecDepart.ApplyUpdates ;
        ManagDM.Tbl_AskElecDepart.CommitUpdates ;
      end;
    end;
    5:
    begin
      if (ManagDM.Tbl_WorkName.State in [dsinsert,dsedit]) then
      begin
        ManagDM.Tbl_WorkName.Post ;
        ManagDM.Tbl_WorkName.ApplyUpdates ;
        ManagDM.Tbl_WorkName.CommitUpdates ;
      end;
    end;
  end;
end;

procedure TForm_DepartmentWork.Action_deleteExecute(Sender: TObject);
begin
  case pc_main.ActivePageIndex of
    0:
    begin
      if not (ManagDM.Tbl_ElecOutDepart.IsEmpty) then
      begin
        ManagDM.Tbl_ElecOutDepart.Delete ;
        ManagDM.Tbl_ElecOutDepart.ApplyUpdates ;
        ManagDM.Tbl_ElecOutDepart.CommitUpdates ;
      end;
    end;
    1:
    begin
      if not (ManagDM.Tbl_CompDepart.IsEmpty) then
      begin
        ManagDM.Tbl_CompDepart.Delete ;
        ManagDM.Tbl_CompDepart.ApplyUpdates ;
        ManagDM.Tbl_CompDepart.CommitUpdates ;
      end;
    end;
    2:
    begin
      if not (ManagDM.Tbl_CompType.IsEmpty) then
      begin
        ManagDM.Tbl_CompType.Delete ;
        ManagDM.Tbl_CompType.ApplyUpdates ;
        ManagDM.Tbl_CompType.CommitUpdates ;
      end;
    end;
    3:
    begin
      if not(ManagDM.Tbl_AskDepart.IsEmpty) then
      begin
        ManagDM.Tbl_AskDepart.Delete ;
        ManagDM.Tbl_AskDepart.ApplyUpdates ;
        ManagDM.Tbl_AskDepart.CommitUpdates ;
      end;
    end;
    4:
    begin
      if not(ManagDM.Tbl_AskElecDepart.IsEmpty) then
      begin
        ManagDM.Tbl_AskElecDepart.Delete ;
        ManagDM.Tbl_AskElecDepart.ApplyUpdates ;
        ManagDM.Tbl_AskElecDepart.CommitUpdates ;
      end;
    end;
    5:
    begin
      if not(ManagDM.Tbl_WorkName.IsEmpty) then
      begin
        ManagDM.Tbl_WorkName.Delete ;
        ManagDM.Tbl_WorkName.ApplyUpdates ;
        ManagDM.Tbl_WorkName.CommitUpdates ;
      end;
    end;
  end;
end;

procedure TForm_DepartmentWork.Action_clsoeExecute(Sender: TObject);
begin
  close;
end;

procedure TForm_DepartmentWork.PC_MainChange(Sender: TObject);
begin
  case pc_main.ActivePageIndex of
    0:
    begin
      with ManagDM do
      begin
        Tbl_ElecOutDepart.open;
        Tbl_CompDepart.close;
        Tbl_CompType.close;
        Tbl_AskDepart.close;
        Tbl_AskElecDepart.close;
        Tbl_WorkName.close;
      end;
    end;
    1:
    begin
      with ManagDM do
      begin
        Tbl_ElecOutDepart.close;
        Tbl_CompDepart.open;
        Tbl_CompType.close;
        Tbl_AskDepart.close;
        Tbl_AskElecDepart.close;
        Tbl_WorkName.close;
      end;
    end;
    2:
    begin
      with ManagDM do
      begin
        Tbl_ElecOutDepart.close;
        Tbl_CompDepart.close;
        Tbl_CompType.open;
        Tbl_AskDepart.close;
        Tbl_AskElecDepart.close;
        Tbl_WorkName.close;
      end;
    end;
    3:
    begin
      with ManagDM do
      begin
        Tbl_ElecOutDepart.close;
        Tbl_CompDepart.close;
        Tbl_CompType.close;
        Tbl_AskDepart.open;
        Tbl_AskElecDepart.close;
        Tbl_WorkName.close;
      end;
    end;
    4:
    begin
      with ManagDM do
      begin
        Tbl_ElecOutDepart.close;
        Tbl_CompDepart.close;
        Tbl_CompType.close;
        Tbl_AskDepart.close;
        Tbl_AskElecDepart.open;
        Tbl_WorkName.close;
      end;
    end;
    5:
    begin
      with ManagDM do
      begin
        Tbl_ElecOutDepart.close;
        Tbl_CompDepart.close;
        Tbl_CompType.close;
        Tbl_AskDepart.close;
        Tbl_AskElecDepart.close;
        Tbl_WorkName.open;
      end;
    end;
  end;
end;

procedure TForm_DepartmentWork.DBEdit9KeyPress(Sender: TObject;
  var Key: Char);
begin
  if not (key in ['0'..'9',#8]) then key:=#0;
end;

end.

⌨️ 快捷键说明

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