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

📄 add_class_pas.~pas

📁 delphi6.0电子寻更源程序,用来计算保安有无查抄
💻 ~PAS
字号:
unit add_class_pas;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls, DBCtrls, RXCtrls, Buttons, ExtCtrls, Mask, ToolEdit,db;

type
  Tadd_class = class(TForm)
    Panel1: TPanel;
    BitBtn5: TBitBtn;
    BitBtn2: TBitBtn;
    DBLookupComboBox1: TDBLookupComboBox;
    Edit2: TEdit;
    Edit1: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Label5: TLabel;
    Label8: TLabel;
    Label10: TLabel;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    Label11: TLabel;
    e_time: TEdit;
    Label12: TLabel;
    Label13: TLabel;
    procedure FormShow(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure DBLookupComboBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DateTimePicker1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DateTimePicker2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit6KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit5KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit6Exit(Sender: TObject);
    procedure Edit5Exit(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure DateTimePicker2Exit(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure e_timeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure e_timeKeyPress(Sender: TObject; var Key: Char);
    procedure Edit6KeyPress(Sender: TObject; var Key: Char);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
    e_linename,e_shifts:string;
     function dectime(time1,time2:Tdatetime):integer;
  end;

var
  add_class: Tadd_class;

implementation
uses clsss_pas,menu,password_unit,dm_class_pas;
{$R *.DFM}
 function tadd_class.dectime(time1,time2:Tdatetime):integer;
begin
if time2>time1  then
result:=round(1440*(frac(time2)-frac(time1)))
else
if time2<time1 then
result:= 1440-round(1440*(frac(time1)-frac(time2)))
else if time2=time1 then
result:=1440 ;
end;
procedure Tadd_class.FormShow(Sender: TObject);
begin
if (screen.Height<600) and( screen.Width<800) then
  begin
  scaled:=true;
  height:=298;//round//(height*longint(screen.height)*96 / 600/screen.pixelsperinch);
  width :=224;//round//( width *longint(screen.width)*96 / 800/screen.pixelsperinch);
  left:=194;//round//((screen.Width-Width)/2);
  top:=111;//round//((screen.height-self.height)/2);
  //ScaleControls(screen.width, 800);
  //ScaleControls(96,screen.pixelsperinch);
  end
  else
  begin
  self.Height:=291;
  self.Width:=230;
  end;
dblookupcombobox1.setfocus;
dm_class_form.q_class_ls.close;
dm_class_form.q_class_ls.Open;
end;

procedure Tadd_class.BitBtn2Click(Sender: TObject);
begin
close;
end;

procedure Tadd_class.DBLookupComboBox1KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
if key =vk_return then
edit2.SetFocus ;

end;

procedure Tadd_class.Edit2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key =vk_return then
datetimepicker1.SetFocus ;

end;

procedure Tadd_class.DateTimePicker1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key =vk_return then
datetimepicker2.SetFocus ;

end;

procedure Tadd_class.DateTimePicker2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key =vk_return then
edit6.SetFocus ;
end;

procedure Tadd_class.Edit6KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key =vk_return then
begin
e_time.SetFocus ;
exit;
end;
end;

procedure Tadd_class.Edit5KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key =vk_return then
edit1.SetFocus ;

end;

procedure Tadd_class.Edit6Exit(Sender: TObject);
var _chkcycl:integer;
begin
{IF trim(EDIT5.Text)='' THEN
edit5.Text:='0';
if trim(edit1.Text)=''  then
edit1.Text:='0';
}if trim(edit6.text)<>'' then
 begin
  try   //try
    _chkcycl:=strtoint(edit6.text);
    if _chkcycl<=0 then
     begin
       Application.MessageBox('請輸入大於零的巡更周期!','消息',MB_ICONINFORMATION);
       edit6.text:='';
       edit6.SetFocus;
       exit;
     end;
  except
     on E: EConvertError do
     begin
       Application.MessageBox('請輸入準確地巡更周期!','消息',MB_ICONINFORMATION);
       edit6.text:='';
       edit6.SetFocus;
       exit;
     end;
  end; //try
  if _chkcycl>dectime(datetimepicker1.Time,datetimepicker2.Time ) then
   begin
   Application.MessageBox('巡更周期不能大於班次的下班時間與上班時間之差!','消息',MB_ICONINFORMATION);
   edit6.Text:='';
   edit6.SetFocus;
   exit;
   end;
 e_time.Text:=inttostr((dectime(datetimepicker1.time,datetimepicker2.time))div strtoint(edit6.text)) ;
 end;

end;

procedure Tadd_class.Edit5Exit(Sender: TObject);
begin
IF trim(EDIT1.Text)='' THEN
edit1.Text:='0';
if trim(edit5.Text)<>'' then
begin
 try//try
 if strtoint(edit5.text)<0 then
 begin
 Application.MessageBox('請輸入大於零的數位','消息',MB_ICONINFORMATION);
 edit5.SetFocus ;
 edit5.Text:='';
 exit;
 end;
 except
 on E: EConvertError do
     begin
       Application.MessageBox('請輸入整數!','消息',MB_ICONINFORMATION);
       edit5.text:='';
       edit5.SetFocus;
       exit;
     end;
 end;//try
end;
end;
procedure Tadd_class.Edit1Exit(Sender: TObject);
begin
IF trim(EDIT5.Text)='' THEN
edit5.Text:='0';
if trim(edit1.Text)<>'' then
begin
 try//try
 if strtoint(edit1.text)<0 then
 begin
 Application.MessageBox('請輸入大於零的數位','消息',MB_ICONINFORMATION);
 edit1.SetFocus ;
 edit1.Text:='';
 exit;
 end;
 except
 on E: EConvertError do
     begin
       Application.MessageBox('請輸入整數!','消息',MB_ICONINFORMATION);
       edit1.text:='';
       edit1.SetFocus;
       exit;
     end;
 end;//try
end;

end;

procedure Tadd_class.DateTimePicker2Exit(Sender: TObject);
begin
if edit6.Text='' then
   begin
   edit6.Text:=inttostr(dectime(datetimepicker1.time,datetimepicker2.time));
   e_time.Text:='1';
   end
   else
   begin
   if strtoint(edit6.text)>dectime(datetimepicker1.Time,datetimepicker2.Time ) then
      begin
      e_time.Text:='1';
      edit6.Text:=inttostr(dectime(datetimepicker1.time,datetimepicker2.time));
      end;
   end;
end;

procedure Tadd_class.BitBtn5Click(Sender: TObject);
var
bookmark1:tbookmark ;
recno1,recno2:integer;
begin
dm_class_form.Q_FIND.close;
dm_class_form.q_find.open;
if dblookupcombobox1.KeyValue =null then
      begin
      Application.MessageBox('請輸入線路!','消息',MB_ICONINFORMATION);
      dblookupcombobox1.SetFocus;
      exit;
      end;
      if edit2.Text='' then
      begin
      Application.MessageBox('請輸入班次!','消息',MB_ICONINFORMATION);
      edit2.SetFocus ;
      exit;
      end  ;
      if edit6.Text='' then
      begin
      Application.MessageBox('請輸入周期!','消息',MB_ICONINFORMATION);
      edit6.SetFocus ;
     //gotobookmark(bookmark1);
     //freebookmark(bookmark1);
      exit;
      end
      else
        begin
        if strtoint(edit6.text)>dectime(datetimepicker1.Time,datetimepicker2.Time ) then
          begin
          Application.MessageBox('巡更周期不能大於班次的下班時間與上班時間之差!','消息',MB_ICONINFORMATION);
          edit6.Text:='';
          edit6.SetFocus;
          exit;
          end;
        end;
      if edit5.Text='' then
      begin
      Application.MessageBox('請輸入偏差上限!','消息',MB_ICONINFORMATION);
      edit5.SetFocus ;
      exit;
      end;
      if edit1.Text='' then
      begin
      Application.MessageBox('請輸入偏差下限!','消息',MB_ICONINFORMATION);
      edit6.SetFocus ;
      exit;
      end;
with dm_class_form.q_class_ls do
begin
if add_class.Caption='增加巡更班次資訊' then
begin    //增加
try       //try
if dm_class_form.q_find.Locate('linename;shifts',vararrayOf([dblookupcombobox1.KeyValue ,edit2.text]),[loCaseInsensitive]) then
          begin
          Application.MessageBox('該線路上已有相同的班次,請重新選擇班次!','消息',MB_ICONINFORMATION);
          edit2.SetFocus ;
          edit2.Text:='';
          exit;
          end;
       append;
       edit;
       fieldbyname('linename').asstring:=uppercase(dblookupcombobox1.Text);
       fieldbyname('shifts').asstring:=uppercase(edit2.Text);
       fieldbyname('firstp').asdatetime:=datetimepicker1.Time ;
       fieldbyname('lastp').asdatetime:=datetimepicker2.Time;
       fieldbyname('chkcycl').asinteger:=strtoint(edit6.Text);
       fieldbyname('dgpcsx').asinteger:=strtoint(edit5.text);
       fieldbyname('dgpcxx').asinteger:=strtoint(edit1.Text);
       fieldbyname('times').asinteger:=strtoint(e_time.text);
       post;
       add_class.Close; 
except
Application.MessageBox('資料錄入有誤,請重新錄入!','消息',MB_ICONINFORMATION);
exit;
end; //try
end //增加
else
begin   //修改
bookmark1:=dm_class_form.q_class.GetBookmark;
recno1:=dm_class_form.q_class.RecNo;
try
if dm_class_form.q_class.Locate('linename;shifts',vararrayOf([dblookupcombobox1.KeyValue ,edit2.text]),[loCaseInsensitive]) then
           begin
           recno2:=dm_class_form.q_class.RecNo;
              if recno1<>recno2 then
                begin
                Application.MessageBox('該線路上已有相同的次序號!','消息',MB_ICONINFORMATION);
                edit2.SetFocus ;
                dm_class_form.q_class.gotobookmark(bookmark1);
                exit;
                end;
           end;
       Locate('id',(dm_class_form.q_class.fieldbyname('id').asinteger),[loCaseInsensitive]);
       edit;
       fieldbyname('linename').asstring:=uppercase(dblookupcombobox1.Text);
       fieldbyname('shifts').asstring:=uppercase(edit2.Text);
       fieldbyname('firstp').asdatetime:=datetimepicker1.Time ;
       fieldbyname('lastp').asdatetime:=datetimepicker2.Time;
       fieldbyname('chkcycl').asinteger:=strtoint(edit6.Text);
       fieldbyname('dgpcsx').asinteger:=strtoint(edit5.text);
       fieldbyname('dgpcxx').asinteger:=strtoint(edit1.Text);
       fieldbyname('times').asinteger:=strtoint(e_time.text);
       post;
       with dm_class_form.q_edit do
          begin
          close;
          sql.Clear ;
          sql.Add('update fpxl set shift='''+uppercase(edit2.Text)+''',linename='''+uppercase(dblookupcombobox1.Text)+'''where linename='''+e_linename+''' and shift='''+e_shifts+'''  ') ;
          execsql;
          end;
       add_class.Close;
except
Application.MessageBox('資料錄入有誤,請重新錄入!','消息',MB_ICONINFORMATION);
exit;
end;
end;//修改
end;
end;
procedure Tadd_class.FormClose(Sender: TObject; var Action: TCloseAction);
begin
dm_class_form.q_class.close;
dm_class_form.q_class.open;
dm_class_form.q_class.Locate('id',(dm_class_form.q_class_ls.fieldbyname('id').asinteger),[loCaseInsensitive]);

end;

procedure Tadd_class.Button1Click(Sender: TObject);
begin
Application.MessageBox(Pchar('width='+inttostr(self.width)+'--'+'height='+inttostr(self.height)+'--'+'left='+inttostr(self.left)+'--top='+inttostr(self.top)),'消息',MB_ICONINFORMATION);


end;

procedure Tadd_class.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then
BitBtn5click(self);
end;

procedure Tadd_class.e_timeKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key =vk_return then
   begin
   edit5.SetFocus ;
   exit;
   end;
end;

procedure Tadd_class.e_timeKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9']) and (ord(key)<>8) then
   begin
   key:=#0;
   exit;
   end;
end;

procedure Tadd_class.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9']) and (ord(key)<>8) then
   begin
   key:=#0;
   exit;
   end;
end;

procedure Tadd_class.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9']) and (ord(key)<>8) then
   begin
   key:=#0;
   exit;
   end;

end;

procedure Tadd_class.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9']) and (ord(key)<>8) then
   begin
   key:=#0;
   exit;
   end;
end;

end.

⌨️ 快捷键说明

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