📄 u_mxd.pas
字号:
unit U_MXD;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, Buttons, ExtCtrls, StdCtrls, DBCtrls, Mask, ComCtrls,U_DM,
Menus, Db, ADODB;
type
TF_MXD = class(TForm)
Panel1: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Panel2: TPanel;
Label1: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
RadioGroup1: TRadioGroup;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
Panel3: TPanel;
GroupBox1: TGroupBox;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
GroupBox2: TGroupBox;
Label25: TLabel;
Label26: TLabel;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBGride1: TDBGrid;
Splitter1: TSplitter;
DBEditDingDanNo: TDBEdit;
Label30: TLabel;
DateTimePicker1: TDateTimePicker;
PageControl2: TPageControl;
TabSheet3: TTabSheet;
Panel4: TPanel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
Label39: TLabel;
Label40: TLabel;
Label41: TLabel;
Label42: TLabel;
DBMemo6: TDBMemo;
DBMemo5: TDBMemo;
DBMemo4: TDBMemo;
DBMemo3: TDBMemo;
DBMemo2: TDBMemo;
DBMemo1: TDBMemo;
DBEdit12: TDBEdit;
Label43: TLabel;
Label44: TLabel;
Panel6: TPanel;
Label2: TLabel;
Label3: TLabel;
DBMemo8: TDBMemo;
DBMemo9: TDBMemo;
DBMemo7: TDBMemo;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N3: TMenuItem;
DBCheckBox1: TDBCheckBox;
DBCheckBox2: TDBCheckBox;
DBMemo10: TDBMemo;
DBMemo11: TDBMemo;
DBMemo12: TDBMemo;
DataSourceMXD: TDataSource;
ADOQuery1: TADOQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure DateTimePicker1Change(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Panel1DblClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
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 DBEdit12KeyPress(Sender: TObject; var Key: Char);
procedure DBEditDingDanNoKeyPress(Sender: TObject; var Key: Char);
procedure DBEdit2KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit4KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit7KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit8KeyPress(Sender: TObject; var Key: Char);
procedure DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit10KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit11KeyPress(Sender: TObject; var Key: Char);
procedure DBCheckBox1KeyPress(Sender: TObject; var Key: Char);
procedure DBCheckBox2KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure DataSourceMXDDataChange(Sender: TObject; Field: TField);
private
{ Private declarations }
procedure HandleMag(var Msg: TMessage);message WM_HOTKEY;
public
{ Public declarations }
end;
var
F_MXD: TF_MXD;
FlagMXD: Boolean; //定义为是否保存过标志,为真:已保存,为假:未保存
RecNoMXD: Integer; //定义为当前所指向的记录
StrMXD: string;
mxdshow:boolean;
implementation
uses umain, U_MXDCX,U_P_MXD,U_XGDW, U_Modal;
{$R *.DFM}
procedure TF_MXD.FormClose(Sender: TObject; var Action: TCloseAction);
//释放明细单子窗体
begin
DM.ADOQueryMXDCX.Close;
ADOQuery1.Active:=false;
DM.ADOTableMXD.Active:=false; ///ly
Frmmain.Outlook1.Visible :=true;
Frmmain.Panel2.Visible:=True;
frmmain.Label1.Caption:='';
F_MXD:=nil;
Action:=caFree;
end;
procedure TF_MXD.SpeedButton5Click(Sender: TObject);
begin
Close;
end;
procedure TF_MXD.SpeedButton1Click(Sender: TObject);
begin
SpeedButton2.Enabled:=true;
DBEditDingDanNo.ReadOnly:=false;
DBEdit2.ReadOnly:=false;
DBMemo10.ReadOnly:=false;
DBEdit3.ReadOnly:=false;
DBEdit4.ReadOnly:=false;
DBMemo11.ReadOnly:=false;
DBEdit7.ReadOnly:=false;
DBEdit8.ReadOnly:=false;
DBMemo12.ReadOnly:=false;
DBEdit10.ReadOnly:=false;
DBEdit11.ReadOnly:=false;
DBMemo1.ReadOnly:=false;
DBMemo2.ReadOnly:=false;
DBMemo3.ReadOnly:=false;
DBMemo4.ReadOnly:=false;
DBMemo5.ReadOnly:=false;
DBMemo6.ReadOnly:=false;
DBMemo7.ReadOnly:=false;
DBEdit12.ReadOnly:=false;
DBMemo8.ReadOnly:=false;
DBMemo9.ReadOnly:=false;
dbCheckBox1.ReadOnly:=false;
dbCheckBox2.ReadOnly:=false;
RadioGroup1.Enabled:=true;
DateTimePicker1.Enabled:=true;
if DM.ADOTableMXD.RecordCount<=0 then
FlagMXD:=False; //如果没有记录,则将保存标志设置为假
// F_MXD.SpeedButton2Click(Sender); //如果连续点击增加按钮,则将上一条记录保存
DM.ADOTableMXD.Close;
DM.ADOTableMXD.Open;
DM.ADOTableMXD.Append;
DateTimePicker1.Date:=Now;
RadioGroup1.ItemIndex:=0;
dbCheckBox1.Checked:=false;
dbCheckBox2.Checked:=false;
if PageControl1.ActivePageIndex<>0 then
PageControl1.ActivePage:=TabSheet1; //新增加记录时将基本信息页设置为当前活动页
DBEditDingDanNo.SetFocus;
FlagMXD:=False;
//
F_Modal := TF_Modal.Create(self);
F_Modal.Label1.Caption := '通知人';
F_Modal.Label2.Caption := '订单编号';
TN := 'xs_MXD';
F1 := 'Notify';
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_MXD.SpeedButton4Click(Sender: TObject);
begin
Screen.Cursor := -11;
mxdshow:=true;
if F_P_MXD=nil then
F_P_MXD:=TF_P_MXD.Create(self);
Screen.Cursor :=0;
F_P_MXD.QuickRep1.Preview;
mxdshow:=false;
end;
procedure TF_MXD.SpeedButton3Click(Sender: TObject);
begin
if DM.ADOTableMXD.RecordCount<=0 then
begin
Application.MessageBox('没有记录可以删除!','明细单管理',0+16);
FlagMXD:=True;
Exit;
end
else
if Application.MessageBox('确实要删除此记录?','明细单管理',4+16)=IDYES then
begin
DM.ADOTableMXD.Delete;
FlagMXD:=True;
SpeedButton2.Enabled:=false;
end;
end;
procedure TF_MXD.SpeedButton2Click(Sender: TObject);
begin
if FlagMXD then
begin
Application.MessageBox('当前数据已保存!','提示',0+64);
Exit;
end;
if DBEditDingDanNo.Text='' then
begin
Application.MessageBox('订单编号不许为空,请重新输入!','明细单管理',0+64);
if PageControl1.ActivePageIndex<>0 then
PageControl1.ActivePage:=TabSheet1; //新增加记录时将基本信息页设置为当前活动页
DBEditDingDanNo.SetFocus;
Exit;
end;
if DBEdit8.Text='' then
begin
Application.MessageBox('目的港不许为空,请重新输入!','明细单管理',0+64);
if PageControl1.ActivePageIndex<>0 then
PageControl1.ActivePage:=TabSheet1; //新增加记录时将基本信息页设置为当前活动页
DBEdit8.SetFocus;
Exit;
end;
try
DM.ADOTableMXD.Edit;
DM.ADOTableMXD.FieldByName('ZhuangYunDate').AsDateTime:=DateTimePicker1.Datetime;//在保存前将日期转为字符串类型
case RadioGroup1.ItemIndex of
0: DM.ADOTableMXD.FieldByName('HuoWuXZH').AsString:='贸易';
1: DM.ADOTableMXD.FieldByName('HuoWuXZH').AsString:='补偿';
2: DM.ADOTableMXD.FieldByName('HuoWuXZH').AsString:='退运';
3: DM.ADOTableMXD.FieldByName('HuoWuXZH').AsString:='其它';
end;
if dbCheckBox1.Checked then
DM.ADOTableMXD.FieldByName('FenPi').Asboolean:=true
else
DM.ADOTableMXD.FieldByName('FenPi').Asboolean:=false;
if dbCheckBox2.Checked then
DM.ADOTableMXD.FieldByName('ZhuanYun').Asboolean:=true
else
DM.ADOTableMXD.FieldByName('ZhuanYun').Asboolean:=false;
DM.ADOTableMXD.Post;
DBEditDingDanNo.ReadOnly:=false;
DBEdit2.ReadOnly:=true;
DBMemo10.ReadOnly:=true;
DBEdit3.ReadOnly:=true;
DBEdit4.ReadOnly:=true;
DBMemo11.ReadOnly:=true;
DBEdit7.ReadOnly:=true;
DBEdit8.ReadOnly:=true;
DBMemo12.ReadOnly:=true;
DBEdit10.ReadOnly:=true;
DBEdit11.ReadOnly:=true;
DBMemo1.ReadOnly:=true;
DBMemo2.ReadOnly:=true;
DBMemo3.ReadOnly:=true;
DBMemo4.ReadOnly:=true;
DBMemo5.ReadOnly:=true;
DBMemo6.ReadOnly:=true;
DBMemo7.ReadOnly:=true;
DBEdit12.ReadOnly:=true;
DBMemo8.ReadOnly:=true;
DBMemo9.ReadOnly:=true;
dbCheckBox1.ReadOnly:=true;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -