📄 sfc_wipwaster_d.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 + -