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

📄 sfc_wipwaster_d.pas

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

Interface

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

Type
  TFrm_Sfc_WipWaster_D = Class(TFrm_Base_Detail)
    Label1: TLabel;
    Label2: TLabel;
    edt_Mono: TLinkEdit;
    edt_ite_ItemCode: TEdit;
    Label3: TLabel;
    edt_ItemCode: TLinkEdit;
    edt_ItemName: TEdit;
    edt_Wipqty: TEdit;
    MEdt_WipDate: TMaskEdit;
    Label4: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    edt_ite_ItemName: TEdit;
    edt_MoLineno: TLinkEdit;
    Label9: TLabel;
    Label10: TLabel;
    edt_DeptCode: TLinkEdit;
    edt_DeptName: TEdit;
    edt_ShiftType: TComboBox;
    Label11: TLabel;
    Edt_BillNo: TEdit;
    Label12: TLabel;
    Cmbx_WasterType: TComboBox;
    Label13: TLabel;
    Label14: TLabel;
    Edt_WasterCause: TEdit;
    Edt_RemArk: TEdit;
    Label15: TLabel;
    LEdt_EmployeeCode_Create: TLinkEdit;
    Edt_EmployeeName: TEdit;
    Label16: TLabel;
    MEdt_Date_Create: TMaskEdit;
    Label17: TLabel;
    LEdt_EmployeeCode_Edit: TLinkEdit;
    Edt_EdItEmployeeName: TEdit;
    Label18: TLabel;
    MEdt_Date_Edit: TMaskEdit;
    procedure edt_MonoKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edt_MonoButtonClick(Sender: TObject);
    procedure edt_MoLinenoButtonClick(Sender: TObject);
    procedure edt_MoLinenoKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edt_MoLinenoExit(Sender: TObject);
    procedure edt_ItemCodeExit(Sender: TObject);
    procedure edt_WipqtyExit(Sender: TObject);
    procedure edt_DeptCodeExit(Sender: TObject);
    procedure edt_ItemCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edt_ItemCodeButtonClick(Sender: TObject);
    procedure Edt_BillNoExit(Sender: TObject);
    procedure Edt_WasterCauseExit(Sender: TObject);
  private
    { Private declarations }
  public
    procedure InitControls; Override;//初始化控件
    procedure SaveData; Override;//保存数据
    procedure SetStatus(CurrentStatus:String;var EnableControls:String); Override;
  end;

var
  Frm_Sfc_WipWaster_D: TFrm_Sfc_WipWaster_D;

implementation

uses Sys_Global;

//uses Sys_Global;

{$R *.DFM}
procedure TFrm_Sfc_WipWaster_D.edt_MonoKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if(Key=120)then
  begin
    CommonHint(Sender,AdoQry_Tmp,'modate','下达日期','Mono','生产订单号','mo');
  end;

end;

procedure TFrm_Sfc_WipWaster_D.edt_MonoButtonClick(Sender: TObject);
begin
//  inherited;
  CommonHint(Sender,AdoQry_Tmp,'modate','下达日期','Mono','生产订单号','mo');
end;

procedure TFrm_Sfc_WipWaster_D.edt_MoLinenoButtonClick(Sender: TObject);
begin
//  inherited;
  if edt_Mono.Text<>'' then
  begin
    CommonHint(Sender,AdoQry_Tmp,'ItemName','物料标识','MoLineno','生产订单行号','Vw_MoLine','mono='+QuotedStr(edt_Mono.Text));
  end;
end;

procedure TFrm_Sfc_WipWaster_D.edt_MoLinenoKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if(Key=120)then
  begin
    CommonHint(Sender,AdoQry_Tmp,'ItemName','物料标识','MoLineno','生产订单行号','Vw_MoLine','mono='+QuotedStr(edt_Mono.Text));
  end;

end;

procedure TFrm_Sfc_WipWaster_D.edt_MoLinenoExit(Sender: TObject);
begin
  inherited;
  if Trim(edt_Mono.text)='' then Abort;
  if Trim(edt_MoLineno.text)='' then Abort;
//  CommonCodeCheck(Sender,AdoQry_Tmp,'ItemName','物料标识','MoLineno','生产订单行号','Vw_MoLine','mono='+QuotedStr(edt_Mono.Text));
  with AdoQry_tmp do
  begin
    Close;
    sql.text:='select MoLine.ItemCode,Item.ItemName from MoLine '+
              'left join Item on MoLine.ItemCode=Item.ItemCode '+
              'where MoLine.mono='+QuotedStr(edt_Mono.Text)+
              '      and MoLine.MoLineno='+edt_MoLineno.Text;
    open;
    if not eof then
    begin
      edt_ite_ItemCode.Text:=fieldbyname('ItemCode').AsString;
      edt_ite_ItemName.Text:=fieldbyname('ItemName').AsString;
    end;
  end;

end;

procedure TFrm_Sfc_WipWaster_D.edt_ItemCodeExit(Sender: TObject);
begin
  inherited;
  If ActiveControl.Name='btn_Cancel' then
    Exit;
  CommonCodeCheck(Sender,AdoQry_Tmp,'ItemName','物料名称','ItemCode','物料代码','Item');
       {  ,'ItemCode In (Select ItemCode from mnItemList Where '+
             'mnItemList.mono='+QuotedStr(edt_Mono.Text)+' and mnItemList.MoLineno='+
             edt_MoLineno.Text+')');}

  with AdoQry_tmp do
  begin
    Close;
    sql.text:='select Item.ItemName from Item '+
              'where Item.ItemCode='+QuotedStr(edt_ItemCode.Text);
    open;
    if not eof then
    begin
      edt_ItemName.Text:=fieldbyname('ItemName').AsString;
    end;
  end;

end;

procedure TFrm_Sfc_WipWaster_D.edt_WipqtyExit(Sender: TObject);
begin
  inherited;
  FloatCheck(Sender);
end;

procedure TFrm_Sfc_WipWaster_D.edt_DeptCodeExit(Sender: TObject);
begin
  inherited;
  DeptCodeCheck(Sender);
  with AdoQry_tmp do
  begin
    Close;
    sql.text:='select DeptName from Dept where DeptCode='+QuotedStr(edt_DeptCode.Text);
    open;
    if not eof then
    begin
      edt_DeptName.Text:=fieldbyname('DeptName').AsString;
    end;
  end;
end;

procedure TFrm_Sfc_WipWaster_D.edt_ItemCodeKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if(Key=120)then
  begin
    if Trim(edt_Mono.Text)='' then
      CommonHint(Sender,AdoQry_Tmp,'ItemName','物料名称','ItemCode','物料代码','Item')
    else
      CommonHint(Sender,AdoQry_Tmp,'ItemName','物料名称','ItemCode','物料代码',
             'Item','ItemCode In (Select ItemCode From mnItemList Where ItemCode Is Not Null And'+
             'mnItemList.mono='+QuotedStr(edt_Mono.Text)+' and mnItemList.MoLineno='+
             edt_MoLineno.Text+')');
  end;
end;

procedure TFrm_Sfc_WipWaster_D.edt_ItemCodeButtonClick(Sender: TObject);
begin
  inherited;
    if Trim(edt_Mono.Text)='' then
      CommonHint(Sender,AdoQry_Tmp,'ItemName','物料名称','ItemCode','物料代码','Item')
    else
      CommonHint(Sender,AdoQry_Tmp,'ItemName','物料名称','ItemCode','物料代码',
             'Item','ItemCode In (Select ItemCode From mnItemList Where ItemCode Is Not Null and '+
             'mnItemList.mono='+QuotedStr(edt_Mono.Text)+' and mnItemList.MoLineno='+
             edt_MoLineno.Text+')');
end;

procedure TFrm_Sfc_WipWaster_D.SetStatus(CurrentStatus: String;
  var EnableControls: String);
begin
  inherited;
  If Add Then
     EnableControls:='MEdt_WipDate,edt_DeptCode,edt_ShiftType,edt_Mono,edt_MoLineno,Edt_BillNo,'
                    +'edt_ItemCode,edt_Wipqty,Cmbx_WasterType,Edt_WasterCause,Edt_RemArk,';
  If Not Add Then
     EnableControls:='edt_Wipqty,Cmbx_WasterType,Edt_WasterCause,Edt_RemArk,';


end;

procedure TFrm_Sfc_WipWaster_D.Edt_BillNoExit(Sender: TObject);
begin
  inherited;
  If Trim(TEdit(Sender).Text)='' then
  begin
    DispInfo('请输入记录单号',3);
    Twincontrol(Sender).SetFocus;
    Abort;
  end;
end;

procedure TFrm_Sfc_WipWaster_D.Edt_WasterCauseExit(Sender: TObject);
begin
  inherited;
  TextCheck(Sender);
  If Trim(TEdit(Sender).Text)='' then
  begin
    DispInfo('请输入报废原因!',3);
    Twincontrol(Sender).SetFocus;
    Abort;
  end;
end;

procedure TFrm_Sfc_WipWaster_D.InitControls;
begin
  If Add Then
    SetFocus_Control:=MEdt_WipDate
  Else
    SetFocus_Control:=edt_Wipqty;
  inherited;
  InitShiftCmBx(AdoQry_tmp,edt_ShiftType,True);
  Edt_ShiftType.ItemIndex:=0;
  with AdoQry_Maintain do
  begin
    MEdt_WipDate.Text:=FormatDateTime('yyyy.mm.dd',fieldbyname('wipdate').asDatetime);
    edt_Mono.Text:=fieldbyname('mono').asstring;
    edt_MoLineno.text:=fieldbyname('MoLineno').asstring;
    Edt_BillNo.Text:=fieldbyname('BillNo').AsString;
    edt_ite_ItemCode.Text:=fieldbyname('ite_ItemCode').asstring;
    edt_ite_ItemName.Text:=fieldbyname('ite_ItemName').asstring;
    edt_ItemCode.Text:=fieldbyname('ItemCode').asstring;
    edt_ItemName.Text:=fieldbyname('ItemName').asstring;
    edt_Wipqty.Text:=fieldbyname('wipqty').asstring;
    edt_DeptCode.Text:=fieldbyname('DeptCode').asstring;
    edt_DeptName.Text:=fieldbyname('DeptName').asstring;
    edt_ShiftType.Text:=fieldbyname('shiftType').asstring;
//    Cmbx_WasterType.ItemIndex:=1;
       //fieldbyname('WasterType').AsInteger-1;
  //此处只能输入工废料记录
    If Cmbx_WasterType.ItemIndex<0 then
      Cmbx_WasterType.ItemIndex:=0;
    Edt_WasterCause.Text:=fieldbyname('WasterCause').asstring;
    Edt_RemArk.Text:=fieldbyname('RemArk').asstring;
  end;
  If AdoQry_Maintain.RecordCount=0 Then
     MEdt_WipDate.Text:=FormatDateTime('yyyy.mm.dd',Date());
  if Add then
  begin
    Ledt_EmployeeCode_Create.Text:=UserCode;
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.Text:=' Select EmployeeName From Employee Where EmployeeCode='''+UserCode+'''';
    AdoQry_Tmp.Open;
    If AdoQry_Tmp.RecordCount>0 Then
      Edt_EmployeeName.Text:=AdoQry_Tmp.fieldbyname('EmployeeName').AsString
    Else
      Edt_EmployeeName.Text:='';
    MEdt_Date_Create.Text:=FormatDatetime('yyyy.mm.dd',Date());
    LEdt_EmployeeCode_Edit.Text:=UserCode;
    Edt_EdItEmployeeName.Text:=Edt_EmployeeName.Text;
    MEdt_Date_Edit.Text:=FormatDatetime('yyyy.mm.dd',Date());
  end;
  if Not Add then
  begin
    Ledt_EmployeeCode_Create.Text:=AdoQry_Maintain.fieldbyname('EmployeeCode_Create').AsString;
    Edt_EmployeeName.Text:=AdoQry_Maintain.fieldbyname('EmployeeName').AsString;
    MEdt_Date_Create.Text:=FormatDatetime('yyyy.mm.dd',AdoQry_Maintain.fieldbyname('Date_Create').AsDatetime);
    LEdt_EmployeeCode_Edit.Text:=UserCode;
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.Text:=' Select EmployeeName From Employee Where EmployeeCode='''+UserCode+'''';
    AdoQry_Tmp.Open;
    If AdoQry_Tmp.RecordCount>0 Then
      Edt_EdItEmployeeName.Text:=AdoQry_Tmp.fieldbyname('EmployeeName').AsString
    Else
      Edt_EdItEmployeeName.Text:='';
    MEdt_Date_Edit.Text:=FormatDatetime('yyyy.mm.dd',Date());
  end;
end;

procedure TFrm_Sfc_WipWaster_D.SaveData;
begin
  inherited;
  if edt_Wipqty.Text='' then edt_Wipqty.Text:='0';
  if Add then
  begin
    with AdoQry_tmp do
    begin
       Close;
       sql.text:=' select Count(*) as aa from WipWaster '+
                 ' where wipdate='+QuotedStr(MEdt_WipDate.Text)+
                 ' and DeptCode='+QuotedStr(edt_DeptCode.Text)+
                 ' and shiftType='+QuotedStr(edt_ShiftType.Text)+
                 ' and mono='+QuotedStr(edt_Mono.Text)+
                 ' and MoLineno='+QuotedStr(edt_MoLineno.text)+
                 ' and ItemCode='+QuotedStr(edt_ItemCode.Text);
       open;
       if fieldbyname('aa').AsInteger>0 then
       begin
         DispInfo('该记录已经存在,请检查!',1);
         edt_ItemCode.SetFocus;
         Abort;
       end;
    end;
    with AdoQry_tmp do
    begin
      Close;
      sql.text:=' insert WipWaster(DeptCode,shiftType,wipdate,mono,MoLineno,'
               +' ite_ItemCode,ItemCode,wipqty,BillNo,WasterType,WasterCause, '
               +' RemArk,Date_Create,EmployeeCode_Create) '
               +' Values ('+QuotedStr(edt_DeptCode.Text)+','
               +QuotedStr(edt_ShiftType.Text)+','
               +QuotedStr(MEdt_WipDate.Text)+','
               +QuotedStr(edt_Mono.Text)+','
               +QuotedStr(edt_MoLineno.text)+','
               +QuotedStr(edt_ite_ItemCode.Text)+','
               +QuotedStr(edt_ItemCode.Text)+','
               +''''+edt_Wipqty.Text+''','
               +''''+Trim(Edt_BillNo.Text)+''','
              // +''''+IntToStr(Cmbx_WasterType.ItemIndex+1)+''','
               +'2,'//现在只统计工废记录
               +''''+Trim(Edt_WasterCause.Text)+''','
               +''''+Trim(Edt_RemArk.Text)+''','
               +''''+MEdt_Date_Create.Text+''','
               +''''+Trim(LEdt_EmployeeCode_Create.Text)+''')';
      ExecSQL;
    end;
  end;
  if Not Add then
  begin
    with AdoQry_tmp do
    begin
      Close;
      sql.text:=' update WipWaster set wipqty='+edt_Wipqty.text+','
//                +' WasterType='+IntTOStr(Cmbx_WasterType.ItemIndex+1)+','
                +' WasterCause='+Trim(Edt_WasterCause.Text)+','
                +' RemArk='''+Trim(Edt_RemArk.Text)+''','
                +' EmployeeCode_Edit='''+UserCode+''','
                +' Date_Edit=Convert(varchAr,Getdate(),102) '+
                ' where wipdate='+QuotedStr(MEdt_WipDate.Text)+
                ' and DeptCode='+QuotedStr(edt_DeptCode.Text)+
                ' and shiftType='+QuotedStr(edt_ShiftType.Text)+
                ' and mono='+QuotedStr(edt_Mono.Text)+
                ' and MoLineno='+QuotedStr(edt_MoLineno.text)+
                ' and ite_ItemCode='+QuotedStr(edt_ite_ItemCode.Text)+
                ' and ItemCode='+QuotedStr(edt_ItemCode.Text);
      execsql;
    end;
  end;
  with AdoQry_Maintain do
  begin
    fieldbyname('DeptCode').asstring:=edt_DeptCode.Text;
    fieldbyname('DeptName').asstring:=edt_DeptName.Text;
    fieldbyname('shiftType').asstring:=edt_ShiftType.Text;
    fieldbyname('wipdate').asstring:=MEdt_WipDate.Text;
    fieldbyname('mono').asstring:=edt_Mono.Text;
    fieldbyname('MoLineno').asstring:=edt_MoLineno.text;
    fieldbyname('ite_ItemCode').asstring:=edt_ite_ItemCode.Text;
    fieldbyname('ite_ItemName').asstring:=edt_ite_ItemName.Text;
    fieldbyname('ItemCode').asstring:=edt_ItemCode.Text;
    fieldbyname('ItemName').asstring:=edt_ItemName.Text;
    fieldbyname('wipqty').asstring:=edt_Wipqty.Text;
    fieldbyname('BillNo').asstring:=edt_BillNo.Text;
    fieldbyname('WasterType').asInteger:=Cmbx_WasterType.ItemIndex+1;
    fieldbyname('Wastercause').asstring:=Trim(edt_WasterCause.Text);
    fieldbyname('RemArk').asstring:=Trim(edt_RemArk.Text);
    fieldbyname('EmployeeCode_Create').asstring:=Trim(Ledt_EmployeeCode_Create.Text);
    fieldbyname('EmployeeCode_Edit').asstring:=Trim(Ledt_EmployeeCode_Edit.Text);
    fieldbyname('Date_Create').asstring:=MEdt_Date_Create.Text;
    If Not Add Then
      fieldbyname('Date_Edit').asstring:=MEdt_Date_Edit.Text;
    post;
  end;
end;

end.

⌨️ 快捷键说明

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