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

📄 mrp_enter_informalmps_d.pas

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

Interface

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

Type
  TFrm_Mrp_Enter_InformalMps_D = Class(TFrm_Base_Detail)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    Label9: TLabel;
    lbl_ItemName: TLabel;
    edt_Mpsqty: TEdit;
    cmbx_Mpsstatus: TComboBox;
    edt_MpsremArk: TEdit;
    Extedt_ItemCode: TExtEdit;
    medt_MpsMonth: TMaskEdit;
    medt_Mpsdate: TMaskEdit;
    Label5: TLabel;
    Label7: TLabel;
    Edt_Mpsequip2: TEdit;
    edt_MouldCode: TExtEdit;
    lbl_MouldName: TLabel;
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure edt_MpsqtyExit(Sender: TObject);
    procedure edt_MpsremArkExit(Sender: TObject);
    procedure ItemCodeCheck(Sender: TObject);
    procedure btn_okClick(Sender: TObject);
    procedure Edt_Mpsequip2Exit(Sender: TObject);
  private
    CurrentUom:string; //记录当前'计量单位'
    { Private declarations }
  public
    procedure InitControls; Override;
    procedure SaveData;Override;
    { Public declarations }
  end;

var
  Frm_Mrp_Enter_InformalMps_D: TFrm_Mrp_Enter_InformalMps_D;

implementation

uses Sys_Global;

{$R *.DFM}

function checksymbol(Source:string;disptext:string):boolean;   //检查输入中是否有单引号
var
  i:integer;
  s:string;
begin
  s:=Trim(Source);
  for i:=1 to length(s) do
    if s[i]='''' then
    begin
      DispInfo(disptext+'中不能使用单引号!',1);
      Result:=False;
      exit;
    end;
  Result:=True;
end;


procedure TFrm_Mrp_Enter_InformalMps_D.FormActivate(Sender: TObject);
begin
  inherited;
  setfocus_Control:=medt_MpsMonth;
end;

procedure TFrm_Mrp_Enter_InformalMps_D.FormCreate(Sender: TObject);
begin
  inherited;
  cmbx_Mpsstatus.clear;
  cmbx_Mpsstatus.Items.Add('准备');
  cmbx_Mpsstatus.Items.Add('下达');
  cmbx_Mpsstatus.Items.Add('关闭');
  cmbx_Mpsstatus.ItemIndex:=0;
end;

procedure TFrm_Mrp_Enter_InformalMps_D.InitControls;
begin
  inherited;
  with AdoQry_Maintain do
  begin
    medt_MpsMonth.Text:=Trim(fieldbyname('MpsMonth').asstring);
    Extedt_ItemCode.Text:=fieldbyname('ItemCode').asstring;
    medt_Mpsdate.Text:=formatdatetime('yyyy.mm.dd',fieldbyname('Mpsdate').asdatetime);
    edt_Mpsqty.Text:=floattostr(fieldbyname('Mpsqty').asfloat);
    cmbx_Mpsstatus.ItemIndex:=fieldbyname('Mpsstatus').asinteger-2;
    edt_MpsremArk.Text:=fieldbyname('MpsremArk').asstring;
    CurrentUom:=fieldbyname('UomName').asstring;
    lbl_ItemName.Caption:=fieldbyname('ItemName').asstring;
  end;
end;

procedure TFrm_Mrp_Enter_InformalMps_D.SaveData;
var
  SqlText:String;
begin
  inherited;
  with AdoQry_Tmp do
  begin
    Close;
    SQL.clear;
  if(Add)then
  begin
    SqlText:='Insert Mps '
            + ' (MpsMonth,ItemCode,Mpsdate,Mpsqty,MpsType,Mpsstatus,mouldCode,Mpsequip2,MpsremArk)'
            + ' Values('
            + ''''+medt_MpsMonth.text+''''+','
            +''''+Trim(Extedt_ItemCode.text)+''''+','
            +''''+Trim(medt_Mpsdate.Text)+''''+','
            +''''+Trim(edt_Mpsqty.text)+''''+','
            +''''+'1'+''''+','
            +''''+inttostr((cmbx_Mpsstatus.Itemindex)+2)+''''+','
            +''''+Trim(edt_MouldCode.text)+''''+','
            +''''+Trim(edt_Mpsequip2.text)+''''+','
            +''''+Trim(edt_MpsremArk.text)+''''+')';
    Sql.Text:=SqlText;
    execsql;
  end
  else
  begin
    SqlText:='Update Mps '
            +' set MpsMonth='+''''+Trim(medt_MpsMonth.text)+''''+','
            +' ItemCode='''+Trim(Extedt_ItemCode.text)+''''+','
            +' Mpsdate='''+Trim(medt_Mpsdate.text)+''''+','
            +' Mpsqty='''+Trim(edt_Mpsqty.text)+''''+','
            +' Mpsstatus='''+inttostr(cmbx_Mpsstatus.Itemindex+2)+''''+','
            +' mouldCode='''+Trim(edt_MouldCode.text)+''''+','
            +' Mpsequip2='''+Trim(edt_Mpsequip2.text)+''''+','
            +' MpsremArk='''+Trim(edt_MpsremArk.Text)+''''
            +' where Mpsid='''+AdoQry_Maintain.fieldbyname('Mpsid').asstring+'''';
    Sql.Text:=SqlText;
    ExecSQL;
  end;
 end;
 with AdoQry_Maintain do
 begin
   fieldbyname('MpsMonth').AsString:=Trim(medt_MpsMonth.text);
   fieldbyname('ItemCode').AsString:=Trim(Extedt_ItemCode.text);
   fieldbyname('Mpsdate').Asdatetime:=strtodate(Trim(medt_Mpsdate.text));
   fieldbyname('Mpsqty').Asfloat:=strtofloat(Trim(edt_Mpsqty.text));
   fieldbyname('Mpsstatus').asinteger:=cmbx_Mpsstatus.Itemindex+2;
   fieldbyname('MpsremArk').asstring:=Trim(edt_MpsremArk.text);
   fieldbyname('mouldCode').asstring:=Trim(edt_MouldCode.text);
   fieldbyname('Mpsequip2').asstring:=Trim(edt_Mpsequip2.text);
   fieldbyname('ItemName').asstring:=lbl_ItemName.Caption;
   fieldbyname('UomName').AsString:=CurrentUom;
   Post;
 end;
end;

procedure TFrm_Mrp_Enter_InformalMps_D.edt_MpsqtyExit(Sender: TObject);
var
  s:string;
begin
  inherited;
 if activecontrol.Name='btn_Cancel' then
   exit;
  s:=Trim(edt_Mpsqty.Text);
  try
    strtofloat(s);
  except
    DispInfo('输入的生产订货量错误,请重新输入!',1);
    twincontrol(sender).setfocus;
    abort;
  end;
end;

procedure TFrm_Mrp_Enter_InformalMps_D.edt_MpsremArkExit(Sender: TObject);
begin
  inherited;
  if activecontrol.Name='btn_Cancel' then
    exit;
  if not blankcheck(edt_MpsremArk.Text,'备注') then
  begin
    twincontrol(sender).setfocus;
    abort;
  end;
  if not checksymbol(edt_MpsremArk.text,'备注') then
  begin
    twincontrol(sender).setfocus;
    abort;
  end;
end;

procedure TFrm_Mrp_Enter_InformalMps_D.ItemCodeCheck(Sender: TObject);
var
  SqlText:String;
  Ado_Temp:TAdoQuery;
begin
  inherited;
  If Activecontrol.Name='btn_Cancel' Then
    Exit;
  try
    Ado_Temp:=tAdoQuery.Create(nil);
    Ado_Temp.Connection:=AdoQry_Maintain.Connection;
    SqlText:='select Item.*,Uom.* '
            +' from Item Left Outer Join Uom On Item.UomCode=Uom.UomCode '
            +' where ItemCode='+''''+Trim(Extedt_ItemCode.Text)+'''';
    Ado_Temp.Close;
    Ado_Temp.SQL.clear;
    Ado_Temp.SQL.Add(SqlText);
    Ado_Temp.Open;
    if Ado_Temp.Eof then
    begin
      DispInfo('你输入的物料代码不存在,请重新输入!',1);
      TWincontrol(sender).setfocus;
      abort;
    end
    else
      CurrentUom:=Ado_Temp.fieldbyname('UomName').asstring;
  finally
    Ado_Temp:=nil;
  end;
end;

procedure TFrm_Mrp_Enter_InformalMps_D.btn_okClick(Sender: TObject);
var
  SqlText:String;
  Ado_Temp:TAdoQuery;
  T1,T2,T3:Boolean;
begin
  If Activecontrol.Name='btn_Cancel' Then
    Exit;
  If Trim(medt_MpsMonth.text)<>Trim(AdoQry_Maintain.fieldbyname('MpsMonth').AsString) then
    T1:=True
  Else
    T1:=False;
  If Trim(Extedt_ItemCode.text)<>Trim(AdoQry_Maintain.fieldbyname('ItemCode').AsString) then
    T2:=True
  Else
    T2:=False;
  If StrToDateTime(medt_Mpsdate.text)<>AdoQry_Maintain.fieldbyname('MpsDate').asdatetime then
    T3:=True
  Else
    T3:=False;
  if (Add) or ((not Add) and (T1  or T2 or T3)) then
  begin
    Ado_Temp:=TAdoQuery.Create(Nil);
    Ado_Temp.Connection:=AdoQry_Tmp.Connection;
    SqlText:='select * '
            +' from Mps '
            +' where MpsMonth='+''''+Trim(medt_MpsMonth.text)+''''
            +' And ItemCode='+''''+Trim(Extedt_ItemCode.text)+''''
            +' And Mpsdate='+''''+Trim(medt_Mpsdate.text)+'''';
    Ado_Temp.Close;
    Ado_Temp.SQL.Text:=SqlText;
    Ado_Temp.Open;
    If not Ado_Temp.Eof then
    begin
      DispInfo('该记录已经存在,你不能重复输入!',1);
      medt_MpsMonth.SetFocus;
      Abort;
    end;
  end;
inherited;
end;

procedure TFrm_Mrp_Enter_InformalMps_D.Edt_Mpsequip2Exit(Sender: TObject);
begin
  if activecontrol.Name='btn_Cancel' then
    exit;
  if not blankcheck(edt_Mpsequip2.Text,'关键设备2') then
  begin
    twincontrol(sender).setfocus;
    abort;
  end;
  if not checksymbol(edt_Mpsequip2.Text,'关键设备2') then
  begin
    twincontrol(sender).setfocus;
    abort;
  end;
end;

end.

⌨️ 快捷键说明

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