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

📄 newstu.pas

📁 老年人大学的学籍管理,主要是学费收取
💻 PAS
字号:
unit newstu;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, base, ExtCtrls, SUIForm, Grids, DBGridEh, StdCtrls,
  SUIImagePanel, SUIDBCtrls, SUIButton, ComCtrls, SUIComboBox, SUIEdit, DB,
  ADODB;

type
  Tfrmnewstu = class(Tbaseform)
    pnl: TsuiPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label15: TLabel;
    Label19: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label25: TLabel;
    Label27: TLabel;
    dgstu: TDBGridEh;
    suiPanel2: TsuiPanel;
    btnnew: TsuiButton;
    btndel: TsuiButton;
    btnedit: TsuiButton;
    btnsave: TsuiButton;
    suiDBNavigator1: TsuiDBNavigator;
    btnmoney: TsuiButton;
    edtname: TsuiEdit;
    cbxrace: TsuiComboBox;
    cbxsex: TsuiComboBox;
    cbxedu: TsuiComboBox;
    cbxpersonal: TsuiComboBox;
    cbxmarry: TsuiComboBox;
    cbxparty: TsuiComboBox;
    edtaddress: TsuiEdit;
    edtphone: TsuiEdit;
    edtlateunit: TsuiEdit;
    edtjob: TsuiEdit;
    edttechang: TsuiEdit;
    borndate: TDateTimePicker;
    schooldate: TDateTimePicker;
    adqstu: TADOQuery;
    dsstu: TDataSource;
    Label8: TLabel;
    edtpersonid: TsuiEdit;
    cbxdistrict: TsuiComboBox;
    Label10: TLabel;
    Label13: TLabel;
    edtparname: TsuiEdit;
    Label14: TLabel;
    edtparphone: TsuiEdit;
    edtid: TsuiEdit;
    workmemo: TMemo;
    Label16: TLabel;
    awardmemo: TMemo;
    Label17: TLabel;
    edtiswork: TsuiEdit;
    suiButton1: TsuiButton;
    btnall: TsuiButton;
    btnjiao: TsuiButton;
    btnwei: TsuiButton;
    edtstuid: TsuiEdit;
    Label18: TLabel;
    procedure btnnewClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btnmoneyClick(Sender: TObject);
    procedure btnsaveClick(Sender: TObject);
    procedure btndelClick(Sender: TObject);
    procedure dsstuDataChange(Sender: TObject; Field: TField);
    procedure btneditClick(Sender: TObject);
    procedure suiButton1Click(Sender: TObject);
    procedure btnallClick(Sender: TObject);
    procedure btnjiaoClick(Sender: TObject);
    procedure btnweiClick(Sender: TObject);
    procedure edtidKeyPress(Sender: TObject; var Key: Char);
    procedure edtpersonidKeyPress(Sender: TObject; var Key: Char);
    procedure edtphoneKeyPress(Sender: TObject; var Key: Char);
    procedure edtstuidKeyPress(Sender: TObject; var Key: Char);
    procedure edtstuidChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    editmodal:string;
    procedure iniform;
    procedure showdata;
    { Private declarations }
  public
    stuid,id:integer;
    stuname:string;
    { Public declarations }
  end;

var
  frmnewstu: Tfrmnewstu;

implementation

uses dm, pub, umain, money, newstufind, qt, stumoney;

{$R *.dfm}

procedure tfrmnewstu.showdata;
begin
  edtid.Text:=adqstu.fieldbyname('stuid').AsString;
  edtname.Text:=adqstu.fieldbyname('stuname').AsString;
  cbxsex.Text:=adqstu.fieldbyname('sex').AsString;
  borndate.DateTime:=adqstu.fieldbyname('borndate').AsDateTime;
  cbxedu.Text :=adqstu.fieldbyname('edu').AsString;
  cbxrace.Text:=adqstu.fieldbyname('race').AsString;
  cbxpersonal.Text:=adqstu.fieldbyname('personal').AsString;
  edtpersonid.Text:=adqstu.fieldbyname('personid').AsString;
  cbxmarry.Text:=adqstu.fieldbyname('marry').AsString;
  cbxdistrict.Text:=adqstu.fieldbyname('district').AsString;
  edtaddress.Text:=adqstu.fieldbyname('address').AsString;
  edtphone.Text:=adqstu.fieldbyname('phone').AsString;
  cbxparty.Text:=adqstu.fieldbyname('party').AsString;
  edtparname.Text:=adqstu.fieldbyname('parname').AsString;
  edtparphone.Text:=adqstu.fieldbyname('parphone').AsString;
  edtiswork.Text:=adqstu.fieldbyname('iswork').AsString;
  edtlateunit.Text:=adqstu.fieldbyname('lateunit').AsString;
  edtjob.Text:=adqstu.fieldbyname('job').AsString;
  edttechang.Text:=adqstu.fieldbyname('techang').AsString;
  schooldate.DateTime:=adqstu.fieldbyname('schooldate').AsDateTime;
  workmemo.Text:=adqstu.fieldbyname('workmemo').AsString;
  awardmemo.Text:=adqstu.fieldbyname('awardmemo').AsString;
end;

procedure Tfrmnewstu.btnnewClick(Sender: TObject);
var i:integer;
begin
  inherited;
  edtid.SetFocus;
  btndel.Enabled :=false;
  btnedit.Enabled :=false;
  btnsave.Enabled :=true;
  for i:=0 to pnl.ControlCount-1 do
    if pnl.Controls[i] is tsuiedit then
      tsuiedit(pnl.Controls[i]).Text:='';
  for i:=0 to pnl.ControlCount-1 do
    if pnl.Controls[i] is tsuicombobox then
      tsuicombobox(pnl.Controls[i]).ItemIndex :=-1;
  schooldate.DateTime:=now();
  editmodal:='add';
end;

procedure tfrmnewstu.iniform;
begin
  btnnew.Enabled :=true;
  btndel.Enabled :=true;
  btnedit.Enabled :=true;
  btnsave.Enabled :=false;
  pub.showrecord(adqstu,'*','newstu','id'); 
end;

procedure Tfrmnewstu.FormCreate(Sender: TObject);
var tmp:tadoquery;
begin
  inherited;
  tmp:=tadoquery.Create(nil);
  tmp.ConnectionString:=frmmain.adc.ConnectionString;
  pub.showrecord(tmp,'*','codesex','id');
  while not tmp.Eof do
    begin
    cbxsex.Items.Add(tmp.fieldbyname('code').AsString);
    tmp.Next;
    end;
  pub.showrecord(tmp,'*','codeedu','id');
  while not tmp.Eof do
    begin
    cbxedu.Items.Add(tmp.fieldbyname('code').AsString);
    tmp.Next;
    end;
  pub.showrecord(tmp,'*','coderace','id');
  while not tmp.Eof do
    begin
    cbxrace.Items.Add(tmp.fieldbyname('code').AsString);
    tmp.Next;
    end;
  pub.showrecord(tmp,'*','codemarry','id');
  while not tmp.Eof do
    begin
    cbxmarry.Items.Add(tmp.fieldbyname('code').AsString);
    tmp.Next;
    end;
  pub.showrecord(tmp,'*','codeparty','id');
  while not tmp.Eof do
    begin
    cbxparty.Items.Add(tmp.fieldbyname('code').AsString);
    tmp.Next;
    end;
  tmp.Free;
  iniform;
end;

procedure Tfrmnewstu.btnmoneyClick(Sender: TObject);
begin
  inherited;
  if adqstu.IsEmpty then
    begin
    application.MessageBox('学生表为空!','提示',mb_ok+mb_iconinformation);
    exit;
    end;
  stuid:=dgstu.Fields[1].asinteger;
  id:=dgstu.Fields[0].AsInteger;
  stuname:=dgstu.Fields[2].AsString;
  frmmoney:=tfrmmoney.Create(nil);
  frmmoney.ShowModal;
end;

procedure Tfrmnewstu.btnsaveClick(Sender: TObject);
begin
  inherited;
  if trim(edtid.Text)='' then
    begin
    application.MessageBox('学生不能为空!','提示',mb_ok+mb_iconinformation);
    exit;
    end;
  if trim(edtname.Text)='' then
    begin
    application.MessageBox('姓名不能为空!','提示',mb_ok+mb_iconinformation);
    exit;
    end;
  if cbxsex.Text='' then
    begin
    application.MessageBox('请选择性别!','提示',mb_ok+mb_iconinformation);
    exit;
    end;
  frmmain.adc.BeginTrans;
  if editmodal='add' then
    begin
    try
      with adqstu do
        begin
        sql.Clear;
        sql.Add('insert into newstu (stuid,stuname,sex,borndate,edu,race,personal,personid,marry,district,address,'+
        'phone,party,parname,parphone,schooldate,lateunit,job,'+
        'techang,iswork,workmemo,awardmemo,status) values ('+
        ' :v1,:v2,:v3,:v4,:v5,:v6,:v7,:v8,:v9,:v10,:v11,:v12,:v13,:v14,:v15,:v16,:v17,:v18,:v19,:v20,:v21,:v22,:v23)');
        //showmessage(sql.Text);
        parameters.ParamByName('v1').Value :=trim(edtid.Text);
        parameters.ParamByName('v2').Value :=trim(edtname.Text);
        parameters.ParamByName('v3').Value :=cbxsex.Text;
        parameters.ParamByName('v4').Value :=formatdatetime('yyyy-mm-dd',borndate.DateTime);
        parameters.ParamByName('v5').Value :=cbxedu.Text;
        parameters.ParamByName('v6').Value :=cbxrace.Text;
        parameters.ParamByName('v7').Value :=cbxpersonal.Text;
        parameters.ParamByName('v8').Value :=edtpersonid.Text;
        parameters.ParamByName('v9').Value :=cbxmarry.Text;
        parameters.ParamByName('v10').Value :=cbxdistrict.Text;
        parameters.ParamByName('v11').Value :=edtaddress.Text;
        parameters.ParamByName('v12').Value :=trim(edtphone.Text);
        parameters.ParamByName('v13').Value :=cbxparty.Text;
        parameters.ParamByName('v14').Value :=edtparname.Text;
        parameters.ParamByName('v15').Value :=edtparphone.Text;
        parameters.ParamByName('v16').Value :=formatdatetime('yyyy-mm-dd',schooldate.DateTime);
        parameters.ParamByName('v17').Value :=trim(edtlateunit.Text);
        parameters.ParamByName('v18').Value :=trim(edtjob.Text);
        parameters.ParamByName('v19').Value :=trim(edttechang.Text);
        parameters.ParamByName('v20').Value :=trim(edtiswork.Text);
        parameters.ParamByName('v21').Value :=workmemo.Lines.Text;
        parameters.ParamByName('v22').Value :=awardmemo.Lines.Text;
        parameters.ParamByName('v23').Value :=0; 
        execsql;
        end;
      frmmain.adc.CommitTrans;
      application.MessageBox('记录保存成功!','提示',mb_ok+mb_iconinformation);
      iniform;
    except
      frmmain.adc.RollbackTrans;
      raise;
      application.MessageBox('记录保存失败!','警告',mb_ok+mb_iconwarning);
    end;
    end
  else
    begin
    try
      with adqstu do
        begin
        sql.Clear;
        sql.Add('update newstu set stuid=:v1,stuname=:v2,sex=:v3,borndate=:v4,edu=:v5,race=:v6,personal=:v7,personid=:v8,marry=:v9,district=:v10,address=:v11,'+
        'phone=:v12,party=:v13,parname=:v14,parphone=:v15,schooldate=:v16,lateunit=:v17,job=:v18,'+
        'techang=:v19,iswork=:v20,workmemo=:v21,awardmemo=:v22 where id=:v23');
        //showmessage(sql.Text);
        {parameters.ParamByName('v1').Value :=trim(edtid.Text);
        parameters.ParamByName('v2').Value :=trim(edtname.Text);
        parameters.ParamByName('v3').Value :=cbxsex.Text;
        parameters.ParamByName('v4').Value :=formatdatetime('yyyy-mm-dd',borndate.DateTime);
        parameters.ParamByName('v5').Value :=cbxedu.Text;
        parameters.ParamByName('v6').Value :=cbxrace.Text;
        parameters.ParamByName('v7').Value :=cbxpersonal.Text;
        parameters.ParamByName('v8').Value :=edtpersonid.Text;
        parameters.ParamByName('v9').Value :=cbxmarry.Text;
        parameters.ParamByName('v10').Value :=cbxdistrict.Text;
        parameters.ParamByName('v11').Value :=edtaddress.Text;
        parameters.ParamByName('v12').Value :=trim(edtphone.Text);
        parameters.ParamByName('v13').Value :=cbxparty.Text;
        parameters.ParamByName('v14').Value :=edtparname.Text;
        parameters.ParamByName('v15').Value :=edtparphone.Text;
        parameters.ParamByName('v16').Value :=formatdatetime('yyyy-mm-dd',schooldate.DateTime);
        parameters.ParamByName('v17').Value :=trim(edtlateunit.Text);
        parameters.ParamByName('v18').Value :=trim(edtjob.Text);
        parameters.ParamByName('v19').Value :=trim(edttechang.Text);
        parameters.ParamByName('v20').Value :=trim(edtiswork.Text);
        parameters.ParamByName('v21').Value :=workmemo.Lines.Text;
        parameters.ParamByName('v22').Value :=awardmemo.Lines.Text;
        parameters.ParamByName('v23').Value :=dgstu.Fields[0].AsInteger;
        execsql;  }
        end;
      frmmain.adc.CommitTrans;
      application.MessageBox('记录修改成功!','提示',mb_ok+mb_iconinformation);
      iniform;
    except
      frmmain.adc.RollbackTrans;
      raise;
      application.MessageBox('记录修改失败!','警告',mb_ok+mb_iconwarning);
    end;
  end;
end;

procedure Tfrmnewstu.btndelClick(Sender: TObject);
begin
  inherited;
  if adqstu.IsEmpty then
    begin
    application.MessageBox('学生表为空!','提示',mb_ok+mb_iconinformation);
    exit;
    end;
  if application.MessageBox('确定删除这条记录?','提示',mb_yesno+mb_iconquestion)=idyes then
    adqstu.Delete;
end;

procedure Tfrmnewstu.dsstuDataChange(Sender: TObject; Field: TField);
begin
  inherited;
  showdata;
end;

procedure Tfrmnewstu.btneditClick(Sender: TObject);
begin
  inherited;
  btnnew.Enabled :=false;
  btndel.Enabled :=false;
  btnsave.Enabled :=true;
  editmodal:='edit';
end;

procedure Tfrmnewstu.suiButton1Click(Sender: TObject);
begin
  inherited;
  frmnewstufind:=tfrmnewstufind.Create(nil);
  frmnewstufind.ShowModal;
end;

procedure Tfrmnewstu.btnallClick(Sender: TObject);
begin
  inherited;
  pub.showrecord(adqstu,'*','newstu','id');
end;

procedure Tfrmnewstu.btnjiaoClick(Sender: TObject);
begin
  inherited;
  pub.showrecord(adqstu,'*','newstu where status=1','id');
end;

procedure Tfrmnewstu.btnweiClick(Sender: TObject);
begin
  inherited;
  pub.showrecord(adqstu,'*','newstu where status=0','id');
end;

procedure Tfrmnewstu.edtidKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if not ( key in ['0'..'9',#23,#8]) then
    key:=#0;
end;

procedure Tfrmnewstu.edtpersonidKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if not ( key in ['0'..'9',#23,#8]) then
    key:=#0;
end;

procedure Tfrmnewstu.edtphoneKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if not ( key in ['0'..'9',#23,#8]) then
    key:=#0;
end;

procedure Tfrmnewstu.edtstuidKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if not ( key in ['0'..'9',#23,#8]) then
    key:=#0;
end;

procedure Tfrmnewstu.edtstuidChange(Sender: TObject);
begin
  inherited;
  with adqstu do
    begin
    sql.Clear;
    sql.Add('select * from newstu where stuid like ''%'+edtstuid.Text+'%''');
    //parameters.ParamByName('v1').Value :=edtstuid.Text;
    open;
    end;  
end;

procedure Tfrmnewstu.FormShow(Sender: TObject);
begin
  inherited;
  if frmmain.form ='stumoney' then
    btnnew.Click();
end;

end.

⌨️ 快捷键说明

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