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

📄 unitperson.pas

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