📄 unitperson.pas
字号:
unit UnitPerson;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ImgList, ComCtrls, Grids, DBGrids, Buttons, DB, ADODB,
ExtCtrls;
type
TfrmPerson = class(TForm)
GroupBox1: TGroupBox;
pclPerson: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DBGrid1: TDBGrid;
GroupBox2: TGroupBox;
Label1: TLabel;
edtpid: TEdit;
Label2: TLabel;
edtPname: TEdit;
Label3: TLabel;
cbxHId: TComboBox;
Label4: TLabel;
Label5: TLabel;
cbxPsex: TComboBox;
DTPPborn: TDateTimePicker;
Label6: TLabel;
cbxConn: TComboBox;
Label7: TLabel;
cbxIsMarry: TComboBox;
Label8: TLabel;
edtNation: TEdit;
Label9: TLabel;
edtWorkKind: TEdit;
Label10: TLabel;
edtWorkName: TEdit;
Label11: TLabel;
edtPPhone: TEdit;
Label12: TLabel;
edtWorkAddr: TEdit;
Label13: TLabel;
memPerson: TMemo;
GroupBox4: TGroupBox;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
edtFname: TEdit;
edtpersonName: TEdit;
GroupBox5: TGroupBox;
bbtnSearch: TBitBtn;
bbtngoto: TBitBtn;
adoPerson: TADOQuery;
DataSource1: TDataSource;
cbxFno: TComboBox;
Panel1: TPanel;
bbtnAdd: TBitBtn;
bbtnModify: TBitBtn;
bbtnDel: TBitBtn;
bbtnSave: TBitBtn;
bbtnCancel: TBitBtn;
bbtnExit: TBitBtn;
procedure bbtnAddClick(Sender: TObject);
procedure bbtnModifyClick(Sender: TObject);
procedure bbtnCancelClick(Sender: TObject);
procedure bbtnExitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure adoPersonAfterScroll(DataSet: TDataSet);
procedure cbxHIdChange(Sender: TObject);
procedure bbtnSaveClick(Sender: TObject);
procedure bbtnDelClick(Sender: TObject);
procedure bbtngotoClick(Sender: TObject);
procedure bbtnSearchClick(Sender: TObject);
private
{ Private declarations }
procedure ButtonState(btag : integer); //按钮状态
procedure showlist; //列表显示
procedure iniData; //初始化combox下拉列表
public
{ Public declarations }
end;
var
frmPerson: TfrmPerson;
iflag : integer; //记录操作,如添加,iflag=1;修改,iflag=2
strMsg : string;
strsql : string;
strSearch : string; //查询条件
const DOADD = 1;
const DOMODIFY = 2;
const DOCANCEL = 3;
const DOSHOW = 4;
implementation
uses unitADOconn;
{
*************************************************************************************
函数名称:显示DBGrid列表
功能描述:将THouse表中的数据在DBGrid列表中显示出来
输入参数: 无
输出参数: 无
返回 值: 无
说 明: 添加、修改、删除操作要调用该函数以达到显示更新后的数据显示目的
*************************************************************************************
}
procedure Tfrmperson.showlist;
begin
try
adoPerson.Connection := adoconn;
adoPerson.Close;
adoPerson.SQL.Text := 'select * from TPerson where PState=''1''';
adoPerson.Open;
except
on e:exception do
showmessage('列表显示失败');
end;
edtpid.ReadOnly := true;
edtpname.ReadOnly := true;
edtpphone.ReadOnly := true;
edtnation.ReadOnly := true;
edtWorkKind.ReadOnly := true;
edtWorkName.ReadOnly := true;
edtWorkAddr.ReadOnly := true;
memperson.ReadOnly := true;
if adoperson.RecordCount<>0 then
begin
edtpid.Text := adoPerson.fieldbyname('pid').AsString;
cbxHId.Text := adoPerson.fieldbyname('Hid').AsString;
edtPname.Text := adoPerson.fieldbyname('pname').AsString;
adoshare.Close;
adoshare.SQL.Text := 'select DId,DName from TDataParam where DId='''+adoPerson.fieldbyname('psex').asstring+'''';
adoshare.Open;
cbxPsex.Text := adoshare.fieldbyname('DID').AsString+'['+adoshare.fieldbyname('DName').AsString+']';
adoshare.Close;
DTPPborn.Date := strtodate(adoPerson.fieldbyname('pbrdate').AsString);
edtpphone.Text := adoPerson.fieldbyname('Pphone').AsString;
adoshare.Close;
adoshare.SQL.Text := 'select DId,DName from TDataParam where DId='''+adoPerson.fieldbyname('pholderconn').asstring+'''';
adoshare.Open;
cbxconn.Text := adoshare.fieldbyname('DID').AsString+'['+adoshare.fieldbyname('DName').AsString+']';
adoshare.Close;
adoshare.Close;
adoshare.SQL.Text := 'select DId,DName from TDataParam where DId='''+adoPerson.fieldbyname('pIsMarry').asstring+'''';
adoshare.Open;
if adoshare.RecordCount<>0 then
cbxIsMarry.Text := adoshare.fieldbyname('DID').AsString+'['+adoshare.fieldbyname('DName').AsString+']'
else
cbxIsMarry.Text :='';
adoshare.Close;
edtNation.Text := adoPerson.fieldbyname('pNation').AsString;
edtWorkKind.Text := adoPerson.fieldbyname('pWorkKind').AsString;
edtWorkName.Text := adoPerson.fieldbyname('pWorkName').AsString;
edtWorkAddr.Text := adoPerson.fieldbyname('pWorkAddr').AsString;
memperson.Text := adoPerson.fieldbyname('pMemo').AsString;
end;
ButtonState(4);
end;
{
*************************************************************************************
函数名称:按钮状态
功能描述:要求在增加状态后,只有保存,取消可以操作,别的按钮不可操作。修改、删除状态也一样。
输入参数:btag,添加,btag=1;修改,btag=2
输出参数:
返回 值: 无
说 明:
*************************************************************************************
}
procedure Tfrmperson.ButtonState(btag : integer);
begin
case btag of
1 : //添加时按钮状态
begin
bbtnModify.Enabled := false;
bbtnSave.Enabled := true;
bbtnCancel.Enabled := true;
bbtnDel.Enabled := false;
end;
2: //修改
begin
bbtnAdd.Enabled := false;
bbtnSave.Enabled := true;
bbtnCancel.Enabled := true;
bbtnDel.Enabled := false;
end;
3: //取消
begin
bbtnadd.Enabled := true;
bbtnModify.Enabled := true;
bbtnDel.Enabled := true;
bbtnSave.Enabled := false;
end;
4: //显示状态
begin
bbtnadd.Enabled := true;
bbtnModify.Enabled := true;
bbtnDel.Enabled := true;
bbtnSave.Enabled := false;
end
else
exit;
end;
end;
{$R *.dfm}
procedure TfrmPerson.bbtnAddClick(Sender: TObject);
begin
iflag := DOADD;
buttonState(DOADD);
edtPname.SetFocus;
edtpname.ReadOnly := false;
edtpphone.ReadOnly := false;
edtnation.ReadOnly := false;
edtWorkKind.ReadOnly := false;
edtWorkName.ReadOnly := false;
edtWorkAddr.ReadOnly := false;
memperson.ReadOnly := false;
edtpid.Text := '';
cbxHId.Text := '';
edtPname.Text := '';
cbxPsex.Text := '';
edtpphone.Text := '';
cbxconn.Text := '';
cbxIsMarry.Text := '';
edtNation.Text := '';
edtWorkKind.Text := '';
edtWorkName.Text := '';
edtWorkAddr.Text := '';
memperson.Text := '';
end;
procedure TfrmPerson.bbtnModifyClick(Sender: TObject);
begin
iflag := DOMODIFY;
ButtonState(DOMODIFY);
edtpname.SetFocus;
edtpname.ReadOnly := false;
edtpphone.ReadOnly := false;
edtnation.ReadOnly := false;
edtWorkKind.ReadOnly := false;
edtWorkName.ReadOnly := false;
edtWorkAddr.ReadOnly := false;
memperson.ReadOnly := false;
end;
procedure TfrmPerson.bbtnCancelClick(Sender: TObject);
begin
ButtonState(DOCANCEL);
if iflag=1 then
begin
edtpid.Text := adoPerson.fieldbyname('pid').AsString;
cbxHId.Text := adoPerson.fieldbyname('Hid').AsString;
edtPname.Text := adoPerson.fieldbyname('pname').AsString;
adoshare.Close;
adoshare.SQL.Text := 'select DId,DName from TDataParam where DId='''+adoPerson.fieldbyname('psex').asstring+'''';
adoshare.Open;
cbxPsex.Text := adoshare.fieldbyname('DID').AsString+'['+adoshare.fieldbyname('DName').AsString+']';
adoshare.Close;
DTPPborn.Date := strtodate(adoPerson.fieldbyname('pbrdate').AsString);
edtpphone.Text := adoPerson.fieldbyname('Pphone').AsString;
adoshare.Close;
adoshare.SQL.Text := 'select DId,DName from TDataParam where DId='''+adoPerson.fieldbyname('pholderconn').asstring+'''';
adoshare.Open;
cbxconn.Text := adoshare.fieldbyname('DID').AsString+'['+adoshare.fieldbyname('DName').AsString+']';
adoshare.Close;
adoshare.Close;
adoshare.SQL.Text := 'select DId,DName from TDataParam where DId='''+adoPerson.fieldbyname('pIsMarry').asstring+'''';
adoshare.Open;
if adoshare.RecordCount<>0 then
cbxIsMarry.Text := adoshare.fieldbyname('DID').AsString+'['+adoshare.fieldbyname('DName').AsString+']'
else
cbxIsMarry.Text :='';
adoshare.Close;
edtNation.Text := adoPerson.fieldbyname('pNation').AsString;
edtWorkKind.Text := adoPerson.fieldbyname('pWorkKind').AsString;
edtWorkName.Text := adoPerson.fieldbyname('pWorkName').AsString;
edtWorkAddr.Text := adoPerson.fieldbyname('pWorkAddr').AsString;
memperson.Text := adoPerson.fieldbyname('pMemo').AsString;
iflag := 0;
end;
if iflag=2 then
begin
adopub.Close;
adopub.SQL.Text := 'select * from TPerson where pid='''+edtpid.Text+'''';
adopub.Open;
edtpid.Text := adopub.fieldbyname('pid').AsString;
cbxHId.Text := adopub.fieldbyname('Hid').AsString;
edtPname.Text := adopub.fieldbyname('pname').AsString;
adoshare.Close;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -