📄 storagequeryfrm.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 + -