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

📄 unit10.pas

📁 服装制造业的库存管理系统,服装进销存进货,库存,出货等等.
💻 PAS
字号:
unit Unit10;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, Grids, DBGridEh, Buttons, ComCtrls, ToolWin;

type
  TForm10 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    DateTimePicker1: TDateTimePicker;
    GroupBox1: TGroupBox;
    Label3: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label4: TLabel;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit3: TEdit;
    ComboBox1: TComboBox;
    ToolBar1: TToolBar;
    ToolButton2: TToolButton;
    SpeedButton15: TSpeedButton;
    ToolButton6: TToolButton;
    SpeedButton1: TSpeedButton;
    ToolButton8: TToolButton;
    SpeedButton5: TSpeedButton;
    ToolButton7: TToolButton;
    SpeedButton11: TSpeedButton;
    DBGridEh1: TDBGridEh;
    DataSource1: TDataSource;
    Button1: TButton;
    ComboBox2: TComboBox;
    procedure SpeedButton11Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure SpeedButton15Click(Sender: TObject);
    procedure DBGridEh1DblClick(Sender: TObject);
  private
    function QueryTabel(aSql: string): Boolean;
    procedure ZdID(aSql: string);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form10: TForm10;

implementation

uses Data, Unit1;

{$R *.dfm}

function TForm10.QueryTabel(aSql: string): Boolean;
begin
  with MyData do
  begin
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add(aSql);
    ADOQuery1.Open;
  end;
end;
procedure TForm10.ZdID(aSql: string);
var
  Sum:string;
begin
  with MyData do
  begin
    aSql:='Select * from 原料出库单资料';
    ADOSelect.SQL.Clear;
    ADOSelect.SQL.Add(aSql);
    ADOSelect.Open;
    if ADOSelect.RecordCount>0 then
    begin
      aSql:='Select max(id) from 原料出库单资料';
      ADOSelect.SQL.Clear;
      ADOSelect.SQL.Add(aSql);
      ADOSelect.Open;
      Sum:='OY'+IntToStr(StrToInt(ADOSelect.Fields.Fields[0].Value)+10000);
    end
    else
      Sum:='OY10000';
    edit1.Text:=Sum;
  end;
end;

procedure TForm10.SpeedButton11Click(Sender: TObject);
begin
  close;
end;

procedure TForm10.SpeedButton5Click(Sender: TObject);
begin
  if MessageBox(Handle, '你是否要删除?', '操作提示', MB_YESNO +
    MB_ICONWARNING + MB_DEFBUTTON3 + MB_TOPMOST)=IDYES then
  begin
    if DataSource1.DataSet.RecordCount>0 then
      DataSource1.DataSet.Delete;
  end;
end;

procedure TForm10.SpeedButton1Click(Sender: TObject);
begin
  QueryTabel('Select * From 原料出库单资料');
end;

procedure TForm10.FormShow(Sender: TObject);
begin
  if (Form1.Qx='浏览者')  then
  begin
    SpeedButton15.Enabled:=False;
    SpeedButton5.Enabled:=False;
  end;
  QueryTabel('Select * From 原料出库单资料');
  ZdID('');
  with MyData do
  begin
    ADOSelect.SQL.Clear;
    ADOSelect.SQL.Add('Select 生产单编号 from 生产单资料');
    ADOSelect.Open;
    ComboBox1.Clear;
    while not ADOSelect.Eof do
    begin
      ComboBox1.Items.Add(ADOSelect.Fields.Fields[0].Value);
      ADOSelect.Next;
    end;
    ADOSelect.SQL.Clear;
    ADOSelect.SQL.Add('Select 原料编号 from 原料资料录入');
    ADOSelect.Open;
    ComboBox2.Clear;
    while not ADOSelect.Eof do
    begin
      ComboBox2.Items.Add(ADOSelect.Fields.Fields[0].Value);
      ADOSelect.Next;
    end;
  end;  
end;

procedure TForm10.ComboBox2Change(Sender: TObject);
var
  aSql:string;
begin
  with MyData do
  begin
    aSql:='Select * from 原料库存资料 where 原料编号='''+Combobox2.text+'''';
    ADOSelect.SQL.Clear;
    ADOSelect.SQL.Add(aSql);
    ADOSelect.Open;
    if ADOSelect.RecordCount>0 then
    begin
       edit5.Text:=ADOSelect.FieldByName('原料名称').AsString;
       edit3.Text:=ADOSelect.FieldByName('颜色').AsString;
       edit6.Text:=ADOSelect.FieldByName('现有库存量').AsString;
       edit7.Text:=ADOSelect.FieldByName('所在仓库').AsString;
    end;
  end;
end;
procedure TForm10.Button1Click(Sender: TObject);
begin
  ZdID('');//自动生成编号
end;

procedure TForm10.SpeedButton15Click(Sender: TObject);
var
  acheck:string;
  i,j,s,d:Integer;
begin
  if Trim(ComboBox1.Text)='' then
  begin
    MessageBox(Handle, '请选择生产单料编号!', '操作提示', MB_OK + MB_ICONWARNING +
      MB_DEFBUTTON3 + MB_TOPMOST);
    ComboBox1.SetFocus;
    Exit;
  end;
  if Trim(ComboBox2.Text)='' then
  begin
    MessageBox(Handle, '请选择原料编号!', '操作提示', MB_OK + MB_ICONWARNING +
      MB_DEFBUTTON3 + MB_TOPMOST);
    ComboBox2.SetFocus;
    Exit;
  end;
  if StrToInt(Trim(Edit8.Text))>StrToInt(Trim(Edit6.Text)) then
  begin
    MessageBox(Handle, '请输入出库量大于现有库存旦!!', '操作提示', MB_OK + MB_ICONWARNING +
      MB_DEFBUTTON3 + MB_TOPMOST);
    Edit8.Clear;
    Edit8.SetFocus;
    Exit;
  end;  
  if Trim(Edit8.Text)='' then
  begin
    MessageBox(Handle, '请输入出库量!', '操作提示', MB_OK + MB_ICONWARNING +
      MB_DEFBUTTON3 + MB_TOPMOST);
    Edit8.SetFocus;
    Exit;
  end;
  try
    MyData.ADOConnection1.BeginTrans;
    DataSource1.DataSet.Insert;
    DataSource1.DataSet.FieldByName('原料出库单编号').AsString:=Edit1.Text;
    DataSource1.DataSet.FieldByName('生产单编号').AsString:=ComboBox1.Text;    
    DataSource1.DataSet.FieldByName('原料编号').AsString:=ComboBox2.Text;
    DataSource1.DataSet.FieldByName('原料名称').AsString:=Edit5.Text;
    DataSource1.DataSet.FieldByName('颜色').AsString:=Edit3.Text;
    DataSource1.DataSet.FieldByName('现有库存量').AsString:=Edit6.Text;
    DataSource1.DataSet.FieldByName('所在仓库').AsString:=Edit7.Text;
    DataSource1.DataSet.FieldByName('出库量').AsString:=Edit8.Text;
    DataSource1.DataSet.FieldByName('时间').AsString:=DateToStr(DateTimePicker1.Date);
    DataSource1.DataSet.Post;
    with MyData do
    begin
      i:=StrToInt(Trim(Edit8.Text));
      j:=StrToInt(Trim(Edit6.Text));
      if j>i then
      begin
        ADOSelect.SQL.Clear;
        ADOSelect.SQL.Add('Select * from 原料库存资料 where 原料编号='''+combobox2.Text+'''');
        ADOSelect.Open;
        ADOSelect.Edit;
        s:=j-i;
        ADOSelect.FieldByName('现有库存量').AsString:=IntToStr(s);
        ADOSelect.FieldByName('最后修改时间').AsString:=DateToStr(DateTimePicker1.Date);
        ADOSelect.Post;
        ADOSelect.SQL.Clear;
        ADOSelect.SQL.Add('Select * from 原料入库单资料 where 原料编号='''+combobox2.Text+'''');
        ADOSelect.Open;
        ADOSelect.Edit;
        ADOSelect.FieldByName('入库量').AsString:=IntToStr(s);
        ADOSelect.FieldByName('时间').AsString:=DateToStr(DateTimePicker1.Date);
        ADOSelect.Post;        
      end
      else
      begin
        ADOSelect.SQL.Clear;
        ADOSelect.SQL.Add('Delete from 原料库存资料 where 原料编号='''+combobox2.Text+'''');
        ADOSelect.ExecSQL;
        ADOSelect.SQL.Clear;
        ADOSelect.SQL.Add('Delete from 原料入库单资料 where 原料编号='''+combobox2.Text+'''');
        ADOSelect.ExecSQL;             
      end;
    end;
    MyData.ADOConnection1.CommitTrans;
    Edit3.Clear;  Edit5.Clear ;Edit6.Clear;
    Edit7.Clear;Edit8.Clear;
    MessageBox(Handle, '原料出库成功!', '操作提示', MB_OK + MB_ICONWARNING +
      MB_DEFBUTTON3 + MB_TOPMOST);
  except
    DataSource1.DataSet.Cancel;
    MyData.ADOConnection1.RollbackTrans;
    MessageBox(Handle, '原料出库失败!', '操作提示', MB_OK + MB_ICONWARNING +
      MB_DEFBUTTON3 + MB_TOPMOST);
  end;
end;

procedure TForm10.DBGridEh1DblClick(Sender: TObject);
begin
    MessageBox(Handle, '不能双击,只能出库!', '操作提示', MB_OK + MB_ICONWARNING +
      MB_DEFBUTTON3 + MB_TOPMOST);
end;

end.
 

⌨️ 快捷键说明

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