📄 stockplan.pas
字号:
unit stockPlan;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables;
type
TfrmStockPlan = class(TForm)
Query1: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
GroupBox1: TGroupBox;
wzName: TComboBox;
Label1: TLabel;
wzId: TEdit;
Label2: TLabel;
Label3: TLabel;
num: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button6: TButton;
Table1: TTable;
Table2: TTable;
procedure FormCreate(Sender: TObject);
procedure wzNameSelect(Sender: TObject);
procedure numExit(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
procedure refreshDbGrid;
public
{ Public declarations }
end;
var
frmStockPlan: TfrmStockPlan;
implementation
uses comFunc;
{$R *.dfm}
{ TfrmStockPlan }
procedure TfrmStockPlan.refreshDbGrid;
begin
with query1 do
begin
close;
sql.Clear;
sql.Add('select a.物资编号,a.物资名称,b.库存数量');
sql.Add('from wzinfo as a ,stock_plan as b');
sql.Add('where a.物资编号=b.物资编号');
open;
end;
end;
procedure TfrmStockPlan.FormCreate(Sender: TObject);
begin
{初始化物资名称和物资编号}
with table1 do
begin
open;
while not eof do
begin
wzName.Items.Add(fieldByName('物资名称').AsString);
next;
end;
wzName.ItemIndex:=0;
first;
wzId.Text:=fieldByName('物资编号').AsString;
close;
end;//end of with
end;
procedure TfrmStockPlan.wzNameSelect(Sender: TObject);
begin
with table1 do
begin
open;
while not eof do
begin
if fieldByName('物资名称').AsString=wzName.Items[wzName.ItemIndex] then
begin
wzId.Text:=fieldByName('物资编号').AsString;
break;
end;
next;
end;
close;
end;
end;
procedure TfrmStockPlan.numExit(Sender: TObject);
begin
if (isInteger(num.Text)=false) and
(num.Text<>'') then
begin
showMessage('输入的数量有错误!');
activeControl:=num;
end;
end;
procedure TfrmStockPlan.Button1Click(Sender: TObject);
begin
{检查库存数量的合理性}
if num.Text='' then
begin
showMessage('库存数量不能为空!');
activeControl:=num;
exit;
end;
{对库存数据表进行修改}
with table2 do
begin
open;
while not eof do
begin
if (wzId.Text=fieldByName('物资编号').AsString)then
begin
edit;
fieldValues['库存数量']:=num.Text;
post;
showMessage('修改数据成功!');
refreshDbGrid;
close;
exit;
end;
next;
end;//end of while
close;
showMessage('库存计划中没有所对应的项!');
end;//end of with
end;
procedure TfrmStockPlan.Button2Click(Sender: TObject);
begin
{检查库存数量是否合理}
if num.Text='' then
begin
showMessage('库存数量不能为空!');
activeControl:=num;
exit;
end;
with table2 do
begin
open;
while not eof do
begin
if (wzId.Text=fieldByName('物资编号').AsString)then
{增加库存计划表中某项的库存数量}
begin
edit;
fieldValues['库存数量']:=strToint(num.Text)+
fieldByName('库存数量').AsInteger;
post;
showMessage('增加库存数量成功!');
refreshDbGrid;
close;
exit;
end;
next;
end;//end of while
{库存计划中没有所对应的项,增加一条记录}
insert;
fieldValues['物资编号']:=wzId.Text;
fieldValues['库存数量']:=num.Text;
post;
showMessage('增加库存记录成功!');
refreshDbGrid;
end;//end of with
end;
procedure TfrmStockPlan.Button3Click(Sender: TObject);
var
rt:integer;
begin
with table2 do
begin
open;
while not eof do
begin
if (fieldByName('物资编号').AsString=wzId.Text) then
begin
{询问用户是否要真的删除记录}
rt:=messageDlg('是否真的要删除?',mtConfirmation,
[mbYes,mbNo],0);
if rt=mrYes then
begin
delete;
close;
refreshDbGrid;
exit;
end
else
begin
close;
exit;
end;
end;
next;
end;
close;
showMessage('没有找到要删除的库存计划!');
end;//end of with
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -