⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 warehousesearch_unit.pas

📁 仓库管理系统 貌似是ACCESS的数据库
💻 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 + -