📄 warehousesearch_unit.pas
字号:
unit WarehouseSearch_Unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ExtCtrls, ComCtrls, StdCtrls, Buttons;
type
TfrmWarehouseSearch = class(TForm)
GroupBox1: TGroupBox;
CloseBtn: TBitBtn;
FindBtn: TBitBtn;
edtMaterialName: TEdit;
StatusBar1: TStatusBar;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
edtMaterialType: TEdit;
edtWarehouseName: TEdit;
DBGWareSearch: TDBGrid;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DtpBeginChange(Sender: TObject);
procedure edtWarehouseNameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure CloseBtnClick(Sender: TObject);
procedure edtMaterialNameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtMaterialTypeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FindBtnClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
ACoulmnName,ACoulmnID,ACode,AName:string;
SumMoney:string;
procedure OfferWarehouseSearch(var FWarehouseName,FMaterialName,FMaterialType,
FSumMoney:string); //库存查询
public
{ Public declarations }
end;
var
frmWarehouseSearch: TfrmWarehouseSearch;
implementation
uses SpellInputUnit, DM_Unit;
{$R *.dfm}
procedure TfrmWarehouseSearch.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
DM.sdsWarehouseSearch.Close;
Action:=caFree;
frmWarehouseSearch:=nil;
end;
procedure TfrmWarehouseSearch.DtpBeginChange(Sender: TObject);
begin
StatusBar1.Panels[0].text:=' 请选择要查询的入库时间范围。';
end;
procedure TfrmWarehouseSearch.edtWarehouseNameKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_SPACE then
begin
frmSpellInput.showFormData('WMS_WareInfo','WarehouseName','WarehouseID',ACode,AName);
edtWarehouseName.Text:=AName;
edtMaterialName.SetFocus;
end;
end;
procedure TfrmWarehouseSearch.CloseBtnClick(Sender: TObject);
begin
Close;
end;
procedure TfrmWarehouseSearch.edtMaterialNameKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_SPACE then
begin
frmSpellInput.showFormData('WMS_MaterialInfo','MaterialName','MaterialSpell',ACode,AName);
edtMaterialName.Text:=AName;
edtMaterialType.SetFocus;
end;
end;
procedure TfrmWarehouseSearch.edtMaterialTypeKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_SPACE then
begin
frmSpellInput.showFormData('WMS_MaterialType','MaterialType','MaterialTypeID',ACode,AName);
edtMaterialType.Text:=AName;
FindBtn.SetFocus;
end;
end;
procedure TfrmWarehouseSearch.FindBtnClick(Sender: TObject);
var
Abegintime,Aendtime:string;
AWarehouseName,AMaterialName,AMaterialType:string;
begin
AWarehouseName := edtWarehouseName.Text;
AMaterialName := edtMaterialName.Text;
AMaterialType := edtMaterialType.Text;
OfferWarehouseSearch(AWarehouseName,AMaterialName,AMaterialType,SumMoney);
if DM.sdsWarehouseSearch.RecordCount>0 then
begin
DBGWareSearch.DataSource:=DM.dsWarehouseSearch;
StatusBar1.Panels[0].text:='库存中共 '+
inttostr(DM.sdsWarehouseSearch.RecordCount)+' 种物品。'+
' 合计金额: '+SumMoney+'元';
edtWarehouseName.setfocus;
end
else
begin
Application.MessageBox('没有符合条件的记录!请重新选择时间范围。','信息',MB_OK+MB_ICONINFORMATION);
edtWarehouseName.SetFocus;
end;
end;
procedure TfrmWarehouseSearch.OfferWarehouseSearch(var FWarehouseName,
FMaterialName, FMaterialType, FSumMoney: string);
var
Temp,str_sql:string;
TempMoney:Integer;
begin
Temp:='WarehouseName like ''%'+trim(FWarehouseName)+'%'''+
' and MaterialName like ''%'+trim(FMaterialName)+'%'''+
' and MaterialType like ''%'+trim(FMaterialType)+'%''';
str_sql:=' select * from WMS_WAREHOUSE where 1<>2 '+
' and '+Temp+' '+
' order by WarehouseNo,WarehouseName';
with DM.sdsWarehouseSearch do
begin
Close;
DataSet.CommandText := str_sql;
Open;
end;
TempMoney:=0;
with DM.sdsWarehouseSearch do
begin
first;
while not eof do
begin
TempMoney:=TempMoney+fieldbyname('MATERIALMONEY').AsInteger;
next;
end;
end;
FSumMoney := IntToStr(TempMoney);
end;
procedure TfrmWarehouseSearch.FormCreate(Sender: TObject);
begin
edtWarehouseName.Text:='';
edtMaterialName.Text:='';
edtMaterialType.Text := '';
DM.sdsWarehouseSearch.Open;
StatusBar1.Panels[0].text:=' 请选择要查询的条件。';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -