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

📄 input.pas

📁 一个用Delphi做的不错的学生宿舍管理系统!界面比前一个好看!
💻 PAS
字号:
unit Input;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls, ComCtrls, Buttons,db, XPMenu;

type
  TInputForm = class(TForm)
    StatusBar1: TStatusBar;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Image1: TImage;
    GroupBox3: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    XHEdit: TEdit;
    XNedit: TEdit;
    XPComboBox: TComboBox;
    JYComboBox: TComboBox;
    PGEdit: TEdit;
    PSEdit: TEdit;
    YXDateTimePicker: TDateTimePicker;
    PYEdit: TEdit;
    ZZComboBox: TComboBox;
    PSDateTimePicker: TDateTimePicker;
    JTEdit: TEdit;
    LXEdit: TEdit;
    Label13: TLabel;
    Memo1: TMemo;
    CheckBox1: TCheckBox;
    Button1: TButton;
    Button2: TButton;
    PSBT: TSpeedButton;
    XPMenu1: TXPMenu;
    procedure PSBTClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  InputForm: TInputForm;

implementation
uses classroom,md;

{$R *.dfm}
//当录入一条记录时。对应的寝室实住人数自动增加
procedure  ChangeRenNum(s:string);
begin
with datamd.ADOBTPd do
begin
close;
sql.Clear;
sql.add('update tbpd set 实住人数=实住人数+1 where 寝室号='''+s+'''');
ExecSQL;
end;
end;

//isempty函数是判断相应的字段是否为空,判断传递过来的对象是否与已知对象相同
//相同再判断是不是空的
function IsEmpty1(Sender:Tobject):boolean;
begin
if (sender is Tedit) then    //判断是否为Tedit控件
    if trim((sender as Tedit).Text)='' then
    begin
    showmessage('请输入数据');
    result:=false;
    (sender as tedit).SetFocus;
    exit;
    end;
if (sender is Tcombobox) then  //判断是否为Tcombobox
    if trim((sender as Tcombobox).Text)='' then
      begin
      result:=false;
      showmessage('请输入数据');
      (sender as Tcombobox).SetFocus;
      exit;
      end;
if (sender is TDatetimePicker) then //判断是否为TDateTimePicker
    if trim(datetimetostr((sender as TDateTimePicker).DateTime))='' then
      begin
      result:=false;
      showmessage('请输入数据');
      (sender as TDateTimePicker).SetFocus;
      exit;
      end;
result:=true;
end;
//checkCom 过程是当修改是判断当前记录的值。在combobox中的位置。以及移到相应的值上面
procedure checkcom(Sender:TObject;str:string);
var
i:integer;
begin
for i:=0 to (sender as Tcombobox).Items.Count-1 do
begin
  (sender as Tcombobox).ItemIndex:=i;
  if (sender as Tcombobox).Text=str then
   exit;
end;
end;

procedure TInputForm.PSBTClick(Sender: TObject);
begin
application.CreateForm(TPsForm,PsForm);
Psform.ShowModal;
psform.Free;
end;
procedure TInputForm.Button1Click(Sender: TObject);
begin
with datamd.ADOOrder do
begin
   close;
   sql.Clear;
   sql.Add('select * from TBorder');
   open;  //打开数据库,以便做相就应操作
   if (not checkbox1.Checked) and IsEmpty1(xhedit) and isempty1(xnedit) and
   isempty1(xpcombobox) and isempty1(jycombobox) and isempty1(psedit) and isempty1(pyedit)
   and isempty1(zzcombobox) and isempty1(jtedit) and isempty1(lxedit) and isempty1(YXDateTimePicker) and isempty1(psDateTimePicker) then
   if locate('学号',trim(Xhedit.Text),[lopartialkey]) then
   begin
   showmessage('该记录已经存在');
   cancel;
   end
   else
   begin
     append;
     fieldbyname('学号').AsString:=Trim(Xhedit.Text);
     fieldbyname('姓名').AsString:=trim(xnedit.Text);
     fieldbyname('性别').AsString:=trim(xpcombobox.Text);
     fieldbyname('专业').AsString:=trim(jycombobox.Text);
     fieldbyname('班级').AsString:=trim(pGedit.Text);
     fieldbyname('寝室号').AsString:=trim(psedit.Text);
     fieldbyname('入学日期').AsDateTime:=yxdatetimepicker.Date;
     fieldbyname('出生年月').AsDateTime:=psdatetimepicker.Date;
     fieldbyname('毕业学校').AsString:=pyedit.Text;
     fieldbyname('政治面貌').AsString:=zzcombobox.Text;
     fieldbyname('联系方式').AsString:=lxedit.Text;
     fieldbyname('家庭地址').AsString:=jtedit.Text;
     fieldbyname('状态').AsString:='入学';
     fieldbyname('备注').AsVariant:=memo1.Text;
     try
     if messagedlg('请确认输入的数据无误,然后写入数据库!',mtconfirmation,[mbYes,mbNO],0)=mryes then
        begin
        post;
        ChangeRenNum(psedit.Text);
        end
     else
       begin
       showmessage('操作已取消,请重新输入');
       cancel;
       exit;
       end;
     except
     on EdatabaseError do
     end;
   end;
  if checkbox1.Checked then
  begin
   if locate('学号',trim(Xhedit.Text),[lopartialkey]) then
   begin
   showmessage('该记录已经存在');
   cancel;
   end
   else
   begin
   edit;
     fieldbyname('学号').AsString:=Trim(Xhedit.Text);
     fieldbyname('姓名').AsString:=trim(xnedit.Text);
     fieldbyname('性别').AsString:=trim(xpcombobox.Text);
     fieldbyname('专业').AsString:=trim(jycombobox.Text);
     fieldbyname('班级').AsString:=trim(pGedit.Text);
     fieldbyname('寝室号').AsString:=trim(psedit.Text);
     fieldbyname('入学日期').AsDateTime:=yxdatetimepicker.DateTime;
     fieldbyname('出生年月').AsDateTime:=psdatetimepicker.DateTime;
     fieldbyname('毕业学校').AsString:=psedit.Text;
     fieldbyname('政治面貌').AsString:=zzcombobox.Text;
     fieldbyname('联系方式').AsString:=lxedit.Text;
     fieldbyname('家庭地址').AsString:=jtedit.Text;
     fieldbyname('备注').AsVariant:=memo1.Text;
     if messagedlg('请确认输入的数据无误,然后写入数据库!',mtconfirmation,[mbYes,mbNO],1)=mryes then
       post
      else
       begin
       showmessage('操作已取消,请重新输入');
        cancel;
       end;
     end;
   end;
 end;
end;

procedure TInputForm.CheckBox1Click(Sender: TObject);
begin
//当单击选择框时做相应的改变。当选中时修改最后一条记录。当没有选中时
//最后一条记录
with datamd.ADOOrder do
begin
   close;
   sql.Clear;
   sql.Add('select * from TBorder');
   open;
  if checkbox1.Checked then
  begin
   last;
   prior;
     Xhedit.Text:=fieldbyname('学号').AsString;
     xnedit.Text:=fieldbyname('姓名').AsString;
     checkcom(xpcombobox,fieldbyname('性别').AsString);
     checkcom(jycombobox,fieldbyname('专业').AsString);
     pGedit.Text:=fieldbyname('班级').AsString;
     psedit.Text:=fieldbyname('寝室号').AsString;
     yxdatetimepicker.DateTime:=fieldbyname('入学日期').AsDateTime;
     psdatetimepicker.DateTime:=fieldbyname('出生年月').AsDateTime;
     pyedit.Text:=fieldbyname('毕业学校').AsString;
     checkcom(zzcombobox,fieldbyname('政治面貌').AsString);
     lxedit.Text:=fieldbyname('联系方式').AsString;
     jtedit.Text:=fieldbyname('家庭地址').AsString;
     memo1.Text:=fieldbyname('备注').AsVariant;
     last;
   end
   else
   begin
   xhedit.Clear;
   xnedit.Clear;
   pgedit.Clear;
   psedit.Text;
   psedit.Clear;
   pyedit.Clear;
   lxedit.Clear;
   jtedit.Clear;
   memo1.Clear;
   last;
   end;
 end;
end;

procedure TInputForm.Button2Click(Sender: TObject);
begin
close;
end;

end.

⌨️ 快捷键说明

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