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

📄 depotmove.pas

📁 企业商品管理系统
💻 PAS
字号:
unit DepotMove;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ImgList, ToolWin, StdCtrls, DBCtrls, Mask, Buttons,
  Grids, DBGrids, ExtCtrls, DB, ADODB,Theme;

type
  TFrm_DepotMove = class(TBaseForm)
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton6: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton9: TToolButton;
    ToolButton5: TToolButton;
    ImageList1: TImageList;
    StatusBar1: TStatusBar;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    DBLookupComboBox1: TDBLookupComboBox;
    Label3: TLabel;
    DBEdit1: TDBEdit;
    DBLookupComboBox2: TDBLookupComboBox;
    Label4: TLabel;
    DBEdit2: TDBEdit;
    Label5: TLabel;
    DBEdit3: TDBEdit;
    Panel1: TPanel;
    GroupBox2: TGroupBox;
    DBGrid1: TDBGrid;
    Panel3: TPanel;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    ADOMaster: TADODataSet;
    DSMaster: TDataSource;
    ADODetail: TADODataSet;
    DSDetail: TDataSource;
    ADODeptSet: TADODataSet;
    DSDeptSet: TDataSource;
    ADOQ: TADOQuery;
    ADODetailDepotMoveID: TStringField;
    ADODetailMR_Code: TStringField;
    ADODetailMR_Name: TStringField;
    ADODetailMR_Spce: TStringField;
    ADODetailMR_Unit: TStringField;
    ADODetailMR_Cards: TStringField;
    ADODetailMR_Count: TIntegerField;
    ADODetailMR_OutPrice: TFloatField;
    DSTmp: TDataSource;
    ADOTmp: TADODataSet;
    MR_Sum: TCurrencyField;
    ADOTmpDepotMoveID: TStringField;
    ADOTmpMR_Code: TStringField;
    ADOTmpMR_Name: TStringField;
    ADOTmpMR_Spce: TStringField;
    ADOTmpMR_Unit: TStringField;
    ADOTmpMR_Cards: TStringField;
    ADOTmpMR_Count: TIntegerField;
    ADOTmpMR_OutPrice: TFloatField;
    SpeedButton1: TSpeedButton;
    StringGrid1: TStringGrid;
    ADODetailMR_Sum: TFloatField;
    procedure FormShow(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
    OrderID:string;
  public
    { Public declarations }
  end;

var
  Frm_DepotMove: TFrm_DepotMove;

implementation
uses Main, XSSelWare,SelDepotMove;
{$R *.dfm}

procedure TFrm_DepotMove.FormShow(Sender: TObject);
begin
  ADOMaster.Close;
  ADOMaster.Open;

  ADODetail.Close;
  ADODetail.Open;

  ADODeptSet.Close;
  ADODeptSet.Open;
  
  StringGrid1.Cells[0,0]:='合计';
  StringGrid1.Cells[3,0]:='数量合计';
  StringGrid1.Cells[4,0]:='价格合计';
  StringGrid1.Cells[3,1]:='0';
  StringGrid1.Cells[4,1]:='0';
end;

procedure TFrm_DepotMove.ToolButton1Click(Sender: TObject);
var
  Str:string;
begin
  Str:=StringReplace(DateTimeToStr(Now),'-','',[rfReplaceAll]);
  Str:=StringReplace(Str,':','',[rfReplaceAll]);
  str:=StringReplace(Str,' ','',[rfReplaceAll]);
  OrderID:='M'+str;
  ADOMaster.Append;
  DBEdit1.Text:=OrderID;
  DBEdit2.Text:=Operator;

  ADOTmp.Close;
  ADOTmp.CreateDataSet;
end;

procedure TFrm_DepotMove.ToolButton2Click(Sender: TObject);
begin
  if ADOMaster.RecordCount>0 then
  if Application.MessageBox('您是否要删除此出库单!', '明日科技', MB_OKCANCEL) = IDOK then
  begin
    ADOMaster.Delete;
    ADOMaster.UpdateBatch;
    ADOTmp.Close;
    ADOTmp.CreateDataSet;
  end;
end;

procedure TFrm_DepotMove.ToolButton3Click(Sender: TObject);
var
  i:Integer;
begin
  if ADOTmp.RecordCount=0 then
  begin
    Application.MessageBox('没有订单明细不能保存订单!','明日科技');
    Exit;
  end;
  ADOTmp.First;
  for i:=0 to ADOTmp.RecordCount-1 do
  begin
    ADODetail.Append;
    ADODetail.FieldByName('DepotMoveID').AsString:=ADOTmp.FieldByName('DepotMoveID').AsString;
    ADODetail.FieldByName('MR_Code').AsString:=ADOTmp.FieldByName('MR_Code').AsString;
    ADODetail.FieldByName('MR_Name').AsString:=ADOTmp.FieldByName('MR_Name').AsString;
    ADODetail.FieldByName('MR_Spce').AsString:=ADOTmp.FieldByName('MR_Spce').AsString;
    ADODetail.FieldByName('MR_Unit').AsString:=ADOTmp.FieldByName('MR_Unit').AsString;
    ADODetail.FieldByName('MR_OutPrice').AsFloat:=ADOTmp.FieldByName('MR_OutPrice').AsFloat;
    ADODetail.FieldByName('MR_Cards').AsString:=ADOTmp.FieldByName('MR_Cards').AsString;
    ADODetail.FieldByName('MR_Count').AsInteger:=ADOTmp.FieldByName('MR_Count').AsInteger;
    ADODetail.FieldByName('MR_Sum').AsInteger:=ADOTmp.FieldByName('MR_Sum').AsInteger;
    ADODetail.Post;
    ADOTmp.Next;
  end;
  ADOMaster.FieldByName('DeptMoveDate').AsDateTime:=Now;
  ADOMaster.UpdateBatch;
  Application.MessageBox('数据保存成功!','明日科技');
end;

procedure TFrm_DepotMove.ToolButton4Click(Sender: TObject);
begin
  ADOMaster.CancelBatch;
  ADOTmp.Close;
  ADOTmp.CreateDataSet;
end;

procedure TFrm_DepotMove.ToolButton5Click(Sender: TObject);
begin
  Close;
end;

procedure TFrm_DepotMove.SpeedButton2Click(Sender: TObject);
begin
  ADOTmp.Append;
  Frm_XSSelWare.ShowModal;
  with  Frm_XSSelWare.ADOWare do
  begin
    if RecordCount>0 then
    begin
      ADOTmp.FieldByName('DepotMoveID').AsString:=DBEdit1.Text;
      ADOTmp.FieldByName('MR_Code').AsString:=FieldByName('MR_Code').AsString;
      ADOTmp.FieldByName('MR_Name').AsString:=FieldByName('MR_Name').AsString;
      ADOTmp.FieldByName('MR_Spce').AsString:=FieldByName('MR_Spce').AsString;
      ADOTmp.FieldByName('MR_Unit').AsString:=FieldByName('MR_Unit').AsString;
      ADOTmp.FieldByName('MR_OutPrice').AsFloat:=FieldByName('MR_OutPrice').AsFloat;
      ADOTmp.FieldByName('MR_Cards').AsString:=FieldByName('MR_Cards').AsString;
      ADOTmp.FieldByName('MR_Count').AsInteger:=1;
      ADOTmp.FieldByName('MR_Sum').AsCurrency:=ADOTmp.FieldByName('MR_OutPrice').AsCurrency*
           ADOTmp.FieldByName('MR_Count').AsInteger;
    end;
  end;
end;

procedure TFrm_DepotMove.SpeedButton3Click(Sender: TObject);
begin
  if ADOTmp.RecordCount=0 then
  Exit;
  if Application.MessageBox('您是否要删除此调库单明细!', '明日科技', MB_OKCANCEL) = IDOK then
  begin
    StringGrid1.Cells[3,1]:=IntToStr(StrToInt(StringGrid1.Cells[3,1])-
            ADOTmp.FieldByName('MR_Count').AsInteger);
    StringGrid1.Cells[4,1]:=CurrToStr(StrToCurr(StringGrid1.Cells[4,1])-
            ADOTmp.FieldByName('MR_Sum').AsCurrency);
    ADOTmp.Delete;

  end;
end;

procedure TFrm_DepotMove.SpeedButton4Click(Sender: TObject);
begin
  ADOTmp.Close;
  ADOTmp.CreateDataSet;
  StringGrid1.Cells[3,1]:='0';
  StringGrid1.Cells[4,1]:='0';
end;

procedure TFrm_DepotMove.SpeedButton1Click(Sender: TObject);
var
  i:Integer;
begin
  inherited;
  ADOTmp.Edit;
  ADOTmp.Post;
  if ADOTmp.RecordCount>0 then
  begin
  ADOTmp.Edit;
  ADOTmp.FieldByName('MR_Sum').AsCurrency:=ADOTmp.FieldByName('MR_OutPrice').AsCurrency*
       ADOTmp.FieldByName('MR_Count').AsInteger;
  end;
  ADOTmp.Post;
  ADOTmp.First;
  StringGrid1.Cells[3,1]:='0';
  StringGrid1.Cells[4,1]:='0';
  for i:=0 to ADOTmp.RecordCount-1 do
  begin
    StringGrid1.Cells[3,1]:=IntToStr(StrToInt(StringGrid1.Cells[3,1])+
              ADOTmp.FieldByName('MR_Count').AsInteger);
    StringGrid1.Cells[4,1]:=CurrToStr(StrToCurr(StringGrid1.Cells[4,1])+
              ADOTmp.FieldByName('MR_Sum').AsCurrency);
    ADOTmp.Next;
  end;
end;

end.

⌨️ 快捷键说明

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