⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_child.pas

📁 小银行系统
💻 PAS
字号:
unit U_child;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGridEh, StdCtrls, ExtCtrls,U_main;
type
  TF_child = class(TForm)
    ScrollBox1: TScrollBox;
    ScrollBox2: TScrollBox;
    Splitter1: TSplitter;
    Memo1: TMemo;
    DBGrid1: TDBGridEh;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    //窗口移动标识
    vmove:boolean;
    //操作标识
    mlog:TOperateState;
    //程序名称
    vprg_no:STRING;
    //用户权限
    vAdd,vEdit,vDelete,vQuery,vGetdata,vBrowse,vUpdate,vCancel:wordbool;
    //按钮状态
    vvAdd,vvEdit,vvDelete,vvQuery,vvGetdata,vvBrowse,vvUpdate,vvCancel:wordbool;

    procedure  setuseprg(vTOperateState:TOperateState);
    procedure  getuseprg(const vuser_no,vprogram_no:string;var vAdd,vEdit,vDelete,vQuery,vGetdata,vBrowse,vUpdate,vCancel:wordbool);

    procedure DoInsert;virtual;abstract;      //新增
    procedure DoEdit;virtual;abstract;        //修改
    procedure DoDelete;virtual;abstract;      //删除

    procedure DoQuery;virtual;abstract;       //查询
    procedure DoGetData;virtual;abstract;     //刷新
    procedure DoBrowse;virtual;abstract;      //浏览

    procedure DoSave;virtual;abstract;        //存档
    procedure DoCancel;virtual;abstract;      //取消

    procedure DoCloseForm;virtual;abstract;   //结束


    //procedure DoDataIn;virtual;abstract;
    //procedure DoDataOut;virtual;abstract;

  end;

var
  F_child: TF_child;

implementation

uses UDM;

{$R *.dfm}

procedure TF_child.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     Action := caFree;
     F_child:=nil;
end;

procedure TF_child.FormCreate(Sender: TObject);
begin

    vmove:=true;

    vAdd:=true;
    vEdit:=true;
    vDelete:=true;
    vQuery:=true;
    vGetdata:=true;
    vBrowse:=true;
    vUpdate:=false;
    vCancel:=false;

    //取得用户权限
    F_MAIN.vprogram_no :=self.Name;
    //getuseprg(f_main.vuser_no,f_main.vprogram_no,vAdd,vEdit,vDelete,vQuery,vGetdata,vBrowse,vUpdate,vCancel);
    //保存按钮状况
    vvAdd:=vAdd;
    vvEdit:=vEdit;
    vvDelete:=vDelete;
    vvQuery:=vQuery;
    vvGetdata:=vGetdata;
    vvBrowse:=vBrowse;
    vvUpdate:=vUpdate;
    vvCancel:=vCancel;

    self.ScrollBox1.Enabled:=true;
    self.ScrollBox2.Enabled:=false;
    self.Caption:=self.Caption+'['+self.Name+']';
    //判断是否有作业权限
    if  vAdd or vEdit or vDelete or vGetdata or vBrowse  then  f_main.DBNavigator1.Enabled:=true
    else  f_main.DBNavigator1.Enabled:=false;

end;

procedure TF_child.FormActivate(Sender: TObject);
begin
  if   vmove  then
  begin
      if self.Top>10  then  self.Top:=0;
      vmove:=false;
  end;
  setuseprg(mFormActive);
end;

//用户权限设置
procedure  TF_child.setuseprg(vTOperateState:TOperateState);
begin
    case  vTOperateState  of
      mAdd,medit,mdelete:
         begin
             f_main.B_add.Enabled:=false;
             f_main.B_edit.Enabled:=false;
             f_main.B_delete.Enabled:=false;
             f_main.B_query.Enabled:=false;
             f_main.B_getdata.Enabled:=false;
             f_main.B_brow.Enabled:=false;
             f_main.B_update.Enabled:=true;
             f_main.B_cancel.Enabled:=true;

             TF_child(f_main.ActiveMDIChild).vvAdd:=false;
             TF_child(f_main.ActiveMDIChild).vvedit:=false;
             TF_child(f_main.ActiveMDIChild).vvdelete:=false;
             TF_child(f_main.ActiveMDIChild).vvquery:=false;
             TF_child(f_main.ActiveMDIChild).vvgetdata:=false;
             TF_child(f_main.ActiveMDIChild).vvBrowse:=false;
             TF_child(f_main.ActiveMDIChild).vvupdate:=true;
             TF_child(f_main.ActiveMDIChild).vvcancel:=true;

             self.ScrollBox1.Enabled:=false;
             self.ScrollBox2.Enabled:=true;
             self.DBGrid1.Visible:=true;
             self.Memo1.Visible:=false;
             f_main.DBNavigator1.Enabled:=false;
         end;
      mQuery,mgetdata,mupdate,mcancel:
         begin
             f_main.B_add.Enabled:=tf_child(f_main.ActiveMDIChild).vAdd;
             f_main.B_edit.Enabled:=tf_child(f_main.ActiveMDIChild).vEdit;
             f_main.B_delete.Enabled:=tf_child(f_main.ActiveMDIChild).vDelete;
             f_main.B_query.Enabled:=tf_child(f_main.ActiveMDIChild).vQuery;
             f_main.B_getdata.Enabled:=tf_child(f_main.ActiveMDIChild).vGetdata;
             f_main.B_brow.Enabled:=tf_child(f_main.ActiveMDIChild).vBrowse;
             f_main.B_update.Enabled:=false;
             f_main.B_cancel.Enabled:=false;
             TF_child(f_main.ActiveMDIChild).vvadd:=TF_child(f_main.ActiveMDIChild).vadd;
             TF_child(f_main.ActiveMDIChild).vvedit:=TF_child(f_main.ActiveMDIChild).vedit;
             TF_child(f_main.ActiveMDIChild).vvdelete:=TF_child(f_main.ActiveMDIChild).vdelete;
             TF_child(f_main.ActiveMDIChild).vvquery:=TF_child(f_main.ActiveMDIChild).vquery;
             TF_child(f_main.ActiveMDIChild).vvgetdata:=TF_child(f_main.ActiveMDIChild).vgetdata;
             TF_child(f_main.ActiveMDIChild).vvBrowse:=TF_child(f_main.ActiveMDIChild).vBrowse;
             TF_child(f_main.ActiveMDIChild).vvupdate:=false;
             TF_child(f_main.ActiveMDIChild).vvcancel:=false;
             self.ScrollBox1.Enabled:=true;
             self.ScrollBox2.Enabled:=false;
             self.DBGrid1.Visible:=true;
             self.Memo1.Visible:=false;
             f_main.DBNavigator1.Enabled:=true;
         end;
      mbrowse:
         begin
             f_main.B_add.Enabled:=tf_child(f_main.ActiveMDIChild).vAdd;
             f_main.B_edit.Enabled:=tf_child(f_main.ActiveMDIChild).vEdit;
             f_main.B_delete.Enabled:=tf_child(f_main.ActiveMDIChild).vDelete;
             f_main.B_query.Enabled:=tf_child(f_main.ActiveMDIChild).vQuery;
             f_main.B_getdata.Enabled:=tf_child(f_main.ActiveMDIChild).vGetdata;
             f_main.B_brow.Enabled:=tf_child(f_main.ActiveMDIChild).vBrowse;
             f_main.B_update.Enabled:=false;
             f_main.B_cancel.Enabled:=false;
             TF_child(f_main.ActiveMDIChild).vvadd:=TF_child(f_main.ActiveMDIChild).vadd;
             TF_child(f_main.ActiveMDIChild).vvedit:=TF_child(f_main.ActiveMDIChild).vedit;
             TF_child(f_main.ActiveMDIChild).vvdelete:=TF_child(f_main.ActiveMDIChild).vdelete;
             TF_child(f_main.ActiveMDIChild).vvquery:=TF_child(f_main.ActiveMDIChild).vquery;
             TF_child(f_main.ActiveMDIChild).vvgetdata:=TF_child(f_main.ActiveMDIChild).vgetdata;
             TF_child(f_main.ActiveMDIChild).vvBrowse:=TF_child(f_main.ActiveMDIChild).vBrowse;
             TF_child(f_main.ActiveMDIChild).vvupdate:=false;
             TF_child(f_main.ActiveMDIChild).vvcancel:=false;
             self.ScrollBox1.Enabled:=true;
             self.ScrollBox2.Enabled:=false;
             self.DBGrid1.Visible:=not self.DBGrid1.Visible;
             self.Memo1.Visible:=not self.Memo1.Visible;
             f_main.DBNavigator1.Enabled:=true;
         end;

      mFormActive:
         begin
             f_main.B_add.Enabled:=tf_child(f_main.ActiveMDIChild).vvAdd;
             f_main.B_edit.Enabled:=tf_child(f_main.ActiveMDIChild).vvEdit;
             f_main.B_delete.Enabled:=tf_child(f_main.ActiveMDIChild).vvDelete;
             f_main.B_query.Enabled:=tf_child(f_main.ActiveMDIChild).vvQuery;
             f_main.B_getdata.Enabled:=tf_child(f_main.ActiveMDIChild).vvGetdata;
             f_main.B_brow.Enabled:=tf_child(f_main.ActiveMDIChild).vvBrowse;
             f_main.B_update.Enabled:=vvupdate;
             f_main.B_cancel.Enabled:=vvcancel;
             //self.DBGrid1.Visible:=false;
             //self.Memo1.Visible:=true;
         end;
      mFormClose:
         begin
             f_main.B_add.Enabled:=false;
             f_main.B_edit.Enabled:=false;
             f_main.B_delete.Enabled:=false;
             f_main.B_query.Enabled:=false;
             f_main.B_getdata.Enabled:=false;
             f_main.B_brow.Enabled:=false;
             f_main.B_update.Enabled:=false;
             f_main.B_cancel.Enabled:=false;
         end;
    end;
end;

//取得用户的使用权限
procedure  TF_child.getuseprg(const vuser_no,vprogram_no:string;var vAdd,vEdit,vDelete,vQuery,vGetdata,vBrowse,vUpdate,vCancel:wordbool);
var  vsql:string;
begin
    if f_main.vadministrator ='Y' then
    begin
       vAdd:=true ;
       vedit:=true ;
       vdelete:=true ;
       vquery:=true ;
       vgetdata:=true ;
       vbrowse:=true ;
       vUpdate:=false;
       vCancel:=false;
       exit ;
    end;

    if  not  dm.ADOConnection1.Connected  then  dm.ADOConnection1.Connected:=true;
    vsql:='select  *  from   setprogram  where  sys_id=''4'' AND user_no=:user_no  and  program_no=:program_no  ';
    dm.q_seek.CommandText:=vsql;
    dm.q_seek.Active:=false;
    dm.q_seek.Parameters.ParamByName('user_no').Value:=vuser_no;
    dm.q_seek.Parameters.ParamByName('program_no').Value:=vprogram_no;
    dm.q_seek.Active:=true;
    if  dm.q_seek.Eof  then
    begin
          vAdd:=false;
          vEdit:=false;
          vDelete:=false;
          vQuery:=false;
          vGetdata:=false;
          vBrowse:=false;
          vUpdate:=false;
          vCancel:=false;
    end
    else
    begin
       if  dm.q_seek.FieldByName('p_add').AsString='Y'      then   vAdd:=true
       else          vAdd:=false;
       if  dm.q_seek.FieldByName('p_edit').AsString='Y'     then   vedit:=true
       else          vEdit:=false;
       if  dm.q_seek.FieldByName('p_delete').AsString='Y'     then   vdelete:=true
       else          vdelete:=false;
       if  dm.q_seek.FieldByName('p_query').AsString='Y'    then   vquery:=true
       else          vQuery:=false;
       if  dm.q_seek.FieldByName('p_getdata').AsString='Y'  then   vgetdata:=true
       else          vGetdata:=false;
       if  dm.q_seek.FieldByName('p_browse').AsString='Y'   then   vbrowse:=true
       else          vBrowse:=false;

        vUpdate:=false;
        vCancel:=false;
    end;
end;

end.

⌨️ 快捷键说明

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