📄 unit_mater_stockview.pas
字号:
unit Unit_Mater_StockView;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, Db, DBTables, StdCtrls, Buttons, ExtCtrls;
type
TForm_Mater_StockView = class(TForm)
DBGrid_Stock: TDBGrid;
Qry_Stock: TQuery;
DS_Stock: TDataSource;
Panel1: TPanel;
BitBtn2: TBitBtn;
Edit_Mater: TEdit;
Qry_exe: TQuery;
Panel3: TPanel;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
Qry_StockWarn: TQuery;
Panel4: TPanel;
Panel5: TPanel;
Button1: TButton;
Edit1: TEdit;
Panel2: TPanel;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure Edit_MaterChange(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Edit_MaterExit(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Edit1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form_Mater_StockView: TForm_Mater_StockView;
implementation
{$R *.DFM}
procedure TForm_Mater_StockView.BitBtn2Click(Sender: TObject);
begin
with Qry_Stock do
begin
close;
sql.clear;
sql.Add('select 材料名称, sum(库存) as 库存 from 原材料台帐 ');
sql.Add('where 最后领料标识 = :v_lastOutCardFlag and 材料名称 = :v_mater ');
sql.Add('group by 材料名称 ');
parambyname('v_lastOutCardFlag').asboolean:=true;
parambyname('v_mater').asstring:=edit_mater.text;
open;
end;//with
end;
procedure TForm_Mater_StockView.BitBtn3Click(Sender: TObject);
begin
with Qry_Stock do
begin
close;
sql.clear;
sql.Add('select 材料名称, sum(库存) as 库存 from 原材料台帐 ');
sql.Add('where 最后领料标识 = :v_lastOutCardFlag and kuhao=:hao');
sql.Add('group by 材料名称 ');
parambyname('hao').asinteger:=strtoint(edit1.text);
parambyname('v_lastOutCardFlag').asboolean:=true;
open;
end;//with
end;
procedure TForm_Mater_StockView.BitBtn4Click(Sender: TObject);
begin
with Qry_Stock do
begin
close;
sql.clear;
sql.Add('select 材料名称, sum(库存) as 库存 from 原材料台帐 ');
sql.Add('where 最后领料标识 = :v_lastOutCardFlag and kuhao=:hao');
sql.Add('group by 材料名称 ');
parambyname('v_lastOutCardFlag').asboolean:=true;
parambyname('hao').asinteger:=strtoint(edit1.text);
open;
Qry_exe.close;
Qry_exe.sql.clear;
Qry_exe.sql.Add('delete from 原材料仓库 ' ) ;
Qry_exe.execsql;
while not eof do
begin
Qry_StockWarn.close;
Qry_StockWarn.sql.clear;
Qry_StockWarn.sql.add('select * from 原材料字典 where 材料名称 = :v_mater');
Qry_StockWarn.ParamByName('v_mater').asstring:=fieldbyname('材料名称').asstring;
Qry_StockWarn.open;
if Qry_StockWarn.FieldByName('库存下限').asfloat > fieldbyname('库存').asfloat then
begin
Qry_exe.close;
Qry_exe.sql.clear;
Qry_exe.sql.Add('insert into 原材料仓库.DB (材料名称, 库存) values (:v_mater, :v_Stock) ' ) ;
Qry_exe.parambyname('v_mater').asstring:=fieldbyname('材料名称').asstring;
Qry_exe.parambyname('v_stock').asfloat:=fieldbyname('库存').asfloat;
Qry_exe.execsql;
end;//if
next;
end;//while
end;//with
with Qry_Stock do
begin
close;
sql.clear;
sql.Add('select 材料名称, 库存 from 原材料仓库 ');
open;
if recordcount = 0 then
showmessage('所有原材料都大于库存下限');
if recordcount <> 0 then
showmessage(('上述原材料小于库存下限')+#13+(' 请立即采购!'));
close;
end; //with
end;
procedure TForm_Mater_StockView.Edit_MaterChange(Sender: TObject);
begin
with Qry_exe do
begin
close;
sql.clear;
sql.add('select * from 原材料字典 where 简称 = :v_index ');
parambyname('v_index').asstring:=Edit_mater.text;
open;
if recordcount = 0 then exit;
Edit_mater.text:= fieldbyname('材料名称').asstring;
end;//with
end;
procedure TForm_Mater_StockView.Button1Click(Sender: TObject);
begin
Qry_Stock.Active:=False;
Qry_StockWarn.Active:=False;
Qry_exe.Active:=False;
Close;
end;
procedure TForm_Mater_StockView.Edit_MaterExit(Sender: TObject);
begin
with Qry_Exe do
begin
close;
sql.clear;
sql.add('select * from 原材料字典 where 简称 = :v_index ');
parambyname('v_index').asstring:=Edit_Mater.text;
open;
if recordcount = 0 then
exit;
Edit_Mater.text:= fieldbyname('材料名称').asstring;
close;
end;//with
BitBtn2.SetFocus;
end;
procedure TForm_Mater_StockView.FormShow(Sender: TObject);
begin
edit1.text:='1';
end;
procedure TForm_Mater_StockView.Edit1Click(Sender: TObject);
begin
if edit1.text='1' then
begin
edit1.text:='2';
exit;
end;
if edit1.text='2' then
edit1.text:='1';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -