📄 u_zhxd.pas
字号:
unit U_ZHXD;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, Buttons, ExtCtrls, StdCtrls, DBCtrls, Mask, ComCtrls,jpeg,
Menus, ExtDlgs, Db;
type
TF_ZHXD = class(TForm)
Panel1: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
Panel5: TPanel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEditDingDanNo: TDBEdit;
Panel6: TPanel;
Label29: TLabel;
Label30: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N3: TMenuItem;
DBMemo11: TDBMemo;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label14: TLabel;
Label15: TLabel;
DataSourceZHXD: TDataSource;
DBRichEdit1: TDBRichEdit;
DBRichEdit2: TDBRichEdit;
PopupMenu2: TPopupMenu;
N2: TMenuItem;
FontDialog1: TFontDialog;
Panel2: TPanel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Panel1DblClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure SpeedButton1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure SpeedButton2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure SpeedButton3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure SpeedButton4MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure SpeedButton5MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure N3Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DataSourceZHXDDataChange(Sender: TObject; Field: TField);
procedure N2Click(Sender: TObject);
procedure DBEditDingDanNoKeyPress(Sender: TObject; var Key: Char);
procedure DBEdit1KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit2KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit4KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit5KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit6KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit7KeyPress(Sender: TObject; var Key: Char);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
procedure HandleMag(var Msg: TMessage);message WM_HOTKEY;
public
{ Public declarations }
end;
var
F_ZHXD: TF_ZHXD;
FlagZHXD: Boolean; //定义为是否保存过标志,为真:已保存,为假:未保存
RecNoZHXD: Integer; //定义为当前所指向的记录
ZHXDshow:boolean;
implementation
uses U_DM, U_P_ZHXD,U_ZHXDCX,umain,U_XGDW,U_P_Choose, U_Modal;// ;
{$R *.DFM}
procedure TF_ZHXD.FormClose(Sender: TObject; var Action: TCloseAction);
//释放装箱单子窗体
begin
DM.ADOTableZHXD.close;
Frmmain.Outlook1.Visible :=true;
frmmain.Panel1.Visible:=true;
Frmmain.Panel2.Visible:=True;
frmmain.Label1.Caption:='';
F_ZHXD:=nil;
Action:=caFree;
end;
procedure TF_ZHXD.SpeedButton5Click(Sender: TObject);
begin
Close;
//Frmmain.Outlook1.Visible:=true;
end;
procedure TF_ZHXD.SpeedButton1Click(Sender: TObject);
begin
DBEditDingDanNo.ReadOnly:=false;
DBEdit1.ReadOnly:=false;
DBEdit2.ReadOnly:=false;
DBMemo11.ReadOnly:=false;
DBEdit4.ReadOnly:=false;
DBEdit6.ReadOnly:=false;
DBEdit5.ReadOnly:=false;
DBEdit7.ReadOnly:=false;
DBRichEdit2.ReadOnly:=false;
DBRichEdit1.ReadOnly:=false;
SpeedButton2.Enabled:=true;
if DM.ADOTableZHXD.RecordCount<=0 then
FlagZHXD:=False; //如果没有记录,则将保存标志设置为假
//F_ZHXD.SpeedButton2Click(Sender); //如果连续点击增加按钮,则将上一条记录保存
//DM.ADOTableZHXD.Close;
DM.ADOTableZHXD.Append;
DBEditDingDanNo.SetFocus;
FlagZHXD:=False;
//
F_Modal := TF_Modal.Create(self);
F_Modal.Label1.Caption := '到货地点';
F_Modal.Label2.Caption := '订单编号';
TN := 'xs_ZHXD';
F1 := 'Messrs';
F2 := 'DingDanNo';
Md := 1;
if F_Modal.ModalSet(TN, F1, F2, Md) then
F_Modal.ShowModal
else
Application.MessageBox('无法生成参考模板!','提示',0+64);
F_Modal.Free;
end;
procedure TF_ZHXD.SpeedButton2Click(Sender: TObject);
begin
if FlagZHXD then
begin
Application.MessageBox('该数据已保存!','装箱单管理',0+64);
Exit;
end;
if DBEditDingDanNo.Text='' then
begin
Application.MessageBox('订单编号不许为空,请重新输入!','装箱单管理',0+64);
DBEditDingDanNo.SetFocus;
Exit;
end;
if DBMemo11.text='' then
begin
Application.MessageBox('到货地点不许为空,请重新输入!','装箱单管理',0+64);
DBEditDingDanNo.SetFocus;
Exit;
end;
try
DM.ADOTableZHXD.edit;
DM.ADOTableZHXD.Post;
DBEditDingDanNo.ReadOnly:=true;
DBEdit1.ReadOnly:=true;
DBEdit2.ReadOnly:=true;
DBMemo11.ReadOnly:=true;
DBEdit4.ReadOnly:=true;
DBEdit6.ReadOnly:=true;
DBEdit5.ReadOnly:=true;
DBEdit7.ReadOnly:=true;
DBRichEdit2.ReadOnly:=true;
DBRichEdit1.ReadOnly:=true;
FlagZHXD:=True;
SpeedButton2.Enabled:=false;
F_ZHXD.Caption:='装箱单管理';
Application.MessageBox('数据保存成功!','提示',0+64);
except
Application.MessageBox('数据保存错误,请重新输入!', '装箱单管理',0+16);
end;
end;
procedure TF_ZHXD.SpeedButton3Click(Sender: TObject);
begin
if DM.ADOTableZHXD.RecordCount<=0 then
begin
Application.MessageBox('没有记录可以删除!','装箱单管理',0+16);
FlagZHXD:=True;
Exit;
end
else
if Application.MessageBox('确实要删除此记录?','装箱单管理',4+16)=IDYES then
begin
DM.ADOTableZHXD.Delete;
FlagZHXD:=True;
end;
DBEditDingDanNo.ReadOnly:=true;
DBEdit1.ReadOnly:=true;
DBEdit2.ReadOnly:=true;
DBMemo11.ReadOnly:=true;
DBEdit4.ReadOnly:=true;
DBEdit6.ReadOnly:=true;
DBEdit5.ReadOnly:=true;
DBEdit7.ReadOnly:=true;
DBRichEdit2.ReadOnly:=true;
FlagZHXD:=True;
SpeedButton2.Enabled:=false;
end;
procedure TF_ZHXD.SpeedButton4Click(Sender: TObject);
begin
ZHXDshow:=true;
strP_ZHXD := DBEditDingDanNo.Text;
if F_P_choose =nil then
Application.CreateForm(TF_P_choose,F_P_choose);
F_P_choose.ShowModal;
end;
procedure TF_ZHXD.FormShow(Sender: TObject);
begin
FlagZHXD:=True;
end;
procedure TF_ZHXD.Panel1DblClick(Sender: TObject);
begin
F_ZHXDCX:=TF_ZHXDCX.Create(self);
F_ZHXDCX.PageControl1.ActivePageIndex:=0;
F_ZHXDCX.Show;
end;
procedure TF_ZHXD.FormActivate(Sender: TObject);
begin
frmmain.Label1.Caption:='装箱单管理';
POPUPM:=0;
RegisterHotKey(Handle,0,MOD_CONTROL,83);
RegisterHotKey(Handle,1,MOD_CONTROL,65);
DM.ADOTableZHXD.Last;
frmmain.Outlook1.Visible:=False;
frmmain.Panel1.Visible:=true;
frmmain.Panel2.Visible:=False;
end;
procedure TF_ZHXD.SpeedButton1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
SpeedButton1.Cursor:=crHandPoint;
end;
procedure TF_ZHXD.SpeedButton2MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
SpeedButton2.Cursor:=crHandPoint;
end;
procedure TF_ZHXD.SpeedButton3MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
SpeedButton3.Cursor:=crHandPoint;
end;
procedure TF_ZHXD.SpeedButton4MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
SpeedButton4.Cursor:=crHandPoint;
end;
procedure TF_ZHXD.SpeedButton5MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
SpeedButton5.Cursor:=crHandPoint;
end;
procedure TF_ZHXD.N3Click(Sender: TObject);
begin
close;
end;
procedure TF_ZHXD.N1Click(Sender: TObject);
begin
POPUPM:=4;
Application.createform(Tf_xgdw,f_xgdw);
F_XGDW.Showmodal;
end;
procedure TF_zhxd.HandleMag(var Msg: TMessage);
begin
case msg.wparam of
0:SpeedButton2.Click;
1:SpeedButton1.Click;
end;
end;
procedure TF_ZHXD.FormCreate(Sender: TObject);
begin
DM.ADOTableZHXD.Active:=true ;
end;
procedure TF_ZHXD.DataSourceZHXDDataChange(Sender: TObject; Field: TField);
begin
if DM.ADOTableZHXD.RecNo=RecNoZHXD then
begin
FlagZHXD:=False; //当数据有改动时,如果仍是当前记录,则设保存标志为假
end
else
begin
RecNoZHXD:=Dm.ADOTableZHXD.RecNo; //保存新记录指针
DM.ADOTableMXD.Cancel;
// case PageControl1.ActivePageIndex of
// 0: DBEditDingDanNo.SetFocus;
// 1: DBMemo7.SetFocus;
// end;
end;
end;
procedure TF_ZHXD.N2Click(Sender: TObject);
begin
if FontDialog1.Execute then
begin
DBRichEdit1.SelAttributes.Size:=Fontdialog1.Font.Size;
DBRichEdit1.SelAttributes.Color:=Fontdialog1.Font.Color;
DBRichEdit1.SelAttributes.Style:=Fontdialog1.Font.Style;
end;
end;
procedure TF_ZHXD.DBEditDingDanNoKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
DBEdit1.SetFocus
else
exit;
end;
procedure TF_ZHXD.DBEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
DBEdit2.SetFocus
else
exit;
end;
procedure TF_ZHXD.DBEdit2KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
DBmemo11.SetFocus
else
exit;
end;
procedure TF_ZHXD.DBEdit4KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
DBEdit5.SetFocus
else
exit;
end;
procedure TF_ZHXD.DBEdit5KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
DBEdit6.SetFocus
else
exit;
end;
procedure TF_ZHXD.DBEdit6KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
DBEdit7.SetFocus
else
exit;
end;
procedure TF_ZHXD.DBEdit7KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
DBrichedit2.SetFocus
else
exit;
end;
procedure TF_ZHXD.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if SpeedButton2.Enabled then
if (Application.MessageBox('数据尚未保存,是否保存'+#13+'该数据并退出应用程序?','提示',4+32)=IDYes) then
SpeedButton2Click(self)
else begin
DM.ADOTablezhxd.Cancel;
exit;
end;
if SpeedButton2.Enabled then
begin
CanClose := False;
Exit;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -