📄 frmdsmt01_detalp.~pas
字号:
unit FrmDsMt01_DetalP;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, FrmBaseFormP, DB, ADODB, StdCtrls, ExtCtrls, Menus;
type
TFrmDsMt01_Detal = class(TFrmBaseForm)
PopupMenu1: TPopupMenu;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
MenuItem3: TMenuItem;
MenuItem4: TMenuItem;
MenuItem5: TMenuItem;
MenuItem6: TMenuItem;
MenuItem7: TMenuItem;
MenuItem8: TMenuItem;
MenuItem9: TMenuItem;
MenuItem10: TMenuItem;
MenuItem11: TMenuItem;
MenuItem12: TMenuItem;
MenuItem13: TMenuItem;
MenuItem14: TMenuItem;
MenuItem15: TMenuItem;
MenuItem16: TMenuItem;
Img1: TImage;
Label1: TLabel;
Label2: TLabel;
Shape1: TShape;
Shape2: TShape;
Label3: TLabel;
Label4: TLabel;
Label8: TLabel;
Label5: TLabel;
Label6: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit7: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit11: TEdit;
Edit13: TEdit;
Edit12: TEdit;
ADOQ_DsMt03: TADOQuery;
ADOQ_DsEl00: TADOQuery;
ADOQ_DsOD03: TADOQuery;
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edit3DblClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit12Exit(Sender: TObject);
procedure Edit3Exit(Sender: TObject);
procedure Edit4Exit(Sender: TObject);
procedure Edit11Exit(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmDsMt01_Detal: TFrmDsMt01_Detal;
FailFlag:Boolean;
implementation
uses FrmMainP,SysPub, DataM1P, FrmDsMt01P;
{$R *.dfm}
procedure TFrmDsMt01_Detal.FormShow(Sender: TObject);
begin
inherited;
FrmMain.TlB1.Enabled :=False;
Img1.Picture.LoadFromFile(_AppPath+'Bmp\Tao.Bmp');
FrmMain.TQuit.Enabled :=True;
If DetalFlag=1 then
Begin
Edit1.Text :=ADOQ_DsMt03.FieldByName('Mt_ID').AsString ;
Edit2.Text :=ADOQ_DsMt03.FieldByName('Mt_SID').AsString ;
Edit3.Text :=ADOQ_DsMt03.FieldByName('Od_ID').AsString ;
Edit4.Text :=ADOQ_DsMt03.FieldByName('Od_SID').AsString ;
Edit5.Text :=ADOQ_DsMt03.FieldByName('EL_NO').AsString ;
IF ADOQ_DsEl00.Locate('EL_No',Edit5.Text,[]) Then
Edit7.Text :=ADOQ_DsEl00.FieldByName('El_Name').AsString
Else
Edit7.Text :='';
Edit11.Text :=FloatToStr(ADOQ_DsMt03.FieldByName('Mt_QTY').AsFloat ) ;
Edit12.Text :=FloatToStr(ADOQ_DsMt03.FieldByName('Mt_AQty').AsFloat );
Edit13.Text :=ADOQ_DsMt03.FieldByName('Mt_NOTE').AsString ;
End
Else
Begin
Edit1.Text :=StrFNo ;
Edit2.Text :=StrSno;
End;
end;
procedure TFrmDsMt01_Detal.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
// inherited;
FrmMain.TlB1.Enabled :=True;
IF Edit12.Text ='' Then
Edit12.Text :='0.0';
IF Edit11.Text ='' Then
Edit11.Text :='0.0';
Try
DataM1.Adoc.BeginTrans ;
With ADOQ_DsMt03 Do
IF DetalFlag=0 then
Begin
Edit ;
FieldByName('Mt_ID').AsString :=StrFNo ;
FieldByName('Mt_SID').AsString :=StrSno;
FieldByName('Od_ID').AsString :=Edit3.Text ;
FieldByName('Od_SID').AsString :=Edit4.Text ;
FieldByName('EL_NO').AsString :=Edit5.Text ;
FieldByName('Mt_QTY').AsFloat :=StrToFloat(Edit11.Text ) ;
FieldByName('Mt_AQTY').AsFloat :=StrToFloat(Edit12.Text ) ;
FieldByName('Mt_NOTE').AsString :=Edit13.Text ;
post;
End
Else
Begin
Edit;
FieldByName('Od_ID').AsString :=Edit3.Text ;
FieldByName('Od_SID').AsString :=Edit4.Text ;
FieldByName('EL_NO').AsString :=Edit5.Text ;
FieldByName('Mt_QTY').AsFloat :=StrToFloat(Edit11.Text ) ;
FieldByName('Mt_AQTY').AsFloat :=StrToFloat(Edit12.Text ) ;
FieldByName('Mt_NOTE').AsString :=Edit13.Text ;
post;
End;
DataM1.Adoc.CommitTrans ;
Except
Begin
Showmessage('数据保存出错');
DataM1.Adoc.RollbackTrans ;
abort;
End;
end;
ADOQ_DsMt03.Active :=False;
ADOQ_DsEL00.Active :=False;
ADOQ_DsOd03.Active :=False;
action:=cafree;
End;
procedure TFrmDsMt01_Detal.FormCreate(Sender: TObject);
var Sqltext:String ;
begin
//inherited;
SqlText:='Select * From DsMt03 Where Mt_ID='+''''+StrFno+''''+' And Mt_SID='+''''+StrSno+'''' ;
ADOQ_DsMt03.SQL.Clear ;
ADOQ_DsMt03.SQL.Text:=SqlText;
IF ADOQ_DsMt03.Active =False Then
ADOQ_DsMt03.Active :=True;
ADOQ_DsMt03.Open ;
ADOQ_DsEl00.Active :=True;
ADOQ_DsOd03.Active :=True;
FailFlag:=False;
end;
procedure TFrmDsMt01_Detal.Edit3DblClick(Sender: TObject);
var SqlStr:String;
begin
inherited;
IF Edit3.ReadOnly <>True Then
Begin
SqlStr:='Select Od_ID as 客户单号,Od_SID as 订单项次,EL_NO as 料品名称,Od_Qty As 订单数量,Od_AQty As 已入量,Od_BQty As 退货数量,Od_Dqty As 待交数量 From DsOd03 Where Od_ID Like '+''''+Edit3.Text+'%'+''''+' Order By Od_ID,Od_SID';
Edit3.Text :=SetFindForm(Self.Caption,SqlStr);
End;
end;
procedure TFrmDsMt01_Detal.Edit12Exit(Sender: TObject);
begin
inherited;
IF Edit12.Text ='' Then
Begin
Edit12.Text :='0.0';
PD_Sure:='N';
End
Else
PD_Sure:='Y';
Try
IF StrToFloat(Edit12.Text)<0 Then
Begin
ShowMessage('验收数量不能小于0!');
Edit12.SetFocus ;
FailFlag:=True;
exit;
End;
IF StrToFloat(Edit12.Text) >StrToFloat(Edit11.Text) Then
Begin
ShowMessage('验收数不能大于入库数!');
Edit12.SetFocus ;
FailFlag:=True;
Exit;
End;
Except
Begin
ShowMessage('非法数据');
Edit12.SetFocus ;
FailFlag:=True;
Exit;
End;
End;
FailFlag:=False;
end;
procedure TFrmDsMt01_Detal.Edit3Exit(Sender: TObject);
begin
inherited;
IF Edit3.Text='' Then
ShowMessage('无客户订单');
end;
procedure TFrmDsMt01_Detal.Edit4Exit(Sender: TObject);
begin
inherited;
IF (Edit3.Text<>'') Then
IF ADOQ_DsOd03.Locate('Od_ID;Od_SID',VarArrayOf([Edit3.Text,Edit4.Text]),[loCaseInsensitive]) Then
Begin
IF (ADOQ_DsOd03.FieldByName('Od_Sure').AsString<>'Y') Then
Begin
ShowMessage('订单单号'+Edit3.Text+'项次'+Edit4.Text+'未确认');
Edit4.SetFocus ;
FailFlag:=True;
Exit;
End;
Edit5.Text :=ADOQ_DsOd03.fieldByName('EL_NO').AsString ;
IF ADOQ_DsEL00.Locate('EL_No',Edit5.Text,[]) Then
Edit7.Text :=ADOQ_DsEl00.FieldByName('EL_Name').AsString
Else
Edit7.Text :='';
Edit8.Text :=FloatToStr(ADOQ_DsOd03.FieldByName('Od_QTY').AsFloat) ;
Edit9.Text :=FloatToStr(ADOQ_DsOd03.FieldByName('Od_Dqty').AsFloat );
End;
FailFlag:=False;
end;
procedure TFrmDsMt01_Detal.Edit11Exit(Sender: TObject);
begin
inherited;
IF Edit11.Text='0' Then
Begin
ShowMessage('入库数量为0');
Edit11.SetFocus ;
// FailFlag:=True;
Exit;
End
Else
FailFlag:=False;
Try
IF StrToFloat(Edit11.Text)<0 Then
Begin
ShowMessage('入库数量不能小于0!');
Edit11.SetFocus ;
FailFlag:=True;
exit;
End;
Except
Begin
ShowMessage('非法数据');
Edit11.SetFocus ;
FailFlag:=True;
Exit;
End;
End;
IF StrToFloat(Edit11.Text)>StrToFloat(Edit9.Text) Then
Begin
ShowMessage('入库数量不能大于可入量!');
Edit11.SetFocus ;
FailFlag:=True;
Exit;
End;
FailFlag:=False;
end;
procedure TFrmDsMt01_Detal.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
inherited;
IF FailFlag=True Then
Begin
ShowMessage('一个或多个栏位有异常,请先确认数据正确再退出!');
CanClose:=False;
End;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -