📄 newstu.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 + -