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

📄 frmdsmt01_detalp.~pas

📁 进销存管理系统包含开题报告、无错程序源代码、无个性标记的可执行程序、院优毕业论文、PPT答辩资料等
💻 ~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 + -