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

📄 unitperson.pas

📁 社区服务系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    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 + -