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

📄 mrp_enter_assignalternative1_d.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
unit Mrp_Enter_AssignAlterNative1_D;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Entry_Detail, Db, AdODB, ExtCtrls, StdCtrls, Mask, ExtEdit;

Type
  TFrm_Mrp_Enter_AssignAlterNative1_D = Class(TFrm_Base_Entry_Detail)
    lbl_ItemName: TLabel;
    edt_qty: TEdit;
    Label4: TLabel;
    Label3: TLabel;
    medt_Modate: TMaskEdit;
    ExtEdt_ItemCode: TExtEdit;
    Label2: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    lbl_UomName: TLabel;
    Label1: TLabel;
    lbl_onhand: TLabel;
    procedure DateCheck(Sender: TObject);
    procedure ExtEdt_ItemCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ExtEdt_ItemCodeExit(Sender: TObject);
    procedure FloatCheck(Sender: TObject);
  private
    UomName:String;  //记录当前单位
    MnldTime:Integer;//记录制造提前期
    runlt:integer;
    LineNo:Integer;//行号
    MoStArtWorkDate:String;//当前开工日期
    AdoQry_Body1:TAdoQuery;
    { Private declarations }
  public
    procedure InitControls; Override;
    procedure SaveBodyData; Override;
    procedure SetStatus(CurrentStatus:String;var EnableControls:String);Override;
  end;

var
  Frm_Mrp_Enter_AssignAlterNative1_D: TFrm_Mrp_Enter_AssignAlterNative1_D;

implementation

uses Sys_Global,Mrp_Enter_AutoMo;

{$R *.DFM}

procedure TFrm_Mrp_Enter_AssignAlterNative1_D.InitControls;
var
  SqlText:String;
begin
  SetFocus_Control:=edt_qty;
  Inherited;
  with AdoQry_Body do
  begin
    ExtEdt_ItemCode.Text:=fieldbyname('ItemCode').AsString;
    Lbl_ItemName.Caption:=fieldbyname('ItemName').AsString;
    Lbl_UomName.Caption:=fieldbyname('UomName').AsString;
    Lbl_onhand.Caption:=floattostr(fieldbyname('CurrentonhandInv').Asfloat);
    edt_qty.Text:=floattostr(fieldbyname('ssqty').asfloat);
    medt_Modate.text:=formatdatetime('yyyy.mm.dd',fieldbyname('ssdate').asdatetime);
  end;
end;


procedure TFrm_Mrp_Enter_AssignAlterNative1_D.SaveBodyData;
begin
  with AdoQry_Body do
  begin
    edit;
    fieldbyname('ItemCode').AsString:=Trim(ExtEdt_ItemCode.Text);
    fieldbyname('ItemName').AsString:=Lbl_ItemName.Caption;
    fieldbyname('ssdate').Asdatetime:=strtodatetime(Medt_MoDate.Text);
    fieldbyname('CurrentonhandInv').asfloat:=strtofloat(lbl_onhand.Caption);
    fieldbyname('ssqty').AsFloat:=strtofloat(Edt_Qty.Text);
    fieldbyname('UomName').AsString:=lbl_UomName.Caption;
    Post;
  end;
//  abort;
end;

procedure TFrm_Mrp_Enter_AssignAlterNative1_D.SetStatus(CurrentStatus: String;
  var EnableControls: String);
begin
  inherited;
  EnableControls:='edt_qty,';
end;

procedure TFrm_Mrp_Enter_AssignAlterNative1_D.DateCheck(Sender: TObject);
begin
  If ActiveControl.Name='btn_Cancel' Then
    Exit;
  inherited;
  If SlCalendar(DbConnect,MEdt_MoDate.Text,0)<>MEdt_MoDate.Text Then
  begin
    DispInfo(MEdt_MoDate.Text+'不是工作日!',3);
    MEdt_MoDate.Text:=SlCalendar(DbConnect,MEdt_MoDate.Text,0);
    MEdt_MoDate.SetFocus;
    Abort;
  end;
end;

procedure TFrm_Mrp_Enter_AssignAlterNative1_D.ExtEdt_ItemCodeKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  If (Key=120) Then
  CommonHint(Sender,AdoQry_Tmp,'ItemName','物料描述','ItemCode',
       '物料代码','Item','  PmCode In (0,3)');
end;

procedure TFrm_Mrp_Enter_AssignAlterNative1_D.ExtEdt_ItemCodeExit(Sender: TObject);
var
  SqlText:String;
begin
  inherited;
  If ActiveControl.Name='btn_Cancel' Then
    Exit;
  If Trim(TExtEdit(Sender).Text)='' Then
  begin
    DispInfo('物料代码不能为空!',3);
    TWinControl(Sender).SetFocus;
    Abort;
  end;
  SqlText:=' Select Item.ItemName,Item.MnldTime,runlt,Uom.UomName '
              +' From Item '
              +' Left Outer Join Uom On Item.UomCode=Uom.UomCode '
              +' Where ItemCode='+''''+Trim(ExtEdt_ItemCode.Text)+''''
              +' And PmCode In (0,3)';
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:=SqlText;
  AdoQry_Tmp.Open;
  If AdoQry_Tmp.Eof Then
  begin
    DispInfo('输入了错误的物料代码,请重新输入!',3);
    TWincontrol(Sender).SetFocus;
    Abort;
  end;
  UomName:=AdoQry_Tmp.fieldbyname('UomName').AsString;
  MnldTime:=AdoQry_Tmp.fieldbyname('MnldTime').AsInteger;
  runlt:=AdoQry_tmp.fieldbyname('runlt').asinteger;
  Lbl_ItemName.Caption:=AdoQry_Tmp.fieldbyname('ItemName').AsString;
end;

procedure TFrm_Mrp_Enter_AssignAlterNative1_D.FloatCheck(Sender: TObject);
begin
  If ActiveControl.Name='btn_Cancel' Then
    Exit;
  inherited;
  If (Status='Add') And (StrToFloat(Edt_Qty.Text)<=0 ) Then
  begin
    DispInfo('增加数据时约定交货量不能小于等于0!',3);
    TWincontrol(Sender).SetFocus;
    Abort;
  end;
  Edt_Qty.Text:=FormatFloat('##0.####',StrToFloat(Edt_Qty.Text));
end;

end.

⌨️ 快捷键说明

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