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

📄 u_main.pas

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DBCtrls, StdCtrls, Buttons, ComCtrls, ToolWin,
  StdActns, ActnList, ImgList, Menus, DB, ADODB, IdBaseComponent,
  IdComponent, IdIPWatch, XPMenu, DBClient, Provider;

type
    //按钮状态设置
    TOperateState=(mAdd,mEdit,mDelete,mQuery,mGetdata,mBrowse,mUpdate,
                   mCancel,mFormActive,mFormClose);

    TF_main = class(TForm)
    ImageList1: TImageList;
    ActionList1: TActionList;
    FileNew1: TAction;
    FileOpen1: TAction;
    FileClose1: TWindowClose;
    FileSave1: TAction;
    FileSaveAs1: TAction;
    FileExit1: TAction;
    EditCut1: TEditCut;
    EditCopy1: TEditCopy;
    EditPaste1: TEditPaste;
    WindowCascade1: TWindowCascade;
    WindowTileHorizontal1: TWindowTileHorizontal;
    WindowTileVertical1: TWindowTileVertical;
    WindowMinimizeAll1: TWindowMinimizeAll;
    WindowArrangeAll1: TWindowArrange;
    HelpAbout1: TAction;
    MainMenu1: TMainMenu;
    H6: TMenuItem;
    N17: TMenuItem;
    N35: TMenuItem;
    N38: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    N20: TMenuItem;
    H1: TMenuItem;
    StatusBar1: TStatusBar;
    IdIPWatch1: TIdIPWatch;
    H2: TMenuItem;
    H4: TMenuItem;
    H5: TMenuItem;
    XPMenu1: TXPMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    ADOQpub: TADOQuery;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    DBNavigator1: TDBNavigator;
    ToolButton2: TToolButton;
    B_add: TBitBtn;
    B_edit: TBitBtn;
    B_delete: TBitBtn;
    ToolButton3: TToolButton;
    B_query: TBitBtn;
    B_getdata: TBitBtn;
    B_brow: TBitBtn;
    ToolButton4: TToolButton;
    B_update: TBitBtn;
    B_cancel: TBitBtn;
    ToolButton5: TToolButton;
    B_close: TBitBtn;
    N24: TMenuItem;
    N25: TMenuItem;
    N27: TMenuItem;
    N31: TMenuItem;
    N33: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    B_cal: TBitBtn;
    N46: TMenuItem;
    N53: TMenuItem;
    N54: TMenuItem;
    N56: TMenuItem;
    N57: TMenuItem;
    N4: TMenuItem;
    N3: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N8: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    procedure B_closeClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure B_addClick(Sender: TObject);
    procedure B_editClick(Sender: TObject);
    procedure B_deleteClick(Sender: TObject);
    procedure B_queryClick(Sender: TObject);
    procedure B_getdataClick(Sender: TObject);
    procedure B_browClick(Sender: TObject);
    procedure B_updateClick(Sender: TObject);
    procedure B_cancelClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure N35Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure N18Click(Sender: TObject);
    procedure B_calClick(Sender: TObject);
    procedure N56Click(Sender: TObject);
    procedure N57Click(Sender: TObject);
    procedure N25Click(Sender: TObject);
    procedure N33Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N54Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N46Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure N31Click(Sender: TObject);
    procedure N11Click(Sender: TObject);

  private
    Fvision : string;
    FData : OleVariant;
    { Private declarations }
  public
    { Public declarations }
    bitmap:tbitmap;
    vdate,vuser_no,vuser_nm,vprogram_no,vTodayDate,Prior_yymm,vfac_no,vadministrator:string;
  published
    property Vision : string read FVision;
    property Data : OleVariant read FData;
  end;

var
  F_main: TF_main;
  TodayDateTime:TDatetime;
  firstfrm :boolean;

implementation

uses U_child,U_child1_1,  fuct_server, UDM, U_user, U_program, U_useset,
  U_login,  ufrmAbout, UfrmFactory, UfrmSec, UfrmOpenAccount, UfrmDeposit,
  UfrmStd_Rate, UfrmInterRest, UfrmInterRestRep, UfrmBalanceMaster,
  UfrmDepositRep, UfrmCancelAccount, UfrmTryBalanceRep, UfrmLock_Deposit;

{$R *.dfm}

procedure TF_main.B_closeClick(Sender: TObject);
begin
  if assigned(TF_child(ActiveMDIChild)) then
  begin
    if  self.ActiveMDIChild is TF_child then
    begin
       TF_child(self.ActiveMDIChild).mlog:=mFormClose;
       TF_child(self.ActiveMDIChild).setuseprg(mFormClose);
       TF_child(self.ActiveMDIChild).DoCloseForm;
    end;
  end
  else  close;
end;

procedure TF_main.Button1Click(Sender: TObject);
begin
    F_child1_1:=tF_child1_1.Create(application);
    F_child1_1.Show;
end;

procedure TF_main.B_addClick(Sender: TObject);
begin
  if assigned(TF_child(self.ActiveMDIChild)) then
  if  self.ActiveMDIChild is TF_child then
  begin
     TF_child(self.ActiveMDIChild).mlog:=madd;
     TF_child(self.ActiveMDIChild).setuseprg(madd);
     TF_child(self.ActiveMDIChild).DoInsert;
  end;
end;

procedure TF_main.B_editClick(Sender: TObject);
begin
  if assigned(TF_child(self.ActiveMDIChild)) then
  if  self.ActiveMDIChild is TF_child then
  begin
     TF_child(self.ActiveMDIChild).mlog:=medit;
     TF_child(self.ActiveMDIChild).setuseprg(medit);
     TF_child(self.ActiveMDIChild).DoEdit;
  end;
end;

procedure TF_main.B_deleteClick(Sender: TObject);
begin
  if assigned(TF_child(self.ActiveMDIChild)) then
  if  self.ActiveMDIChild is TF_child then
  begin
     TF_child(self.ActiveMDIChild).mlog:=mdelete;
     TF_child(self.ActiveMDIChild).setuseprg(mdelete);
     TF_child(self.ActiveMDIChild).DoDelete;
  end;

end;

procedure TF_main.B_queryClick(Sender: TObject);
begin
  if assigned(TF_child(self.ActiveMDIChild)) then
  if  self.ActiveMDIChild is TF_child then
  begin
     TF_child(self.ActiveMDIChild).mlog:=mquery;
     TF_child(self.ActiveMDIChild).setuseprg(mquery);
     TF_child(self.ActiveMDIChild).DoQuery;
  end;

end;

procedure TF_main.B_getdataClick(Sender: TObject);
begin
  if assigned(TF_child(self.ActiveMDIChild)) then
  if  self.ActiveMDIChild is TF_child then
  begin
     TF_child(self.ActiveMDIChild).mlog:=mgetdata;
     TF_child(self.ActiveMDIChild).setuseprg(mgetdata);
     TF_child(self.ActiveMDIChild).DoGetData;
  end;

end;

procedure TF_main.B_browClick(Sender: TObject);
begin
  if assigned(TF_child(self.ActiveMDIChild)) then
  if  self.ActiveMDIChild is TF_child then
  begin
     TF_child(self.ActiveMDIChild).mlog:=mBrowse;
     TF_child(self.ActiveMDIChild).setuseprg(mBrowse);
     TF_child(self.ActiveMDIChild).DoBrowse;
  end;

end;

procedure TF_main.B_updateClick(Sender: TObject);
begin
  if assigned(TF_child(self.ActiveMDIChild)) then
  if  self.ActiveMDIChild is TF_child then
  begin
     TF_child(self.ActiveMDIChild).setuseprg(mupdate);

     TF_child(self.ActiveMDIChild).DoSave;
  end;

end;

procedure TF_main.B_cancelClick(Sender: TObject);
begin
  if assigned(TF_child(self.ActiveMDIChild)) then
  if  self.ActiveMDIChild is TF_child then
  begin
     //TF_child(self.ActiveMDIChild).mlog:=mcancel;
     TF_child(self.ActiveMDIChild).setuseprg(mcancel);
     TF_child(self.ActiveMDIChild).DoCancel;
  end;

end;

procedure TF_main.FormDestroy(Sender: TObject);
begin
    bitmap.free;
end;

procedure TF_main.FormCreate(Sender: TObject);
var      TodayDateTime:TDatetime;
begin
    dm.q_seek.CommandText:= 'select getdate() todaydatetime' ;
    dm.q_seek.Active :=true;
    TodayDatetime:=dm.q_seek.fieldbyName('todaydatetime').asDateTime;
    vTodayDate:=FormatDatetime('YYYY-mm-dd',TodayDateTime);
    dm.q_seek.Active :=false;
    vdate:=vTodayDate;
    firstfrm :=true;
    //bitmap:=tbitmap.create;
    //bitmap.loadfromfile(extractfilepath(application.exeName)+'huajian.bmp');
    FVision := '1.0';
end;

procedure TF_main.FormPaint(Sender: TObject);
var  x,y:integer;
begin
    x:=0;
    y:=0;
    canvas.draw(x,y,bitmap);
   { y:=0;
    while  y<=self.ClientHeight  do
    begin
         x:=0;
         while  x<=clientwidth do
         begin
              canvas.draw(x,y,bitmap);
              x:=x+bitmap.width;
         end;
         y:=y+bitmap.height;
    end;
   }

end;

procedure TF_main.N35Click(Sender: TObject);
begin
    if assigned(F_user) then F_user.show
    else F_user:=tF_user.create(application);

end;

procedure TF_main.N1Click(Sender: TObject);
begin
    if assigned(F_program) then F_program.show
    else F_program:=tF_program.create(application);

end;

procedure TF_main.N2Click(Sender: TObject);
begin
    if assigned(F_useset) then F_useset.show
    else F_useset:=tF_useset.create(application);

end;

procedure TF_main.FormShow(Sender: TObject);
VAR SQLSTR,vfoot:STRING;
  X,Y,Z:integer; //for menu's id...
  XYZ:String[3];//for menu's id...
  TodayDateTime:TDatetime;
  ADOQpub : TAdodataSet;
begin

    vfoot:='欢迎来自IP为';
    vfoot:=vfoot+self.IdIPWatch1.LocalIP+'['+self.IdIPWatch1.LocalName+']';
    vfoot:=vfoot+'的用户'+vuser_no;
    self.StatusBar1.Panels[1].Text:= vfoot;

  sqlstr := 'select * FROM userdb where sys_id=''4'' and user_no='''+ self.vuser_no +'''' ;
  ADOQpub := TAdodataSet.Create(nil);
  ADOQpub.Connection := DM.ADOConnection1 ;
  ADOQpub.CommandText := Sqlstr;
  ADOQpub.Prepared := True;
  ADOQpub.Open;

  vadministrator :=trim(adoqpub.fieldbyname('administrator').AsString );
  ADOQpub.Free ;

  if vadministrator <>'Y' then
  begin
     SQLstr:='select B.program_id,A.mod_rights  from setprogram A INNER JOIN program B '+
      ' ON A.program_id=B.program_id  and A.program_NO=B.program_NO WHERE A.sys_id=''4'' AND b.sys_id=''4'' AND A.user_no='''+SELF.vuser_no +'''';
     ADOQpub := TAdodataSet.Create(nil);
     ADOQpub.Connection := DM.ADOConnection1 ;
     ADOQpub.CommandText := Sqlstr;
     ADOQpub.Prepared := True;
     ADOQpub.Open;
     ADOQpub.First ;
     WITH ADOQpub DO
     begin
       while not ADOQpub.Eof DO
       begin
          XYZ:=FieldByName('program_id').asString;
          case Length(XYZ) of
          1:begin
              X:=FieldByName('program_id').AsInteger;
              if FieldByName('mod_rights').AsString='0' THEN
                 f_Main.MainMenu1.Items[X].Enabled:=False;
              if FieldByName('mod_rights').AsString='2' THEN
                 f_Main.MainMenu1.Items[X].Visible:=False;
            end;
          2:begin
              X:=StrToInt(Copy(XYZ,1,1));
              Y:=StrToInt(Copy(XYZ,2,1));
              if FieldByName('mod_rights').AsString='0' THEN
                 f_Main.MainMenu1.Items[X][Y].Enabled:=False;
              if FieldByName('mod_rights').AsString='2' THEN
                 f_Main.MainMenu1.Items[X][Y].Visible:=False;
            end;

          3:begin
              X:=StrToInt(Copy(XYZ,1,1));
              Y:=StrToInt(Copy(XYZ,2,1));
              Z:=StrToInt(Copy(XYZ,3,1));
              if FieldByName('mod_rights').AsString='0' THEN
                 f_Main.MainMenu1.Items[X][Y][Z].Enabled:=False;
              if FieldByName('mod_rights').AsString='2' THEN
                 f_Main.MainMenu1.Items[X][Y][Z].Visible:=False;
            end;
          end; //case...do..end;
          Next;
        end ;
        close ;
     end;
     ADOQpub.Free ;
  end ;

end;

procedure TF_main.N18Click(Sender: TObject);
var
  frmAbout : TfrmAbout;
begin
  frmAbout := TfrmAbout.Create(nil);
  try
    frmAbout.ShowModal;
  finally
    frmAbout.Free;
  end;     
end;

procedure TF_main.B_calClick(Sender: TObject);
begin
  if FindWindowEx(Self.Handle, 0, nil, '计算器') <> 0 then
    SendMessage(FindWindowEx(Self.Handle, 0, nil, '计算器'), WM_SYSCOMMAND, SC_RESTORE, 0)
  else
  begin
    WinExec(Pchar('Calc.exe'), SW_SHOW);
    Windows.SetParent(FindWindow(nil, '计算器'), Self.Handle);
  end;


end;

procedure TF_main.N56Click(Sender: TObject);
begin
  if  assigned(frmFactory) then frmFactory.show
   else frmFactory :=tfrmFactory.create(application);

end;

procedure TF_main.N57Click(Sender: TObject);
begin
  if  assigned(frmSec) then frmSec.show
   else frmSec :=tfrmSec.create(application);

end;

procedure TF_main.N25Click(Sender: TObject);
begin
  if  assigned(frmOpenAccount) then frmOpenAccount.show
   else frmOpenAccount :=tfrmOpenAccount.create(application);

end;

procedure TF_main.N33Click(Sender: TObject);
begin
  if  assigned(frmDeposit) then frmDeposit.show
   else frmDeposit :=tfrmDeposit.create(application);

end;

procedure TF_main.N5Click(Sender: TObject);
begin
  if  assigned(frmStd_Rate) then frmStd_Rate.show
   else frmStd_Rate :=tfrmStd_Rate.create(application);

end;

procedure TF_main.N54Click(Sender: TObject);
var
  frmInterRest : TfrmInterRest ;
begin
  frmInterRest := TfrmInterRest.Create(nil);
  try
    frmInterRest.ShowModal;
  finally
    frmInterRest.Free;
  end;

end;

procedure TF_main.N4Click(Sender: TObject);
var
  frmInterRestRep : TfrmInterRestRep ;
begin
  frmInterRestRep := TfrmInterRestRep.Create(nil);
  try
    frmInterRestRep.ShowModal;
  finally
    frmInterRestRep.Free;
  end;

end;

procedure TF_main.N46Click(Sender: TObject);
begin
  if  assigned(frmDepositRep) then frmDepositRep.show
   else frmDepositRep :=tfrmDepositRep.create(application);

end;

procedure TF_main.N10Click(Sender: TObject);
begin
  if  assigned(frmCancelAccount) then frmCancelAccount.show
   else frmCancelAccount :=tfrmCancelAccount.create(application);

end;

procedure TF_main.N31Click(Sender: TObject);
begin
  if  assigned(frmTryBalanceRep) then frmTryBalanceRep.show
   else frmTryBalanceRep :=tfrmTryBalanceRep.create(application);

end;

procedure TF_main.N11Click(Sender: TObject);
begin
  if  assigned(frmLock_Deposit) then frmLock_Deposit.show
   else frmLock_Deposit :=tfrmLock_Deposit.create(application);

end;

end.

⌨️ 快捷键说明

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