📄 hjzl_edit.~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 + -