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

📄 stockplan.pas

📁 物资管理系统
💻 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 + -