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

📄 czygl.pas

📁 已经给出使用的每个SQL Server数据库
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      czymc.SetFocus;
    chb.Visible := False;
  end;
end;

procedure Tf_czygl.chbDblClick(Sender: TObject);
var
  Key: Word;
begin
  inherited;
  Key := vk_Return;
  chb.OnKeyDown(sender,key,[ssShift]);
end;

procedure Tf_czygl.B3Click(Sender: TObject);
var
  i: Integer;
begin
  if (Trim(czymc.Text)<>'')and(Trim(czymm.Text)<>'')and(Trim(czyjb.Text)<>'')then
  begin
    with Data.Query2 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from t_employee where ygmc = :a');
      paramByName('a').AsString := Trim(czymc.Text);
      Open;
    end;
    if Data.Query2.RecordCount<0 then
    begin
      Application.MessageBox('员工不存在.','提示',64);
      czymc.Clear;
      Exit;
    end
    else
    begin
      with Data.Query2 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select * from t_czyxx where czymc = :a');
        paramByName('a').AsString := Trim(czymc.Text);
        Open;
      end;
      if Data.Query2.RecordCount>0 then
      begin
        Application.MessageBox('该操作员已经存在.','提示',64);
        czymc.Clear;
        Exit;
      end;
    end;
    Try
    Data.Database.StartTransaction;
    with Data.Query2 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('insert t_czyxx values (:a,:b,:c)');
      ParamByName('a').AsString := Trim(czymc.Text);
      ParamByName('b').AsString := Trim(czymm.Text);
      ParamByName('c').AsInteger := czyjb.ItemIndex;
      ExecSQL;
    end;
    with data.Query2 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('insert t_czyqx values(:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l,:m,:n,:o,:p,:q)');
      ParamByName('a').AsString := Trim(czymc.Text);
      For i:=1 to 16 do
      begin
        if czyjb.ItemIndex = 1 then //系统管理员,具有所有权限
        begin
          Params[i].AsInteger := 0;
        end
        else
        begin
          if gn[i-1].Qx = True then
            Params[i].AsInteger := 0
          else
            Params[i].AsInteger := 1;
        end;
      end;
      ExecSQL;
    end;
    Data.Database.Commit;
    B4.OnClick(Sender);
    Application.MessageBox('操作成功.','提示',64);
    b3.Enabled := False;
    Except
      Data.Database.Rollback;
      Application.MessageBox('操作失败.','提示',64);
    end;
  end
  else
    Application.MessageBox('数据项不能为空.','提示',64);
end;

procedure Tf_czygl.czymmKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if Key = vk_Return then
    czyjb.SetFocus;
end;

procedure Tf_czygl.B9Click(Sender: TObject);
begin
  Data.Query1.First;
  B2.Enabled := True;
  B5.Enabled := True;
  B3.Enabled := False;
  B9.Enabled := False;
  B10.Enabled := False;
  B11.Enabled := True;
  B12.Enabled := True;
  EditValue;
end;

procedure Tf_czygl.B10Click(Sender: TObject);
begin
  inherited;
  Data.Query1.Prior;
  B2.Enabled := True;
  B5.Enabled := True;
  B3.Enabled := False;
  B11.Enabled := True;
  B12.Enabled := True;
  if Data.Query1.Bof = True then
  begin
    B9.Enabled := False;
    B10.Enabled := False;
  end;
  EditValue;
end;

procedure Tf_czygl.B11Click(Sender: TObject);
begin
  inherited;
  Data.Query1.Next;
  B2.Enabled := True;
  B5.Enabled := True;
  B3.Enabled := False;
  B9.Enabled := True;
  B10.Enabled := True;
  if Data.Query1.Eof = True then
  begin
    B11.Enabled := False;
    B12.Enabled := False;
  end;
  EditValue;
end;

procedure Tf_czygl.B12Click(Sender: TObject);
begin
  inherited;
  Data.Query1.Last;
  B2.Enabled := True;
  B3.Enabled := False;
  B5.Enabled := True;
  B9.Enabled := True;
  B10.Enabled := True;
  B11.Enabled := False;
  B12.Enabled := False;
  EditValue;
end;

procedure Tf_czygl.B1Click(Sender: TObject);
var
  i: Integer;
begin
  inherited;
  czymc.Clear;
  czymm.Clear;
  b3.Enabled := True;
  For i := 0 to 15 do
    gn[i].Qx := False;
  iniGrid;
  czymc.SetFocus;
end;

procedure Tf_czygl.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Case Key of
    VK_INSERT : if B1.Enabled = True then
                  B1.OnClick(Sender);
    VK_F2: if B2.Enabled = True then
             B2.OnClick(Sender);
    VK_F3: if B3.Enabled = True then
           B3.OnClick(Sender);
    VK_End: if B4.Enabled = True then
              B4.OnClick(Sender);
    VK_Left: if (B9.Enabled = True)and(Shift =[ssAlt]) then
               B9.OnClick(Sender);
    VK_Up: if (B10.Enabled = True)and(Shift =[ssAlt]) then
             B10.OnClick(Sender);
    VK_Down: if (B11.Enabled = True)and(Shift =[ssAlt]) then
               B11.OnClick(Sender);
    VK_Right: if (B12.Enabled = True)and(Shift =[ssAlt]) then
                B12.OnClick(Sender);
    VK_DELETE: if B5.Enabled = True then
                 B5.OnClick(Sender);
    VK_ESCAPE: if B8.Enabled = True then
                 B8.OnClick(Sender);
  end;

end;

procedure Tf_czygl.B2Click(Sender: TObject);
var
  i: Integer;
begin
  if (Trim(czymc.Text)<>'')and(Trim(czymm.Text)<>'')and(Trim(czyjb.Text)<>'')then
    if Application.MessageBox('确实要修改当前记录吗?','提示',mb_yesNo)=Id_Yes then
    begin
      with Data.Query2 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select * from t_employee where ygmc = :a');
        ParamByName('a').AsString := Trim(czymc.Text);
        Open;
      end;
      if Data.Query2.RecordCount<1 then
      begin
        czymc.Clear;
        Application.MessageBox('该员工不存在.','提示',64);
      end
      else
      begin
        if Trim(czymc.Text)<>Trim(Data.Query1.FieldByName('czymc').AsString) then
        begin
          czymc.Text:=Data.Query1.FieldByName('czymc').AsString;
          Application.MessageBox('操作员名称不能更改.','提示',64);
          Exit;
        end;
        //如果操作员信息表中只有一个系统管理员,修改系统管理员为普通操作员将不允许修改操作员信息
        if czyjb.ItemIndex = 0 then
          if Data.Query1.FieldByName('czyjb').AsInteger = 1 then
          begin
            with Data.Query2 do
            begin
              Close;
              SQL.Clear;
              SQL.Add('select * from t_czyxx where czyjb = 1');
              Open;
            end;
            if Data.Query2.RecordCount<=1 then
            begin
              Application.MessageBox('目前只有一个系统管理员,不能修改操作员级别.','提示',64);
              Exit;
            end;
          end;
        try
        Data.Database.StartTransaction;
        with Data.Query2 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('update t_czyxx set czymm = :a , czyjb = :b where czymc = :c');
          ParamByName('a').AsString := Trim(czymm.Text);
          ParamByName('b').AsInteger := czyjb.ItemIndex;
          ParamByName('c').AsString := Trim(Data.Query1.FieldByName('czymc').AsString);
          ExecSQL;
        end;
        with Data.Query2 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('update t_czyqx set bmdm = :a,fkdm = :b,cgth =:c,kcjgtz=:d,spdj =:e,kcsxsgl=:f,kczlwh =:g,bscl =:h,bycl=:i,xsth = :j,csjk =:k,csyfk=:l,khjk=:m,khyfk =:n,ycbhs=:o,lrfx = :p where czymc = :q');
          ParamByName('q').AsString := Trim(Data.Query1.FieldByName('czymc').AsString);
          if czyjb.ItemIndex = 1 then
          begin
            For i := 0 to 15 do
              Params[i].AsInteger := 0;
          end
          else
          begin
            For i := 0 to 15 do
              if gn[i].Qx = True then
                Params[i].AsInteger := 0
              else
                Params[i].AsInteger := 1;
          end;
          ExecSQL;
        end;
        Data.Database.Commit;
        b4.OnClick(Sender);
        Application.MessageBox('修改成功.','提示',64);
        Except
          Data.Database.Rollback;
          Application.MessageBox('修改失败.','提示',64);
        end;
      end;
    end;
end;

procedure Tf_czygl.B5Click(Sender: TObject);
begin
  inherited;
  if Application.MessageBox('确实要删除当前记录吗?','提示',mb_yesno)=id_yes then
  begin
    //如果当前只有一个系统管理员,不允许删除系统管理员
    if Data.Query1.FieldByName('czyjb').AsInteger = 1 then
    begin
      with Data.Query2 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select * from t_czyxx where czyjb = 1');
        Open;
      end;
      if Data.Query2.RecordCount<=1 then
      begin
        Application.MessageBox('目前只有一个系统管理员,不能删除系统管理员.','提示',64);
        Exit;
      end;
    end;
    Try
      Data.Database.StartTransaction;
      with Data.Query2 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('delete t_czyqx where czymc = :a');
        ParamByName('a').AsString := Trim(Data.Query1.FieldByName('czymc').AsString);
        ExecSQL;
      end;
      Data.Query1.Delete;
      Data.Database.Commit;
      Application.MessageBox('删除成功.','提示',64);
      B4.OnClick(Sender);
    Except
      Data.Database.Rollback;
      Application.MessageBox('操作失败.','提示',64);
    end;
  end;
end;

procedure Tf_czygl.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  Data.Query1.RequestLive := False;
end;

end.

⌨️ 快捷键说明

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