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

📄 hjzl_edit.~pas

📁 用Delphi编写的户籍管理系统
💻 ~PAS
字号:
unit HJZL_Edit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, DBCtrls, Grids, DBGrids, Buttons, ExtCtrls, jpeg,
  DB;

type
  TFrmHJGLEdit = class(TForm)
    PanelHZ: TPanel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label10: TLabel;
    DBEditCSNY: TDBEdit;
    DBEditSFZ: TDBEdit;
    DBEditDW: TDBEdit;
    DBEditDH: TDBEdit;
    PanelCY: TPanel;
    DBGrid2: TDBGrid;
    DBMemoBZ: TDBMemo;
    PopupCalBtn: TSpeedButton;
    ButtonTP: TButton;
    Label9: TLabel;
    DBEditFCZ: TDBEdit;
    DBCheckBox1: TDBCheckBox;
    Label11: TLabel;
    Label12: TLabel;
    DBEditZD: TDBEdit;
    Label13: TLabel;
    DBEditFH: TDBEdit;
    Label14: TLabel;
    DBEdit4: TDBEdit;
    Panel1: TPanel;
    Image1: TImage;
    Panel2: TPanel;
    DBEditXM: TDBEdit;
    Label2: TLabel;
    Label3: TLabel;
    DBComboBoxXB: TDBComboBox;
    DBEditSG: TDBEdit;
    Label1: TLabel;
    Label15: TLabel;
    DBComboBoxMZ: TDBComboBox;
    Label4: TLabel;
    DBComboBoxWH: TDBComboBox;
    Label5: TLabel;
    DBTextNL: TDBText;
    ButtonPrint: TButton;
    DBComboBox1: TDBComboBox;
    Label16: TLabel;
    Label17: TLabel;
    DBEdit1: TDBEdit;
    Label18: TLabel;
    procedure SpeedButtonEXITClick(Sender: TObject);
    procedure DBGrid2Enter(Sender: TObject);
    procedure DBGrid2Exit(Sender: TObject);
    procedure PopupCalBtnClick(Sender: TObject);
    procedure ButtonTPClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ButtonPrintClick(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid2TitleClick(Column: TColumn);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDeactivate(Sender: TObject);
    procedure DBEditXMExit(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmHJGLEdit: TFrmHJGLEdit;

implementation
 USES MainData, Pickdate,PickXMPY,func, Main;
{$R *.dfm}

procedure TFrmHJGLEdit.SpeedButtonEXITClick(Sender: TObject);
begin
  Close;
end;

procedure TFrmHJGLEdit.DBGrid2Enter(Sender: TObject);
begin
 IF IsAddNewHZ THEN  DataHJZL.ADOTableHZ.Post //如果是新增记录状态,在录入成员数据前,先保存户主数据

  WITH FrmMain.DBNavigatorMain DO
  BEGIN
    Visible:=True;
    DataSource:=DataHJZL.DSCY;
    VisibleButtons:=[nbFirst,nbPrior,nbNext,nbLast,
                     nbInsert,nbDelete,nbEdit,nbPost,nbCancel];
  END;
end;

procedure TFrmHJGLEdit.DBGrid2Exit(Sender: TObject);
begin
  WITH FrmMain.DBNavigatorMain DO
  BEGIN
    DataSource:=DataHJZL.DSHZ;
    VisibleButtons:=[nbFirst,nbPrior,nbNext,nbLast,
                     nbInsert,nbDelete,nbEdit,nbPost,nbCancel];
  END;
end;

procedure TFrmHJGLEdit.PopupCalBtnClick(Sender: TObject);
begin
  BrDateForm.Date := DataHJZL.ADOTableHZCSNY.Value;
  if BrDateForm.ShowModal = mrOk then
  begin
    DataHJZL.ADOTableHZCSNY.Value:= BrDateForm.Date;
  end;

end;

procedure TFrmHJGLEdit.ButtonTPClick(Sender: TObject);
var
  cPicture:string;
 // FormImage: TBitmap;
  cPATH:STRING;
begin
  cPATH:= ExtractFilePath(ParamStr(0));
  cPATH := ExpandFileName(cPATH + 'JPEG\'); //当前路径
  cPicture:=cPATH+TRIM(DBEditXM.Text)+'.JPG';
  if FileExists(cPicture) then
     Image1.Picture.LoadFromFile(cPicture)
  else
    Image1.Picture:=nil;

end;


procedure TFrmHJGLEdit.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
 IF DataHJZL.AdoTableHZ.State in dsEditModes  THEN

    if (MessageDlg('您已修改了户主['+DBEditXM.Text+']的资料,不保存就退出吗?',
      mtConfirmation,[mbYes, mbCancel], 0) = mrYes) then
      DataHJZL.AdoTableHZ.CancelUpdates
    else
       CanClose:= False;
   // DBNavigator1.DataSource:=DataHJZL.DSHZ;


  IF DataHJZL.AdoTableCY.State in dsEditModes  THEN

    if (MessageDlg('您已修改了家庭成员['+
      DataHJZL.ADOTableCYXM.Value+']的资料,不保存就退出吗?',
      mtConfirmation,[mbYes, mbCancel], 0) = mrYes) then
      DataHJZL.AdoTableCY.CancelUpdates
    else
      CanClose:= False;
    //DBNavigator1.DataSource:=DataHJZL.DSCY;


end;

procedure TFrmHJGLEdit.FormActivate(Sender: TObject);
begin   //窗口激活时绑定数据,处理相应操作

 FrmMain.StatusBar1.Panels[0].Text:=
   Format('当前数据表:%S   记录总数:%d ',
      [DataHJZL.AdoTableHZ.TableName,DataHJZL.AdoTableHZ.RecordCount]);

  FrmMain.ToolButtonPY.Visible:=True;

  WITH FrmMain.DBNavigatorMain DO
  BEGIN
    Visible:=True;
    DataSource:=DataHJZL.DSHZ;
    VisibleButtons:=[nbFirst,nbPrior,nbNext,nbLast,
                     nbInsert,nbDelete,nbEdit,nbPost,nbCancel];
  END;
end;

procedure TFrmHJGLEdit.FormCreate(Sender: TObject);
begin
 TOP:=0;
 LEFT:=0;
 Height:=556;
 Width:=785;
 IF NOT DataHJZL.ADOTableHZ.Active then DataHJZL.ADOTableHZ.Active:=True;
 IF NOT DataHJZL.ADOTableCY.Active then DataHJZL.ADOTableCY.Active:=True;
end;

procedure TFrmHJGLEdit.ButtonPrintClick(Sender: TObject);
begin
     FrmHJGLEdit.Print;
end;

procedure TFrmHJGLEdit.FormKeyPress(Sender: TObject; var Key: Char);
//需要用回车键代替TAB键下移一个控件时,把KeyPress设为True
Begin
 if (Key=#13) and (not (ActiveControl is TDbgrid)) then
   Begin
     Key:=#0;
     perform(WM_NEXTDLGCTL,0,0);
   end;
 if (Key=#13) and (ActiveControl is TDbgrid) Then //是在 TDbgrid 控件内
   begin
     With TDbgrid(ActiveControl) Do
     if Selectedindex<(FieldCount-1) then
         Selectedindex:=Selectedindex+1  // 移动到下一字段
     else begin
       Selectedindex:=0;
       DataSource.DataSet.Next; //网格绑定的数据源下移一个记录
      end;
   end;

End;


procedure TFrmHJGLEdit.DBGrid2TitleClick(Column: TColumn);
begin
begin
If Column=dbgrid2.Columns.Items[7] then //单击的是出生年月列
  begin
  BrDateForm.Date := DataHJZL.ADOTableCYCSNY.Value;
  if BrDateForm.ShowModal = mrOk then
  begin
    DataHJZL.ADOTableCYCSNY.Value:= BrDateForm.Date;
  end;
  end;
end;

end;

procedure TFrmHJGLEdit.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
    FrmMain.DBNavigatorMain.DataSource:=nil ;
    Action:=caFree ; //真正关闭MDI子窗口而不是最小化
end;


procedure TFrmHJGLEdit.FormDeactivate(Sender: TObject);
begin
  FrmMain.StatusBar1.Panels[0].Text:='';
end;

procedure TFrmHJGLEdit.DBEditXMExit(Sender: TObject);
var
cSQL:string;
Msg:string;
begin
  cSQL:='SELECT XM FROM 户主 WHERE XM="'+DBEditXM.Text+'"';
  with DataHJZL do
  BEGIN
    AdoQueryTMP.Close;
    AdoQueryTMP.SQL.Clear;
    AdoQueryTMP.SQL.Add(cSQL);
    AdoQueryTMP.Open ;
    Msg:='在户主表中:['+DBEditXM.Text+']已出现'
    +InttoSTR(AdoQueryTMP.RecordCount)+'人重复,确定是重名吗?';
    if IsAddNewHZ and (AdoQueryTMP.RecordCount>0) and
    (not Confirm(Msg)) then DBEditXM.SetFocus;
  END;

end;

end.

⌨️ 快捷键说明

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