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

📄 bas_enter_itemamountscrap_d.pas

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

Interface

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

Type
  TFrm_Bas_Enter_ItemAmountScrAp_D = Class(TFrm_Base_Detail)
    Edt_ItemName: TEdit;
    Edt_Amount_StAr: TEdit;
    Edt_Amount_End: TEdit;
    Edt_ScrAp: TEdit;
    Edt_RemArk: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edt_ItemCode: TLinkEdit;
    Label6: TLabel;
    procedure btn_okClick(Sender: TObject);
    procedure Edt_ItemCodeExit(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure InitControls; Override;
    procedure SaveData; Override;
  end;

var
  Frm_Bas_Enter_ItemAmountScrAp_D: TFrm_Bas_Enter_ItemAmountScrAp_D;

implementation

uses Sys_Global;

{$R *.DFM}

{ TFrm_Bas_Enter_ItemAmountScrAp_D }

procedure TFrm_Bas_Enter_ItemAmountScrAp_D.InitControls;
begin
  if Add then
    begin  
      Edt_ItemCode.Enabled:=True;
      Edt_ItemCode.SetFocus;
    end
  else
    begin
      Edt_ItemCode.Enabled:=False;
      Edt_Amount_StAr.SetFocus;  
    end;
  inherited;
  with AdoQry_Maintain do
  begin
    Edt_ItemCode.Text:=fieldbyname('ItemCode').AsString;
    Edt_ItemName.Text:=fieldbyname('ItemName').AsString;
    Edt_Amount_StAr.Text:=fieldbyname('Amount_StAr').AsString;
    Edt_Amount_End.Text:=fieldbyname('Amount_End').AsString;
    Edt_ScrAp.Text:=fieldbyname('ScrAp').AsString;
    Edt_RemArk.Text:=fieldbyname('RemArk').AsString;
  end;
end;

procedure TFrm_Bas_Enter_ItemAmountScrAp_D.SaveData;
begin
  inherited;
  with AdoQry_Tmp do
  begin
    Close;
    if(Add)then
      SQL.Text:='Insert into Item_AmountScrAp(ItemCode,Amount_StAr,Amount_End,ScrAp,RemArk)'
        +' Values('
        +' '''+Edt_ItemCode.Text+''''
        +','''+Edt_Amount_StAr.Text+''''
        +','''+Edt_Amount_End.Text+''''
        +','''+Edt_ScrAp.Text+''''
        +','''+Edt_RemArk.Text+''''
        +')'
    else
      SQL.Text:='Update Item_AmountScrAp'
        +' Set Amount_StAr='''+Edt_Amount_StAr.Text+''''
        +',Amount_End='''+Edt_Amount_End.Text+''''
        +',ScrAp='''+Edt_ScrAp.Text+''''
        +',RemArk='''+Edt_RemArk.Text+''''
        +' Where id='''+AdoQry_Maintain.fieldbyname('id').asstring+'''';
    ExecSQL;
  end;

  with AdoQry_Maintain do
  begin
    fieldbyname('ItemCode').AsString:=Edt_ItemCode.Text;
    fieldbyname('ItemName').AsString:=Edt_ItemName.Text;
    fieldbyname('Amount_StAr').AsString:=Edt_Amount_StAr.Text;
    fieldbyname('Amount_End').AsString:=Edt_Amount_End.Text;
    fieldbyname('ScrAp').AsString:=Edt_ScrAp.Text;
    fieldbyname('RemArk').AsString:=Edt_RemArk.Text;
    Post;
  end;
end;

procedure TFrm_Bas_Enter_ItemAmountScrAp_D.btn_okClick(Sender: TObject);
begin
  if Add then
  with AdoQry_Tmp do
  begin
    Close;
    SQL.Text:='Select * from Item_AmountScrAp where ItemCode='''+Edt_ItemCode.Text+'''';
    Open;

    if not IsEmpty then
    while not eof do
    begin
      if ((strtofloat(Edt_Amount_StAr.Text)>=strtofloat(fieldbyname('Amount_StAr').AsString)) and
         (strtofloat(Edt_Amount_StAr.Text)<=strtofloat(fieldbyname('Amount_End').AsString))) or
         ((strtofloat(Edt_Amount_End.Text)>=strtofloat(fieldbyname('Amount_StAr').AsString)) and
         (strtofloat(Edt_Amount_End.Text)<=strtofloat(fieldbyname('Amount_End').AsString))) or
         ((strtofloat(Edt_Amount_StAr.Text)<=strtofloat(fieldbyname('Amount_StAr').AsString)) and
         (strtofloat(Edt_Amount_End.Text)>=strtofloat(fieldbyname('Amount_End').AsString))) then
        begin
          DispInfo('该数量段与现有数量段重叠!',3);
          exit;
        end;
      next;
    end;
  end
  else
  with AdoQry_Tmp do
  begin
    Close;
    SQL.Text:='Select * from Item_AmountScrAp where ItemCode='''+Edt_ItemCode.Text+''' '+
                 'and id<>'''+AdoQry_Maintain.fieldbyname('id').asstring+'''';
    Open;

    if not IsEmpty then
    while not eof do
    begin
      if ((strtofloat(Edt_Amount_StAr.Text)>=strtofloat(fieldbyname('Amount_StAr').AsString)) and
         (strtofloat(Edt_Amount_StAr.Text)<=strtofloat(fieldbyname('Amount_End').AsString))) or
         ((strtofloat(Edt_Amount_End.Text)>=strtofloat(fieldbyname('Amount_StAr').AsString)) and
         (strtofloat(Edt_Amount_End.Text)<=strtofloat(fieldbyname('Amount_End').AsString))) or
         ((strtofloat(Edt_Amount_StAr.Text)<=strtofloat(fieldbyname('Amount_StAr').AsString)) and
         (strtofloat(Edt_Amount_End.Text)>=strtofloat(fieldbyname('Amount_End').AsString))) then
        begin
          DispInfo('该数量段与现有数量段重叠!',3);
          exit;
        end;
      next;
    end;
  end;
  inherited;
end;

procedure TFrm_Bas_Enter_ItemAmountScrAp_D.Edt_ItemCodeExit(
  Sender: TObject);
begin
  inherited;
  if ActiveControl.Name='btn_Cancel' then
    exit;
  if (not BlankInStrCheck(Edt_ItemCode.Text,'物料代码')) or
   (not BlankCheck(Edt_ItemCode.text,'物料代码')) then
  begin
    TWinControl(Sender).SetFocus;
    abort;
  end;

  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:=' Select * From Item Where ItemCode='''+Trim(Edt_ItemCode.Text)+'''';
  AdoQry_Tmp.Open;
  If AdoQry_Tmp.RecordCount<=0 Then
    begin
      DispInfo('此物料代码不存在!',3);
      Twincontrol(Sender).SetFocus;
      Abort;
    end;
  Edt_ItemName.Text := AdoQry_Tmp.fieldbyname('ItemName').AsString;
end;

end.

⌨️ 快捷键说明

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