📄 unitperson.pas
字号:
adoshare.SQL.Text := 'select DId,DName from TDataParam where DId='''+adopub.fieldbyname('psex').asstring+'''';
adoshare.Open;
cbxPsex.Text := adoshare.fieldbyname('DID').AsString+'['+adoshare.fieldbyname('DName').AsString+']';
adoshare.Close;
DTPPborn.Date := strtodate(adopub.fieldbyname('pbrdate').AsString);
edtpphone.Text := adopub.fieldbyname('Pphone').AsString;
adoshare.Close;
adoshare.SQL.Text := 'select DId,DName from TDataParam where DId='''+adopub.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='''+adopub.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 := adopub.fieldbyname('pNation').AsString;
edtWorkKind.Text := adopub.fieldbyname('pWorkKind').AsString;
edtWorkName.Text := adopub.fieldbyname('pWorkName').AsString;
edtWorkAddr.Text := adopub.fieldbyname('pWorkAddr').AsString;
memperson.Text := adopub.fieldbyname('pMemo').AsString;
iflag := 0;
end;
end;
procedure TfrmPerson.bbtnExitClick(Sender: TObject);
begin
close;
end;
{
*************************************************************************************
函数名称: 初始化数据
功能描述: 将数据字典中的数据初始化到combox下拉列表中
输入参数: 无
输出参数: 无
返回 值: 无
说 明:
*************************************************************************************
}
procedure TfrmPerson.iniData;
begin
try
adoshare.close;
adoshare.SQL.Text := 'select a.DId,a.DName from TDataParam a,TDataType b where a.DTypeId=b.DTypeId and b.DTypeName=''与户主关系''';
adoshare.Open;
while not adoshare.Eof do
begin
cbxConn.Items.Add(adoshare.fieldbyname('DId').asstring+'['+adoshare.fieldbyname('DName').asstring+']');
adoshare.Next;
end;
adoshare.Close;
adoshare.SQL.Text := 'select a.DId,a.DName from TDataParam a,TDataType b where a.DTypeId=b.DTypeId and b.DTypeName=''性别''';
adoshare.Open;
while not adoshare.Eof do
begin
cbxPsex.Items.Add(adoshare.fieldbyname('DId').asstring+'['+adoshare.fieldbyname('DName').asstring+']');
adoshare.Next;
end;
adoshare.Close;
adoshare.SQL.Text := 'select a.DId,a.DName from TDataParam a,TDataType b where a.DTypeId=b.DTypeId and b.DTypeName=''婚姻状况''';
adoshare.Open;
while not adoshare.Eof do
begin
cbxIsMarry.Items.Add(adoshare.fieldbyname('DId').asstring+'['+adoshare.fieldbyname('DName').asstring+']');
adoshare.Next;
end;
adoshare.Close;
adoshare.SQL.Text := 'select distinct HID from THouse where HState=''1''';
adoshare.Open;
while not adoshare.Eof do
begin
cbxHID.Items.Add(adoshare.fieldbyname('HId').asstring);
adoshare.Next;
end;
adoshare.Close;
adoshare.SQL.Text := 'select distinct HID from THouse where HState=''1''';
adoshare.Open;
while not adoshare.Eof do
begin
cbxFno.Items.Add(adoshare.fieldbyname('HId').asstring);
adoshare.Next;
end;
adoshare.Close;
except
on e:exception do
showmessage('初始化下拉列表失败');
end;
end;
procedure TfrmPerson.FormShow(Sender: TObject);
begin
iniData;
showlist;
pclPerson.TabIndex := 0;
if blnAdd = false then //如果用户没有添加的权限,则将添加按钮置为不可见状态
bbtnAdd.Visible := false;
if blnModify = false then //如果用户没有修改的权限,则将修改按钮置为不可见状态
bbtnModify.Visible := false;
if blnDel = false then //如果用户没有删除的权限,则将删除按钮置为不可见状态
bbtnDel.Visible := false;
end;
procedure TfrmPerson.adoPersonAfterScroll(DataSet: TDataSet);
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;
procedure TfrmPerson.cbxHIdChange(Sender: TObject);
var
i : integer;
iMax : integer;
iCompare : integer;
strtmp : string;
begin
adopub.Close;
adopub.SQL.Text := 'select * from Tperson where left(pid,9)='''+cbxHId.Text+'''';
adopub.Open;
if adopub.RecordCount<>0 then
begin
adopub.First;
iMax := strtoint(copy(adopub.fieldbyname('pid').AsString,length(cbxHid.Text)+1,2));
adopub.First;
for i := 0 to adopub.RecordCount-1 do
begin
iCompare := strtoint(copy(adopub.fieldbyname('pid').AsString,length(cbxHid.Text)+1,2));
if (iCompare>imax) then
imax := iCompare;
adopub.Next;
end;
iMax := iMax + 1;
if length(inttostr(iMax))=1 then
strTmp :=cbxHid.Text+'0'+inttostr(iMax)
else if length(inttostr(iMax))=2 then
strTmp :=cbxHid.Text+inttostr(iMax);
edtpid.Text := strtmp;
end
else
edtpid.Text := cbxHid.Text+'01';
adopub.Close;
end;
procedure TfrmPerson.bbtnSaveClick(Sender: TObject);
var
strsex : string;
strhconn : string;
strMarry : string;
begin
try
case iflag of
1:
begin
strMsg := '添加';
adopub.Close;
strsex := copy(cbxpsex.Text,1,pos('[',cbxpsex.Text)-1);
strhconn := copy(cbxconn.Text,1,pos('[',cbxconn.Text)-1);
strMarry := copy(cbxIsMarry.Text,1,pos('[',cbxIsMarry.Text)-1);
strsql := 'insert into TPerson (Pid,Hid,pname,psex,Pbrdate,PHolderConn,PIsMarry,PNation,PWorkKind,PWorkName,PWorkAddr,Pphone,PState,PMemo)';
strsql := strsql + ' values (''' + edtpid.Text +''','''+cbxHid.Text+''','''+edtpname.Text+''','''+strsex+''','''+datetostr(DTPpborn.Date);
strsql := strsql +''','''+strhconn+''','''+strMarry+''','''+edtNation.Text+''','''+edtWorkKind.Text+''','''+edtWorkName.Text;
strsql := strsql +''','''+edtWorkAddr.Text+''','''+edtpphone.Text+''','+'''1'''+','''+memPerson.Text+''')';
adopub.SQL.Text := strsql;
adopub.ExecSQL;
adopub.Close;
showmessage('添加成功');
showlist;
end;
2:
begin
adopub.Close;
strsex := copy(cbxpsex.Text,1,pos('[',cbxpsex.Text)-1);
strhconn := copy(cbxconn.Text,1,pos('[',cbxconn.Text)-1);
strMarry := copy(cbxIsMarry.Text,1,pos('[',cbxIsMarry.Text)-1);
strsql := 'update TPerson set pname='''+edtpname.Text+''',psex='''+strsex+''',pbrdate=''';
strsql := strsql + datetostr(DTPpborn.Date) +''',pholderconn='''+strhconn+''',PIsMarry='''+strMarry+''',PNation='''+edtNation.Text+''',PWorkKind=''';
strsql := strsql + edtWorkKind.Text + ''',PWorkName=''' + edtworKname.Text +''',PWorkAddr='''+edtWorkAddr.Text+''',pphone='''+edtpphone.Text;
strsql := strsql + ''',pmemo='''+memPerson.Text+''' where pid='''+edtpid.Text+'''';
adopub.SQL.Text := strsql;
adopub.ExecSQL;
showmessage('修改成功');
adopub.Close;
showlist;
end
else
exit
end;
except
on e:exception do
showmessage('执行'+strMsg+'操作不成功');
end;
end;
procedure TfrmPerson.bbtnDelClick(Sender: TObject);
var
iDel : integer;
begin
iDel := application.MessageBox('确定要删除吗?','删除提示',MB_YESNO+MB_Iconquestion);
if iDel=6 then
begin
adoshare.Close;
adoshare.SQL.Text := 'update Tperson set PState=''0'' where pid='''+edtpid.Text+'''';
adoshare.ExecSQL;
adoshare.Close;
showmessage('删除成功');
showlist;
end
else
begin
exit;
end;
end;
procedure TfrmPerson.bbtngotoClick(Sender: TObject);
begin
pclPerson.TabIndex := 0;
end;
procedure TfrmPerson.bbtnSearchClick(Sender: TObject);
begin
strSearch := ''; //清空
if cbxFno.Text<>'' then
strSearch := 'p.HId='''+cbxFno.Text+'''';
if edtFname.Text<>'' then
begin
if cbxFno.Text<>'' then
strSearch := strSearch + ' and f.Hname like ''%'+edtFname.Text+'%'''
else
strSearch := 'f.Hname like ''%'+edtFname.Text+'%''';
end;
if edtPersonName.Text<>'' then
begin
if (cbxFno.Text<>'') or (edtFname.Text<>'') then
strSearch := strSearch + ' and p.pname='''+edtPersonName.Text+''''
else
strSearch :='p.pname='''+edtPersonName.Text+'''';
end;
if strSearch<>'' then
begin
adoPerson.Close;
adoPerson.SQL.Text := 'select distinct p.Pid,p.Hid,p.pname,p.psex,p.Pbrdate,p.PHolderConn,p.PIsMarry,p.PNation,p.PWorkKind,p.PWorkName,p.PWorkAddr,p.Pphone,p.PMemo from THouse f,TPerson p where '+strSearch+' and p.PState=''1'' and f.Hid=p.Hid';
adoPerson.Open;
end
else
begin
adoPerson.Close;
adoPerson.SQL.Text := 'select * from TPerson where PState=''1''';
adoPerson.Open;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -