📄 ufbookalert.~pas
字号:
unit ufBookAlert;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DB, Grids, DBGrids, StdCtrls, Buttons, DBCtrls, Mask,ADODB;
type
TfBookAlert = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Splitter1: TSplitter;
dsAlert: TDataSource;
DBGrid1: TDBGrid;
GroupBox1: TGroupBox;
dtxtOpe: TDBText;
dtxtDate: TDBText;
P_name: TStaticText;
dedtBarcode: TDBEdit;
StaticText3: TStaticText;
StaticText4: TStaticText;
dedtCnName: TDBEdit;
StaticText5: TStaticText;
dedtPrice: TDBEdit;
StaticText6: TStaticText;
dcbxType: TDBComboBox;
StaticText7: TStaticText;
dedtCode: TDBEdit;
StaticText8: TStaticText;
dedtISBN: TDBEdit;
StaticText17: TStaticText;
dedtQty: TDBEdit;
StaticText18: TStaticText;
dedtAQty: TDBEdit;
StaticText9: TStaticText;
dedtEnName: TDBEdit;
StaticText22: TStaticText;
StaticText10: TStaticText;
dedtGetID: TDBEdit;
StaticText11: TStaticText;
dedtInP: TDBEdit;
StaticText12: TStaticText;
dedtPage: TDBEdit;
StaticText13: TStaticText;
dcbxMType: TDBComboBox;
StaticText14: TStaticText;
dcbxZaiti: TDBComboBox;
p_ID: TStaticText;
cbxPro_name: TComboBox;
StaticText21: TStaticText;
StaticText1: TStaticText;
dedtInfo: TDBEdit;
StaticText2: TStaticText;
dedtDID: TDBEdit;
StaticText20: TStaticText;
dchkbxStatus1: TDBCheckBox;
dcbxPro_ID: TDBComboBox;
Panel3: TPanel;
UpdateBtn: TBitBtn;
ApplyBtn: TBitBtn;
CancelBtn: TBitBtn;
ExitBtn: TBitBtn;
Splitter2: TSplitter;
Splitter3: TSplitter;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure exitBtnClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure UpdateBtnClick(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
procedure ApplyBtnClick(Sender: TObject);
procedure dedtAQtyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
procedure SetStatus(status:boolean); //置控件状态
procedure SetBStatus(status:boolean); //置按钮状态
procedure SEtPstatus(status:boolean); //置供应商对应的控件状态
{ Private declarations }
public
{ Public declarations }
end;
const
Ope='张三';
var
fBookAlert: TfBookAlert;
implementation
uses udmpublish, Uglobal;
{$R *.dfm}
procedure TfBookAlert.FormClose(Sender: TObject; var Action: TCloseAction);
begin
fBookAlert:=nil;
action:=cafree;
end;
procedure TfBookAlert.exitBtnClick(Sender: TObject);
begin
close;
end;
//窗体初始化
procedure TfBookAlert.FormCreate(Sender: TObject);
begin
//打开表
if c_getPid2(dmpublish.adsShare,'ID','NAME','PROVIDER','STATUS',dcbxPro_id,cbxPro_name) then
begin
with dmpublish do
begin
if adsalert.Active then
adsalert.Active:=false;
if not adsalert.Active then
begin
adsalert.commandtext:='select * from PUBLISH_BOOK where STATUS=''1'' and Store_quantity<=Alert_quantity';
adsalert.Active:=true;
end;
end;
end;
end;
//窗体显示
procedure TfBookAlert.FormShow(Sender: TObject);
begin
//置控件状态为无效
SetStatus(false);
//置按钮状态为有效
SetBStatus(true);
SetPstatus(false);
//重新查询一遍
dmpublish.adsalert.Requery();
end;
procedure TfBookAlert.SetBStatus(status: boolean);
begin
UpdateBtn.Enabled:=status;
ExitBtn.Enabled:=status;
Applybtn.Enabled:=not status;
CancelBtn.Enabled:=not status;
end;
{ TODO : 修改 }
procedure TfBookAlert.UpdateBtnClick(Sender: TObject);
begin
if dmpublish.adsalert.RecordCount <= 0 then
MSG('数据库为空,修改操作取消!','E')
else
begin
//置按钮状态为无效
SetBStatus(false);
setStatus(false);
SetPStatus(true);
cbxpro_name.Enabled:=false;
{ TODO : 只能改预警数量 }
dedtaqty.Enabled:=true;
dmpublish.adsalert.Edit;
cbxpro_name.ItemIndex:=dcbxpro_id.Items.IndexOf(trim(dcbxpro_id.Text));
dedtaqty.SetFocus;
end;
end;
procedure TfBookAlert.CancelBtnClick(Sender: TObject);
begin
if Msg('确定要取消操作吗?','Q')then
begin
dmpublish.adsalert.CancelUpdates;
formshow(fBookAlert);
end;
end;
procedure TfBookAlert.SetStatus(status: boolean);
begin
dcbxMType.Enabled:=status;
dcbxType.Enabled:=status;
dcbxZaiti.Enabled:=status;
dedtAQty.Enabled:=status;
dedtBarcode.Enabled:=status;
dedtCnname.Enabled:=status;
dedtCode.Enabled:=status;
dedtEnname.Enabled:=status;
dedtGEtID.Enabled:=status;
dedtInp.Enabled:=status;
dedtisbn.Enabled:=status;
dedtpage.Enabled:=status;
dedtprice.Enabled:=status;
dedtqty.Enabled:=status;
dedtinfo.Enabled:=status;
dedtDID.Enabled:=status;
end;
procedure TfBookAlert.ApplyBtnClick(Sender: TObject);
begin
//取数据库时间
with dmpublish.l_store do
begin
procedurename:='geddate;1';
parameters.Clear;
parameters.CreateParameter('@out',ftDatetime,pdoutput,0,Unassigned);
Prepared;
execproc;
if parameters[0].Value<>null then
begin
dtxtDate.Field.AsString:=FormatDateTime('YYYY-MM-DD',parameters[0].Value);
end
else
dtxtDate.Field.AsString:=FormatDateTime('YYYY-MM-DD',Now());
end;
dtxtOpe.Field.AsString:=Ope;
{ TODO : 保存记录 }
try
dmpublish.adsalert.UpdateBatch(); //保存
MSG('记录修改成功!','I');
formshow(fBookAlert);
except
MSG('操作出错,记录修改失败!','W');
dmpublish.adsalert.CancelUpdates;
formshow(fBookAlert);
end;
end;
procedure TfBookAlert.SEtPstatus(status: boolean);
begin
P_ID.Visible:=not Status;
dcbxPro_ID.Visible:=not Status;
dcbxPro_ID.Enabled:=status;
P_name.Visible:=status;
cbxPro_name.Visible:=status;
cbxPro_Name.Enabled:=status;
end;
procedure TfBookAlert.dedtAQtyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=Vk_Return then
applybtn.SetFocus;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -