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

📄 u_program.pas

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, U_child1_1, DB, DosMove, DBTables, DBClient, Provider, ADODB,
  Mask, StdCtrls, Buttons, DBCtrls, Grids, DBGridEh, ExtCtrls;

type
  TF_program = class(TF_child1_1)
    ClientDataSet1sys_id: TStringField;
    ClientDataSet1program_id: TStringField;
    ClientDataSet1program_no: TStringField;
    ClientDataSet1program_nm: TStringField;
    ClientDataSet1p_add: TStringField;
    ClientDataSet1p_edit: TStringField;
    ClientDataSet1p_delete: TStringField;
    ClientDataSet1p_query: TStringField;
    ClientDataSet1p_getdata: TStringField;
    ClientDataSet1p_print: TStringField;
    ClientDataSet1p_datain: TStringField;
    ClientDataSet1p_dataout: TStringField;
    ClientDataSet1add_date: TStringField;
    ClientDataSet1edit_date: TStringField;
    StaticText3: TStaticText;
    StaticText4: TStaticText;
    StaticText5: TStaticText;
    StaticText6: TStaticText;
    StaticText7: TStaticText;
    StaticText8: TStaticText;
    StaticText9: TStaticText;
    StaticText10: TStaticText;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit7: TDBEdit;
    DBEdit8: TDBEdit;
    DBEdit9: TDBEdit;
    DBEdit10: TDBEdit;
    DBEdit11: TDBEdit;
    StaticText11: TStaticText;
    StaticText12: TStaticText;
    StaticText13: TStaticText;
    ADOQpub: TADOQuery;
    ADOQpub1: TADOQuery;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DBEdit3Exit(Sender: TObject);
    procedure DBEdit4Exit(Sender: TObject);
    procedure DBEdit5Exit(Sender: TObject);
    procedure DBEdit6Exit(Sender: TObject);
    procedure DBEdit7Exit(Sender: TObject);
    procedure DBEdit8Exit(Sender: TObject);
    procedure DBEdit9Exit(Sender: TObject);
    procedure DBEdit10Exit(Sender: TObject);
    procedure DBEdit3Click(Sender: TObject);
    procedure DBEdit4Click(Sender: TObject);
    procedure DBEdit5Click(Sender: TObject);
    procedure DBEdit6Click(Sender: TObject);
    procedure DBEdit7Click(Sender: TObject);
    procedure DBEdit8Click(Sender: TObject);
    procedure DBEdit9Click(Sender: TObject);
    procedure DBEdit10Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure DoInsert;override;
    procedure DoEdit;override;
    procedure DoGetData;override;
  end;

var
  F_program: TF_program;

implementation
uses U_main,UDM;

{$R *.dfm}

//新增资料
procedure TF_program.DoInsert;
begin
  inherited;
  self.ClientDataSet1.FieldByName('sys_id').AsString :='4' ;
end;

//修改资料
procedure TF_program.DoEdit;
begin
  inherited;
  DBEdit1.Enabled :=true;
end;

procedure TF_program.DoGetData;
var mn_col,mn_row,mnl_row  :  integer ;      //列号和行号
  i,ii,iii       :  integer ;       //循环变量
  ss,sqlstr,sqlstr1,vnum :  string ;        //
  str_menu_col,str_menu_row : string;
begin
    //inherited;
    mn_col := f_Main.MainMenu1.Items.Count;         //获得菜单列数

    sqlstr:='DELETE from program1 ';
    with ADOQpub do
    begin
      Close;SQL.Clear;SQL.Add(sqlstr);
      ExecSQL ;
    end ;

    //把菜单列记录到Module表中
    for i := 1 to mn_col do
    begin
      ss := f_Main.MainMenu1.Items[i-1].Caption;      //获得列名称
      vnum :=trim(inttostr(i-1)) ;
      {sqlstr:='INSERT INTO program_nm (program_id,program_nm) '+
              ' values ( '''+vnum+''','''+ ss+''')';
      with ADOQpub do
      begin
        Close;SQL.Clear;SQL.Add(sqlstr);
        try
          ExecSQL ;
        except
          Application.MessageBox ('添加Program数据时出现错误!','错误信息',mb_ok+mb_iconinformation);
          exit;
        end;
      end ;
      }

      mn_row := f_Main.MainMenu1.Items[i-1].Count;
      for ii := 1 to mn_row do
      begin
        ss := f_Main.MainMenu1.Items[i-1].Items[ii-1].Caption;
        ss := trim(ss);
        if ss<>'-' then
          begin
          vnum :=trim(inttostr(i-1)) +trim(inttostr(ii-1))  ;
          sqlstr1:='select count(*) nn from program1 where sys_id=''4'' and program_nm='''+ss+'''' ;
          self.ADOQpub1.Close ;
          self.ADOQpub1.SQL.Text := SQLStr1;
          self.ADOQpub1.Active :=true;
          if self.ADOQpub1.FieldByName('nn').AsInteger =0 then
          begin
             sqlstr:='INSERT INTO program1 (sys_id,program_id,program_NO,program_nm,p_add,p_edit,p_delete,p_query,p_getdata,p_print) '+
                ' values ( ''4'','''+ vnum+''','''','''+ ss+''',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'')' ;
             with ADOQpub do
             begin
               Close;SQL.Clear;SQL.Add(sqlstr);
               try
                 ExecSQL ;
               except
                 Application.MessageBox ('添加Program数据时出现错误!','错误信息',mb_ok+mb_iconinformation);
                 exit;
               end;
             end ;
          end ;
        end ;

        mnl_row := f_Main.MainMenu1.Items[i-1].Items[ii-1].Count;
        for iii := 1 to mnl_row do
        begin
          ss := f_Main.MainMenu1.Items[i-1].Items[ii-1].Items[iii-1].Caption;
          ss := trim(ss);
          if ss<>'-' then
            begin
            vnum :=trim(inttostr(i-1)) +trim(inttostr(ii-1))+trim(inttostr(iii-1))  ;

            sqlstr1:='select count(*) nn from program1 where sys_id=''4'' and program_nm='''+ss+'''' ;
            self.ADOQpub1.Close ;
            self.ADOQpub1.SQL.Text := SQLStr1;
            self.ADOQpub1.Active :=true;
            if self.ADOQpub1.FieldByName('nn').AsInteger =0 then
            begin
               sqlstr:='INSERT INTO program1 (sys_id,program_id,program_no,program_nm,p_add,p_edit,p_delete,p_query,p_getdata,p_print) '+
               ' values ( ''4'','''+ vnum+''','''','''+ ss+''',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'' )' ;
               with ADOQpub do
               begin
                 Close;SQL.Clear;SQL.Add(sqlstr);
                 try
                   ExecSQL ;
                 except
                   Application.MessageBox ('添加Program数据时出现错误!','错误信息',mb_ok+mb_iconinformation);
                   exit;
                 end;
               end ;
            end ;
          end ;
        end;  //i

      end;  //i

   end;   //with

   //删除旧的不再使用的程式
   sqlstr:='DELETE FROM program WHERE sys_id=''4'' and program_id not in '+
       ' (select program_id  FROM program1 where program1.sys_id=''4'')' ;  
    with ADOQpub do
    begin
      Close;SQL.Clear;SQL.Add(sqlstr);
      try
        ExecSQL ;
      except
        Application.MessageBox ('更新程式序号数据时出现错误!','错误信息',mb_ok+mb_iconinformation);
        exit;
      end;
    end ;

   //更新程式序号
    sqlstr:='UPDATE program SET program_id=program1.program_id '+
       ' FROM program1 where program.sys_id=program1.sys_id and '+
       ' program.program_nm=program1.program_nm '+
       ' and program.sys_id=''4'''  ;
    with ADOQpub do
    begin
      Close;SQL.Clear;SQL.Add(sqlstr);
      try
        ExecSQL ;
      except
        Application.MessageBox ('更新程式序号数据时出现错误!','错误信息',mb_ok+mb_iconinformation);
        exit;
      end;
    end ;

    sqlstr:='INSERT INTO program SELECT * FROM program1 '+
       ' WHERE program1.program_id+program1.program_nm not in (select program_id+program_nm from program '+
       ' where sys_id=''4'' )' ;
    with ADOQpub do
    begin
      Close;SQL.Clear;SQL.Add(sqlstr);
      try
        ExecSQL ;
      except
        Application.MessageBox ('添加Program数据时出现错误!','错误信息',mb_ok+mb_iconinformation);
        exit;
      end;
    end ;

   MessageBox(handle,'操作成功!','提示',MB_OK+MB_ICONINFORMATION);
   self.ClientDataSet1.Active :=false;
   self.ClientDataSet1.Active :=true;
end;

procedure TF_program.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  self.ClientDataSet1.Free ;
  F_program:=nil;
end;

procedure TF_program.DBEdit3Exit(Sender: TObject);
begin
  inherited;
  if pos(dbedit3.Text,'YN')=0 then  dbedit3.Text:='N'
end;

procedure TF_program.DBEdit4Exit(Sender: TObject);
begin
  inherited;
  if pos(dbedit4.Text,'YN')=0 then  dbedit4.Text:='N'

end;

procedure TF_program.DBEdit5Exit(Sender: TObject);
begin
  inherited;
  if pos(dbedit5.Text,'YN')=0 then  dbedit5.Text:='N'

end;

procedure TF_program.DBEdit6Exit(Sender: TObject);
begin
  inherited;
  if pos(dbedit6.Text,'YN')=0 then  dbedit6.Text:='N'

end;

procedure TF_program.DBEdit7Exit(Sender: TObject);
begin
  inherited;
  if pos(dbedit7.Text,'YN')=0 then  dbedit7.Text:='N'

end;

procedure TF_program.DBEdit8Exit(Sender: TObject);
begin
  inherited;
  if pos(dbedit8.Text,'YN')=0 then  dbedit8.Text:='N'

end;

procedure TF_program.DBEdit9Exit(Sender: TObject);
begin
  inherited;
  if pos(dbedit9.Text,'YN')=0 then  dbedit9.Text:='N'

end;

procedure TF_program.DBEdit10Exit(Sender: TObject);
begin
  inherited;
  if pos(dbedit10.Text,'YN')=0 then  dbedit10.Text:='N'  ;
  f_main.b_update.SetFocus;
end;

procedure TF_program.DBEdit3Click(Sender: TObject);
begin
  inherited;
  if  dbedit3.Text='Y'  then  dbedit3.Text:='N'
  else  dbedit3.Text:='Y';

end;

procedure TF_program.DBEdit4Click(Sender: TObject);
begin
  inherited;
  if  dbedit4.Text='Y'  then  dbedit4.Text:='N'
  else  dbedit4.Text:='Y';
end;

procedure TF_program.DBEdit5Click(Sender: TObject);
begin
  inherited;
  if  dbedit5.Text='Y'  then  dbedit5.Text:='N'
  else  dbedit5.Text:='Y';
end;

procedure TF_program.DBEdit6Click(Sender: TObject);
begin
  inherited;
  if  dbedit6.Text='Y'  then  dbedit6.Text:='N'
  else  dbedit6.Text:='Y';
end;

procedure TF_program.DBEdit7Click(Sender: TObject);
begin
  inherited;
  if  dbedit7.Text='Y'  then  dbedit7.Text:='N'
  else  dbedit7.Text:='Y';
end;

procedure TF_program.DBEdit8Click(Sender: TObject);
begin
  inherited;
  if  dbedit8.Text='Y'  then  dbedit8.Text:='N'
  else  dbedit8.Text:='Y';
end;

procedure TF_program.DBEdit9Click(Sender: TObject);
begin
  inherited;
  if  dbedit9.Text='Y'  then  dbedit9.Text:='N'
  else  dbedit9.Text:='Y';
end;

procedure TF_program.DBEdit10Click(Sender: TObject);
begin
  inherited;
  if  dbedit10.Text='Y'  then  dbedit10.Text:='N'
  else  dbedit10.Text:='Y';
end;

procedure TF_program.FormCreate(Sender: TObject);
begin
  inherited;
  self.ClientDataSet1.Active :=true;
end;

end.

⌨️ 快捷键说明

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