📄 xsoutdepot.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 + -