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

📄 xsoutdepot.pas

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

interface

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

type
  TFrm_XSDepot = class(TBaseForm)
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton6: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ImageList1: TImageList;
    StatusBar1: TStatusBar;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    DBGrid1: TDBGrid;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    SpeedButton1: TSpeedButton;
    Label2: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    ADOMaster: TADODataSet;
    DSMaster: TDataSource;
    DSDetail: TDataSource;
    ToolButton9: TToolButton;
    ADOQ: TADOQuery;
    ADOWare: TADODataSet;
    DSWare: TDataSource;
    Label6: TLabel;
    DBEdit8: TDBEdit;
    Label8: TLabel;
    DBEdit9: TDBEdit;
    SpeedButton5: TSpeedButton;
    DBLookupComboBox1: TDBLookupComboBox;
    ADODepot: TADODataSet;
    DSDepot: TDataSource;
    ADODetail: TADODataSet;
    ADODetailMR_PriceID: TStringField;
    ADODetailMR_Code: TStringField;
    ADODetailMR_Name: TStringField;
    ADODetailMR_Spce: TStringField;
    ADODetailMR_Unit: TStringField;
    ADODetailMR_Cards: TStringField;
    ADODetailMR_Count: TIntegerField;
    ADODetailMR_OutPrice: TFloatField;
    ADODetailMR_Agio: TFloatField;
    SpeedButton6: TSpeedButton;
    ADOTemp: TADODataSet;
    DSTemp: TDataSource;
    ADOTempMR_PriceID: TStringField;
    ADOTempMR_Code: TStringField;
    ADOTempMR_Name: TStringField;
    ADOTempMR_Spce: TStringField;
    ADOTempMR_Unit: TStringField;
    ADOTempMR_Cards: TStringField;
    ADOTempMR_Count: TIntegerField;
    ADOTempMR_OutPrice: TFloatField;
    ADOTempMR_Agio: TFloatField;
    MR_Sum: TCurrencyField;
    Label4: TLabel;
    DBEdit3: TDBEdit;
    StringGrid1: TStringGrid;
    ADODetailMR_Sum: TFloatField;
    procedure FormShow(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
  private
    { Private declarations }
  public

    { Public declarations }
  end;

var
  Frm_XSDepot: TFrm_XSDepot;

implementation
uses main,XDSelClient,XSSelWare,XDSelPrice,XSSelPrice,
      XSSelOutDepot,DM;
{$R *.dfm}

procedure TFrm_XSDepot.FormShow(Sender: TObject);
begin
  ADOMaster.Close;
  ADODetail.Close;
  ADOMaster.Open;
  ADODetail.Open;
  ADODepot.Close;
  ADODepot.Open;

  Panel1.Enabled:=False;
  Panel3.Enabled:=False;
  
  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_XSDepot.ToolButton5Click(Sender: TObject);
begin
  Close;
end;

procedure TFrm_XSDepot.ToolButton1Click(Sender: TObject);
var
  OrderID,Str:string;

begin
  Str:=StringReplace(DateTimeToStr(Now),'-','',[rfReplaceAll]);
  Str:=StringReplace(Str,':','',[rfReplaceAll]);
  str:=StringReplace(Str,' ','',[rfReplaceAll]);
  OrderID:='XS'+str;
  Panel1.Enabled:=True;
  Panel3.Enabled:=True;
  ADOMaster.Append;
  DBEdit5.Text:=OrderID;
  DBEdit4.Text:=Operator;
  ADOTemp.Close;
  ADOTemp.CreateDataSet;
end;

procedure TFrm_XSDepot.ToolButton3Click(Sender: TObject);
var
  i:Integer;
begin
  if ADOTemp.RecordCount=0 then
  begin
    Application.MessageBox('没有出库单明细不能保存出库单!','明日科技');
    Exit;
  end;
  ADOTemp.First;
  for i:=0 to ADOTemp.RecordCount-1 do
  begin
  ADODetail.Append;
  ADODetail.FieldByName('MR_PriceID').AsString:=ADOTemp.FieldByName('MR_PriceID').AsString;
  ADODetail.FieldByName('MR_Code').AsString:=ADOTemp.FieldByName('MR_Code').AsString;
  ADODetail.FieldByName('MR_Name').AsString:=ADOTemp.FieldByName('MR_Name').AsString;
  ADODetail.FieldByName('MR_Spce').AsString:=ADOTemp.FieldByName('MR_Spce').AsString;
  ADODetail.FieldByName('MR_Unit').AsString:=ADOTemp.FieldByName('MR_Unit').AsString;
  ADODetail.FieldByName('MR_Cards').AsString:=ADOTemp.FieldByName('MR_Cards').AsString;
  ADODetail.FieldByName('MR_Count').AsString:=ADOTemp.FieldByName('MR_Count').AsString;
  ADODetail.FieldByName('MR_OutPrice').AsString:=ADOTemp.FieldByName('MR_OutPrice').AsString;
  ADODetail.FieldByName('MR_Agio').AsString:=ADOTemp.FieldByName('MR_Agio').AsString;
  ADODetail.FieldByName('MR_Sum').AsCurrency:=ADOTemp.FieldByName('MR_Sum').AsCurrency;
  ADODetail.Post;
  ADOTemp.Next;
  end;

  ADOMaster.FieldByName('MR_OutStockDate').AsDateTime:=Now;
  ADOMaster.UpdateBatch;
  Application.MessageBox('数据保存成功!','明日科技');
  Panel1.Enabled:=False;
  Panel3.Enabled:=False;
end;

procedure TFrm_XSDepot.SpeedButton1Click(Sender: TObject);
begin
  Frm_XDSelClient.ShowModal;
  DBEdit1.Text:=ClientCode;
  DBEdit2.Text:=ClientName;
end;

procedure TFrm_XSDepot.SpeedButton2Click(Sender: TObject);
begin
  ADOTemp.Append;
  ADOTemp.FieldByName('MR_PriceID').AsString:=DBEdit5.Text;
  Frm_XSSelWare.ShowModal;
  with  Frm_XSSelWare.ADOWare do
  begin
    if RecordCount>0 then
    begin
      ADOTemp.FieldByName('MR_Code').AsString:=FieldByName('MR_Code').AsString;
      ADOTemp.FieldByName('MR_Name').AsString:=FieldByName('MR_Name').AsString;
      ADOTemp.FieldByName('MR_Spce').AsString:=FieldByName('MR_Spce').AsString;
      ADOTemp.FieldByName('MR_Unit').AsString:=FieldByName('MR_Unit').AsString;
      ADOTemp.FieldByName('MR_OutPrice').AsFloat:=FieldByName('MR_OutPrice').AsFloat;
      ADOTemp.FieldByName('MR_Cards').AsString:=FieldByName('MR_Cards').AsString;
      ADOTemp.FieldByName('MR_Count').AsInteger:=1;
      ADOTemp.FieldByName('MR_Agio').AsFloat:=10;
      ADOTemp.FieldByName('MR_Sum').AsCurrency:=ADOTemp.FieldByName('MR_OutPrice').AsCurrency*
           ADOTemp.FieldByName('MR_Count').AsInteger*(ADOTemp.FieldByName('MR_Agio').AsFloat/10);
      
    end;
  end;
end;

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

end;

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

procedure TFrm_XSDepot.SpeedButton5Click(Sender: TObject);
begin
  Frm_XSSelPrice.ShowModal;
  DBEdit8.Text:=Frm_XSSelPrice.SourceID;
end;

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

procedure TFrm_XSDepot.ToolButton4Click(Sender: TObject);
begin
  inherited;
    ADOMaster.CancelBatch;
    ADOTemp.Close;
    ADOTemp.CreateDataSet;
    Panel1.Enabled:=False;
    Panel3.Enabled:=False;

end;

procedure TFrm_XSDepot.ToolButton2Click(Sender: TObject);
begin
  inherited;
  if Application.MessageBox('是否要删除此退货单!', '明日科技', MB_OKCANCEL + MB_ICONINFORMATION)
    = IDOK then
  begin
    ADOMaster.Delete;
    ADOMaster.UpdateBatch;
    ADOTemp.Close;
    ADOTemp.CreateDataSet;
    Panel1.Enabled:=False;
    Panel3.Enabled:=False;
  end;

end;

end.

⌨️ 快捷键说明

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