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

📄 u_room_bed.pas

📁 超信人力资源管理系统,一个用Delphi编写的人事管理系统
💻 PAS
字号:
unit U_Room_bed;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, U_Form_base, StdCtrls, Grids, DBGridEh, ExtCtrls, DB, ADODB,
  Buttons;

type
  TF_Room_bed = class(TF_Form_base)
    Panel1: TPanel;
    DBGridEh1: TDBGridEh;
    Label1: TLabel;
    Splitter1: TSplitter;
    Q_mainRooMID: TStringField;
    Q_maintype: TStringField;
    Q_mainMantype: TStringField;
    Q_mainPlace: TStringField;
    Q_mainBedcount: TIntegerField;
    Q_mainUsedbed: TIntegerField;
    Panel2: TPanel;
    Q_detailBedid: TStringField;
    BitBtn1: TBitBtn;
    GroupBox1: TGroupBox;
    DBGridEh2: TDBGridEh;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Q_mainBedSetted: TBooleanField;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  F_Room_bed: TF_Room_bed;

implementation

uses U_data;

{$R *.dfm}

procedure TF_Room_bed.BitBtn1Click(Sender: TObject);
var I, J: integer;
begin
  inherited;
  if MessageDlg('真的要设置床位吗?', mtCustom, [mbOK, mbCancel], 0) = mrok then
  begin
    if DBGRIDEH1.SelectedRows.Count <= 0 then
    begin
      MessageDlg('你还没有选择要设置床位的宿舍!', mtWarning, [mbOK], 0);
      Abort;
    end
    else
    begin
      for i := 0 to dbGrideh1.SelectedRows.Count - 1 do
      begin
        dbGrideh1.DataSource.DataSet.GotoBookmark(pointer(DBGrideh1.SelectedRows.Items[i]));
        if dbGrideh1.DataSource.DataSet.Fieldbyname('BedSetted').AsBoolean then continue;
        sql_s := 'update TB_Room_base set Bedsetted=1 where Roomid=''' + q_main.Fieldbyname('Roomid').AsString + '''';
        Sql_exec(sql_S);
        for J := 1 to dbGrideh1.DataSource.DataSet.Fieldbyname('Bedcount').AsInteger do //根据床位数生成床号
        begin
          if J <= 9 then //小于9时
            Sql_S := 'insert into TB_Room_bed (Roomid,Bedid) values(''' + dbGrideh1.DataSource.DataSet.fieldbyname('Roomid').AsString + ''','''
              + dbGrideh1.DataSource.DataSet.fieldbyname('Roomid').AsString + '-0' + inttostr(J) + ''')'
          else
            Sql_s := 'insert into TB_Room_bed (Roomid,Bedid) values(''' + dbGrideh1.DataSource.DataSet.fieldbyname('Roomid').AsString + ''','''
              + dbGrideh1.DataSource.DataSet.fieldbyname('Roomid').AsString + '-' + inttostr(J) + ''')';
          Sql_exec(sql_s);
        end;
      end;
      Q_Detail.Close;
      Q_detail.Open;
    end;
  end;
  Q_main.Refresh;
end;

procedure TF_Room_bed.BitBtn3Click(Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TF_Room_bed.FormShow(Sender: TObject);
begin
  inherited;
  Q_main.Open;
  Q_Detail.Open; //根据床位数生成床号
end;

procedure TF_Room_bed.BitBtn2Click(Sender: TObject);
begin
  inherited;
if Q_main.RecordCount <= 0 then exit;
  if Q_main.FieldByName('usedBed').AsInteger > 0 then
  begin
    MessageDlg('此宿舍已经有人员入住,请选退房!', mtWarning, [mbOK], 0);
    abort;
  end;
  if MessageDlg('确定要删除以前的设定吗?', mtCustom, [mbOK, mbCancel], 0) = mrok then
  begin
    try
      begin
        Sql_s := 'delete from TB_Room_bed where Roomid=''' + q_main.Fieldbyname('Roomid').AsString + '''';
        Sql_exec(sql_s);
        Sql_s := 'update TB_Room_base set Bedsetted=0 where Roomid=''' + q_main.Fieldbyname('Roomid').AsString + '''';
        Sql_exec(sql_s);
      end
    except
      raise;
    end;
    Q_Detail.Close;
    Q_Detail.Open;
  end;
  Q_main.Refresh;
end;

initialization
  RegisterClass(TF_Room_bed);

end.

⌨️ 快捷键说明

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