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

📄 people_unit.~pas

📁 很不错的软件请使用
💻 ~PAS
字号:
unit people_unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Buttons, Grids, DBGrids, ComCtrls, Mask,
  DBCtrls, XPMenu, RXCtrls, DB, ADODB, ToolEdit, ExtDlgs;

type
  Tpeople = class(Tform)
    Image2: TImage;
    Label1: TLabel;
    Label18: TLabel;
    BitBtn7: TBitBtn;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    XPMenu1: TXPMenu;
    ADOTable1: TADOTable;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    Panel1: TPanel;
    GroupBox2: TGroupBox;
    RxLabel1: TRxLabel;
    RxLabel2: TRxLabel;
    RxLabel3: TRxLabel;
    RxLabel4: TRxLabel;
    RxLabel5: TRxLabel;
    RxLabel6: TRxLabel;
    RxLabel7: TRxLabel;
    RxLabel8: TRxLabel;
    RxLabel9: TRxLabel;
    RxLabel10: TRxLabel;
    RxLabel11: TRxLabel;
    RxLabel12: TRxLabel;
    RxLabel13: TRxLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit4: TEdit;
    Edit3: TEdit;
    Edit8: TEdit;
    Edit5: TEdit;
    ComboBox1: TComboBox;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit9: TEdit;
    ComboBox2: TComboBox;
    Edit10: TEdit;
    Label3: TLabel;
    GroupBox1: TGroupBox;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    ADOQuery3: TADOQuery;
    ModisfyTable: TADOTable;
    RxLabel14: TRxLabel;
    ModiCount: TADOQuery;
    Button1: TButton;
    ADOTable2: TADOTable;
    OpenPictureDialog1: TOpenPictureDialog;
    Image1: TImage;
    filenameedit1: TButton;
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure onclose(Sender: TObject; var Action: TCloseAction);
    procedure ShowFrm(Sender: TObject);
    procedure onkeypress(Sender: TObject; var Key: Char);
    procedure BitBtn7Click(Sender: TObject);
    procedure CheckChange(Sender: TObject);
    procedure CheckChange2(Sender: TObject);
    procedure checkchange3(Sender: TObject);
    procedure onchangeID(Sender: TObject);
    procedure filenameedit1Click(Sender: TObject);
  private
    MaxNo:integer;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  people: Tpeople;
  icount:string;
  FieldsValues1,FieldsValues2:integer;
  FieldsLimit:boolean;
implementation

uses MainDataModule, MainFormUnit;

{$R *.dfm}
function Max(const A, B: integer): integer;
begin
  if A > B then
    Result := A
  else
    Result := B;
end;

procedure Tpeople.FormCreate(Sender: TObject);
begin
 inherited;
 adotable1.TableName:='SystemParamTable';
 adotable1.Active:=true;
 FieldsValues1:=ADOTable1.Fieldbyname('首项目值一').asinteger;
 FieldsValues2:=ADOTable1.Fieldbyname('首项目值二').asinteger;
 FieldsLimit:=ADOTable1.Fieldbyname('首项目限值').asboolean;
 adotable1.Active:=false;
 adotable1.TableName:='FieldsNewName';
 adotable1.Active:=true;
 Rxlabel1.Caption:=ADOTable1.Fieldbyname('身份证号').asstring;
 Rxlabel2.Caption:=ADOTable1.Fieldbyname('姓名').asstring;
 Rxlabel4.Caption:=ADOTable1.Fieldbyname('民族').asstring;
 Rxlabel5.Caption:=ADOTable1.Fieldbyname('户籍地址').asstring;
 Rxlabel6.Caption:=ADOTable1.Fieldbyname('工作单位').asstring;
 Rxlabel7.Caption:=ADOTable1.Fieldbyname('暂住地址').asstring;
 Rxlabel8.Caption:=ADOTable1.Fieldbyname('暂住时间').asstring;
 Rxlabel9.Caption:=ADOTable1.Fieldbyname('电话').asstring;
 Rxlabel10.Caption:=ADOTable1.Fieldbyname('备注').asstring;
 Rxlabel11.Caption:=ADOTable1.Fieldbyname('婚否').asstring;
 Rxlabel12.Caption:=ADOTable1.Fieldbyname('附注').asstring;
 Rxlabel13.Caption:=ADOTable1.Fieldbyname('照片').asstring;
 ADOtable1.Active:=false;
end;

procedure Tpeople.BitBtn2Click(Sender: TObject);
begin
  inherited;
close;
end;

procedure Tpeople.BitBtn1Click(Sender: TObject);
var
delstr:string;
begin
inherited;
  //检查
  if (edit1.Text='') or (edit2.text='') then
   begin
    messageBox(Handle,PChar('〖'+Rxlabel1.caption+'〗和〖'+Rxlabel2.Caption+'〗必须填写。'),'系统提示',MB_ok+MB_ICONWARNING);
    exit;
   end;
  if FieldsLimit then
   begin
    if (length(edit1.text)<>FieldsValues1) and (length(edit1.text)<>FieldsValues2) then
     begin
      messageBox(Handle,PChar(Format('请确认〖'+Rxlabel1.caption+'〗必须为%D或%D位',[FieldsValues1,FieldsValues2])),'系统提示',MB_ok+MB_ICONWARNING+MB_DEFBUTTON1+MB_SYSTEMmodal);
      exit;
     end;
   end;
 //增加
 if checkbox1.Checked then
 begin
  ADOQuery1.Close;
  ADOQuery1.sql.Clear;
  ADOQuery1.sql.Add('select 身份证号 from MainDataTable where 身份证号='''+edit1.text+'''');
  ADOQuery1.Open;
  if ADOQuery1.RecordCount>0 then
   begin
    messageBox(Handle,PChar('项目〖'+Rxlabel1.Caption+'〗的值〖'+edit1.text+'〗已经存在于数据库中!'),'系统提示',MB_ok+MB_ICONWARNING+MB_DEFBUTTON1+MB_SYSTEMmodal);
    exit;
   end;
  //检查编号
  with ModiCount do
   begin
   close;
   sql.Clear;
   sql.Add('select 编号 from MainDataTable');
   open;
    while not Eof do
     begin
     MaxNo:=Max(MaxNo,Fields[0].Asinteger);
     Next;
     end;
   end;
   modicount.Close;
  //开始添加记录
  try
   if ADOtable1.Active then ADOtable1.Active:=false;
   ADOtable1.TableName:='MainDataTable';
   ADOtable1.Active:=true;
   ADOtable1.Append;
   ADOtable1.Fieldvalues['编号']:=MaxNo+1;
   ADOtable1.Fieldvalues['身份证号']:=edit1.text;
   ADOtable1.Fieldvalues['姓名']:=edit2.text;
   ADOtable1.Fieldvalues['性别']:=combobox1.text;
   ADOtable1.Fieldvalues['民族']:=edit3.text;
   ADOtable1.Fieldvalues['婚否']:=combobox2.text;
   ADOtable1.Fieldvalues['户籍地址']:=edit4.text;
   ADOtable1.Fieldvalues['工作单位']:=edit5.text;
   ADOtable1.Fieldvalues['暂住地址']:=edit6.text;
   ADOtable1.Fieldvalues['暂住时间']:=edit7.text;
   ADOtable1.Fieldvalues['电话']:=edit8.text;
   ADOtable1.Fieldvalues['备注']:=edit9.text;
   ADOtable1.Fieldvalues['附注']:=edit10.text;

   //ADOtable1.Fieldvalues['照片']:=filenameedit1.text;
   ADOtable1.post;
  except
   messageBox(Handle,'更新数据失败,请重新启动程序!','系统提示',MB_ok+MB_ICONWARNING+MB_DEFBUTTON1+MB_SYSTEMmodal);
   exit;
 end;
 ADOQuery1.Close;
 ADOTable1.Active:=false;
 edit1.Text:='';
 edit2.Text:='';
 edit3.Text:='';
 edit4.Text:='';
 edit5.Text:='';
 edit6.Text:='';
 edit7.Text:='';
 edit8.Text:='';
 edit9.Text:='';
 edit10.Text:='';
 //filenameedit1.Text:='';
 combobox1.ItemIndex:=-1;
 combobox2.ItemIndex:=-1;
 end;
 //修改
 if checkbox2.Checked then
  begin
   try
    cursor:=crhourglass;
    if ModisfyTable.Active then ModisfyTable.Active:=false;
    ModisfyTable.TableName:='MainDataTable';
    ModisfyTable.Active:=true;
    with ModisfyTable do
     begin
     if locate('身份证号',edit1.text,[]) then
       begin
        edit;
        Fieldvalues['身份证号']:=edit1.text;
        Fieldvalues['姓名']:=edit2.text;
        Fieldvalues['性别']:=combobox1.text;
        Fieldvalues['民族']:=edit3.text;
        Fieldvalues['婚否']:=combobox2.text;
        Fieldvalues['户籍地址']:=edit4.text;
        Fieldvalues['工作单位']:=edit5.text;
        Fieldvalues['暂住地址']:=edit6.text;
        Fieldvalues['暂住时间']:=edit7.text;
        Fieldvalues['电话']:=edit8.text;
        Fieldvalues['备注']:=edit9.text;
        Fieldvalues['附注']:=edit10.text;
       // Fieldvalues['照片']:=filenameedit1.text;
        post;
        refresh;
       end;
      end;
     ModisfyTable.active:=false;
     edit1.Text:='';
     edit2.Text:='';
     edit3.Text:='';
     edit4.Text:='';
     edit5.Text:='';
     edit6.Text:='';
     edit7.Text:='';
     edit8.Text:='';
     edit9.Text:='';
     edit10.Text:='';
   //  filenameedit1.Text:='';
     combobox1.ItemIndex:=-1;
     combobox2.ItemIndex:=-1;
     cursor:=crdefault;
     messageBox(Handle,'修改记录成功!','系统提示',MB_ok+MB_ICONinformation);
     exit;
  except
   messageBox(Handle,'非法操作:更新数据失败!!','系统提示',MB_ok+MB_ICONWARNING);
   application.Terminate;
 end;
end;
 //删除
 if checkbox3.Checked then
  begin
   try
    if ModisfyTable.Active then ModisfyTable.Active:=false;
    ModisfyTable.TableName:='MainDataTable';
    ModisfyTable.Active:=true;
    with ModisfyTable do
     begin
     if locate('身份证号',edit1.text,[]) then
      begin
       delstr:=format('删除记录会造成编号断缺,这样的话你必须手动去插入一条相同编号的记录才能保证编号连续。确定删除〖'+Rxlabel1.Caption+'〗为[%S]的记录吗?',[ModisfyTable.Fields[2].AsString]);
       if MessageBox(Handle,PChar(delStr),'警告',MB_YESNO or MB_ICONWARNING)=IDyes then
        begin
        delete;
        ModisfyTable.Active:=false;
        edit1.Text:='';
        edit2.Text:='';
        edit3.Text:='';
        edit4.Text:='';
        edit5.Text:='';
        edit6.Text:='';
        edit7.Text:='';
        edit8.Text:='';
        edit9.Text:='';
        edit10.Text:='';
       // filenameedit1.Text:='';
        combobox1.ItemIndex:=-1;
        combobox2.ItemIndex:=-1;
        messageBox(Handle,'你已经成功地删除了该记录!','系统提示',MB_ok+MB_ICONWARNING);
        exit;
        end;
      end;
     end;
    except
     messageBox(Handle,'非法操作:更新数据失败!!','系统提示',MB_ok+MB_ICONWARNING);
     application.Terminate;
    end;
   end;
end;

procedure Tpeople.onclose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
mainform.StatusBar1.panels[1].text:='';
end;

procedure Tpeople.ShowFrm(Sender: TObject);
begin
 try
  ADOQuery2.Close;
  ADOQuery2.sql.clear;
  ADOQuery2.sql.add('select * from FieldsSelect');
  ADOQuery2.open;
 except
  messageBox(Handle,'非法操作:数据库读取错误!','系统提示',MB_ok+MB_ICONWARNING+MB_DEFBUTTON1+MB_SYSTEMmodal);
  application.Terminate;
 end;
  Rxlabel3.visible:=ADOQuery2.Fields[0].asboolean;
  combobox1.Visible:=ADOQuery2.Fields[0].asboolean;
  Rxlabel4.Visible:=ADOQuery2.Fields[1].asboolean;
  edit3.Visible:=ADOQuery2.Fields[1].asboolean;
  Rxlabel5.Visible:=ADOQuery2.Fields[2].asboolean;
  edit4.Visible:=ADOQuery2.Fields[2].asboolean;
  Rxlabel6.Visible:=ADOQuery2.Fields[3].asboolean;
  edit5.Visible:=ADOQuery2.Fields[3].asboolean;
  Rxlabel11.visible:=ADOQuery2.Fields[4].asboolean;
  combobox2.Visible:=ADOQuery2.Fields[4].asboolean;
  Rxlabel7.Visible:=ADOQuery2.Fields[5].asboolean;
  edit8.Visible:=ADOQuery2.Fields[5].asboolean;
  Rxlabel8.Visible:=ADOQuery2.Fields[6].asboolean;
  edit7.Visible:=ADOQuery2.Fields[6].asboolean;
  Rxlabel9.Visible:=ADOQuery2.Fields[7].asboolean;
  edit8.Visible:=ADOQuery2.Fields[7].asboolean;
  Rxlabel10.Visible:=ADOQuery2.Fields[10].asboolean;
  edit9.Visible:=ADOQuery2.Fields[10].asboolean;
  Rxlabel12.Visible:=ADOQuery2.Fields[8].asboolean;
  edit10.Visible:=ADOQuery2.Fields[8].asboolean;
  Rxlabel13.Visible:=ADOQuery2.Fields[9].asboolean;
  filenameedit1.Visible:=ADOQuery2.Fields[9].asboolean;
  ADOQuery2.sql.clear;
  adoquery2.Close;
  //判断
  if checkbox1.Checked then  mainform.StatusBar1.panels[1].text:='目前是增加记录操作!';
end;

procedure Tpeople.onkeypress(Sender: TObject; var Key: Char);
begin
if key=#13 then { 判断是按执行键}
perform(WM_NEXTDLGCTL,0,0);  {移动到下一个控件}
end;

procedure Tpeople.BitBtn7Click(Sender: TObject);
begin
gethelp;
end;

procedure Tpeople.CheckChange(Sender: TObject);
begin
 if checkbox1.Checked then
  begin
   checkbox2.Checked:=false;
   checkbox3.Checked:=false;
   mainform.StatusBar1.panels[1].text:='目前是增加记录操作!';
   label3.caption:='下拉选单项目不能被修改!〖'+Rxlabel1.Caption+'〗和〖'+Rxlabel2.Caption+'〗必须填写!';
  end;
end;

procedure Tpeople.CheckChange2(Sender: TObject);
begin
 if checkbox2.Checked then
  begin
   checkbox1.Checked:=false;
   checkbox3.Checked:=false;
   mainform.StatusBar1.panels[1].text:='目前是修改记录操作!';
   label3.caption:='〖'+rxlabel1.Caption+'〗不可修改,输入〖'+rxlabel1.Caption+'〗系统会自动查找其他相应资料!';
  end;
end;

procedure Tpeople.checkchange3(Sender: TObject);
begin
 if checkbox3.Checked=true then
  begin
   checkbox1.Checked:=false;
   checkbox2.Checked:=false;
   mainform.StatusBar1.panels[1].text:='目前是删除记录操作!';
   label3.caption:='注:删除数据会造成编号断缺,需要在数据表中手工插入相应编号记录!';
  end;
end;

procedure Tpeople.onchangeID(Sender: TObject);
begin
if not checkbox1.Checked then
 begin
  with adoquery3 do
   begin
   close;
   sql.clear;
   sql.add('select * from MainDataTable where 身份证号='''+edit1.text+'''');
   try
    open;
   except
    messageBox(Handle,'非法操作:数据库读取错误!','系统提示',MB_ok+MB_ICONWARNING+MB_DEFBUTTON1+MB_SYSTEMmodal);
    application.Terminate;
   end;
   edit2.Text:=fields[3].asstring;
   combobox1.Text:=fields[4].asstring;
   edit3.Text:=fields[5].asstring;
   edit4.Text:=fields[6].asstring;
   edit5.Text:=fields[7].asstring;
   combobox2.Text:=fields[8].asstring;
   edit6.Text:=fields[9].asstring;
   edit7.Text:=fields[10].asstring;
   edit8.Text:=fields[11].asstring;
   edit9.Text:=fields[14].asstring;
   edit10.Text:=fields[12].asstring;
  // filenameedit1.Text:=fields[13].asstring;
   sql.Clear;
   end;
  adoquery3.Close;
 end;
end;
procedure Tpeople.filenameedit1Click(Sender: TObject);
begin
openpicturedialog1.execute;
image1.picture.loadfromfile(openpicturedialog1.filename);
{var
graphic1:Timage;
begin
graphic1:=Timage.Create(self);
graphic1.picture.loadfromfile(openpicturedialog1.filename);
adotable2.TableName:='maindatatable';
adotable2.open;
adotable2.edit;
adotable2.fieldbyname('照片').assign(graphic1.Picture);
adotable2.post;
adotable2.close;
graphic1.free;  
end;}
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -