📄 u_fhp.pas
字号:
unit U_FHP;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, Grids, DBGrids, ExtCtrls, ComCtrls, StdCtrls, Mask, DBCtrls, Db,
ADODB, Menus, ExtDlgs,jpeg;
type
TF_FHP = class(TForm)
Panel1: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
Panel2: TPanel;
Label9: TLabel;
Label1: TLabel;
Label3: TLabel;
Label7: TLabel;
Label2: TLabel;
Label8: TLabel;
Label11: TLabel;
Label12: TLabel;
Label4: TLabel;
Label6: TLabel;
Label5: TLabel;
Label10: TLabel;
DBEditDingDanNo: TDBEdit;
DBEdit3: TDBEdit;
dw: TDBEdit;
DBEdit4: TDBEdit;
DateTimePicker1: TDateTimePicker;
Panel3: TPanel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBMemo2: TDBMemo;
Panel4: TPanel;
ADOQuery1: TADOQuery;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N3: TMenuItem;
DBMemo1: TDBMemo;
OpenPictureDialog1: TOpenPictureDialog;
DataSourceFHP: TDataSource;
Panel5: TPanel;
Label24: TLabel;
DBRichEdit1: TDBRichEdit;
Label32: TLabel;
Label22: TLabel;
Label34: TLabel;
Label33: TLabel;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
Panel6: TPanel;
DBImage1: TDBImage;
Label23: TLabel;
Label31: TLabel;
Label21: TLabel;
DBMemo8: TDBMemo;
FontDialog1: TFontDialog;
PopupMenu2: TPopupMenu;
N2: TMenuItem;
DBEdit1: TDBEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure DateTimePicker1Change(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Panel1DblClick(Sender: TObject);
procedure Panel2DblClick(Sender: TObject);
procedure Panel3DblClick(Sender: TObject);
procedure Panel4DblClick(Sender: TObject);
procedure SpeedButton5MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormActivate(Sender: TObject);
procedure SpeedButton4MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure SpeedButton3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure SpeedButton2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure SpeedButton1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure DBEdit4KeyPress(Sender: TObject; var Key: Char);
procedure N3Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure DBImage1DblClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure N2Click(Sender: TObject);
procedure DBEditDingDanNoKeyPress(Sender: TObject; var Key: Char);
procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);
procedure dwKeyPress(Sender: TObject; var Key: Char);
procedure DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit6KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit8KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit7KeyPress(Sender: TObject; var Key: Char);
procedure DBImage1KeyPress(Sender: TObject; var Key: Char);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure DBEdit1KeyPress(Sender: TObject; var Key: Char);
private
procedure HandleMag(var Msg: TMessage);message WM_HOTKEY;
{ Private declarations }
public
{ Public declarations }
end;
var
F_FHP: TF_FHP;
FlagFHP: Boolean; //定义为是否保存过标志,为真:已保存,为假:未保存
RecNoFHP: Integer; //定义为当前所指向的记录
FHPshow:boolean;
implementation
uses U_DM, umain,U_P_FHP, U_FPCX,U_XGDW, U_Modal;//
{$R *.DFM}
procedure TF_FHP.FormClose(Sender: TObject; var Action: TCloseAction);
//释放发票管理子窗体
begin
DM.ADOTableFHP.Close;
Frmmain.Outlook1.Visible:=true;
Frmmain.Panel2.Visible:=True;
frmmain.Label1.Caption:='';
F_FHP:=nil;
Action:=caFree;
end;
procedure TF_FHP.SpeedButton1Click(Sender: TObject);
begin
Close;
end;
{*********************************
增加新记录处理过程
*********************************
}
procedure TF_FHP.SpeedButton5Click(Sender: TObject);
begin
DBEditDingDanNo.ReadOnly:=false;
DBEdit1.ReadOnly:=false;
DBEdit3.ReadOnly:=false;
DBEdit4.ReadOnly:=false;
dw.ReadOnly:=false;
DBRichEdit1.ReadOnly:=false;
DBMemo1.ReadOnly:=false;
DBEdit6.ReadOnly:=false;
DBMemo2.ReadOnly:=false;
DBEdit8.ReadOnly:=false;
DBEdit7.ReadOnly:=false;
DBMemo8.ReadOnly:=false;
DBRichEdit1.ReadOnly:=false;
//DateTimePicker1.Enabled:=true;
SpeedButton4.Enabled:=true;
if DM.ADOTableFHP.RecordCount<=0 then
FlagFHP:=False; //如果没有记录,则将保存标志设置为假
//F_FHP.SpeedButton4Click(Sender); //如果连续点击增加按钮,则将上一条记录保存
// if DM.ADOTablefhp.RecordCount>0 then
// ShowMessage('确实要增加新纪录吗?');
DM.ADOTableFHP.Close;
DM.ADOTableFHP.Open;
DM.ADOTableFHP.Last;
DM.ADOTableFHP.Append;
//DM.ADOTableFHP.First;
// DM.ADOTableFHP.Insert;
//DateTimePicker1.Date:=Now;
DBEditDingDanNo.SetFocus;
FlagFHP:=False;
//
F_Modal := TF_Modal.Create(self);
F_Modal.Label1.Caption := '购货单位';
F_Modal.Label2.Caption := '订单编号';
TN := 'xs_FHP';
F1 := 'PayingUnit';
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_FHP.SpeedButton4Click(Sender: TObject);
begin
if DBEditDingDanNo.Text='' then
begin
Application.MessageBox('订单编号不许为空,请重新输入!','专用发票管理',0+64);
DBEditDingDanNo.SetFocus;
Exit;
end;
if DBEdit6.Text='' then
begin
Application.MessageBox('购货单位不许为空,请重新输入!','专用发票管理',0+64);
DBEdit6.SetFocus;
Exit;
end;
try
DM.ADOTableFHP.edit;
// DM.ADOTableFHP.FieldByName('Date').AsDateTime:=DateTimePicker1.Date;//在保存前将日期转为字符串类型
DM.ADOTableFHP.post;
DBEditDingDanNo.ReadOnly:=true;
DBEdit1.ReadOnly:=true;
DBEdit3.ReadOnly:=true;
DBEdit4.ReadOnly:=true;
dw.ReadOnly:=true;
DBMemo1.ReadOnly:=true;
DBEdit6.ReadOnly:=true;
DBMemo2.ReadOnly:=true;
DBEdit8.ReadOnly:=true;
DBEdit7.ReadOnly:=true;
DBMemo8.ReadOnly:=true;
DBRichEdit1.ReadOnly:=true;
SpeedButton4.Enabled:=false;
//DateTimePicker1.Enabled:=false;
FlagFHP:=True;
F_FHP.Caption:='专用发票管理';
Application.MessageBox('数据保存成功!','提示',0+64);
except
Application.MessageBox('数据保存错误,请重新输入!', '专用发票管理',0+16);
exit;
end;
end;
{*********************************
删除记录处理过程
*********************************
}
procedure TF_FHP.SpeedButton3Click(Sender: TObject);
begin
try
if DM.ADOTableFHP.RecordCount<=0 then
begin
Application.MessageBox('没有记录可以删除!','专业发票管理',0+16);
FlagFHP:=True;
Exit;
end
else
if Application.MessageBox('确实要删除此记录?','专业发票管理',4+16)=IDYES then
begin
DM.ADOTableFHP.Delete;
FlagFHP:=True;
SpeedButton4.Enabled:=false;
end;
except
Application.MessageBox('无法删除此记录!', '专用发票管理',0+16);
end;
end;
{*********************************
调用打印预览窗体
*********************************
}
procedure TF_FHP.SpeedButton2Click(Sender: TObject);
begin
Screen.Cursor := -11;
FHPshow:=true;
if F_P_FHP=nil then
F_P_FHP:=TF_P_FHP.Create(self);
Screen.Cursor := 0;
F_P_FHP.QuickRep1.Preview;
FHPshow:=false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -