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

📄 storagequeryfrm.pas

📁 这是一个本人初定的小制作
💻 PAS
字号:
unit StorageQueryFrm;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, 
  Buttons, ExtCtrls, MainDM, CommonFunc, Grids, DBGrids, ComCtrls, CheckLst;

type
  TStorageQueryDlg = class(TForm)
    DBGrid: TDBGrid;
    CLBGoods: TCheckListBox;
    SBtnSearch: TSpeedButton;
    SBtnSelAll: TSpeedButton;
    SBtnSelInverse: TSpeedButton;
    Panel1: TPanel;
    procedure SBtnSelAllClick(Sender: TObject);
    procedure SBtnSelInverseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SBtnSearchClick(Sender: TObject);
    procedure DBGridDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  StorageQueryDlg: TStorageQueryDlg;

implementation

{$R *.dfm}
const
  CMINNUM = 100;


procedure TStorageQueryDlg.SBtnSelAllClick(Sender: TObject);
var
  m, i:integer;
begin
  m := CLBGoods.Items.Count - 1;
  for i := 0 to m do
    CLBGoods.Checked[i] := true;
end;

procedure TStorageQueryDlg.SBtnSelInverseClick(Sender: TObject);
var
  m, i:integer;
begin
  m := CLBGoods.Items.Count - 1;
  for i := 0 to m do
    CLBGoods.Checked[i] := not CLBGoods.Checked[i];
end;
procedure TStorageQueryDlg.FormShow(Sender: TObject);
begin
  CLBGoods.Clear;
  DMMain.ADOTGood.Open;
  DMMain.ADOTGood.First;
  while not DMMain.ADOTGood.Eof do
  begin
    CLBGoods.Items.Add(DMMain.ADOTGood.FieldByName('Id').Value);
    DMMain.ADOTGood.Next;
  end;
  SBtnSelAllClick(nil);
end;

procedure TStorageQueryDlg.SBtnSearchClick(Sender: TObject);
var
  LStrId: string;
  i, n: integer;
  strlst: TStringList;
begin
  strlst := TStringList.Create;
  strlst.Clear;
  n := CLBGoods.Items.Count - 1;
  for i:= 0 to n do
  begin
    LStrId := CLBGoods.Items.Strings[i];
    if CLBGoods.Checked[i] then
    begin
      if strlst.Text = '' then
        strlst.Add('GoodId='+LStrId)
      else
      strlst.Add(' or GoodId='+LStrId);
    end;
  end;
  DBGrid.DataSource.DataSet.Open;
  DBGrid.DataSource.DataSet.Filter := strlst.Text;
  DBGrid.DataSource.DataSet.Filtered := true;
  DBGrid.DataSource.DataSet.Open;
  FreeAndNil(strlst);

end;

procedure TStorageQueryDlg.DBGridDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var
  LSaftyStock, LNum: integer;
begin
  LNum := (sender as TDBGrid).DataSource.DataSet.FieldByName('AMount').AsInteger;
  DMMain.ADOTGood.Locate('Id',(sender as TDBGrid).DataSource.DataSet.FieldByName('GoodId').AsString,
    []);
  LSaftyStock := DMMain.ADOTGood.FieldByName('SaftyStock').AsInteger;
  if LNum <= LSaftyStock then
  begin
    (sender as TDBGrid).Canvas.Font.Color := clRed;
  end;
  (sender as TDBGrid).DefaultDrawColumnCell(Rect,Datacol,Column,State);


end;

procedure TStorageQueryDlg.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -